• 0

    posted a message on RDBMS (for AceDB-3.0)
    Well, if anything the discussion has caused me to push the idea further down on my "addons I'd like to develop" list. Not much point in making something ppl don't want. The undecided factor is of course, as always, that once it is made ppl might jump on it like crazy and wonder how they ever did without. But I guess we'll see that when we get there.
    Posted in: Addon Ideas
  • 0

    posted a message on BeneCast 10: Official thread
    Yeah, one of the latest versions (don't remember which one) has been the best (maybe r97). Unfortunately "best" is just a nice way of saying "least crappy". The GUI is coming up right, BeneCast is correctly detecting the player's spells and it seems the attaching of buttons to the Blizz unit frames is working, but in the end nothing is showing up.

    Tired of poking and prodding at the addon through awkward /script BeneCast:UpdateAllPanels() and such I decided to make my own debugging tool.

    Enter MindReader and BreadCrumbs:
    - MindReader: Originating from me wanting to know what my addon is thinking it converts any table variable into an AceConfigDialog3 GUI where you can peek, poke and prod at it. You can edit strings and numbers, execute methods and execute code straight on any table node in the variable. The addon themselves can provide extra info on what arguments a certain function needs with the :AddFtionTip() and :AddFtionTips() methods. The lib will be a mixin-lib.
    - MindBrowser: GUI for managing all the MindReader-GUIs (they need to be temporarily stored). Seperate addon.
    - BreadCrumbs: Developers can use the :StartNewTrail() and :AddCrumb() to log certain variables along the execution path of an addon. These can then be analyzed with MindReader. As added bonus it'll be integrated into error-catching addons like !BugSack and !Swatter (provided I get some cooperation from their devs) so addon-developers can see what the value of certain variables were at the time of the error in almost any point of the callstack. This'll be a mixin-library.
    - CrumbTracker: GUI for seeing and managing all the recent breadcrumb-trails.

    Off course, for BeneCast, the barebones of MindReader will be developed first and then the lot 'll be finished after BeneCast is release-ready... BreadCrumbs is more of a handy and nice idea than a necessity atm.
    Posted in: General AddOns
  • 0

    posted a message on RDBMS (for AceDB-3.0)
    Another thing: transactional support!

    It totally bites to corrupt your data because of a bug in the midst of a half-completed change.

    Changes are held in a buffer until the transaction is closed. Changing data keeps track of the timestamp the record was modified from. When a transaction closes timestamps are checked and the changes are executed. Conversely, when executed 'with lock' (not warlock :p), other transactions cannot change a record.

    Lol, imagine a 'your activity has been chosen as the victim in order to resolve a deadlock'-error ingame. DB-Programmers'd cry in terror.

    (Apologies for keeping this going, the geek in me cannot resist. It's like those Linux fans that insist on running their favorite OS on everything with a CPU)
    Posted in: Addon Ideas
  • 0

    posted a message on RDBMS (for AceDB-3.0)
    Quote from Allara
    Or would it be QL-Snay?


    My piglatin is a little rusty...
    Posted in: Addon Ideas
  • 0

    posted a message on RDBMS (for AceDB-3.0)
    Mikk, drop the SQL-thing. X-nay on the SQL-nay ... ok?

    If I EVER decide to write this it'll be API-based, not text-based. And as far as incorperating it into Ace3... we'll see how popular it is *grin*.

    It may be that NOW not many devs seem interested. But once it's out, ppl (being inherently lazy) are bound to start using it. Even in addons that don't REALLY need it.
    Posted in: Addon Ideas
  • 0

    posted a message on BeneCast 10: Official thread
    Added a page with my ideas for the future of BeneCast. Exciting stuff ppl.
    Posted in: General AddOns
  • 0

    posted a message on Extended Calendar Mass Invite System
    Quote from tz8
    ...and i doubt a suitable addon can be created that would also interact with the ingame calendar


    I wouldn't be so sure of that...
    Posted in: Addon Ideas
  • 0

    posted a message on RDBMS (for AceDB-3.0)
    Well, thank you all for your input.

    for postno, post in pairs(feedback) do
      respond(post);
    end


    You're all correct in the following points:
    - Allara, Auctioneer DOES use a highly compressed, customized tableformat
    - Allara, your own addon probably does as well
    - Pastamancer, with dictionary style I mean:
    BeneCast.SpellInfo = {
      ['Power Word: Shield'] = {
        spellid = 17,
        target = 'group',
      },
      ...
    };

    as opposed to
    BeneCast.SpellInfo = {
      {
        name = 'Power Word: Shield',
        spellid = 17,
        target = 'group',
      },
      ...
    };


    The first way, finding a spell is very fast: spell = BeneCast.SpellInfo[spellname];
    opposed to scanning through the table comparing the name-members because the index is a sequential number.

    The trouble starts, assuming for a moment that the table gets enormous, when I'd routinely need a second value looked up very fast. In SQL the equivalent of this are indices. Secondary tables that only contain the lookup-values and a link to the records that contain that value. In Lua you'd have to maintain a table like:
    BeneCast.SpellsByTarget = {
      self = { *linktospell1*, *linktospell2*, ... },
      group = { ... },
    };


    Now, BeneCast does not have "vast amounts of data" that need to be scanned quickly. I WAS thinking of other addons that have such storage needs.

    - egingell, I am moving away from the SQL-parsing that's true. Even though it's quite a powerful language... it'd generate FAR too much overhead for it's benefit. Instead I am considering an API-based approach. Like AceRDBMS:Select(table, { field1, field2, ... }, condition, indexid_to_use); (with optional arguments off course).

    Remember though, the powerful thing about SQL (which I'd like to mirror very much in some way) is the 'anything goes' style of setting up conditions and return values. Things like (code == 'stance' or type == target) as opposed to just searching for one fieldmatch at a time.

    Joins are usually what makes my DB-hart go faster as well. Being able to link two tables together so you don't have to spread your data all over the place. So say, being able to replace table with a 'join-definition' would be a possibility as well.


    In the end it's like egingell's sig says:
    "Ace == Libraries to help addon devs make addons."

    Will existing addondevs that have developed their own tight 'n fast format jump up, toss their work aside and flock to this library? I really doubt it unless they've programmed themselves into a corner, decide they "don't need this trouble" and want an out-of-the-box "good, but not optimized to their addon specifically" solution.

    Likewise, the next addondev that would like to make a "big-data" addon but doesn't because of the pains that might go into managing the database can be pulled over the line anyway if he sees AceRDBMS and goes "ow, that's nice, let's run with it anyway".

    As a comparison:
    Do we NEED AceConfigDialog-3.0 ? No, ppl were making GUI's before it and they'll still make 'em if AceConfigDialog stops being developed. But me, myself, I've always been crap at designing a GUI and AceConfigDialog (actually, it was Waterfall at first) was the library that made me go, "well, might as well put one in anyway". The fact that it was just one line of code added made it all the sweeter :p.
    Posted in: Addon Ideas
  • 0

    posted a message on RDBMS (for AceDB-3.0)
    Mostly I came up with the idea because I was always trying to design my LUA-tables dictionary style for ultra-fast lookups. While this works fine you're screwed when you need to find "records" with a different qualifier. If you wanna maintain your speed you need to start keeping second dictionaries that end up overly complicating things.

    I can see how an SQL-interpreter would be over the top, but some generic framework to take the load off the developer's hands when dealing with these table-issues should have it's place right? And being able to trigger off certain data-changes should simplify addondesign as well...

    Off the top of my head I'm thinking of Auctioneer that has to maintain vast amounts of data while keeping it sane AND fast.
    Posted in: Addon Ideas
  • 0

    posted a message on As PvP Messages seems to be dead...
    I had the same feeling when BeneCast 1 didn't do what I wanted. Now, years later, I love LUA :D and BeneCast keeps on trucking.
    Posted in: Addon Ideas
  • 0

    posted a message on RDBMS (for AceDB-3.0)
    So, LUA tables are used a lot in UIs. That much is certain. In the past years (has it been years already?) of programming addons several problems snuck up. Eventually they led me to the following idea: Make a relational database management system-library with REAL tables complete with indexes that speed up access, table definitions to force compliance, triggers that automate certain tasks and an implementation of SQL to control it all.

    Tables are defined with 'CREATE TABLE', deleted with 'DROP TABLE'. The definitions are stored in the database.

    Indices and triggers can be defined and dropped using their SQL commands.

    Data manipulation occurs through SELECT, INSERT, UPDATE and DELETE statements which are checked against the table definitions.

    I don't know how far I will be able to drive this (INNER/OUTER JOINS, subqueries, ...) but the further the better I think.

    In the end I believe it will provide an abstraction layer that some db-heavy addons have been needing in order to reduce their complexity and hopefully even improve performance.

    Even further improvements can see selective compression of certain tables that are not used for a while to reduce memory consumption?

    AceRDBMS as name? Would it need to be stooled onto AceDB or would it be better to keep the data locked away from tampering?

    Is the SQL implementation over the top (would the parsing kill me?) or would I be better off exposing a certain set of API-methods that perform the same thing? AceRDBMS:CreateTable(tabledefinition) ? AceRDBMS:Select(fieldvalue-pairs, table) (this would probably make joins impossible)?
    Posted in: Addon Ideas
  • 0

    posted a message on Quartz: Modular Casting Bar
    This may seem trivial in the light of other, more serious, issues. But as a newb here I noticed the wiki-link in the very first post not working anymore. I suggest linking to old.wowace.com or moving the contents the a Page??
    Posted in: General AddOns
  • 0

    posted a message on BeneCast 10: Official thread
    The one, the only, the super-magnificent official 100% certified low-carb high nutritional value thread for BeneCast 10!

    Disclaimer: None or all of these qualities may or may not apply to BeneCast 10 itself.

    See the State-of-the-addon page for a history and status of it's development.

    See the usage page for, well, how to use it...

    The creation of this thread was advised by Orionshock (in case anyone objects :p).

    And now, without further adue,... start your posting!

    *ducks*
    Posted in: General AddOns
  • 0

    posted a message on AceConfig-3.0 can't find AceGUI-3.0
    Well, i DID add AceGUI as files AND to the .toc

    So that was probably it. Still, tristanian's suggestions have been invaluable.
    Posted in: AddOn HELP!
  • 0

    posted a message on AceConfig-3.0 can't find AceGUI-3.0
    Thanks for the pointers:
    - I did assume that locals were addon-wide, not just "file-wide", I'll fix that right away. If I wanna use locals for "handy shortnames" of long-winded globals I guess I'll have to define them in every file... I guess this'll also help keep my own namespace clean by being able to define locals in one file and not worry if I'm overwriting one in another file.
    - I'll see to the AceLocale thing as well. I'll make L a member of my big global BeneCast var and localise it to just L like specified above then.

    PS: Just last night I realized that the above error was probably because I did reloadui while my addon hadn't properly loaded the first time.
    - Login
    - Get non Ace-related error
    - Fix error
    - Copy fixed file to addon-folder
    - reloadui
    - get Ace-error

    Apparently I should log out and in every time... ugh
    Posted in: AddOn HELP!
  • To post a comment, please or register a new account.