Geek porn (Google servers revealed)

April 2, 2009

The title says it all, geek porn.  Check it out here.


My electronic pulse is returning to normal

April 1, 2009

Somewhere about 2 years ago, my wife and I decided we had earned a two week vacation in our (not so) short lifetimes.  Many a places were discussed, Costa Rica was the choice.  We saved and saved.  We plotted and planned.  We flew and drove.  Costa Rica was a fantastic vacation.

 

But….

It meant severing most of my electronic ties for two weeks.  No smartphone.  No blogs.  No programming.  No news.  No community.  Barely any email.  It was rough.  Ok, not really.  I learned to live without it.  We kept ourselves very busy the first week doing the adventure part, so my longings faded really fast.  We spent the second week on the beach and I found myself immersed in two autobiographies, iWoz by Steve Wozniak and Clapton by E.C. himself.

But….

Upon my return, it felt SO good to feel my electronic pulse returning.  Instantaneous communication with my network.  Sorting through the 1000’s of posts in my Bloglines account (SMB, Tech and Software).  Updating the ball and chain called Facebook.  Actually writing software again.  Feeling comfy with my frameworks and toolsets.  Parsing my email.  It felt better than great, I felt normal.  I feel like I have a pulse, albeit electronic, again.


Random Thoughts – March 2009

April 1, 2009

What made you choose Costa Rica?

Barbecue is one of the things people drive for.

They gave him six of the best.


Trimming an IT budget at mid-size company

March 31, 2009

Here is a great article on a mid-size company transitioning from one generation of hardware and software to another.  Great, simple read!


.NET Framework 3.5 graphically described

March 4, 2009

For some reason I have been involved in a number of conversations lately about “how is .NET 3.5 different than .NET 2.0?”.  There is an easy technical answer but I always struggle to quickly access that piece of memory and/or make it relatable to the person asking the question.  I’ve resorted to off the cuff terms like “window dressing and not necessary to deliver a great application” or “nice features that extend the core .NET 2.0 Framework but….”.  And on it goes, with little success I might add.

I might benefit from carrying some flash cards, huh?  Perhaps some graphics on those cards?  Let’s take a look at what’s available…

This one is not bad, but there is no mention of LINQ, AJAX and REST.  No chance!

This one is closer, but what exactly are Additional Enhancements?  This one also does not relate very well that 3.0 contains 2.0 and 3.5 contains 3.0 and 2.0.

This one is really bland!  Did someone draw this up in MSPaint?  Glad to see the Entity Framework get a shout out here.  Sad to see no representation of the containment (as mentioned earlier).

My personal favorite and not because it is part of the poster I stare at nearly every day.  It’s so simple and it’s structured perfectly (i.e. round!).  .NET 2.0 contains the core, 3.0 added WCF, WF, WPF and CardSpace, then .NET 3.5 added LINQ, AJAX and REST on top of those.  Winner, winner, winner, hands down.


Having more than one value proposition

March 3, 2009

As I market my services to various clients from various backgrounds, I’m always trying to come up with a unique value proposition that communicates to them.  It’s not that I want to appear superior to their alternatives, but I do want them to understand what makes me unique.  Sometimes I use

“Hiring an experienced software developer who knows what their doing before they start is much more cost effective than paying someone else to learn”

which works well if a customer is interested in completing a project and are not making an investment in someone else’s capabilities.  Sometimes I use

“I know how to go straight from point A to point B while some are good at talking about going from A to B and others are like to start on the path from A, get distracted and take twice as long to get to B.  I have a laser like focus on the task at hand”

which works well if a customer has been disappointed in capabilities of another developer or development team.  Sometimes I use

“My experience with 50+ projects in 10+ industries has given me insights about how those businesses are run that might provide value in unexpected ways to your project”

which works well if a client is unsure that I can complete the project using a new toolset or technology.

I see now that you cannot have one unique value proposition.  Every situation, every project and every client is different.  Not only are they different, they are unique.  I also see now that I am not a salesperson applying a closing method.  I’m there to listen, learn and offer something of value.  If that means I have to be honest with someone, rather than packaged, so be it.



Random Thoughts – February 2009

March 1, 2009

The easiest way to find a professional is to act like one.

I am so ready for Install Updates, Shutdown and Restart.

Those concepts are difficult to tease apart.

Are you applying peanut butter cuts?

Was it differences in talent or differences in terrain?

Can you call yourself a Phoenician if you run out of salsa?


Slate and the internet of 1996

February 25, 2009

Slate has a great post on the internet of 1996 today.  I fondly remember 1996 as it was the year I started surfing the wide web world, not world wide web.  If I remember correctly, in contradiction to what Slate says, you surfed for hours.  You never knew where the next hyperlink would take you or how far you end up from where you started.  If I remember correctly, you’d spend your time building your own web pages or learning how to by inspecting the source of other pages.  You also spent your time building link exchanges.  If you were accepted as a link on someone elses directory, it was so exciting to see your pages or site for others to surf on.  It was great!


Is blue my color?

February 14, 2009

I keep seeing blue in my life.  Blue is the color of the Microsoft logo, whose tools and technology have provided me so many fantastic opportunities in life and business.  Blue is the color of my golf bag, which does a fantastic job of getting me away from the computer screen (now and again).  Blue is the color of my motorcycle helmet, which is the fulfillment of a lifelong dream.  Blue is the color I chose for my company logo.  Blue is the color of Bloglines, which I use to great effect to aggregate all of my business and technology news feeds and blog authors.  Blue is in the logo of Tempe, where a majority of my clients are based and where I help organize a networking group called Tempe Networking for Entrepeneurs.  Blue is the color my father chose for some of the best Camaros and Corvettes of my youth.  Blue is the color of the ocean, where my wife loves to vacation.  The blue sky lured me away from the gray days of Kansas City.


Required reading for junior software developers

February 8, 2009

There are probably many different thoughts on when you should introduce certain concepts to a new (or junior) software developer.  Before they start coding, during the coding (see pair programming) or after some coding.  You can’t introduce them to message queueing, standards compliance or layered architecture in the same day or week.  Their head will explode.

Before they start coding, every developer should read Code Complete by Steve McConnell.  That’s a given.  Currently in it’s second edition (note:  I prefer the first edition), the information here is so fundamental and so common sense.  I might even argue that a good hire would already have this book on their bookshelf.

To be honest, during the coding, a junior software developer should rely on their tools, their team lead AND the documentation.  Learning to rely on documentation, understand it and question it will improve their code.  Learning to trust your tools, i.e. understand what they are telling you, will make you into a craftsman.  Learning to ask for help from your team lead will keep a junior member on the team.  No kidding.

After some coding, I would recommend reading this excerpt of Chapter 29 of Pattern Languages Of Program Design by Harrison, Foote and Rohnert.  Probably the most entertaining chapter of the book, it is chock full of descriptive examples of systems with little to no design, such as:

often takes on a life of its own, despite casual structure and poor or non-existent documentation…

Systems and their constituent elements evolve at different rates…

The class of systems that we can build at all may be larger than the class of systems we can build elegantly, at least at first…

architecture frequently takes a back seat to more mundane concerns such as cost, time-to-market, and programmer skill…

Individual portions of the system grow unchecked, and the lack of infrastructure and architecture allows problems in one part of the system to erode and pollute adjacent portions….

some engineers are particularly skilled at learning to navigate these quagmires, and guiding others through them. Over time, this symbiosis between architecture and skills can change the character of the organization itself, as swamp guides become more valuable than architects…

Maintenance needs have accumulated, but an overhaul is unwise, since you might break the system…