Writing
Articles
Essays on thinking clearly, working for yourself, and doing real work while AI rewrites the rules. Two decades of them.

Setting up an Android Build Server – Part 2: Installing Hudson
Part 2 of setting up an Android build server: installing Hudson CI as a Debian package on headless Ubuntu, plus the daemon dependency fix.
2010.10.22Read →Setting up an Android Build Server – Part 1: The Server
Part 1 of building an Android CI server on headless Ubuntu 10.04: getting add-apt-repository working and installing Java before Hudson.
2010.10.21Read →Presentation Materials from TCCC9
Slides from my Advanced Android talk at Twin Cities Code Camp 9 are now posted on SlideShare for anyone who attended or missed it.
2010.10.14Read →Minnesotas Developers Conference Materials
Download the full working Android demo app I ran out of time to finish building live during my Minnesota Developers Conference presentation.
2010.10.05Read →The WP7 Fragmentation Challenge
Comparing how Android, iPhone, and WP7 handle OS fragmentation across carriers, and why Microsoft's carrier-approval model will not stay fast.
2010.09.07Read →HDC10: Hands-on-Lab – Project Solutions
Source code and module-by-module GitHub branches for the HDC10 Android hands-on lab, including extra menus, dialogs, and custom styling.
2010.09.06Read →Heartland Developers Conference – Next Week
Heading to Heartland Developers Conference to teach a 4-hour Android development lab and give a talk on building and shipping an app live.
2010.09.02Read →
MacBook Pro – Windows 7 Boot to VHD
How to run Windows 7 from a bootable VHD on a Boot Camp MacBook Pro, including the bcdedit fix for duplicate boot loader name entries.
2010.08.17Read →ModelBinding ASP.NET MVC and Multiple Field Validation
In ASP.NET MVC, add two ModelState errors -- one with an empty message -- to highlight both fields while showing only one validation message.
2010.08.17Read →Android Library Project Reference Not Showing
Eclipse wouldn't recognize my Android Library project reference. The fix: spaces and periods in project names break it. Rename and restart.
2010.08.13Read →HowTo: Android – Full and Lite Versions
How to share one codebase between full and lite Android app versions using project libraries instead of duplicating projects or repackaging.
2010.08.05Read →Android For Dummies & TekPub
My Android book and the Introduction to Android TekPub video series aren't competing, they cover different example apps, so pair them up.
2010.07.22Read →