My Software Projects

by Tom Edelson

Links: Tom Edelson's home page; Tom Edelson's Dreamwidth journal

This is about my work with computers: primarily, as a software developer.  In particular, it introduces you to the projects I've done since mid-2006, when I retired from my last regular job, as a developer with SAS Institute.  During that time, so far, I haven't been working for money, though I am not necessarily averse to doing so.

My Backup Utility

The first thing I did was a backup and archiving utility, written in Perl.  It creates a Zip archive, using a control file to determine what should be included.  It can do incremental backups as well as full ones.

I use this utility almost every day, but I don't have definite plans to release it publicly.  However, if it sounds like something that you might find useful (and especially if, in addition, you are a Macintosh user), then let me know that; if some people do, it will greatly improve the likelihood of an official release.

See the "Contact Information" section, below, for how to get in touch with me.  If you write about the backup utility, let me know if you'd be willing to try it before the official release, that is, to be a "Beta tester".

Financial Software Projects

Except for the backup utility, all of my completed programming projects, since I retired, have had to do with personal financial software.  Also, all of them have been for the Java Runtime Environment, though not all of them have been written in Java.

I haven't created a new personal finance program; each project has added value, in a different way, to one (or, in one case, both) of two existing programs in this category.  These two programs are:

Each of these applications is written in Java, and each uses Swing to create the GUI (Graphical User Interface) which it presents to the user.

I have used both jGnash and Moneydance: mostly at different times, but sometimes, both of them in parallel for a month or more.  I like them both; I really couldn't call either one "better" across the board.  I prefer the user interface of jGnash, when doing data entry; Moneydance is more complete in features for getting data back out, such as searching and reports.

My work on personal finance software, to date, falls into three categories:

Direct Contributions to jGnash

I have written Java code that has become part of the jGnash application.  Most of it is bug fixes … especially, making things work on Mac OS X which previously didn't, though they did work on Windows and Linux.

Another niche role I have in relation to jGnash: around the time that jGnash 2.0 came out, I became the "maintainer" of the jGnash 1.x series of releases.  That is, I added bug fixes, and the occasional small enhancement, for the benefit of those who needed to, or for special reasons preferred to, continue using jGnash 1 rather than migrating to jGnash 2.  jGnash 1.12.0 was the first such "maintenance release", and jGnash 1.13.0, the most recent, was released on January 17, 2011.

You can download any of the jGnash 1 releases, including the ones for which I was responsible, from this page at SourceForge.

The "Security Price Entry" Extension to Moneydance

I have a few mutual funds, and so I track the changes in their prices within my personal finance program.  I am accustomed to entering the closing price of each security I own as of the end of each month, information I receive on the monthly statement from the broker.

In Moneydance, I found this cumbersome: I had to type the "as-of date" (the last day of the statement month) over again for each security.

So I took advantage of the "Moneydance API": that is, of the published information that allows the creation of a "Moneydance extension" in Java.  My extension is called "Security Price Entry", and I believe that it makes this particular task much less repetitive.

For more information on my Security Price Entry extension for Moneydance, see the page titled Moneydance Extension: Security Price Entry, here on my site at The Well.

Security Price Entry has been submitted to The Infinite Kind, the company which publishes Moneydance, and is available through them.  In fact, they now own the copyright to it; I am no longer involved in maintaining this software.

The Asset Allocation Report

If you are an investor, you are likely to be familiar with the concept of "asset allocation".  This means, roughly, that you want to be aware of what proportion of your assets is invested in ("allocated to") the various classes of investments, such as stocks and bonds.  One reason why it's deemed valuable to know this is that there are rules of thumb about what this proportional allocation should be.  One of the simplest of these rules of thumb is that in general, the proportion invested in stocks should go down as you get older.

Since this is pretty much received wisdom among investors, I was surprised that I could not readily find software tools for calculating what one's current asset allocation is.  Or at least, in my judgment, not good ones.  For example, I've never come across one which could deal with the fact that some mutual funds hold both stocks and bonds.

So I wrote one.  From my perspective, one would expect that there would be other investors out there who are serious enough about asset allocation that they would want to use this software.

Unlike my other contributions to financial software, my asset allocation report module is not written in Java (though it is written for the Java Runtime Environment).  It's written in SISC, an implementation of the Scheme programming language which is itself, in turn, written in Java.

My Asset Allocation Report code has not been "released", that is, there is currently no URL from which you can download it.  Before creating one, I would like first to find out if anyone is interested.

Investors might be interested in this software as potential "end users".  Programmers (particularly Scheme programmers) might be interested in looking at it because of some of the techniques it uses, such as one that I call the "zombie application technique".

To learn more about my Asset Allocation Report software, start with the introductory document about it.  That will then give you the option of following an "information for [potential] end users" path, or one that is directed at programmers.  I have tried to be even-handed: in particular, to describe reasons why an end user might not want to try this software (or at least, not until it is made easier to use), as well as the features which I think are likely to be attractive to investors.

After looking over the relevant information about this report software, if you do find that you have some interest in it, it is important that you let me know.  That's because I probably won't go through the "release engineering" exercise (the additional work needed to make it publicly available) unless some people do express an interest in it.

Contact Information

The above project descriptions have mentioned some circumstances in which you might want to contact me by email, so here's how to do it.  In the (possibly vain) hope of foiling spammers, I will give you my address in a round-about way: take the user name "edelsont", and the domain name "", and put one of those "at-sign" thingies (the symbol "@") between them.

This page created: 2010-08-20

This page last modified: 2019-04-04

© Copyright 2019 by Tom Edelson.