Saturday, December 31, 2011

How to do Holiday Grab Bag

Traditionally on or around Christmas, my dad's side of the family gets together. The cast isn't always the same, but one tradition is: grab bag.


The deal with grab bag is that one must adhere to certain rules, which can change depending on the year. Examples include:

  • No food
  • Made in a specific location
  • One must shop for one's own gift

Gift Selection

Selecting a gift should

  1. adhere to all the rules of the particular year
  2. be unexpected
Naturally, I chose an eco-friendly door mat.

The Gift


Strictly speaking, decoys are an optional part of the tradition. I prefer to include them, because these gifts are likely to be shaken, rattled, and, yes, rolled.

Level 1

Level-1 Decoy

Don't forget to label your decoy

Always Label Your Decoys Appropriately

And position it appropriately

Position Level-1 Decoy

Level 2

My 2nd layer of decoy is planted within the packaging.

Level-2 Decoy Rattler


If one is going to shop for his or herself, one may as well create the packaging as well. Kids tend to create the most memorable packaging, especially when young. That's a tradition that I like to keep alive with my fine paper craftsmanship.

Finished Grab Bag

The Riddle

Lastly, and new this year, is the riddle.

The Riddle

Fun Fact Riddles are now required

Wednesday, December 28, 2011

Pinnacle Mountain

I've never been much of an outdoors person. That changed with my recent infusion into the Little Rock hiking scene.

Together with my girlfriend, who could seemingly climb the north face of the Eiger without breaking a sweat, we've probably skipped our way to the top of the rocky trail half-a-dozen times. It's an understatement to say this trail is rocky.

Follow the Red/White Markings

At one point, Ginger even pulled off the heroic move of keeping this giant boulder from falling. And with a smile on her face!

Don't Let That Rock Fall!

Finally, after a little over an hour in the [heat, rain, fog], we made it to the summit. As I've dove deeper and deeper into programming and virtual problem-solving I've found various senses of accomplishment, but none really compete with finishing a challenging physical, well, challenge. It's completely worth the effort.

From the Top

NOTE If you're planning on a nice hike up the rocks, you could join one of the many who bring their dogs. Be prepared to carry your dog back down though. They apparently have a much easier time with up than down.

NOTE Need more pictures of Pinnacle Mountain? Check out the Flickr Group these were pulled from.

Saturday, December 24, 2011

Netflix, for Consultants

Try This One on for Size

What's in a name, really? Let's hope nothing, because all I have for this one is "Netflix, for Consultants." It's one of those ideas born from necessity, as I scrambled a few weekends ago to find a shirt that could be buttoned without a pulley system.

IMG_7312this contraption could potentially put any size shirt on a person
IMG_7312 by FrankenmuthFun on Flickr

The necessity is obvious and the mechanics are quite simple. Here's the typical workflow for a user of "Netflix, for Consultants."

  1. wear shirt
  2. send in shirt
  3. receive slightly larger shirt

NOTE patent not pending [by me], feel free to run with it.

Fun Fact consultants tend to eat almost exclusively at restaurants. McNuggets and abs have an inverse relationship.

Tuesday, December 20, 2011

Project 2

Way back in September, I took a 1x2 plane that touched down in Little Rock. The flight itself was delightfully uneventful — those tiny planes get to skip the \heartfelt\ update from Jeff Smisek "and [his] 80,000 coworkers".

After landing, all 30 of us aboard the plane shuffled out of most-delightfully-sized airport I've seen, but not before I checked in to gate 11, of course — this airport isn't going to mayor itself!

I've come to expect personality, conversation, and, well, danger out of late-night airport cab runs. Little Rock's James, just entering his 53rd year, gleefully delivered on 2 of 3, albeit silently for far too long as I dug deeper and deeper into the details of my destination.

JamesWhere to?
MeThe DoubleTree
*awkward pausation* Little Rock
*no response or movement*
*continued awkward pausation*
Me...on Markham Street
JamesMmmHmmm. I should hope so. Only one we got.

I could tell early this place was going to be memorable.

NOTE While sarcasm has recently gotten a font, it isn't available everywhere, hence \heartfelt\

TIP Interested in my battle for the mayorship of the Little Rock Airport Burger King? Follow me on Foursquare

Sunday, April 3, 2011

11 Months of Languages, Frameworks, and Tools

About this time last year, I was still in school and interviewing with a few very different companies. Talking to other students yielded a number of opinions about languages and the career paths they implied. I haven't found my experiences thus far to be anything like the oft-heard

"taking a Java job means you'll be doing nothing but Java for 30 years"
Being employed by a consultancy is a little different than landing in a business committed to one language, but I've found that even within these companies the changing directions of business require and embrace many different languages, frameworks, and tools.

The Java Shop

My first programming job was very database-centric. Referential integrity was the goal, and database triggers were the chosen path. Triggers were the choice because data was dealt with directly through SQL from an unknown number of sources, in addition to applications. Our constraints were also slightly more difficult than column-level constraints could handle.

The applications were written exclusively in Java, and yet during my time there I barely touched Java at all. Instead I was directly in the database. Most of the work was in Oracle's PL/SQL, but like so many businesses, there was a transition from another database vendor in the works, so my day-to-day work still wasn't limited to just one database vendor's language.

The Internal Java Project

My first project for ThoughtWorks was at TWU, where the students continued development on TWU XVII's Chronicles. The technology stack was traditional for a Java webapp here, but still required us to develop our knowledge of several different markup languages, programming languages, frameworks, and tools.

The .NET Shop

In early October I headed to Los Angeles for a project in Microsoft's .NET. We were adding features to a webapp here as well, but it initially didn't have any MVC components. Instead, it was code-behind. This meant that while a lot of the Java project was similar, there have still been many additional programming languages, frameworks, and tools to learn.

Project Technologies, 11 Months into Programming

Markup Languages
Programming/Database Languages

Monday, March 14, 2011

The Evolving Life of a Road Warrior: Laundry

Laundry is a task that can, and hopefully will, be improved upon from now until the end of time. Certainly I've evolved since starting 12 hours of weekly travel in October.


It wasn't long ago now that I'd pack up my duffle bag in frantic frenzy Thursday morning before checking out of the Kimpton and skipping down the road to the week's last on-site day at the client. Ten billable hours later we'd head to the Corner Bakery, partially lured by free WiFi, to wane the hours down until our 11:00PM flight back to Chicago.

There are two large problems with this scenario.

  1. I'm carrying the same clothes back and forth
  2. I'm spending 3 hours and $1.50 washing them on a shortened weekend

Courtyard to the Rescue

A transition to the local (8 miles farther) Marriott was in order for other reasons, but it also had the very important perk of coin laundry. There are more pro tips than one might expect in the game of hotel-based laundry, so let's take this journey together!

Step 1: Locate Laundry

The folks at the front desk will be more than happy to help you out. After all, they've handed you a SpongeBob & Dora key. When's the last time you saw someone frown and hand you a Nick Jr key?
Dora & SpongeBob Key

Jackpot. This place has a SpeedQueen Commercial Washer and Dryer. Wisconsin's finest laundry equipment will have your work clothes clean in no time...or, as the sign says, one hour and 15 minutes.
Laundry Room Signage

Step 2: Locate Detergent

And what's this signage smiling back at me? It looks like we're headed back to the front desk, friend. Free Tide and Bounce await. I certainly don't have Bounce at home!

Tide and Bounce

Step 3: Locate 7 Quarters

That's right, we'll be out an additional $0.25 after this expedition. A small price to pay for not having to carry clothes 3,490 miles. It also opens up the intriguing first-row exit seats. With nothing to stow overhead, the exit row is our oyster. Shown here are three quarters, because I wrote this blogpost after starting the washer.

Modern American Currency

Step 4: Transfer Suitcase to Washer

Looks like we're winning again. This luxurious Samsonite suitcase is the perfect size for one week's worth of clothes. It's also the perfect size for one SpeedQueen Commercial Washer.

Splendid Samsonite Luggage

Step 5: 4 Quarters into Washer

This step is on easy mode. Fill up the right-most slots with quarters, and away you go. Push the Greenwald Vertical 5 in, pull it out, and start your stare at the beige walls. These clothes can't be left unattended. One might say now is the time to start said blog post.

Greenwald Vertical 5 Dryer

Step 6: 3 Quarters into the Dryer

We've been standing in a tiny laundry room for half an hour by now, crafting our next Blogger entry. Hopefully it's Wednesday night, so we're all prepared for the next week to be laundry-free. Of course it's actually 34 minutes past California midnight on Monday because we've been trying to get the lone washer in the building since arriving at 9 with no success.

All right. Clothes in washer. Good to go.

Step 7: Hang Up Clothes

The dryer certainly didn't get them entirely dry! We'll be using these apparatuses, which science has yet to come up with a name for*:

HangersHangers by Andrew Morrell Photography, on Flickr

Step 8: Check Bag Over Weekend

All you need is a luggage claim check and a friendly employee. Fortunately, the Courtyard has both =)

Fun Fact SG Hill is in no way affiliated with SpeedQueen or any of its competitors.

* That's a nod to the extremely dry British comedy series, Look Around You

Sunday, March 6, 2011

Introducing SG Hill's Tidbits of Development

Wow! It's already March!

In what seems like the blink of an eye, we've gone through:

  • two project extensions in Los Angeles
  • significant progress on another application for said project's client
  • a theme park
  • faux Christmas carols in Colorado's Breckenridge
  • a personal project transition to GitHub
  • 200,000 miles on United, and 50,000 on American
  • significant fitness-related changes
  • ...and more
All without a single [Adventures] blog post.


For quite a while now, I've been spending a large portion of time on purely technical tasks. In some ways, this makes it more difficult to blog — at least in part because those interested in the content of this blog (read: virtually everything but code) may not necessarily be interested in how I've helped improve my project's JavaScript with a healthy pragmatic refactoring, for example.

I've increased my technical immersion over the last few months. As we can see with this fun chart below, the result is fewer blog posts.

Time Spent Technically vs Blog Posts

I'm learning more than ever these days in very specific, technical categories. This is in no small part because I have the unbelievable privilege of working with some of the best software developers and consultants on the planet at ThoughtWorks. My coworkers are often willing to help, but their example alone is enough to really help push me toward continual improvement. I'm frequently finding myself in situations where the code I've written two months ago is flat out embarrassing — which is most certainly a wonderful thing. These learnings don't quite seem to fit with the majority of the 77 posts that have preceded this one, however. A trap I've fallen into is a half-written post that never ends up published because it doesn't fit the flow this blog has carved out.


A great idea that was proposed by Sumeet Moghe at the end of TWU XVIII is advice I'm finally ready to announce I'm following: split into two blogs.

  1. Adventures in [Agile] Development
  2. Tidbits of Development

So, What's The Difference?

Good news! I've taken the liberty of creating a mindmap that was timeboxed to 5 minutes whilst traveling on an airplane.

SG Hill's ThoughtStreams


All of the above adds up to why I've started a second blog, or created a dev branch, if you will. My intent is to have a code-centric corner of the world where I can write about improvements I'm making and hopefully get feedback on where to go next and how to make things better. As a secondary benefit, I hope to simply have a log that documents the progress of a young developer, if for no other reason than I wish there was something similar I could read while in school.

Fun Fact Cronotrons may one day be the official unit of time estimation.