Writing Notes & Practice

A long-running archive of engineering notes, technical tradeoffs, and leadership reflections.

Recent Reflections (2024-Present)

Current essays on leadership, mentorship, decision-making, and building through industry change.

Deep Technical Focus (2013-2016)

Hands-on posts centered on SQL, performance, JRuby/JVM concurrency, and implementation-level tradeoffs.

Community and Platform Transition (2009-2012)

Writing from the Alt.NET and user-group years: community facilitation, platform shifts, and steady skill-building.

  • 360 Learning at User Groups
  • How upgrading to Lion and performing a clean re-install of Xcode 4.3 made Homebrew cry and how to fix it.

    I had the brilliant idea to upgrade to OS X Lion and perform a clean re-install of Xcode 4.3. As with most brilliant ideas that involve upgr...

  • Moving off Google to Google.

    Google Apps excited the heck out of me from the day it was announced. The prospect of being able to manage my own domain on the world class ...

  • Re-getting back on the bike.

    It's been little under two years since I'd written the " Getting back on the bike " post a lot has changed for me. I've been working with Ob...

  • The Lost Episode

    Back in August we sat down to chat with Rob Reynolds and Dru Sellers about the Nu project. At the time, I hadn't even edited the interview with Brian Hogan yet. So in a death spira

  • Interview with Jeff Hardy

    Tonight we're going to sit down to chat with Jeff Hardy, an IronPython MVP and apparently a daschund in a hotdog costume for all the pictures I could find of him on the interwebs.

  • Episode 3: Interview with Brian Hogan

    IronLanguages-2010-08-05.mp3 Click to unmute Download all save files 100% It looks like hardware acceleration is disabled. While Ruffle may work, it could be very slow. You can fin

  • Upcoming Iron Languages Podcast Episodes

    We recorded two episodes of The Iron Languages Podcast: 'Mentoring, Rumbling, Bridging with Rails, Ruby, JavaScript & HTML' with Brian Hogan and 'That ''nu'' Thing' with Dru Sellers and Rob Reynolds.

  • Episode 2 – Chat with Shay “IronShay” Friedman

    You can listen to this and all the episodes at the official home of the IronLanguages.net podcast. Will and Mike chat with Shay “IronShay” Friedman, an IronRuby

  • July Meeting – Node.js with Heroku to flavor
  • Next Show: DLR, IronRuby and IronShay

    We're going to be interviewing Shay Friedman, aka @ironshay. Shay is the author of IronRuby Unleashed an IronRuby MVP and blogs at http://blogs.microsoft.co.il/

  • Minor Updates: iTunes and IronLanguages.net

    Some minor housekeeping updates... We have a new domain for our site... http://ironlanguages.net Although the relatively new, but deprecated url of http://ironlanguages.posterous.c

  • Episode I: We Have Lift-off

    IronLanguages-2010.06.16.m4a Click to unmute Download all save files 100% It looks like hardware acceleration is disabled. While Ruffle may work, it could be very slow. You can fin

  • RVM (Ruby Version Manager) is Neat.

    If you are working on Ruby then you are either probably using the default Ruby that came with your Mac or installed via apt-get or manually installed a version

  • Getting back on the bike, or horse, whichever metaphor you prefer.

    Hi. Been a while since I’ve last blogged. Things have changed a bit for me as well, my personal life was in a bit of turmoil for the past few months that I won’

  • Chicago Code Camp 2

    Hey, live in or near Chicago? Are you a software developer? Do you like software? Do you just like going to places where other people are? Then you will LOVE th

  • START making DOS follow your CMD

    I’ll be the first to say, I have *major* terminal envy working with so many Linux and Mac developers. Not just the shell, but pretty much everything about the c

  • Mixed Emotions

    Sitting on the floor of our kitchen. Eating my wife’s “Hippy cakes.” Daughter bopping around banging kitchen utensils as classical piano music also plays in the

  • Henryka Zalewski — 1952-08-10 to 2010-02-06

    Henryka Zalewski Of Carpentersville Visitation for Henryka Zalewski (nee Tekien) will be held Tuesday, Feb. 9, 2010 from 3-9pm at Michaels Funeral Home, 800 S.

  • Tags vs Categories in WordPress

    I’ve not been categorizing my last dozen or so posts. I don’t get what the difference between tagging and categorizing is supposed to be anyway. Maybe if I felt a little bit more r

  • February Challenge: Very Improved Developer

    Okay, here’s my next personal challenge. Learn Vim. Period. I’m taking away all my editors, save Visual Studio. I need Visual Studio to pay the bills (for now). So bye-bye TextPad,

  • Biting Off (Almost) More Than You Can Chew.

    37 posts in 31 days! I’m finally at the end of my month long challenge to blog everyday. I had lofty goals of writing insightful and info laden posts but given the aggresive schedu

  • McHenry Cloud Developer’s Group February Meeting

    February 8th, 2010. The McHenry Cloud Developer’s Group will be hosting it’s 3rd meeting. The night’s topic will be “Hello, World.” on the Microsoft Azure Platform. Presented by no

  • What comes after Alt.NET?

    Between contracting with Obtiva and working at a client site where I and my co-developer are the only .NET developers on the site I’ve been focusing on learning tools and languages

  • Presented “Building .NET w/Ruby” at LCNUG

    Had a great time presenting “Building .NET w/Ruby” at the Lake County .NET User Group in Grayslake, IL this evening. Slides: Builds .NET with Ruby The audience was relatively new t

  • Pair Programming

    After over a year of working solo it’s great to be working in a team again. And we’ve been aggresively pair programming for two weeks now and I have to say that it has been extreme

  • IronRuby at Obtiva’s Geekfest

    I got a chance to present IronRuby to a group of some of the most hardcore Ruby fanatics in Chicago today. And I’ve survived to tell the tale. Not too much to say other than my .NE

  • MVC Song

    42.241134 -88.316197 Filed under: Uncategorized , fun, learning, mvc, song

  • Quantity Over Quality.

    Last night I had a severe case of writer’s block when I sat down to write my post. I already wrote my easy posts and didn’t have time for researching a more advanced topic. Then my

  • Career and Family. Also Known As “This Here’s For Reals, Yo.”

    A little over two years ago I found out that my wife was pregnant. I of course did the logical thing and broke down in tears. Then I realized something, I need to take this stuff s

  • Why We Need Installers for IronRuby and IronPython

    Recently on Twitter (where else anymore?) at least one person commented that they don’t understand why Microsoft developers would need an installer for tools like IronRuby and Iron

  • Roundup of Cool IronRuby Stuff.

    This is the laziest blog post of the month. I’ve been completely distracted this afternoon playing around with IronRuby. Last night I got Ruby on Rails running on the latest releas

  • IronRuby: Tell Me. What Do You See Here?

    view source Click to unmute Download all save files 100% It looks like hardware acceleration is disabled. While Ruffle may work, it could be very slow. You can find out how to enab

  • Chicago Code Camp 2

    The planning has begun for the second annual Chicago Code Camp. To put it in software development terms, we’re still in the “early alpha pre-release” phase. As soon as we have conc

  • Playing with HttpModules, HttpResponse.Filters and Streams in .NET

    Previously, I created a little Html extension to help with skinning a website based on the subdomain. It is working out for me pretty well in my current project, but I wanted somet

  • What’s with All These Roles?

    I previously posted about some frustrations I’ve had when dealing with people in positions of authority who get too distracted from their intended responsibilities. Particularly th

  • January McHenry Cloud Developer’s Group Meeting.

    first, I’d like to point out an intentional wording of the group’s name “Developer’s”. The apostrophe means that this isn’t a group of developers but a group owned by developers. I

  • Coding Architects != Senior Developer

    I worked at a company with “coding architects” who were actually senior developers in disguise. It was so obvious that they were more interested in working on some little side proj

  • [UPDATED] StructureMap Question, Always Returning the Last Registry in the List
  • Building .NET with Ruby
  • Skinning your ASP.NET MVC Application Based On Your Sub-domain.
  • A Month of Blog

    If you are going to take on a difficult challenge declare your intentions publicly. So that way you at least you have the fear of shame to motivate you. Thirty to ninety day initia

  • McHenry Cloud Developer’s Group: First Meeting in Review

    Well, we’re finally underway! And a good start it is. We started the meeting off with a short introduction to the group and some ideas on what direction we could take the group. Af

  • Clean AOP using Post# Multicast Syntax.

    Post# is a powerful and relatively mature Aspect-Oriented Programming (AOP) framework for .NET. I love it and use it in every project that I have a need to implement crosscutting c

  • Is IT Culpable in the Decline of the United States?

    Think about the application you are working on right now. What does it do? I don’t mean whether you’re writing some fancy bit of technological wonder. I mean what does your applica

  • The Trouble with Titles

    Chief Principal Senior Enterprise Solutions Architect Manager Somewhere in the world there is someone with a title just like that. In my previous employer I ended up with the title

  • The Poor Developer’s Object DataStore: Iteration 000

    This is part zero of a multi-part series. Jump to The Poor Developer’s Object DataStore: Iteration 001 for the first code drop. What is an object datastore? For an object-oriented

  • String Formatting In JavaScript

    A follow-up on JavaScript string formatting patterns, including static and prototype-based implementations and community alternatives.

  • Iowa Code Camp
  • How Can Chicagoland Microsoft Developers Improve Their Community?
  • Terrible Icons in High Resolution Mode in RDP/MSTSC

    I’ve learned one thing from Twittering, and that’s just say whatever comes to mind. Hence I’ve started writing these little one-off posts. Yet another inane thing that I’ve come ac

  • Terminal Services Goes Wonky

    Okay, this was a pain in the tuckus. Not sure which service pack hosed me but I lost a couple hours trying to figure out why I wasn’t able to connect from my Virtual Server host in

  • Integrate Beyond Compare 3 Into Your TortoiseSVN Merge Process (or Any Other Client)

    Scroll down to the TortoiseSVN section and follow the instructions.

  • It’s like an Ice Pick in my Brain (disable the system beep on a VM)

    The horrible, horrible system beep is an artifact of an ancient time when computers were too much like R2-D2, communicating in a series of beeps and whistles only understood by ham

  • Set “Classic Search” as Default Search Engine Over Desktop Search in XP/2003

    This post is more for own benefit because whenever I setup a new system I have to go looking for this setting. If you have Windows Desktop Search installed but don’t like it being

  • Make Your Code Pretty On WordPress.com With SyntaxHighlighter.

    Yet another “note-to-self” post. I’m always forgetting and having to search for the documentation on how to pretty-print source code in posts. WordPress.com has integrated support

  • Using Twitter as a Simplified Message Distribution Platform (aka using Twitter how it was designed).

    In a nutshell, I can send short commands via DM to a Twitter account that is following me. On the servers I wish to control I have installed agents that monitor the Twitter account

  • Rockford .NET User Group Meeting Recap

    This was a fun one. The forum was a more traditional style where the audience listens and the speaker presents. Though Sergio’s laid back presentation style was a good fit and kept

  • Does My Android Dream of Electric Sheep?

    I bought a T-Mobile G1 Android phone either on or around the official launch date and thought it was going to be another gadget/toy that would be fun for awhile and then just be an

  • Rant on building strings in C#

    Okay, I’ve inherited a codebase with no shortage of embedded strings, but there is one thing driving me batty. string strSomething = "The Hungarian Notat" + "ion is bad enough.

  • Chicagoland Software Developer User Groups

    Chicago ALT.NET A group dedicated to the ALT.NET manifesto. I’ve been to a few meetings and they were always fun. The group organizer Sergio Pereira is very active in the Chicago .

  • ASP.NET MVC 1.0 Released!

    I’m probably the 100,000th person to blog this but, what the heck. http://blog.maartenballiauw.be/post/2009/03/18/ASPNET-MVC-10-has-been-released!.aspx Glorious day, now as soon as

  • SonicFileFinder should be in *every* visual studio developers toolbox.

    Why use SonicFileFinder? It’s awesome. It’s free. SonicFileFinder provides a quick index of all the files in your Visual Studio solution. It’s like Intellisense for your files. I p

  • OODBMS vs. RDBMS

    Not really, but some interesting opinions on the topic. Late in 2008, Rob Conery of SubSonic fame came out with some thoughts on using db4o instead of the “traditional” relational

  • ChicagoAlt.NET March Meeting Recap

    Good meeting, with an Open Session flair. The concept for the evening was for everyone to suggest a topic by writing it on an index card, and everyone got to vote by initialing on

  • db40 on shared hosting love

    I’m tired of fighting the ORM battle, L2S, SubSonic, NHibernate, Lightspeed, etc. They’re all great products but painful to use because they are all “bandages” on the problem of ob

Early Field Notes (2006-2008)

Short-form experiments and notes-to-self from early-career practice. These are intentionally preserved as snapshots of where my thinking was at the time.

  • MSDN Developer Conference

    Chicago will be hosting a MDC event on January 13th at the Hyatt Regency Hotel in Downtown Chicago. I’ve got my ticket. It’s too bad that it’s only a one day event, I’d like to att

  • Coffee, Donuts and Asynchronous Message Handling

    I love coffee and donuts almost as much as I love being a software developer. But this morning I had a moment of clarity during my daily indulgence. I stroll into the blur of activ

  • Video From Chicago ALT.NET Meeting

    Sergio Pereira was kind enough to record, edit and post the Cruise demonstration from the Chicago ALT.NET meeting on August 13th, 2008.  There are several excellent questions, espe

  • Red Gate Assuming Responsibility For .NET Reflector’s Future

    Red Gate has announced that they have reached an agreement with Lutz Roeder (announcement) to assume responsibility for the one tool that should be in every .NET developers toolbox

  • Repetition Does Not a Satriani Make.

    A few days ago I posted my opinion on the old adage “Practice Makes Perfect“, but I feel I need to clarify a few things. The original article I cited was referred to repetition of

  • Upcoming Chicago Architects Group Meeting On August 21st.

    The Chicago Architects Group is having a meeting next Thursday, August 21st. The topic will be “What is an Architect? Roles and Responsibilities” by Carl Franklin, of .NET Rocks! f

  • Chicago ALT.NET Meeting August 13th Meeting Review

    Free pizza *and* a demo of ThoughtWorks Studio’s latest product, pretty nifty for my first meeting. The primary topic was the Cruise continuous integration server. The presenter, R

  • VladStudio: Excellent Desktop Wallpaper Resource

    I’m a little neurotic about my desktop wallpaper. As a developer, I spend an inordinate amount of time staring at my computer. Granted, I’m rarely looking at a blank desktop but I

  • Upcoming Chicago ALT.NET Meeting On August 13th.

    I’m looking forward to attending my first Chicago ALT.NET meeting this Wednesday.  The topic is Cruise, the new continuous integration server being released by ThoughtWorks Studio.

  • Putting the “twit” in Twitter.

    The only way to improve your writing skills is to write. And read. And stop every now and then to think. Oh, and having something to write about helps too. I think that’s the harde

  • In other words, violence is the answer.

    A good plan, violently executed now, is better than a perfect plan next week.    – George S. Patton, US general (1885 – 1945) Coding Horror has another excellent article titled Qua

  • Cool Tool: “Quick Sequence Diagram Editor”

    UML is painful and tedious. Or I meant to say that creating UML diagrams is painful and tedious. Mostly because the tools are graphical and require some level of ability to layout

  • Moved to another hosting provider.

    Moved to here .

  • Brain Mapping

    What made me begin to unconsciously type "worlofwarcraft.com" into my internet browser address bar. (really)Here's the scenarioIt all starts here. Reading a nice little article abo

  • Good Documentation

    I don't think it is a coincidence that my favorite development tools are so well documented. The only reason they kept my attention long en...

  • Will My Software Project Fail?

    There are a lot of reasons typically given for software projects failing, poor management, lack of requirements, and lack (or excess) of talent are common reasons I've heard(used)

  • String formatting tips for C#

    Handy guide that I've perused once or twice for tips on formatting strings in C#. String Formatting in C#

  • BizTalk 2004 Links

    A wealth of useful BizTalk 2004 information can be found at Gille's WebLog . The flat file strikes back: BizTalk 2004 parsing positional rec...

  • VS.Net: Trim EOL White Space

    Regular expressions are great. Little strings of yummy helpfulness.Here's a little regex that can be used to trim all some or all of your trailing whitespace.:b+$Just pass nothing

  • Shared Server Etiquette

    Log offDon't stay logged into shared machines, log off when you are done. The performance overhead of multiple logged in users is bad enough when we're all working, but do we reall

  • TextPad Regular Expressions: Replace Leading Whitespace with ' '

    TextPad is my text-editor of choice. It's simple, fast and lightweight. Plus it supports regular expressions and wildcard searches.When preparing a post for upload onto the site I

  • TDD? You've got to be kidding me?

    Just taking another peek over to the the Sun's side of the Sun/Microsoft fence and checking the color of their grass. Another tool for testing the reliability of your tests is Jest

  • If yer code ain't tested, the waterfallists win.

    Just reporting on untested code is nothin'. How about a tool that *removes* untested code.Check out the oh-so-provocatively named coverage tool, Guantanamo.When Guantanamo detects

  • Know what's cool? Blogging from your installer is cool.

    The pendulum is swinging back towards Linux again for me. As my wife has noticed and much to her irritation, every couple months I'll take another shot at replacing my Microsoft...

  • Save money on Microsoft tools and systems.

    Microsoft Action PackMicrosoft Empower for ISV's

  • Tsst.

    Every wonder what career a character like Cartman might gravitate towards when he grows up? If you said Project Manager then you probably work as a developer too. Pushy, whiny, dem

  • Heroic Developer, the Saga Continues.

    Continued from Heroic Developer. *Deep Breath* If you find yourself working on some half-baked idea concocted by your project manager as they were on their way out the door at a 4:

  • Clumsy Development

    Basically it’s the George Costanza model of software development. The only requirement is to know the vocabulary, not that you need to know what the words mean though. For example.

  • Programmers Bill of Rights

    Coding Horror posted an article in 2006 that proposed a Programmers Bill of Rights. I’ve worked at some pretty messed up places that violated all or most of these “rights”. Althoug

  • Heroic Developer

    Look, over in the cube. It’s a nerd. No, it’s a geek. NO! It’s Heroic Coder. Coding longer than a puny developer! Introducing bugs and errors faster than a marketing drone can drea

  • GWDD

    Greasy-wheel Driven Development All development is driven by whomever is screaming loudest. Project priority is determined through a bidding type system where the competing request

  • Automated code formatting tools

    I love automated code formatting tools. Anything that will help clean the layout of code, especially code that I’ve inherited, is a major productivity booster. I’ve been a bit of a

  • The Play

    The actors are assembled for the Writer’s play. Some will play heroes, and some villains while most will walk through the scene forgotten and unheard. The Director moves the actors

  • Polish PM stands up to Germany

    Germany is pushing for the votes of EU members to be based upon population. Which is not surprising considering that Germany has the highest population on the European continent, s

  • How would you unit test this?

    if ( Jack.WorkQuantity == "All"    && Jack.PlayQuantity == "No" ){    Jack.BoyType = BoyTypes.Dull;} It’s a trick question, the answer is “Don’t.” Go outside, nerd.

  • wut it looks liek

    thiss wut it luks liek wien my wife not edit my postsnerf^_^

  • [Linky] HOW TO: Debug into a .NET XmlSerializer Generated Assembly

    When using the xml serialization object to serialize and deserialize an object a temporary class file is generated. This article explains how to find the intermediary file and step

  • From hard-sell to conversation

    Interviewing is like selling a used-car. Only, instead of a jalopy, you have to pitch yourself or your company. You must negotiate the buyer’s eyes away from the patches of rust an

  • JavaScript String.format() method.

    A simple JavaScript String.format helper for tokenized string interpolation, originally published on WordPress in 2007.

  • The Landlord

    The LandlordThis had to take an eternity to film. That or she is a born natural.

  • WoW Summer Hiatus

    WoW Summer HiatusI don't know if World of Warcraft is actually addictive. I do know that it is too easy to spend egregious amounts of time playing it. Actually it's less 'playing'

  • Recommended Tool: CopySourceAsHtml

    Recommended Tool: CopySourceAsHtmlNow that I am working on trying to put some usable information on this blog I need an easy way to transfer the code from the rich-text world of my

  • Whenever you think you have the toughest, nastiest and unpleasant job ever then you may need to watch a show that my wife and I have been enjoying for a while now that I think will put those thoughts to rest permanently.

    Whenever you think you have the toughest, nastiest and unpleasant job ever then you may need to watch a show that my wife and I have been enjoying for a while now that I think will

  • Okay, a film, albeit highly-stylized, about an actual historical event is "moronic", a "sword'n'sandals" "dumb audience-friendly" romp.

    Okay, a film, albeit highly-stylized, about an actual historical event is "moronic", a "sword'n'sandals" "dumb audience-friendly" romp.Yet, a gimmick laden movie about strippers, z

  • Look what we can do on only a $2000.00* budget!

    Look what we can do on only a $2000.00* budget!*Not including the cost of a real-estate appraisal, a dedicated team consisting of one professional home designer, and two or three p

  • Being stupid has never been so funny.

    Being stupid has never been so funny.My Name Is EarlIt's nice to see a skateboarder gone good. I cannot describe how much I loathe the Jackass guys. "My Name Is Earl" is so well sh

  • SchemaInSight

    SchemaInSightMost code generation code is intended for generating data-access code. There doesn't seem to be any simple (or free) code for accessing a database and enumerating the

  • NStun

    NStunSTUN, Simple Traversal Underneath Network Address Translators.The N is for .NET. :-)STUN in Wikipedia

  • NAT

    NATNetwork Address TranslationNasty little critters. Get on my nerves.NAT in Wikipedia