Monday, January 31, 2011

Time to Move On…

You do whatever you can and then it’s time to move on!
-Warren Siegel

… or something like that! I’m going to rant about

ACBOOK

in this post. Specifically, its origin, evolution, appearance, functionalities and current status. Let us begin the journey with

v1.0; Release 1 (2002-04: 3 Semesters at IITKGP) This was coded in C++, probably my last extensive programming endeavour in C++ (apart from the programming done for the ‘Programming & Data Structures’ course in second semester). It included 9 very basic functional choices (I don’t remember if this number included ‘Exit’ or not!) like Adding / Editing / Deleting Data (includes Date, Particulars & Amount); Selecting Accounts / Categories; Showing all Data; Viewing Balance Sheet (name changed later in v3 to Balance Summary!), etc. There may have been one or two functions associated with physical file manipulation but I don’t remember them as indicated by the shaded part below:

AcBook v1.0

The source filename was hard-coded and the data was automatically loaded from it when the program was run. There may have been a Save to File function if Data manipulation was not done directly on the file (like in later versions!), which would make 9 choices (including Exit). However, if saving was direct then I’ve no clue what could have been the last (two) choice(s).

Anyway, there were 9 or so different .cpp files compiled to give their own executable file and selecting a choice would run that particular .exe (heavy use of global & extern variables)! This ran all right on Windows XP for some time but – as is well-known to those (like Shantanu) who know it well – my programs have an inherent expiry date! After an year or so that started to show as the coordination between some of these executable files was lost. Fortunately by that time, I’d met MATLAB® and We were ready for

v2.x(0≤x≤9); Release 2-3 (2004-07: 7 Semesters at IITKGP) These were coded in MATLAB v6.0 & v6.5. I don’t remember what features were added in which minor version and release. But I’ll give what all was available at the end of v2’s lifetime! First of all, there was a cosmetic Password dialog box,

Password

which accepted ‘jkmsmkj’ only! After that, we got to see the relevant GUI:

AcBook v2.x

Let me confess that all the figures shown for v2.x are modified from those of v3.5&9! The ‘advanced’ panel features (i.e. boundaries) were not present in v2.x. The buttons are shaded above as there were 8 buttons in a 4x2 grid (not 7 as hidden above). Most probably they were arranged like: [LOAD, ADD; CLEAR, SHOW; EDIT, DELETE; (Save), (Exit)]. ‘Load’ loaded Data from ‘data.mat’. ‘Clear’ just cleared the Data fields. ‘Show’ showed ALL the data of the selected Account & Category in the Display Box sorted in chronological order. Both the Accounts & Category were hard-coded. The Accounts included Earning & Expenditure, which is still the case. The categories included ‘In Pocket-IC’, ‘PNB’, ‘In Pocket-NC’, etc.

The File menu must have included New, Open, Close, Save, Save As & Exit, which have quite obvious functions. The Tools menu would have included View Balance, Sort by, Search for & Generate File. ‘View Balance’ showed a bland pop-up window containing the ‘Balance Sheet’:

Balance Sheet

‘Sort by’ is just a placeholder: Data is ALWAYS sorted chronologically! ‘Search for’ may have been introduced in v3 (definitely not in Release 2) but as the name suggests, it searches for date, particulars & amount depending on which option is chosen. ‘Generate File’ (definitely in Release 3) gets a bit technical and hence beyond the scope of this post. The Help menu (even in v3) included ACBOOK Disclosed (opened help file) & About ACBOOK (showed version info as seen above).

This set of functionalities served me well till the end of my life at IITKGP but then in Summer’07, I started thinking of my future needs and that led us to

v3.x(0≤x≤9); Release 4-9 (2007-11: 3½ Years at SUNYSB) These were coded in MATLAB v6.5 & v7.9. Let me try to relate the minor version & release numbers: v3.0 R4; v3.5 R5-6; v3.9 R7-9! Let us now see how the program evolved. The major change in v3.0 R4 was the ability to have user-defined categories that led to a new Category menu, which becomes active only after a file has been opened. It had 3 sub-items: Add, Delete, Rename. The next revision was given a higher minor version (which seems a bit weird to me now!): v3.5 Release 5 and was the first to be recognized as an equal to the SuDoKu Solver and put online:

AcBook v3.5

As seen above, a cosmetic blue Login bar was added and 8 buttons were reduced to 7 and their positions rearranged. The missing ‘LOAD’ button was moved to the File menu and its accelerator ‘Ctrl+L’ took the place of clicking the button! After this, I got MATLAB v7.9 and added a toolbar containing icons for ‘Load’, ‘Close’, ‘Open’, ‘Save’ & ‘Exit’ which marked release 6. Obviously, the number of buttons in the buttons’ panel was now reduced to 5 with (Save) & (Exit) moved to the toolbar.

Another major change occurred in the next version v3.9 R7 when the Balance Sheet dialog was removed along with the ‘View Balance’ item from the ‘Tools’ menu. A table titled ‘Balance Summary’ was added at the bottom of the GUI which showed the ‘balance sheet’ all the time. One more item was added to the Category menu: Set Currency. In v3.9 R8, one more item was added to the Category menu: Reorder and one more to Tools: Combine Files. Speech functionality (as in the messages written in the Display box are spoken) was added in v3.9 R9.

AcBook v3.9

It now included java-based executable .jar file instead of an executable .exe file! This seemed like a good idea back then as the black DOS window didn’t pop-up before the GUI did which confused all the ‘users’! But then I realized that I had to bundle MATLAB’s javabuilder.jar file (~550KB) also in the installer. This led me to a lot of soul (& net)-searching and I found a way to suppress the DOS window and go back to the lovable .exe files in the latest

v4.2; Release 10 (2011-∞) This is a major revision (which makes me think why is its minor version only +3 compared to the last one!) and it has a proper ‘multi-user’ login functionality:

Login Screen

The passwords are stored after encryption so you can be rest assured that your password is that much safer to being cracked but your Data can be tinkered via MATLAB, though! Having this login functionality spawns a whole host of other features: Change Password [Tools], (Dis)Associate Users [Tools], Set as Default [File] & Lock [File]. In this new version, every file you create or save is associated with you exclusively. To allow others to access your files, you must select their usernames to be associated with your files via ‘(Dis)Associate Users’ option in the Tools menu. ‘Set as Default’ gives you an option to set your most frequently used file to be accessible with 1-click via ‘Load’ button (earlier it was hard-coded to be data.mat!). ‘Lock’ just locks AcBook screen analogous to Windows Lock!

File menu gets one more addition: Export, which exports currently loaded file to an MS Excel (.xls) file! Category menu also gets one more (hesitant) addition: Transfer, which basically transfers a specific amount between two categories. Most unusual additions are in the Help menu: Update & Uninstall which do whatever they are supposed to do!

Since the clicks on ‘Balance Summary’ table control the data shown in the Display box, the ‘SHOW’ button from the buttons’ panel was removed. The ‘ADD’ button was made larger to cover its absence, reducing the total number of buttons to 4 (half of what we started with in v2.0!). Also, only 50 Data items are shown in the Display box at a time now! The toolbar also gets a new look & buttons, which you can see in a snapshot of the program at work below:

AcBook v4.2

I’d like to thank Sn (younger brother of S from a couple of posts back) for giving me some ideas & feedback which led to

ACBOOK 4.2.o Release 10