Archive

Archive for the ‘Code’ Category

Jim Rowe Psychic Hotline

October 13th, 2009 No comments

I was digging through my email today, and I stumbled across this “gem” from last year. I thought I had lost it in the shuffle so imagine my delight when I saw it in my inbox.

On with it.

I was playing with ways to implement a sub system to the counter-intuitive CRM I was using at the time, and one of the contenders was a bespoke desktop quasi-app with a SQLite backend. The primary design goal was to be able to flag & organise bits of information in the datastream. Due to the technical limitations that were imposed on us by corporate IT, we could not run a server, so any app had to be small and relatively self contained.

Bit of background on the process I was using.

I was the interface between the app, and the datastream/database was a .pst with 30,000 emails, with 100′s being added daily. I would first sort emails based on an algorithm I devised, then (due to limitations imposed by the architecture) I would take the result and (starting with the data that was classified as “very significant”) manually process it.

If it was indeed a significant peice of information, it was flagged as such, and I then created a record/thread in my app. I assigned it an id, imported the necessary meta data, whom the information came from, pre-defined keywords, etc.. and moved onto the next bit of data.

Which brings me to: Jim Rowe Psychic Hotline

menu

Looks pretty ridiculous, right? (and yes, I have a terrible tendency to fill my alphas with obscenities.)

Look’s ridiculous, and ghetto, but it worked (for a while). The main problem was that, in the same way we couldn’t run a server and out network was locked down, bringing external applications into the office was something that could get you fired (and from an IT standpoint, it makes sense. Don’t misinterpret this post as a kvetch against strong-arm IT – but more a how radical limitations promote creativity). That mostly ruled out coding things from home, so you work with the standard XP tools.

In our case: Batch.

Yes, the Jim Rowe Psychic Hotline is just a dozen different batch files acting as the front-end: writing, parsing, and manipulating a SQlite database.

A lot of our remote support work was done with batch files so using them in bizarre ways was natural. I also learned a few more batch tricks in the process.

It was a pain trying to do with out a VCS. I wrote a little batch file that would .cab everything up at the end of the day, then I would email myself that cab, and that was my snapshot. The project was made extra complicated by how I had to pipe data around. Into files, out of files, delimited from files, piped to batches writing to files getting piped to other batches writing files. I found that batch was not designed to easily work with user input & sql statements.

But like I said above – it met my needs. Sure it was spartan as hell and looked ghetto but I was able to track & recall important data. It made me more efficient, more organized, and overall increased my knowledge by condensing all of the valuable information being given to use from the SMEs.

The biggest pitfall was the interface. The amount of time I would have had to put into coding in batch (see note below) would have been better spent somewhere else. After the first few versions, I started to get into diminished returns. I was so busy at home that I couldn’t work on it there & my work had let some people go. I lost the extra time I had gained through added efficiency (I was using this time to work on “JRPH”).

Around this time I happened on a solution by the brilliant guys at Osmosoft TiddlyWiki , which I will talk about later (and at length). TiddlyWiki was the perfect tool @ the perfect time, and alas The Jim Rowe Psychic Hotline was abandoned.

While I don’t think its appropriate to compare JRPH aginst TW (TiddlyWiki is genius. Bottom line. JRPH is shit. I’m just contrasting the two to point out a few aspects of JRPH) I’m going to do it anyways.

The key aspects that were lacking in the LRPH, compared to TW were:

Interface - JRPH was a beast to use, and required intimate knowledge of the underlying framework. TW’s interface is so intuitive its ridiculous.

Expanded Search Functions - JRPH used minimal SQL, leaving the user to craft strings on the fly – TW’s search worked as expected, in addition to a having a strong keyword system.

Organization & Flexability – JRPH lacked TW’s radical ad-hoc flexibility. JRPH was a strict database, not a wiki.

Clutter - TW could run in an active desktop window – JRPH could not leading JRPH to ass to my overwhelming amount of open windows. Windows + D dropped to right to TW, no mater where you were, 1 keypress and you were right on the metal.

There were a few bright spots though. When you have a slow computer running way too many things and your trying to search through a giant TW – things would grind to a halt. JRPH was always brisk.

JRPH was ripe to convert into a dynamic web app based on its foundation – A ghetto MCV batch front end & a SQLite database. (note: I did actually import it into my home SQL server, and played around with php crud with it, as a proof-of-concept, and it worked fine). The idea was that I would use the desktop front end to start the tagging. When I was ready to expand I would convert the .pst into SQL (which I did, more on that later) and then it would be a matter of flushing out a few details and viola – ready for my team.

This actually got to be a bit of a problem when we maxed out TW. Fortunately the TW community is brilliant and beyond clever, and we were able to easily import our desktop-bound TW into ccTiddly with minimal headaches – all while retaining the things that make TW amazing.

Overall, while JRPH was a piece of shit it was an amazing learning experience. Desktop based front-ends to databases are alive and well in the business environment – and still fill a niche. It’s just that their not done with batch, and for good reason.

I don’t think we’ve seen the end of Jim Rowe or his Psychic Hotline.

(note: after this I made sure UnixUtils were on every Windows Computer I had. Dos lacks so many of the little apps I take for granted when using linux.)

(note: I realised about 7 months after I wrote the “JRPH” that I might have been able to use WSH (providing it wasn’t disabled as part of my GPO) and had alot more power/flexibility)

readme
(above shitty picture is of Jim, drunk, wearing a silly crown)

A footnote on Jim Rowe.

Jim was the shit. Out of all the big-time guys & SMEs we delt with, Jim was by far the most talented & congenial. He knew what he was doing, and had a sense of humor about it. I saved his quotes when I would come across them. In a culture where being proper and professional was without question, Jim injected life. Often reflecting humorously in his notes about how absurd everything really was, which was true, everything going on was absurd. Of everyone corporate, he was the one I wanted to have a beer with before our contract was finished.

Jim stopped me from becoming a BOFH by his example.

Categories: Code Tags: