![]()
Unfortunately an immovable work commitment has just emerged that means I won’t be able to be at JAOO 2009, which is a real shame.
![]()
Unfortunately an immovable work commitment has just emerged that means I won’t be able to be at JAOO 2009, which is a real shame.
Posted in SoftwareArchitecture, Speaking
I’ve been fortunate enough to have a talk selected again this year for Bearpark Publishing’s excellent Software Architect 2009 conference. This year the conference is at the Royal College of Physicians in Regent’s Park, London and it’s running from 29th September to 1st October. I’ll be giving my talk on the “Top 10 Software Architecture Mistakes” on Wednesday 30th September in the afternoon. Hope to see you there!
Posted in SoftwareArchitecture, Speaking
The WICSA 2009 early bird registration prices are only available until August 15th, so if you’re planning to come to the conference, now is a good time to register!
Hope to see you there.
Also we now have a great group of sponsors but if your organisation is interested in sponsoring the event and reaching a large group of top software architects then do get in touch.
Posted in SoftwareArchitecture, Speaking | Tags: Conferences, Software Architecture, WICSA
Recently I decided that I really should be tracking my finances using a dedicated package, as I’ve been using online banking and Excel to do this for quite a while and it seems like there must be a better way.
I use Macs at home for most jobs and so I decided to find a good personal finance package for everyday use. My needs are pretty simple (import transactions from my bank, set up a simple set of transaction types for classification, allow me to analyse past expenditure and predict future expenditure) so I wasn’t expecting this to be difficult. Well it just goes to show how wrong you can be!
Since I switched to Macs about 3 years ago, I’ve been consistently impressed by the quality of the software available for the platform, but whatever has resulted in this situation for most software seems to have passed most of the personal finance packages by. Let’s just say that I wasn’t terribly impressed overall.
I found 10 personal finance packages for OS/X (which was more than I was expecting in fact) and I downloaded them all for a quick test drive to see how they fared. I performed the same test with each package, which was quite simple, just being:
While this is pretty simple stuff, the different packages coped with these tasks very differently.
Looks promising because it’s simple and reliable and seems to work well but is also very basic, without any charting or analysis yet. Currently in beta (and free) so one to keep an eye on.
Simple transaction based tracking package that seems to be well written and offers the basics, but appears to have many of the same problems as others in the sense that simple things (like changing the category of a number of transactions at once) causes problems.
The “Pro” version adds reporting and searching and seems to nearly be there from my perspective, but still has some reliability problems (again updating categories for a group of transactions appeared to cause the same problems as in the basic version).
Quite a new package on Windows and Mac. Not all that visually attractive but works very reliably and offers a good set of basic core features (import rules, simple reporting and graphing, transaction import, simple forcasting). Nice import filters including a self-training feature based on existing transactions.
Strong set of keyboard shortcuts, some of which are Mac compliant and some aren’t (e.g. Cmd-i being to add an item rather than to show the Info Inspector).
Lacking the visual pizazz of iBank and the number of more sophisticated features that some of the other packages offer, but for my simple needs, it seems to be the best bet.
This is a package that appears to have fantastic potential but is let down by poor basic software engineering that results in reliability problems. It looks fantastic and is very Mac like, with nice usability, consistent OS/X conventions and so on.
Functionally, it seems powerful with the basics all covered and nice additional features like real time graphing, clicking through graphs to underlying data, smart accounts, budgets, … It also has good import rules, allowing multi match on one field or match across many fields.
However this package’s Achilles heel is its reliability. When setting transaction attributes (e.g. categories) it crashed repeatedly. This seemed to be related to multi-select and/or changing the categories of transactions, but it was so bad I managed to crash iBank every few minutes. However it’s not just me, reading the support forums on their site suggests that a lot of people crash this application a lot!
This package seems to have a somewhat complicated model of accounts, tied to categories. For my simple needs, this seemed like duplication (I had an account called “household” and also needed a category called “household”). All the same, it probably offers a level of sophistication that many people find useful.
The application is quite Mac like, but when you’ve used it for a while you realise that its usability is quite spotty. To delete accounts, it’s a one by one thing, each one being 3 clicks with no keyboard shortcuts being provided. Unfortunately categories use the same interface with the same limitations. Similarly changing a set of transactions means selecting them and then selecting “Edit” and confirming that you want to edit multiple txns and then finally making the update.
The most maddening usability thing I found was that the transaction viewing interface only allows calendar month based display rather than a display between any given set of dates (e.g. only 1st to 31st March is allowed rather than 22nd Feb to 21st March).
There are quite a number of good things about this application (for example the graphing is nice and the application was reliable throughout, which many of the others weren’t) but from a usability perspective, there are just too many awkward things about it for it to be an easy choice.
Functionally Liquid Ledger doesn’t appear to be the top of the class, but it offers a good set of features and what is provided seems to work well. It imported transactions reliability, allowed categorisation and provides fairly good reporting and graphing (although the graphs don’t allow click through to see what’s behind them as iBank does). The reporting provided isn’t all that sophisticated though and can’t be customised, always reporting the current year, which is a bit annoying.
An interesting feature which the other packages didn’t have is MobileMe integration, providing backup of your data to your iDisk on demand, or when the application exits.
All this said, the software seems to be completely broken if you try to change the set of accounts and categories in the default set. You can delete one but then the delete button just fails to work. Deleting accounts seems to work for a while, but then you get a group called “0″ with an unnamed account in it. And it all goes down hill from there!
If you leave the default accounts and categories alone (and just rename them if needed) then the package appears to work pretty well. It’s not tremendously user friendly but it’s OK and better than a number I’ve tried as part of this exercise.
This application looks like it has a lot of potential as it’s a real Mac app and does the basics fairly well.
It happily imported transactions, allowed new categories to be set up easily, has “smart” accounts (like smart playlists in iTunes) and provides good keyboard shortcuts allowing rapid categorisation of a transaction list.
Having started well though, I couldn’t get any graphs to display at all (although tabular reports were OK). It also didn’t offer any import rules, which meant that importing and classifying transactions is a pain. There were also a number of functional oddities (like Edit Graph working from the action menu, but not the context menu).
At first glance, this is definitely the package to go for because it is powerful, cross platform, written in Java, and allows you to write plugins for missing features.
The problem was that for the things I needed to do, it exhibited awful usability. For example, if you want to delete a number of categories, you have to delete the categories one by one rather than selecting a number and deleting as a group. The import model is also a bit odd, because transactions are imported into a “holding” area and need to be accepted one by one. There is no provision for automatic classification rules, so this results in a lot of individual steps. MoneyDance tries to be helpful and guess what the classification should be, but it appears to need a perfect match on a field like “payee” (so “TESCO 234″ and “TESCO 242″ are different).
Staying on the subject of importing transactions, I was suprised to find that once imported, you then can’t edit the transactions further! The other problem I had was that the auto matching feature automatically replaces the payee as well as setting the category which is annoying as this loses information
Minor gripes include the fact that graphs aren’t clickable to see what data is behind them, lots of lists won’t multi-select, no keyboard shortcuts are provided and there’s little of the Mac in the interface.
This application seems to do what it promises and to do it rather well. It’s based on the simple idea of “buckets” for your money, so that at the start of the month you allocate your income to buckets based on your priorities and liabilies (buckets being for mortgage, utility bills, travel, household expenses and so on). It then tracks expenditure against these buckets to let you see how you’re doing against the plan.
The application seems to work pretty well implementing this model, importing transactions smoothly, providing a neat a “memorize” ability to auto classify transactions and allowing the creation of as many “buckets” as you want, with the application dealing with a large number without problems.
For me, the only problem was that this “track against bucket” model wasn’t quite what I was after and more importantly, the application has very limited historical reporting once you have the data in the application (which is what I really wanted).
This application looked very simple to set up and use, so I was quite hopefull about it, but it wouldn’t import HSBC OFX files, so that was that. I couldn’t get my data into it.
Many of these applications appear to have been developed by small software houses who have poured a lot of effort into them, but in many cases they seem to have been left with one or more rough edges or functional limitations which mean that I think I’d be happier to just keep on using a spreadsheet.
For my particular set of biases and needs I chose Fortora Fresh Finance for Mac, which has been working well so far. Transactions import smoothly, it’s learning all of my regular transactions for authomatic classification and the historical analysis is basic but reliable.
Posted in Technology | Tags: Mac, Technology
After what seems like an age of planning and preparation, the WICSA 2009 conference is finally approaching. The event will be held in Cambridge (in the UK) in September, from Monday 14th to Thursday 17th, at Robinson College (which apparently is one of the new ones, so quite comfortable!)
WICSA is the only specialist software architecture conference that I know of which attracts leading practitioners and leading researchers to the same event. In order to make sure that both camps get the most out of it, whether they like it or not, the conference includes a series of working sessions where people present short papers and they get critiqued and discussed. Usually an interesting process for a researcher or a practitioner! Definitely not your normal research conference.
This year, I’ll be giving one of the keynote talks where I’ll be talking about design principles, and Nick Rozanski and I are also presenting a working session paper defining a new “Context Viewpoint” for our viewpoint set.
If you’re a software architect based in Western Europe (or beyond for that matter) you should consider coming. It’s a pretty unique event. Drop me a note if you’d like to know more.
(Oh and if you’re an organisation that might like to sponsor the conference, let me know too and we can have a different discussion about the very good value sponsorship packages available.)
Posted in SoftwareArchitecture, Speaking | Tags: Software Architecture, WICSA
Along with my co-presenters, Nick Rozanski and Andy Longshaw, I’ll be re-running a shortened version of our Design Principles – Mining Pattern DNA session at miniSPA this week on 15th July. The miniSPA conference is a one day “taster” event to let people see why the main SPA Conference is such a great event for attendees. It’s free, so if there are places left, sign up! Hope to see you there.
Posted in Speaking | Tags: Conferences
It’s Spring so the BCS SPA Group’s annual conference must be approaching! The most stimulating conference I go to regularly, SPA is a great event with a long and successful history. For this year’s conference I’m running a workshop on mining design principles from patterns, with Nick Rozanski and Andy Longshaw. The conference is a little different this year and is staged at BCS HQ in London rather than at a residential centre, but it continues to run from Sunday 5th – Wednesday 8th April. Our session is on Tuesday morning so do come along if you can make it. For the first time this year, you can pay by the day if you can’t make the whole event.
Posted in Speaking | Tags: Conferences

I’m very pleased to be able to announce that I’m speaking at QCON London 2009 in March, at the QE2 Conference Centre. My talk is on Thursday afternoon as part of the Architectures you Always Wondered About track, hosted by Floyd Marinescu.
Unusually for me, I’m talking about the Apex system that I’m the architect for at BGI, rather than more general software architecture topics. I’m really looking forward to it! Hope to see you there.
Posted in SoftwareArchitecture, Speaking | Tags: Conferences, JAOO, QCON, Software Architecture
In the first part of this article, I explained how to get VirtualBox running on an Intel Mac with Ubuntu server installed and running as the operating system. However, the point of all of this is to get an Oracle XE server running on the Mac so in this second installment, I’ll explain the remaining Oracle specific steps needed to get Oracle up and running in the Ubuntu VM.
You’ll need the Debian installation package (rather than the RPM) from the XE download page (having agreed to the license agreement etc etc). Download this on your Mac and copy it to your “shared” folder that the Ubuntu VM is sharing with the Mac.
Linux Setup
The XE installation process is radically simpler than the Universal Installer one for the Enterprise Edition and it does a lot of the Linux setup required silently for you (it will set kernel parameters, create users and so on). However, one thing it doesn’t do is to set up swap space correctly.
The amount of swap that the installer demands depends on the amount of memory you’ve got, but if its 512MB or more, you need at least 1024MB of swap. Ubuntu silently sets up swap space for you during installation. I’m not sure how it works out what it needs, but my VM ended up with a 401,440K swap partition which is a lot less than Oracle demands.
You can add swap in a number of ways, but I just added 1024MB of swap in a file on the filesystem:
sudo dd if=/dev/zero of=/swap.1024mb bs=1M count=1024sudo mkswap /swap.1024mbsudo swapon /swap.1024mb/swap.1024mb none swap sw 0 0I also found that you need to install:
apt-get install bcapt-get install libaio1.You should now be able to install Oracle XE into the VM.
Installing Oracle XE
To install the XE database, just use the dpkg command to install the Oracle Debian bundle that you’ve downloaded and run its configuration script:
sudo dpkg -i /shared/oracle-xe_10.2.0.1-1.0_i386.deb
sudo /etc/init.d/oracle-xe configure
Answer the prompts about ports, system passwords and starting on boot (I just accepted the defaults and entered a simple password for the system users).
(Wasn’t that easier than the Universal Installer!)
You’ll now find that Oracle XE is installed in an $ORACLE_HOME of /usr/lib/oracle/xe/app/oracle/product/10.2.0/server.
In order to test the new server, you can initialise the environment using the $ORACLE_HOME/bin/oracle_env.sh script. However, before you do this, you’ll need to fix the nls_lang.sh script that oracle_env.sh calls! When I ran this on my Ubuntu VM I found that it encountered errors relating to the [[ operator on lines 108 and 110, so to fix this change "[[" to "[" and "]]” to “]” on these two lines.
To check out your server:
$ . /usr/lib/oracle/xe/app/oracle/product/10.2.0/server/bin/oracle_env.sh
$ sqlplus "sys/password as sysdba"
SQL> select * from v$instance ;
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO EDITION
---------- --- ----------------- ------------------ --------- --- -------
1 XE
oracle1
10.2.0.1.0 18-FEB-09 OPEN NO 1 STOPPED
ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NO XE
You now have a running Oracle instance, so you can start using it immediately from Ubuntu. However you only have the basic console in the VM window so it would be much easier to use it from the Mac, so how do we connect the two?
Getting Connected to Oracle
There are a number of networking options available to a VirtualBox VM:
I used NAT networking because it just seemed a lot simpler than the alternatives! The only snag with NAT is that you can’t connect to the VM directly as a network host. To work around this, VirtualBox provides port forwarding from the Mac host to the VM. As a general solution this is quite fiddly to set up, but for our case we only need a couple of ports forwarded:
To redirect a port needs three commands, for example in the SSH case, use the commands:
VBoxManage setextradata VMNAME VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol TCP
VBoxManage setextradata VMNAME VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort 2222
VBoxManage setextradata VMNAME VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort 22
Where “VMNAME” is the name of your VM, “ssh” is an arbitrary name for this group of settings and the port numbers are the guest port you’re directing to and the port you want to use on the host Mac as its proxy. You need a group of these three commands for each port you’re redirecting. I redirected port 22 on the VM via 2222 on the Mac, port 8080 on the VM via 9080 on the Mac and 1521 on the VM via 1521 on the Mac.
One last thing you need to do to allow you to get at your Oracle instance is to enable remote access to the web administration interface, as the default configuration only allows connections from the local machine. You do this by running an SQL command as the system user on the VM:
$ sqlplus system/password
SQL> EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
PL/SQL procedure successfully completed
SQL> quit;
Using Oracle
You can now access Oracle via (at least) three routes:
sqlplus user/password@//localhost:1521/xeSo that’s it. It’s been a bit fiddly in places, but not really a difficult process and we now have a VM running on our Mac that automatically starts an Oracle database instance when it boots that we can access via GUI, command line and web based interfaces running on your Mac. What’s not to love?
Posted in Oracle, Technology | Tags: Mac, Oracle, Technology
I’ve been using an Apple Mac Book Pro as my private laptop for a couple of years and it’s a great machine for just about everything unless you need a local database server (or actually an up to date JDK, but that’s another story …)
Unfortunately Sybase and Oracle don’t have ports of ASE or the Oracle Database that run on Intel Macs, which is a real pain, so I started looking around to see if there were emulation options, given that Macs are now Intel machines. After some investigation I found that you can now assemble a freely available stack of software that allows you to run an Oracle server on an Intel Mac, so I’ve explained the process in a couple of blog entries.
At a high level the process of getting Oracle running on your Mac is:
Easy eh? Actually, it’s not too hard, but there were a few things that tripped me up along the way, which I’ve noted in the instructions below. In this article I explain how I did the first two steps and in a second one I’ll explain the Oracle specific steps.
Downloads
Virtual Machine Installation
Operating System Installation
sudo apt-get install dkmssudo apt-get install build-essential linux-headers-`uname -r` module-assistantsudo m-a preparesudo apt-get install ssh(We’ll do the network setup to allow access from the Mac later).sudo mount -t vboxsf shareddir /mnt (where shareddir is the “Folder Name” you gave the shared folder when you set it up in VirtualBox and /mnt is the existing directory where you’d like it to appear in your Unix file system)./etc/fstab file of the form:shared /shared vboxsf rw 0 0At this point, you should have a running Ubuntu server on your Mac, with a shared folder to allow us to share files between the Mac and the Linux machine. In the second part of this article I’ll explain how to perform the Oracle specific Linux setup and then get Oracle XE running in the Linux server and usable from Linux.
Posted in Oracle, Technology | Tags: Mac, Oracle, Technology