<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Re-centralised &#187; Code</title>
	<atom:link href="http://levonkohoutek.com/category/code/feed/" rel="self" type="application/rss+xml" />
	<link>http://levonkohoutek.com</link>
	<description>The essential iterative Levon Kohoutek</description>
	<lastBuildDate>Fri, 23 Oct 2009 05:13:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Jim Rowe Psychic Hotline</title>
		<link>http://levonkohoutek.com/2009/10/jim-rowe-psychic-hotline/</link>
		<comments>http://levonkohoutek.com/2009/10/jim-rowe-psychic-hotline/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 05:14:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[stuff I do in my free time]]></category>

		<guid isPermaLink="false">http://levonkohoutek.com/?p=97</guid>
		<description><![CDATA[I was digging through my email today, and I stumbled across this &#8220;gem&#8221; 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 [...]]]></description>
			<content:encoded><![CDATA[<p>I was digging through my email today, and I stumbled across this &#8220;gem&#8221; from last year. I thought I had lost it in the shuffle so imagine my delight when I saw it in my inbox.</p>
<p>On with it.</p>
<p>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 &amp; 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.</p>
<p>Bit of background on the process I was using.</p>
<p>I was the interface between the app, and the datastream/database was a .pst with 30,000 emails, with 100&#8242;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 &#8220;very significant&#8221;) manually process it.</p>
<p>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.</p>
<p>Which brings me to: <strong>Jim Rowe Psychic Hotline</strong></p>
<p><img class="alignnone size-full wp-image-100" title="menu" src="http://levonkohoutek.com/wp-content/uploads/2009/10/menu.PNG" alt="menu" width="668" height="331" /></p>
<p>Looks pretty ridiculous, right? <em>(and yes, I have a terrible tendency to fill my alphas with obscenities.)</em></p>
<p>Look&#8217;s ridiculous, and ghetto, but it worked (for a while). The main problem was that, in the same way we couldn&#8217;t run a server and out network was locked down, bringing external applications into the office was something that could get you fired <em>(and from an IT standpoint, it makes sense. Don&#8217;t misinterpret this post as a kvetch against strong-arm IT &#8211; but more a how radical limitations promote creativity).</em> That mostly ruled out coding things from home, so you work with the standard XP tools.</p>
<p>In our case: Batch.</p>
<p>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.</p>
<p>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.</p>
<p>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 &amp; sql statements.</p>
<p>But like I said above &#8211; it met my needs. Sure it was spartan as hell and looked ghetto but I was able to track &amp; 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.</p>
<p>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&#8217;t work on it there &amp; 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 &#8220;JRPH&#8221;).</p>
<p>Around this time I happened on a solution by the brilliant guys at <a href="http://www.osmosoft.com/">Osmosoft </a> &#8211; <a href="http://www.tiddlywiki.com/">TiddlyWiki </a>, 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.</p>
<p>While I don&#8217;t think its appropriate to compare JRPH aginst TW <em>(TiddlyWiki is genius. Bottom line. JRPH is shit. I&#8217;m just contrasting the two to point out a few aspects of JRPH) </em> I&#8217;m going to do it anyways.</p>
<p>The key aspects that were lacking in the LRPH, compared to TW were:</p>
<p><strong>Interface </strong>- JRPH was a beast to use, and required intimate knowledge of the underlying framework. TW&#8217;s interface is so intuitive its ridiculous.</p>
<p><strong>Expanded Search Functions </strong>- JRPH used minimal SQL, leaving the user to craft strings on the fly &#8211; TW&#8217;s search worked as expected, in addition to a having a strong keyword system.</p>
<p><strong>Organization &amp; Flexability</strong> &#8211; JRPH lacked TW&#8217;s radical ad-hoc flexibility. JRPH was a strict database, not a wiki.</p>
<p><strong>Clutter </strong>- TW could run in an active desktop window &#8211; 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.</p>
<p>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 &#8211; things would grind to a halt. JRPH was always brisk.</p>
<p>JRPH was ripe to convert into a dynamic web app based on its foundation &#8211; A ghetto MCV batch front end &amp; a SQLite database. (<strong>note</strong>: 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 &#8211; ready for my team.</p>
<p>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 &#8211; all while retaining the things that make TW amazing.</p>
<p>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 &#8211; and still fill a niche. It&#8217;s just that their not done with batch, and for good reason.</p>
<p>I don&#8217;t think we&#8217;ve seen the end of Jim Rowe or his Psychic Hotline.</p>
<p>(<strong>note:</strong> after this I made sure <a href="http://unxutils.sourceforge.net/">UnixUtils </a>were on every Windows Computer I had. Dos lacks so many of the little apps I take for granted when using linux.)</p>
<p>(<strong>note:</strong> I realised about 7 months after I wrote the &#8220;JRPH&#8221; that I might have been able to use WSH (providing it wasn&#8217;t disabled as part of my GPO) and had alot more power/flexibility)</p>
<p><img class="alignnone size-full wp-image-106" title="readme" src="http://levonkohoutek.com/wp-content/uploads/2009/10/readme.PNG" alt="readme" width="652" height="991" /><br />
<em>(above shitty picture is of Jim, drunk, wearing a silly crown)</em></p>
<p><strong><em>A footnote on Jim Rowe.</em></strong></p>
<p>Jim was the shit. Out of all the big-time guys &amp; SMEs we delt with, Jim was by far the most talented &amp; 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 <strong><em>was</em></strong> absurd. Of everyone corporate, he was the one I wanted to have a beer with before our contract was finished.</p>
<p>Jim stopped me from becoming a BOFH by his example.</p>
]]></content:encoded>
			<wfw:commentRss>http://levonkohoutek.com/2009/10/jim-rowe-psychic-hotline/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
