May 19

With the miracles of modern technology, this morning at 35,000ft I was able to get a full install of Fedora Core 3 running on my new laptop under Virtual PC. This Inspiron 9300 I got is nothing short of amazing- i tricked it out w/ 2 GB of RAM earlier this week and w/ the 2.0 Pentium M chip, this thing just smokes. Hats off to Virtual PC too – this program is amazing, software that can emulate a machine to the point where the installed OS THINKS it’s running on a real box. I got to thinking about the possibilities of virtual pc’s running other virtual pc’s but it became a bit too “malkovitch malkovitch” in trying to grasp the existential implications of this type of virtual recursion so I let it go and screw around with linux instead.

The Fedora install is part of a larger goal I have right now of getting Subversion source control running first locally on my laptop and then on my buddy’s linux box. I will say that getting Fedora on VPC is not without its headaches- first you gotta get the ISO’s which are a full 2.3GB in all. I found this torrent tracker hosted at Duke University and was able to use BitTorrent to get about 250Kbps on my cox@home connection. Once you have the ISO’s, you can walk through the wizard for creating a new virtual machine in VPC. You then use the CD > Capture ISO option to fool the virtual machine into thinking it’s got the CD-ROM in its drive. So far so good- the rest of the Fedora install is very clean and they have a nice GUI wizard interface to customize it for your needs. There is one major hack however you must apply to the kernal in order to get it to recognize your monitor. The first time I went through it, it installed flawlessly but when I rebooted it threw an error saying “ID 2 Respawning too quickly – shutting down for five minutes.” After some serious digging in various forums I found this post that contains the necessary set of instructions (56 individual steps in all) to get it to work (and I can confirm that it does in fact work). The crux of the issue apparently stems from the OS’s inability to recognize the monitor of a virtual machine, you have to explicitly set this using some linux commands and installing a kernal modification. Once that was done, the intstall worked perfectly.

On another note, tomorrow is my brother’s wedding. I’m sitting here in my room at the Marriot in Monterrey watching seagulls out my window (which is an absolute novelty for us Arizonans) and trying to come up with a creative slideshow that will embarrass the hell out of him at the rehearsal dinner tomorrow night. I snapped this pic on my treo and stored it to the SD card:

What’s cool is my laptop has a built-in SD reader so transferring pics is simple- you pop in the card and it runs a quick sync tool and maintains a folder on your harddrive called PalmOne that has everything your card has. From my room I can see no less than twelve separate wireless networks on my laptop (about half of which are unencrypted) but apparently all have mac address filtering turned on or are just too weak a signal as packetloss is about 75%. I have this nifty program called PDAnet for my treo that turns it into a modem for my laptop. It gets decent speeds too (about comparable to a 56k modem) and I hear the Sprint network can do about twice that (I’m on Cingular). Anyways, I will definitely post my experience in getting Subversion to work as it seems like quite a process from their site. Looking forward to this weekend. In a span of three weeks it’s been Connor’s bachelor party, followed by my 30th b-day, followed by his wedding – June is shaping up to be a month of detox for sure!

May 05

Here’s a simple trick for any ColdFusion developers working on windows and running a development server on their machine to make your system run faster when you’re not developing.

If you are like me then you are running a webserver, an app server and a database on your laptop while you’re developing from an IDE. But this is only when you’re developing- at least 70% of the time you boot up your system, you’re not doing development work at all. The resources consumed by your app server, your web server, your database server and all the pre-requisite services on my machine for instance take up about 70MB of RAM. Since I currently only have 512MB to work with, that’s a significant chunk of my machine’s memory resources that 70% of the time is allocated to services that I’m not even using, making whatever else I’m doing (3d modeling, multimedia, browsing) 15% slower than it should be! Turn the developer-specific services to “manual” by default in your services control panel and then use these two simple batch scripts to start and stop all development-related services when you need to put on your developer hat:

<!— WebStart.bat —>
net start “World Wide Web Publishing Service”
net start “Simple Mail Transport Protocol (SMTP)”
net start “FTP Publishing Service”
net start “IIS Admin Service”
net start “ColdFusion MX Application Server”
net start “ColdFusion MX ODBC Agent”
net start “ColdFusion MX ODBC Server”
net start “MySQL”
<!— WebStop.bat —>
net stop “World Wide Web Publishing Service”
net stop “Simple Mail Transport Protocol (SMTP)”
net stop “FTP Publishing Service”
net stop “IIS Admin Service”
net stop “ColdFusion MX Application Server”
net stop “ColdFusion MX ODBC Agent”
net stop “ColdFusion MX ODBC Server”
net stop “MySQL”

And you can easily customize the scripts to add other services, just open up your services panel and get the name from there.
The ideal setup (and I’m moving to this method) is to add a crapload of memory and run something like virtual PC and have an entire environment that mimics your production server and do your development there. That way you can create a “throw-away” space to work with, break it all you want and then just copy the single file that contains the environment to clone it and start again. For the resource-thrifty developer on a budget though, this trick can greatly improve your system performance when you’re not developing.

On a completely unrelated note- big shoutout to Neil and Sara for their recently-released Technolawyer Blog. It’s actually more of a track-back since they were kind enough to publish my Sentinel Article that didn’t make Law Office Computing’s magazine. If you’re in the legal technology consulting industry, then you’re familiar with Technolawyer. It’s a top-notch newsletter aggregating peer-reviewed posts by experts on topics of technology for lawyers. .

Apr 24

There was a recent discussion on our CF User Group list that regarding a general purpose form generation tool that could store form definitions in XML and be used to abstract the form logic and circumvent the tedious process of writing forms. I for one HATE writing forms- it’s just one step above cleaning the bathroom on my list of “mindless, repetitive yet necessary annoyances.” So basically I had this same idea a couple years ago to distill the logic of forms down to the critical portions that change from instance to instance and then write a very simple message format and engine for storing form definitions in XML and then rendering them to a browser. I called this project Instaform and from the recent renewed interest in this technique on the AZCFUG list, I have dug up the code and made it freely available here.

A couple things:
Just for background, the birth of this concept for me came after I had played around with a tool that was used to develop a Macromedia developer survey I had taken. The tool InfoPoll.com’s windows client for creating surveys that could be hosted on their site. At the time I was sick of writing forms and facing the need to make a ton of forms for various projects I had while working for Act.com. I was also reading a book on design patterns. that gave me this whole idea for “encapsulating the variation” in systems. When I used the Infopoll client, it made me realize that form elements are really just different variations of the same class and that surveys are composed of questions and common form object blocks which consist of these elements. Adding new elements was just a matter of writing the necessary “handlers” for displaying them. The result was some tinkering that lead to Instaform. I have since seen a better implementation of the same idea called Facile Forms which is really worth checking out if you’re serious about this stuff. Facile Forms is an add-on component to the php-based Mambo framework (i know i know, not cf…) and it achieves the same thing as InstaForm plus some added advantages like:
-a nice GUI for administration
-extensible validation scripts
-automatic handling of the database logic for storing responses
-a slick mechanism for sharing and deploying forms via XML
-positioning information to place the form elements where you want
-support for multi-step “wizard” forms

Feel free to try out InstaForm – if it gives you an idea you can use, great. I made this same disclaimer on the azcfug list:
1. it was pre-cfmx when it was written and therefore did not make use of cfc’s and the cfxml tags since they did not yet exist. Instead it relied upon a tag from SiteObjects called “soxml” that was a wrapper for the MSXML com object that parses XML.
2. I haven’t actually tested it since 2002 so the code may need tweaking to work
3. I don’t see what harm could come from playing with it, but I suppose I need to make the standard “use at your own risk” disclaimer and I’m not responsible if something breaks.
What would be really cool is if someone would port the Facile Forms component to ColdFusion and sell it as a mini-app or customtag. Anything to eliminate the tedium of forms is money well-spent.

Tagged with:
Apr 12

Here’s a random smattering of cool tools I’ve recently run across. In no particular order…

del.icio.us is a social bookmarking tool that let’s people collectively share their bookmarks. It’s neat because it color codes by popularity and allows for categorization of the links through tagging so you can scroll through and discover the gems that everyone else knew about by sheer popularity of the link. I was using it today and it helped me discover…

Craig’s List meets Google Maps – someone built an interface to craig’s list postings by incorporating the google maps API. By grafting two great services together, you get a scatterplot of the locations of housing listings in an easy-to-navigate format. beautiful.

ZoomInfo – I’m not exactly sure how this service does it’s thing but it works like a search engine that will compile a dossier on anyone realtime by seemingly stitching together various search results and company names. It was surpisingly accurate with my bio though I’m not sure how it melds together the correct info. Seems like it could be useful for getting a background on a key higher-up before an important first-meeting.

DropLoad – that’s what I almost did when I saw this simple yet ingenious little app. It allows you to move large files that are too big for email to friends using a simple one step process of uploading. It generates a notification with instructions for the person on how to pickup their files and will notify you when they’ve downloaded them. Free service, simple and useful instead of doing the ftp dance for moving big files that aren’t super-sensitive.

Billboard Tour Finder – you can search a database of tours to see what bands are coming to town and where your favorite bands are currently touring. It’s not perfect and doesn’t have every band but it’s pretty neat and has quite a few. I can’t figure out why nobody has created an app that will let you register your favorite groups and notify you via email when they come to town. Does such a thing exist?

IT Conversations – I’ve listened to about 30 various interviews and speeches now and they’re great. It’s for us proletariat class folks that can’t afford to go to all the snazzy IT conferences. You can still hear the keynotes and audience questions and best of all, do it on your own schedule and be able to replay the talks that are chocked full of good info. It has great organization of content and has a personal queueing system so you can tag the talks that seem interesting and have it remember what you’ve already listened to. It’s not just IT-centric programming either, there are interesting biogenetic and psychology topics- the kind of stuff that Wired magazine covers. Definitely makes my 22mi commute a little more tolerable in the morning.

iPodder – despite its name this app is not directly related to the iPod but it facilitates podcasting which is like RSS for MP3’s. Basically a content provider can syndicate their talkshow or other audio content by exposing a special RSS feed enabled with enclosures. iPodder is a client you install that will poll these sites for new audio content and download the MP3’s when your not looking. Combine it with the sites like the one above and you can have ala carte radio programming you design!

RSSauction – you can save a set of search parameters for an item you’re looking for on ebay and have it deliver results to you via RSS. This is a beautiful use of this technology and it seems strange to me that ebay does not offer this feature itself. I’m using it now to hunt down my next laptop and I can see this being a very useful way to keep track of numerous searches for gear on ebay.

These are my picks for the most useful tools I’ve run across lately. The consistent theme they all share is simplicity, focused scope and elegance in design. If you have other gems worth sharing, post them here.

Apr 03

Here are two unrelated yet equally-cool freeware tools I recently discovered:

Xenu Link Sleuth is a small windows app that will spider your site and report any broken links or graphics it finds. Back in the day I used an online tool for this that would do the same thing called websitegarage.com. It was later acquired by Microsoft bCentral and now appears to be out of business. This little app is great at what it does though and it can even connect to your site via ftp and report orphaned files based on what it was able to spider. I just used it to check my company’s corporate site and it found a few links that were bad as well as one directory that had a permissions problem.

Sequoia View is freeware windows app developed by the CS department of some university in the Netherlands. I needed to do a little spring cleaning on my laptop to free up some hard drive space. When I used to have a Mac there was actually a freeware app called “Spring Cleaning” that was great for giving you a visual overview of how your hard drive space was consumed. It would walk the contents of your drive recursively and produce a bar chart that filled the screen where the left-most column represented the space consumed by your top-level directories, then to the right it drilled further and further until you had as many columns as you had subdirectories on your computer. This worked but produced a report that was VERY difficult to interpret with thin slivers representing each directory. Sequoia View has an ingenious interface that uses what are called “squarified treemaps” or cusion maps (because their shading makes it look like a quilt of cusions knitted together) to represent the contents of your hard drive. It gives a complete visual snapshot of how space is allocated color-coding on filetype and allowing you to see exactly where the problem files are drill down to the directories right from the snapshot view to get rid of them. I found out I had an 800MB pagefile and an 800MB hiberfil.sys which both could be deleted plus a bunch of temp directories that were out of control. Two great little apps I wanted to pass along – nice!

Mar 26

I’ve had my Treo 650 for just under a month now and I’m in love. My friend Benny convinced me to get one and he was right – this is the first PDA convergence device they finally got right. I was reading a forum post on TreoCentral.com and this guy was referring to it as “my precious.” I can totally see Golem salivating over this phone if it were in LOTR – “one phone to rule them all.”

Every day since I’ve had it, I’ve discovered a new feature I really like. I would love to see someone calculate the person-hours of time that went into designing this particular phone, there is so much they aced on the interface. I know some people like the convenience of receiving email on their phone – I find it decidedly inconvenient since I’m already too “wired in” as it is and being out of the office is the only escape from super-connectedness. I remember having had a BlackBerry back in the day and how bad it sucked having to receive and respond to email wherever you are – I mean you wouldn’t want the postman to follow you around and tap you on the shoulder everytime a piece of snail mail arrived, much less be accountable for responding immediately to that communication… no plausible deniability of “i didn’t get that memo” when every email comes right to your phone. So basically I don’t use the email features of the Treo. But Cingular’s MMS system has the capability to send email through their gateway so it’s an option if you need to.

All in all I dig my setup right now: I use Yahoo for all personal mail (can’t beat their spam blocking and I’m hooked on their personal organizer features and the public calendar). I use their free Intellisync software to hotsync all my contacts, notes, tasks and dates with my Treo. I use Gmail for all listservs I’m on (roughly 10 I think) and I have the free Google Desktop Search running in the background at all times to index every piece of content that comes in or out of my laptop. The Gmail does a great job of indexing my lists and for every other piece of communication, GDS is like a “helmet cam” that records everything I read or write 24/7. With their recent release of a full 1.0 product, GDS now supports PDF’s, Firefox and Thunderbird as well as ID3 tags on MP3’s and other file formats- plus there’s a third-party plugin to index Trillian chat sessions so all my IM’s (yahoo, MSN, AIM and ICQ) are indexed as well. Powerpoint, Excel and Word docs are all supported which is key in the legal tech industry when you have to hunt down a specific detail someone’s asking for. With so many disparate communication channels and a barrage of info we deal with everyday, I was having the problem of “where did I read that… was it an RSS feed, on a web site, in an email – oh no someone IM’d me that URL…” It was getting to be a scavenger hunt through web history and emails every time I needed to track down a simple reference. Now I have one place to search and I know that GDS will return accurate results immediately (it even makes a little screenshot thumbnail for each result for visually-oriented people like myself).

Other tid-bits for the Treo that probably demand entries unto themselves:

  • SoundRec – is a free app that turns your Treo into a dictaphone. very cool
  • SD Memory Card – I got a $50 512MB expansion card from Fry’s and I now have almost a CD’s-worth of storage on my treo. That translates to either 7000 photos at 640x480px or 3hrs of video at 320x200px.
  • Chess Everywhere – this ingenious program allows you to play chess with a friend over your phone. I don’t know what protocol it uses (SMS maybe?) but it let’s you play against a buddy or find a random human opponent.
  • PdaNet – exactly what I was looking for – turns your treo into a modem for your computer. It works with a USB cable or Bluetooth if you have it. Simple to use and it does exactly what it claims. Genius.
  • AvantGo – is nothing new but it’s good at what it does. I find the web browsing on the Treo to be slow enough where it’s only worth it if you need it in a bind but not for leisure reading. AvantGo however caches the content you specify to your device when you hotsync. The coolest thing is their “autochannel” bookmarklet that you can use to grab a copy of a web page you’re on and send it to your phone.

It pretty much is the ideal customized setup for what I want. I can’t imagine improving anything on this phone at this point except for adding support for 802.11 wifi but then again, I just snagged this nifty gadget from PCTEL – it’s a wifi detector that goes on your keychain and alerts you if it finds a hotspot. The trouble is I don’t know if my keychain can physically fit another gadget. My girlfriend always says “honey, you are such a dork” when I start talking about this stuff – I’ve always defended myself but occasionally I’ll have this moment of clarity when I’m emtying my pockets at the end of the day and think “wow, you know I guess you’re right.”

preload preload preload