Wednesday, October 05, 2005

On Getting Back to the Field

  • And so for the past ten months I've been out of active client-facing consulting, mostly bound to my desk driving the good ship. Don't get me the wrong--the good ship needs driving and I'm greatly enjoying it. But there's a real sense of enjoyment with getting back to the good stuff.
  • Some albums that have gotten play lately:
    • Alanis Morissette, "Jagged Little Pill"
    • Jane's Addiction, "Strays"
    • Jane's Addiction, "Ritual De Lo Habitual"
    • Van Halen, "Fair Warning"
  • Being a career development consultant has really hidden me from the coolness of Business Intelligence, and that's too bad. Been missing some interesting stuff.

Friday, March 18, 2005

Well Hello There

Wow, over two months gone. Pretty poor, I know. But some things have been happening and I've been too busy to write.

First things first--it's my birthday and I'm 31. That would have sounded old to me a few years ago, but I think I've still got a few good years left in me. We'll find out.

Secondly, take a look at this. Clearly I'm happy about the new gig. I work harder than I ever have so that explains the lack of new postings.

A lot of exciting stuff going on though so I'll start the posts again soon.

Wednesday, January 05, 2005

On Consulting

A few thoughts, completely random and unordered, on my profession (IT consulting):

  1. It's a relationship business.
  2. It's a mutually beneficial relationship when a company engages a consulting firm. If it's not then there is a problem somewhere. If the client is feeling that he is getting taken then the relationship will not last. If the consultant feels that he is getting away with murder then the relationship will not last. Only when both parties feel there is value in working together is there a good thing going.
  3. I can't imagine working in any other field. The thrill of the sales process, the stress of the new technologies and the deadlines, the close interaction with other professionals, it's all stuff you won't get working an internal IT job.
  4. If I'm offered enough money maybe I'd leave consulting and do the internal IT thing.
  5. It would have to be a bunch of money for less work than I do now.
  6. I'd probably just do my own thing again before "working for the man".
  7. Of the large universe of people who do IT only a few are good consultants.
  8. Good consultants aren't always the best programmers and don't always enjoy programming.
  9. The good sales guys at a consulting firm are the truest form of consultant. They deserve to make the big money because they make the system work.
  10. The bad sales guys at a consulting firm need to be identified and voted off the island as soon as possible.

Advice for Computer Science Students

Here's a great article from Joel Splosky:

The key line is this:
Like I said: if you love to program computers, count your blessings: you are in a very fortunate minority of people who can make a great living doing work they love.
I agree completely. There's simply no better way to make money if you are one of the few people who do this work very well.

Thursday, December 30, 2004

A Post By Email, and On Contracting

On Jay's suggestion I'm
trying post by email. Cool stuff.

Now onto Contracting, and I mean the type with hammers and nails. My
wife and I are presently doing a good bit of renovation work on our
house. One thing we're both realizing is that there is a potential
business opportunity if you ran a home renovation company as you would
a normal professional services firm.

Some of the guys in that industry just kill me. We've been
essentially trying to give somebody several thousand dollars for
months and only recently have we found people who are interested,
qualified, and available to take the money. If you ran a consulting
firm like that you wouldn't be around long. Then again, maybe you'd
be Accenture.

Wednesday, December 29, 2004

A Personal Note

A frequent reader of this space recently had a comment:

why don't you do a personal blog instead of this resume blog.

Good point friend. How about this:
  1. Some recently observed excellent songs for programming are:
    1. Genesis, "Turn It On Again"
    2. Zeppelin, "Since I've Been Loving You"
    3. Afro Celt w/ Peter Gabriel "When You're Falling"
  2. T-Mobile recently took care of me when my Blackberry 7100t stopped working. I went into their store, explained the issue (no sound out of headset), and they shipped a new one in 4 days. Nice.
  3. Here's a picture of my son and me on a recent trip to northern California (this is from near Trinidad).

  4. Only those with something to hide have anonymous blogs.


On Windows, the Registry, and Sheer Stupidity

So I've got a client now that is using a Cisco VPN box for remote access. I needed to do some extra work on the project from home last night, and I installed the Cisco VPN Client.

So far so good.

I typically have my Start Menu organized into hierarchies of folders, such as Applications, Development, etc. So I moved the new Cisco group into the Applications group.

Cisco didn't like this when I tried to run it. It copied itself back to the main Start Menu. Cisco and I entered into a frustrating cycle where neither one of us decided to give up.

I decided to uninstall Cisco. I did this, but kept getting a Windows Installer dialog come up when I started Windows. I couldn't get rid of it.

This is the part of the story where we enter into Sheer Stupidity.

I decided to manually go into the Registry and remove all traces of Cisco.

Dear readers, please stop laughing.

After I removed all traces of Cisco, I realized that I had inadvertently removed my entire Windows networking configuration. I tried to reinstall the drivers for my networking, but it was too late. Gone.

So that's right. I had to stay up practically all night rebuilding a machine I'd rebuilt only a few weeks before.

My fault, clearly. However it got me thinking.

Why in the hell is it so tough on Windows to install/uninstall applications? Why can't an application write everything it needs into its own directory, use XML files for configuration, and then leave everybody else alone to go about life the way they see fit?

I mean damn.


Friday, December 10, 2004

A Better XML-> .NET Code Generator

Take a look at this page for a greatly improved way to generate .NET code from an XML XSD schema.

xsd.exe, the tool which comes with the .NET framework, works fine for generating very simple classes. The problem is that it generates classes with only public variables--no properties are created. The issue is that the .NET data binding controls (and most third party controls) are set to only look for properties, not public members.

This new generator (which is technically a sample) fixes this problem nicely, and also throws in some nice ArrayLists as part of the deal.

Recommended.



Monday, November 29, 2004

20 IT Mistakes

A good article by Chad Dickerson on common IT mistakes.

I especially like these:

19. Violating the KISS principle

Doug Pierce, technical architect at Datavantage, says that violating the KISS (keep it simple, stupid) principle is a systemic problem for IT. Pierce says he has seen “hundreds of millions” of dollars wasted on implementing, failing to implement, or supporting solutions that are too complex for the problem at hand. According to Pierce, although complex technologies such as CORBA and EJB are right for some organizations, many of the organizations using such technologies are introducing unnecessary complexity.

This violation of the KISS principle directly contributes to many instances of project failures, high IT costs, unmaintainable systems, and bloated, low-quality, or insecure software. Pierce offers a quote from Antoine de Saint-Exupery as a philosophical guide for rooting out complexity in IT systems: “You know you’ve achieved perfection in design, not when you have nothing more to add, but when you have nothing more to take away.”

20. Being a slave to vendor marketing strategies

When it comes to network devices, databases, servers, and many other IT products, terms such as “enterprise” and “workgroup” are bandied about to distinguish products, but often those terms mean little when it comes to performance characteristics.

Quite often a product labeled as a “workgroup” product has more than enough capacity for enterprise use. The low cost of commodity hardware -- particularly when it comes to Intel (Profile, Products, Articles)-based servers -- means that clustering arrays of cheap, workgroup hardware into an enterprise configuration is often more redundant and scalable than buying more expensive enterprise servers, especially when it comes to Web apps.


App Servers No Longer Needed

This is a good blog post from Peter Yared on the evolution of the application server.



I'm in the .NET world where our app server is a bit more of a logical concept than in J2EE, where you might use JBOSS or WebLogic or Websphere. Still, an interesting read.

His take on things is correct I think. We don't need an application server in the middle when all we're doing is throwing XML around from one service endpoint to another. I do, however, think we probably need some sort of manager or broker in the middle to handle things like security, management, etc. This might be an ESB, it might be a SOAP control broker or the like, or something home grown which simply centralizes the services management.