|
|
Monday, May 21, 2007
|
|
| |
In my April
23 post, I said that I intended to write
a Moneydance extension which
would make Moneydance scriptable from [one of the Java implementations
of] Scheme.
I'd still like to do that, but have tentatively decided that that will
not be the first Moneydance extension that I will loose upon the
world. The first one will still be a scripting interface, but
for a different scripting
language: BeanShell.
So what's Beanshell? The really short answer is that
BeanShell is interpreted, simplified Java. "Simplified" in
several senses; one is that declaring the types of your variables is
optional in BeanShell. Also, BeanShell can be run in a "console"
mode in which you type a single BeanShell statement, and it is
executed immediately.
A BeanShell call to a Java method looks exactly like a Java call to
the same method. Behind the scenes, the BeanShell interpreter
uses the Java "reflection" API to invoke the method.
This means that, while you can use BeanShell to write and run what we
ordinarily think of as "scripts", you can also use it as a learning
tool. If the Javadoc for an API doesn't make it crystal clear
just how to write that method call that you need, a little
experimentation can usually clear it up. You can do that
experimentation in Java, of course, but doing it in BeanShell tends to
be considerably faster.
Now actually, the same ability to experiment quickly with a Java API
is also present in at least one of the Scheme implementations:
namely, JScheme.
The difference is that, in order to use JScheme in that manner, you
have to know how to program in Scheme, and also know a good
bit about Java: at least enough to read Javadoc. It's a pretty
good bet that more people, today, know Java than know Scheme, but it's
a dead solid cinch that more people know Java than know both.
(Perhaps you've never heard of BeanShell before, but if you know Java,
then I've already told you nearly everything you need to know in order
to get started in using BeanShell to explore an API.)
So there's the major reason for the change in plans: the BeanShell
scripting interface has a bigger potential user base than a Scheme
scripting interface does. In particular, the BeanShell scripting
interface should be useful to anyone engaged in learning the
Moneydance API, in order to write their own Moneydance
extension(s). It might even encourage more people to do so.
The plan is, as I said, "tentative". Why? Mostly because
I'd probably abandon it, if I found out that someone else was already
working on the same thing, and had a big head start. That
consideration is part of the reason for this vaporware announcement;
I'm hoping to get the word out such that, if my undertaking it would
indeed be a duplication of effort, I'll find out.
I suppose I'd also reconsider the change of plan if this posting led
to a great clamor of demand for me to implement a Scheme-Moneydance
scripting interface as soon as possible. Or, for that matter, if
it resulted in squadrons of pigs flying around my house at all hours.
Categorie(s) for this post include:
Personal Finance Software;
Java.
4:20:13 PM
|
|
|
|
Monday, April 23, 2007
|
|
| |
One of the ten Moneydance extensions currently available is called the
"Python Scripting Interface". I don't know Python, so I haven't
downloaded that extension. I more-or-less assume, though, that if you
install it, you then have access, from Python code, to the
full Moneydance API: can then do anything from a Python script that you could
do directly from a full-fledged extension, written in Java.
And, I'd further assume, you could do it with less effort than would
be involved in writing an extension: some of the overhead, setting up
your access to Moneydance data, would already have been done for
you. Thus, I'd expect that if you wanted to automate some
Moneydance chore for your own use, and weren't thinking of
distributing the code you create to others, then it would be easier to
do it in Python than in Java.
Provided, of course, that you knew Python. As I mentioned, I
don't ... and it really doesn't have a place on any list of languages
I want to learn, either. (Before a horde of Python fanatics
descends upon me, let me hasten to add that I really have
nothing against Python; it's just that there are
various other languages which, for one reason or another, excite me more
... enough of them for one lifetime, I think. I don't claim that
this preference is anything but arbitrary, OK?)
If you have some other scripting language that you'd like to be able
to use with Moneydance (at least, if it's a scripting language
that's been implemented in Java), you can write your own "scripting
interface" in the form of a new extension, and grant your own
wish. (Uh, that's provided that you also know some Java, of
course.)
As a matter of fact, that's exactly what I have in mind: to write a
Moneydance "scripting interface" for one of the Java implementations
of Scheme ... of which, you may or may not be surprised to know, there
are at least three.
Categorie(s) for this post:
Personal Finance Software;
Scheme.
4:25:36 PM
|
|
|
|
Monday, April 9, 2007
|
|
| |
In the entry for March 27, I made a passing mention of Moneydance, the personal finance software package which I currently use. So now I'll say a little more about it. Moneydance may be considered a competitor to Quicken and Microsoft Money, though it comes from a much smaller company. Moneydance costs about $30, or about the same as the "basic" version of Quicken. (You can try Moneydance out for free, though; it's available for download at http://www.moneydance.com.) Unlike Quicken and Microsoft Money, Moneydance is written in Java. One implication of this is that it has the same functionality on Windows, Mac OS X, and Linux. Quicken, by contrast, is a much less capable package on a Mac than it is on Windows, and isn't available at all on Linux. Moneydance isn't "open source", but it does have an open API (Application Program Interface), which allows any Java programmer to write extensions to Moneydance. It may seem as if this is not important to you if you are not a programmer, but I think it is important to anyone, as an indication that the makers of Moneydance have a much more open attitude than do Intuit, the makers of Quicken. Besides, there are already some extensions available: ten of them, as of today, and they're free. (The online list of available extensions lists only three of them; the only way I know of to get a complete list is from within Moneydance itself. One negative note: when you do that, you get only the names, no descriptions, which makes it hard to tell which one, if any, has the functionality you are looking for.) This extensibility is one of many reasons why I greatly prefer Moneydance to Quicken. Caveat: this is not a formal review, because I've never done a head-to-head comparison of the same version of the two packages -- that is, of versions released at about the same time -- but I would be very suprised if doing such a head-to-head comparison were to change my preference. As for Microsoft Money, it's not available on any platform except Windows. Other than that, I know little about it: I've never used it. Disclosure: a project I have done some work on, and hope to get back to, is to create another Moneydance extension. I don't expect to make any money from doing this (at least, not directly ... ); you decide whether this involvement with the product nevertheless makes me "biased" in evaluating the merits of Moneydance versus its competitors. I don't speak Marketing: it's not my style to drown you in superlatives. In my judgment, though, Moneydance is the best personal finance program now available. I'd say that's true for most users, and most especially for Macintosh users. Categorie(s) for this post: Personal Finance Software.
10:58:25 AM
|
|
|
|
Saturday, August 26, 2006
|
|
| |
So what am I doing with myself, since I
"retired"?
I consider myself to have two "callings": software developer, and writer.
Let me talk about the former for a bit, now. At the moment, at least, I'd say that my three favorite programming languages are Perl, Scheme, and Java. (I wonder how many people there are who would pick those three. I suspect -- but not confidently -- that the answer would be "not many", because they're all so different from each other. )
Perl is the language I've worked in the most, over the last several years (which is to say, over the greater part of my time at SAS).
At any rate. My "focal project" at the moment is implementing a flexible backup utility as a Perl module. "As a Perl module" implies that this is not a standalone application designed for complete non-programmers to use: you have to write a Perl script in order to make use of it. But for those who know how to do that, it gives them a great deal of control over how the backups are done.
I'm writing this mostly because I want it. But I do intend, also, to submit it to CPAN (the Comprehensive Perl Archive Network), once it's done.
Categorie(s) for this post include:
Retirement;
Perl;
Backup software.
2:00:26 PM
|
|
|
|
© Copyright
2007
Tom Edelson.
Last update:
5/21/07; 4:27:46 PM.
|
|
| May 2007 |
| Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
| |
|
1 |
2 |
3 |
4 |
5 |
| 6 |
7 |
8 |
9 |
10 |
11 |
12 |
| 13 |
14 |
15 |
16 |
17 |
18 |
19 |
| 20 |
21 |
22 |
23 |
24 |
25 |
26 |
| 27 |
28 |
29 |
30 |
31 |
|
|
| Apr Jun |
|