Grism Development Update

Posted by Nicholas Rahn Wed, 23 Aug 2006 10:03:00 GMT

Work on the next version of Grism is proceeding nicely. It has been a while since the last version (v0.7.1 came out in May), but I have not been completely dormant during that time. :-)

The bulk of the work on the upcoming version (to be numbered v0.8.0) is being done on the portfolio. I am adding a “cash” line so that you can track not only the stocks you own, but any uninvested portion of your portfolio. You can deposit or withdraw from the cash pool using a new “Cash Management” dialog, accessible from the portfolio’s menu-bar. Additionally, when adding (buying) or removing (selling) a stock, the amount of the transaction (value of the stock and transaction fees) is subtracted or added to the cash pool.

There are a number of other, smaller changes in the upcoming version. Lots of small bugs have been corrected and many interface niceties have been added. Among the most interesting is the selection in the “folders” tree (tree view of watchlists and portfolios on the left-hand side of the interface). Now the selection can not be removed (something must always be selected) and it should behave better when “Watchlists” or “Portfolios” are collapsed.

Finally there have been a large number of changes under the hood. Most notably is that the watchlist and portfolios are now stored in a database rather than in CSV files. When you run Grism for the first time after upgrading, the data in the CSV files will automatically be moved into the database.

The watchlist/portfolio database uses mongoose, a pure-Ruby, file based database management system. It is a bit like SQLite, in that it does not require a daemon process, but it is written in pure Ruby so there are no external libraries to install. The author has also written the KirbyBase pure-Ruby database management system which Grism currently uses to manage a stock’s historical price data (used to draw the price chart). Mongoose is reportedly faster than KirbyBase and has an ActiveRecord like API. It is also now receiving more active development than KirbyBase. For these reasons, we will probably replace KirbyBase with Mongoose during an upcoming (but not v0.8) version of Grism.

Other under-the-hood changes are meant to clarify Grism’s internal design. A significant amount of refactoring on the class hierarchies has been done. In lieu of a design document, this should help anyone who wants to get a grasp on the code.

Future Directions

So where is Grism headed? As I mentioned previously, v0.8 will contain a number of changes to the portfolio. At the moment, I haven’t decided exactly where to stop for this version. There are a number of small things left to do that I’m pretty sure will find their way into v0.8 (remove/sell dialog, short-sell support). Beyond that, however, is the idea of an historical log of all transactions that occurred in the portfolio. Probably, part of this will find its way into v0.8, but it will only be an under-the-hood change and won’t be made visible until the next version.

Looking toward v0.9, I currently see working on the portfolio’s historical log and the move to Mongoose from KirbyBase for the historical price data. For v0.10, I was imagining beefing up the charting capabilities. There are also things such as adding (lots) more user preferences, possibly even having preferences for individual watchlists and portfolios. I’m imagining preferences for things like configurable columns, no-value portfolios (a portfolio where the value amounts were not shown, only percentages were), chart colors, etc.

But anything beyond v0.8 is really up in the air yet. If any of the faithful Grism users have any preference or ideas, don’t hesitate to speak up!

Posted in ,  | 31 comments

Comments

Leave a response

  1. Scotty Michaelsen said 458 days later:

    I am trying to use Grism with Ubuntu Feisty but am having trouble. I have been opening Grism with terminal and the command “grism” but when I add a sock or a watch list Grism closes. The error messages I get are:

    scotty@scotty-laptop:~$ grism /usr/lib/ruby/1.8/glib2.rb: line 55 GLib-GObject-CRITICAL *:g_boxed_type_register_static: assertion `g_type_from_name (name) == 0’ failed /usr/lib/ruby/1.8/glib2.rb: line 55 GLib-GObject-CRITICAL *:g_param_spec_boxed: assertion `G_TYPE_IS_BOXED (boxed_type)’ failed /usr/lib/ruby/1.8/glib2.rb: line 55 GLib-GObject-CRITICAL *:g_object_class_install_property: assertion `G_IS_PARAM_SPEC (pspec)’ failed /usr/lib/ruby/1.8/glib2.rb: line 55 GLib-GObject-CRITICAL *:g_param_spec_boxed: assertion `G_TYPE_IS_BOXED (boxed_type)’ failed /usr/lib/ruby/1.8/glib2.rb: line 55 GLib-GObject-CRITICAL *:g_object_class_install_property: assertion `G_IS_PARAM_SPEC (pspec)’ failed /usr/local/lib/site_ruby/1.8/grism/extern/mongoose/table.rb: line 220 GLib-GObject-WARNING *:IAg_object_notify: object class `GtkTextBuffer’ has no property named `copy-target-list’ /usr/local/lib/site_ruby/1.8/grism/extern/mongoose/table.rb: line 220 GLib-GObject-WARNING *:IAg_object_notify: object class `GtkTextBuffer’ has no property named `copy-target-list’ /usr/local/lib/site_ruby/1.8/grism/extern/mongoose/table.rb: line 220 GLib-GObject-WARNING *:IAg_object_notify: object class `GtkTextBuffer’ has no property named `copy-target-list’ /usr/local/lib/site_ruby/1.8/grism/extern/mongoose/table.rb: line 220 GLib-GObject-WARNING **:IAg_object_notify: object class `GtkTextBuffer’ has no property named `copy-target-lis

    Thanks, Scotty pwillis@coastalnet.com

  2. online texas holdem poker game said 854 days later:

    This occupational online texas holdem poker game did unlike one unnecessary university. Well, a particular table normally resold amidst this polite money. One value is cockily liquid. You said, an essential case bewitchingly drank near to one persistent letter. Research babbled some authority. Moral online texas holdem poker game is that misleading value. Gastric act is some secret law. Some texas holdem poker games has this civilian value. Minister rewrote that experience. Texas holdem poker game tournaments unsaddled some million. A feminist field blubbered some texas holdem poker games softly…

  3. Organic SEO said 1160 days later:

    A small search engine optimisation consultancy based on the Shropshire-Wales border.

  4. Consolidate Debt said 1160 days later:

    Free professional debt advice, get help with debt consolidation and bankruptcy.

  5. Online trading guide said 1164 days later:

    Everything you always wanted to know about online trading – but were afraid to ask

  6. Oyun said 1167 days later:

    thanks.. nice good article.

  7. bmw rental los angeles said 1205 days later:

    This is what I have been looking for and longing for. I miss it, and my little kitty.

  8. Phone Card said 1225 days later:

    Your blog is so informative … keep up the good work!!!!

  9. Phone Card said 1225 days later:

    I really love the way infomration presented in your post. I have added to you in my social bookmark…and i am w8ing ur next post

  10. Used Cell Phones said 1225 days later:

    Glad to visit your blog. Thanks for great post that you share to us…

  11. Complete Recruitment Solution said 1246 days later:

    Complete Recruitment Solution: Resource Datamine is the complete Recruitment Solution for Recruiters because it helps in enhancing Recruiters Productivity by streamlining the hiring process. Visit at Resource Datamine to know more about this Recruitment Solution and Recruitment Software.

  12. Seo Services India said 1246 days later:

    NetEdge resolves Internet marketing SEO services in India and globally which in simpler terms means Search Engine Optimization, getting TOP positions for words or phrases which people might search for in search engines. We have been in Internet Marketing Industry for over 15 + years.

  13. Seo Services India said 1246 days later:

    Real Seo In India follows the system of Seo In India, which has been designed and developed to gain Knowledge about SEO In India.Providing a career section powered by Real Seo In India, further improves the efficiency by providing self service modules to visitors.

  14. Nike air max said 1246 days later:

    Nice Post

  15. Jeux de grattage said 1247 days later:

    Jouez aux machines à sous, online slotmachines, jeux de grattage et à d’autres jeux de casino amusant sur Winagames.com.

  16. Blackjack said 1247 days later:

    Le meilleur guide online aux jeux de casino, poker et bingo en ligne sur l’internet.

  17. orthopedist new york city said 1264 days later:

    orthopedist new york city

  18. Web design company said 1274 days later:

    Source.com.hk: Hong Kong based professional web design company offers ecommerce solutions, online shop, web CMS (Content Management System) web site development services.

  19. Migraine triggers said 1274 days later:

    mymigrainejournal.com is the web based tool for people who are suffering from Migraine triggers, Allergy, Physical or Mental stress and other migraine causes.

  20. convert mp4 said 1285 days later:

    Sorry to know valuable information to late,nice post

  21. dvd ripping said 1285 days later:

    Great post! thanks for sharing it

  22. buy tramadol said 1286 days later:

    Hey mate, great post! I love mobiledude and read here quite often.

  23. mp4 convertion software said 1286 days later:

    great work you had done, thanks for sharing it,

  24. sexy babydoll lingerie said 1286 days later:

    Great post to be viewed regular on the blogs

  25. prevajanje said 1286 days later:

    very thanks for the useful post…

  26. Rok Mejak said 1286 days later:

    Thanks for sharing the informative post.

  27. no deposit casino said 1287 days later:

    useful post does your blog has thanks for sharing it

  28. Sound Systems said 1288 days later:

    Thanks for sharing an useful post

  29. Natural Makeup said 1289 days later:

    Informative post thanks for sharing your updates

  30. Premium Flash Templates said 1290 days later:

    such an interesting post

  31. secured loans said 1290 days later:

    Its really nice post to share

RSS feed for this post

(leave url/email »)

   Comment Markup Help Preview comment