Nürburgring in a Tractor - or Knowing When Not To Use Domino
To my surprise Karen has been just as keen as I have to keep track of where "our money" (apparently, now we're married, everything that's mine is hers, as she loves to remind me) is going, using the Flex Accounts database I've been talking about.
Three months in (we started on 1st Jan this year) and we're both still entering everything we spend on a daily basis. I don't even need to remind her now.
We now have enough data to start seeing monthly trends and have already highlighted problem areas (namely the house) where we're overspending. That's by-the-by though. Fact is it's working but could be better.
To me a sign that an application is doing its job is when users ask for additions. Whenever I deliver an application and then never hear back I take this to mean it's take-up/use has been slow if any and take it as a sign of having failed at my job (OTT, I know). There's always the chance I got it spot on right first time, but, let's be fair, that's unlikely based on some of the specs I get sent ;o)
In this case the users are Karen and I, which is handy as it means I get to actually see the user using the app. There's no better way to see how you can improve something than watching (without speaking!) over a user's shoulder as they perform tasks. Watching Karen has highlighted lots of ways in which it can be improved.
Then there are the improvements and extra features I want. All in all there's lots to add. That's why, as I mentioned the other day, I'm dropping Domino as the backend to it.
Most of what I want to do (now that we've start collating the actual numeric data that is our incomings and outgoing) is number crunching and I'm sure you'll agree (?) Notes is not a good number cruncher!
As with everything on codestore I do it to show you guys how. In this case it was to demonstrate the use of Flex with Domino and I was learning as I went along. I feel I've done my job now - once I've made it ready for download you'll have a working CRUD-type app that shows Domino working with Flex. Whether the app itself is of use depends on your own personal circumstance.
Now I'm not saying Domino can't do what I want to do. It probably could, but it would be like, I dunno, turning up to do a lap of the Nürburgring in a tractor. I'd get round the course. Just very, very slowly. With this Accounts app it's like I've reached the starting line now and kind of realise it time to switch to something a little faster and more agile.
So I'm going to port it to LAMP. With a SQL backend finding out exactly what I want to know will be a doddle (and a handy learning experience too). I'll put another demo online when it's ready and we can take it from there. As always I assume you're interested in whatever I am.
Note: This is not an attempt to start a "flame war". It's just me saying Notes is not the only fruit!
Hi Jake
Domino may not be the perfect backend for your accounts app - however that app is a really cool example of Flex on Domino as it stands. The UI just seems that bit more friendly.
One for OpenNTF ?
Cheers
John
and another thing :-) - I'd love to drive the Nürburgring. something faster than a tractor would be nice.
I think you're making the right call Jake, not to sound like a sycophant. Domino + accounting problems were the topic this week at work http://datatribesoftwerks.com/A55C1C/DatatribeBlog.nsf/archive/20090306-5D4B0D and aside from not being able to query data in a structured way (easily), there is the more purely computer scientific way Domino handles floating point math.
So, you won't regret your choice of tool in this case and I expect it should be clear to all that you're making a choice of proper tool for the job, not an arbitrary one.
btw - we have this odd sport in the US called the Tractor Pull, where by gentlemen with large sums of time, money and courage put enormously powerful (sometimes jet turbine) engines on otherwise normal farming implements. I dare say one of those would handle the straightaways just fine, though cornering would be somewhat less graceful.
@Jerry/Jake(?): LotusScript is shit for math, but regarding programming languages, Domino is not a one trick pony. Java should be more than good enough for number crunching..?
Regarding structured queries. That's another story.. :)
@Tommy - I would expect Java to have, out of the box, many of the same problems LS does as it is an academic / scientific language first and foremost. I think the discussion we had over at my blog about data types and floating precision demonstrates that any language is going to need close watching when it comes to accounting. Statistical or scientific applications, LS is fine for, as is Java. Accounting with that constant threat of death from the taxman requires unyielding precision (sometimes) which requires us to redo some of the things computer scientists think correct with math.
Now - structured queries - you could conceivably use Java agents with SpringDAO to make it an easier go, where by Domino becomes your light weight J2EE container (sort of) if you really really wanted to. Could do. Not saying it makes a whole lot of sense, but could do. :-)
Jake, at least you can use Mint.com for what you are trying to do. Forget about entering stuff... one always forgets...
spend that time instead on making your baby smile :)
SQL for anything to do with accounting/booking systems etc. - Notes not suitable.
Wasn't this stated on about the first page of the first book in the CLP Development Part 1 course back in the 90's? (showing my age)
Unfortunately there are less and less use cases where SQL is not considered as the datastore of choice especially since the free SQL databases have grown up. I would love nsf being brought to the next level perhaps combining the best of both worlds or just adding a sql storage engine and define at db creation what engine to use. And of course I am curious how your app works with LAMF(lex).
@Henning - we do have DB2 integration with Notes, but the trouble with making that any easier than it currently is becomes provisioning servers and databases on them. SQL, Oracle and DB2, being that they can command more storage space, tend to reside or expensive storage and have separate security processes, guidelines and methods than Notes. It would be awesome to see that streamlined to the point you envision but there will be for a time always the big clunking gears behind the scenes to contend with.
Another approach might be to add the DB2 engine to Domion but you'd blow the specs of many current deployments out of the water as far as hardware is concerned.
These two animals are so different, about all we can do is put their two cages in the same room and get them to glance at eachother.