Thursday, May 1, 2008

Required Reading

As I was IM-ing with a good friend and associate of mine yesterday, he asked if I could recommend a good book about XML.  After some probing, it turns out what he probably needed was more of a book on XSL(t).  That conversation inspired me to put together a list of recommended books.

The first is an XSLT book, which also covers the basics of XML.
XSLT Cookbook, Second Edition (Cookbooks (O'Reilly))

Of course the excellent Python book by Mark Lutz
Learning Python, 3rd Edition

The classic of classics regarding software development.  A MUST read.
The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition)




Wednesday, April 30, 2008

Shoving Data Around

I have a problem.  I have lots and lots of data.  Well, actually, I don't have THAT much data, but I have several virtual machines, and also lots of data.  In addition, I have NOT BACKED UP MY SYSTEM in almost six weeks.  Don't get me wrong, I have servers with backups, and the source tree is safe.  But my local development environment is in danger.

I also have an older laptop that used to be our build machine, and I would like to snap a VM from the physical drive so that I can continue to use it, without having to lug the actual  machine around.

Coincidence being what it is, I just happened to drive past a MicroCenter on my way to pick up a couple of dressers my wife bought on craigslist.  So on the way back, I stopped in and looked at the external drives.  I wanted a fast external drive, with a Firewire 800 interface.  I settled on a LaCie d2 Quadra 301110U 500 GB eSATA/FireWire800/FireWire400/USB 2.0 External Hard Drive  which I connected to my MacBook Pro.  I realize it is a desktop solution, but I do not need portability for my external drive at this point, performance is critical.

Since my MacBook Pro has a Firewire 800 connection, I opted for that connector.  I moved all my virtual machines off to the external disk, and as I expected, the performance of my VMs actually improved over using the internal HDD.  I suspect this is because I've added an additional spindle, which is used by the other OS.

Now on to ripping an image from the old laptop.  VMware makes a p2v tool (physical to virtual), but it only runs on Windows (!).  My plan is to fire up one of my WindowsXP laptops (probably my old HP P4) and install the p2v tool.  I picked up a Vantec Sata and Ide To Usb 2.0 Adapter , into which I'll plug the HDD from the old laptop.  Then I'll run the p2v on the P4, into which the USB2.0 interface will be attached.  This little piece of hardware is going to come in handy, I can tell.  I've also got an old desktop machine that a friend of mine wants a hard-drive image of.  I was planning on just plugging the old IDE drive into one of my linux servers and ripping the image, but now I can just connect it to this adapter and pull it onto my MacBook.

I will post results when I've finished.


Monday, April 21, 2008

More On The MacBook

Five weeks into the world of Apple.  My new MacBook Pro is the machine I'm using to compose this.  I must say, after six weeks of very hard use, I absolutely love this thing.  It is an awesome piece of hardware.  Fantastic implementation of an OS.  And VMware Fusion is a very solid implementation of virtualization.

If you are anything like me, the first thing you do on a new machine is start loading all your comfort apps, and customizing the way everything works.  A few weeks after I started using the MacBook, I realized that I had loaded VERY FEW additional applications.  

Here is a breakdown of the additional software I have loaded on the Mac.
  • VMware Fusion
  • Firefox
  • Microsoft Office
  • Skype
  • Chicken Of The VNC (VNC Client http://sourceforge.net/projects/cotvnc )
  • Editra (text editor  http://editra.org )
  • Scribus (desktop publishing http://www.scribus.net )

Allow me to explain a couple of these.
  • I could not find a VNC client on the base OS, which actually surprised me.  As much as I dislike the name of "Chicken Of The VNC", the tool works flawlessly.
  • I was surprised and somewhat perturbed that there was no good, colorizing text editor installed by default on MacOS.  I would have been happy with syntax-coloring vim.  After some searching, I decided to check out Editra, mostly because it is written in my favorite language: Python.  So far I am reasonably happy with it.
  • I added Scribus mostly because I wanted to experiment with it.  Very cool stuff.

As a long-time unix user and administrator, I was very happy with many of the tools included with the OS.  One such example: I was thrilled when I opened a shell and typed svn and it was there!

Saturday, March 15, 2008

Big Mac

I finally upgraded my laptop hardware.  After fighting against my aging single-core machine for months, I picked up a MacBook Pro.  For portability I got the 15.4" version, and opted for the stock 2GB RAM for starters.  At the Apple Store in the Mall Of America, they charge $400 to upgrade to 4GB.  I said "umm...maybe I'll do that myself."

( Caution ... rant approaching )
I initially visited Best Buy to purchase the MacBook, as I had recently gotten a "rewards points" card from there and thought this would be a good way to rack up some points.  I'd had some less than stellar experiences with Best Buy in the past; overpriced merchandise, pushy extended warranty sales, and general lack of a clue.  But this visit was dramatically worse.  I walked in to the Best Buy in Apple Valley, MN expecting to drop over $2000 on a new MacBook Pro.  I was on a schedule and wanted to just grab one, pay for it and leave.  After trying mostly in vain top get someone's attention, the first guy I spoke to kept trying to convince me that the 15.4" MacBook Pro on display was actually a 17".  We walked over to the 17" machines and he said something about those being wide screen so they "looked" bigger.  Unbelievable.  So I asked if they had any 15" machines and he said no.  Even though I was looking at one.  Anyway, there was somebody there who seemed to have a bit of a clue, but he was busy helping all the people who came in after me.  Without delay, I left.  I went to the Apple Store at the Mall of America and they were fantastic.  Ok, rant concluded.  Thanks for indulging me, I could go on for hours about how much I dislike Best Buy.  I really wish Fry's would open a store in Minnesota! 

Anyway, since this is my primary development machine, I wanted to make sure it was robust and would last me at least a little while.  I opted for the latest MacBook Pro with a 2.4GHz CPU.  Like I said, I will add more memory soon; if I need it.

I've loaded VMware Fusion, which appears to be incredibly well integrated into the MacOS environment.  I'll be setting up my full development environment(s) in the coming days, so I'm looking forward  to writing about my experience.  This is my first real experience with MacOS, so I'll chronicle my struggles, discoveries and successes here.  Mac people, please go easy on me.

Monday, January 14, 2008

Epitome of Simple

Often, a simple answer is the best answer in software engineering. Take for example the quandry of multiple city craigslist searching ( or multi-city search ). Craigslist, being the localized tool that it is, does not allow searching multiple cities, locales, or really even categories.

Many folks have tried to put together websites that perform multiple city searches. One of the best was developed by Steve Atwood of Coding Horror. Like most others, his was shut down by a friendly letter from Craigslist. Others have cobbled together odd-looking multi-frame solutions that seem no better than opening several tabs in Firefox.

Directly utilizing search engine indexes in a very straight-forward manner enables craigfind.com to legally search multiple cities, multiple categories, and even use regular expressions. Pretty much anything you would expect from a Google search is available.

This is an example of a very simple solution to a sticky problem, utilizing existing technology in, frankly, a rather non-innovative way. Amazing thing, this internet.

Thursday, January 10, 2008

The Research Part of R&D

Technically, my current title is Research and Development Manager, or R&D Manager. I'm sometimes even referred to as VP of R&D. However it seems like I do a whole lot more D than R. Perhaps my title should be more like D^10+R Manager.

There are so many technologies, libraries, and solutions out there that I would really like to dive into. Unfortunately, my time is very limited because of the heavy need for the "D" part of my job.

Here is a partial list of items I would like to research during 2008. I am shocked that two are from Yahoo.