Wednesday, April 18, 2012

Web Design Meetup Reminder Button

Google has some convenient tools. One that would be very convenient for emailing or posting on blogs is this little form for composing Google Calendar event reminder buttons.
Google calendar reminder for Raleigh Durham Web Design Meetup on May 8th, 6:30pm to 9pm, at Panera Bread at Brier Creek
The button above is an example generated for the Raleigh Durham Web Design Group Meetup's May 8th event, where we will be discussing the use of the change management tool GIT.

Monday, April 16, 2012

Ever have one of those days?

I'm supposed to be doing my books today, running reports and paying bills -- that sort of thing. So it wasn't a great start.

Then I found out that, after paying Intuit about $300 in February for the privilege of using their software to do my own payroll myself, I will not be able to pay myself because QuickBooks Pro 2009 is falling off the support list. My guess is that it still works, but Intuit puts in checks into their service that blocks access to the service if the version is out of date. So I've got fully functioning software that I can't use.

Now, I hear a new QuickBooks for Mac 2012 is out, and it doesn't even provide a payroll feature. Instead, you're expected to sign up for anywhere from $300 to $600 in annual fees for a Web app.   Seriously, $25 is a pretty hefty fee for a SOHO freelancer to pay for the privilege of a writing out a single monthly paycheck for yourself.

Yak #1

So I update QuickBooks, finding an OK upgrade price on Amazon. Download, go run an errand, try to install...



Yak shaving time... or bang-head-on-keyboard time. [Regarding the image above: I just  noticed on the OSX Lion file dialogs that the search box doesn't work. The indexing service must have crapped out. Something else to fix...]

I'm running VirtualBox and the upgrade downloader says there isn't space on the device.

Yak #2

So how does one increase the size of the virtual disk in VirtualBox?  
  1. Shut down and clone the virtual machine into MyNewClone (or whatever). This will ensure that if something goes wrong, you haven't lost your original virtual machine or its snapshots.
  2. cd ~/VirtualBox\ VMs/MyNewClone     # or whatever you called it
  3. Do an ls -l to see the vdi file;
  4. VBoxManage modifyhd MyNewClone-disk1.vdi --resize 15360   # where new size is 15GB 
  5. Start your MyNewClone VirtualBox image.  
You get a virtual disk with one partition, followed by empty space. And it is time to bounce on to a new Yak... XP (yes, I'm still running XP; it is more stable and smaller than its successors), ahem, XP has no real built-in disk partition management that can resize partitions (diskpart won't work). Loading a live GNUParted CD and booting it with the vdi in VirtualBox may be an option but it seems strange and unproductive.

So what to do? Windows Freeware: Easeus offers a home version of its partition management tools, minitool partition wizard does as well and both support disk resizing. A quick download and a several minutes later and the disk partitions are merged into one bigger partition. That's Yak #2 shaved, one to go....

Back to Yak 1

Time to restart the QuickBooks Pro 2012 upgrade. Fortunately, I keep my accounting files checked into a Git repo on a disk outside the VM, so I've always got backups; but that reminds me I should make sure I've committed... done. Go find the upgrade tool in a folder on my VM XP desktop, and restart it... looks like it could be a long process... time for another break. Hopefully I'll have that Yak shaved and can move on to shave a few Yaks for the government, and then can get on to the real task at hand which is to write a paycheck. 

On a related note, I looked on opensourcerails.com and elsewhere through Google, but not surprisingly found no Rails based accounting software at all. There may be more out there in PHP land, but when I looked what I saw in PHP was a mess.  From reading forums and my own experience, this is a pain point for SOHOs and freelancers. Sure, we're cheap, but considering the expense and complexity of Intuit's service-bound fee-ware, there seems to be room someone to eat into QuickBooks sales with a clean one- or two-person payroll tool with support for a 1099 or two. 

[edit: OK, that was pretty cool. Apparently I bumped my power cord a few hours ago and detached the magsafe adapter. VirtualBox automatically saved the VM when I stepped away due to the low power warning. ]

Friday, April 6, 2012

Immature Cowboys vs Ranch Hands

Years ago a colleague who immigrated from eastern Europe as a youth, expressed her frustrations about working with teammates, who she referred to as "cowboy programmers".

I thought it might be that she didn'tt mesh with the tightly knit social fabric of the team. And that may be true to some extent, but it did not mitigate her observations.

A week ago, another colleague outlined similar difficulties coping with his developers. In a typical situation, one of the developers spent a large chunk of budget making re-implementing an unnecessary object-database mapping component in a Grails project, modelled after a Ruby component. Then the developer left, leaving the team with a piece of unfinished work that was unsupportable, fragile, and locked the system into unnecessary dependencies on antiquated libraries.

As for myself, I appreciate a good John Wayne style epic, knowing that the real life phenomena is much dirtier and more mundane at the same time.    I dislike the metaphoric reference for reasons that I shall for now only briefly summarize, but perhaps a better model is the ranch hand.

The real nature of a cowboy is to work together as a team, utilizing the same tools and technologies anyone else has, to manage the same herd as everyone else.  Yes, the cowboy personifies individualism, but that is much more about capability than direction. Real cowboys, that is, ranch hands, don't flaunt instructions, don't abandon the herd to ride off on their own whims, and never, ever, ever, leave rope hitches half-tied.

I interviewed at an institution's development shop recently. As far as I could tell, the prospective employer's development practices were ambiguous and very reactive rather than well-defined and proactive. For instance, they did not test using any sort of automation, hadn't adopted any higher level frameworks or tools, or indeed could not communicate anything resembling a defined process. They also self-admittedly spent a good deal of time in fire-fighting mode.  So their code was highly specialized, very one-off special-case stuff, and their processes non-existent.  Consequently they don't mature as developers or as an organization.  That's the real cost of substituting immature cowboys for ranch hands.

I'm fairly certain that the above describes the preponderance of development shops. It is a problem for our industry, one which reflects very poorly upon the status of programming as a profession.