Tech Blog

Jay's Technical blog

Starting to come out of my funk..

31 May 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

I'm sick today, so I spent sometime looking at some OOP patterns (isn't that what you do when you're sick?)

I found this website a while back.  I had looked at the factory patterns before, and had been trying to think through the when angle of these.  Some of these patterns it is suggested that you should use these frequently, and since I have never built a factory pattern, this has added to my already lower self-esteem as a programmer (I know I'm good, but I want to be "733t" like Brendan and Darrell and Sahil and Geoff and Eric and John and uhh, you get the idea... 

What spawned all this is that I've recently been put on a different team at work... I won't totally explain here, but this has left me feeling a little less appreciated at work (read "disrespected") and have felt that maybe I'm just a Mort pretender. 

So today I got past the Abstract Factory, Builder, and Factory patterns... When I got to the Singleton pattern I realized that I could probably very easily refactor some existing code into this pattern (and it actually makes sense to do so).

When I got to the structural patterns, I discovered that just last week I built some code using the composite pattern.  I didn't even know it.  It was just the most logical choice for what I was doing (WebDAV with Exchange)...

Cool! Either I'm not a total Mort or there's hope for me yet!

I'm still reading (DonXML caused me to take a side step and research Domain Driven Design... thanks Don... I don't totally get it, but I think I need to bite the bullet and read both Martin's book, and Eric's DDD book).


Know thyself...

31 May 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

Ok, I want to jump off on something that got posted in the comments regarding my whole experts deal (BTW, whether you agreed/understood what I was saying... the whole discussion was interesting).

So I got a comment on the first post (here's the comment) where the anonymous commenter said this

"Life is so much easier when you surrender responsibility for thinking to someone else. "

I use other people (peer review) to make sure that my ideas aren't so totally hairbrained to be unmaintainable or unrealistic or a lot more work than they're worth.  Actually right now I'm trying to move to the next level.  I know a lot of people who have the whole OOP thing down a lot better than I do.  I need to understand patterns a lot better than I do, etc.  I have had some things happen in my career recently that have caused me to feel a little unsure of myself in the areas of architecture... I don't like weak areas.  In fact when I see that I have them I do everything in my power to overcome them, to conquer them, because what you fear the most in the programming world will the thing that hinders your development... I have asked a number of my protege`s who wanted to get better what did they fear in the programming world... Whatever it was I told them to conquer it... read everything they could on the subject and defeat it once and for all.  So right now I need to conquer the beast... the architecture beast... with or without help I will get there.

Now back to the writer's statement.  You know the brave anonymous commenter... Let's see... you know you're not really anonymous, right?  Let's see that IP Address was... Wait!  Didn't Brendan do that once?

Here's my thoughts on your thinking.  If you are saying that you never get advice or never try to learn from someone else, then I know where the source code repository for you code is... right here.  [BTW, Flame off!]


Blogging and Experts...

27 May 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

 Ok, yesterday, I think I may have ruffled a few feathers, so let me try follow up with a bit more explanation.  My problems are not with blogging.  I use blogging as a way to get feedback on my own sometimes strange ideas.  I like that aspect of Tech Blogging.  I love that I can have dialogues (and can even have friendships) with some real heavy hitters.  All of the CodeBetter bloggers come to mind when I say this... ok, everyone but Geoff (just because I like to give him crap). 

[I'm trying to get an analogy here like Rory does... this is what he's really good at].  [Ok, got it... NOTE: No CodeMonkeys were actually hurt in the process of building this analogy].  What if what you need to do is attract the attention of a CodeMonkey?  I don't want to know how to do it... what's the best way?

[Solving this like I sometimes try to with a programming issue].  I bring up the tool of choice for solutions... google.  I search and find a blog by CU [apologies to those whose initials I use... I'll try to disguise them a bit].  CU suggests that "you get the biggest stick you can find and clobber the monkey over the head... that'll get his attention."  He says that in his experience working at the airport that CodeMonkeys are hard of hearing and often get distracted, so you need to use pain. 

Yes, now I know how to get a CodeMonkey's attention, but wait... are there any problems with this?  So since this is a perplexing problem I decide to blog about it since there appears to be no other real advice for my problem.  WM comments and he tells me that no you might hurt the CodeMonkey callously smacking him/her on the head... you need to use tact... because CodeMonkeys are fragile... typically he uses a Cajun Buffalo Mints to attract the CodeMonkey and then he can get the CodeMonkey's attention...

DP tells me that CodeMonkeys are useless and you shouldn't even waste your time trying to get something from them.

This is the type of advice that is out there.  BTW, for sake of discussion DP has no web site nor blog.  WM has a blog and he has posted a few interesting articles on CodeMonkeys, but nothing that defines him as an expert.  CU only has one post on CodeMonkeys, so it's really hard to judge his knowledge. I really can't validate that they know anything at all about CodeMonkeys.  But each one of these people speak as if they are actually authorities on the subject... which one is an authority and who are the posers?

BTW, blogging really is the answer (and sometimes when I blog I'm just venting about something...).  To prove that blogging is the answer...

DC asks why do I want a CodeMonkey... I tell him that CodeMonkeys have a thumbprint that is magical and can restore one's white hair back to its original youthful appearance.  He says that I should just use hair dye and forget about the fountain of youth... it's over.. you're 36 and genetics are just kicking in... deal...  And he's right...

[The bottom line is trust experts in the areas that you've identified them to be experts in. I don't read Don Box's blog to learn more about T-SQL programming... For newer tech you need to play with it... no amount of experts are going to help you]


Mass Confusion... Information overload

26 May 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

I've been contemplating this one for a while... I'm not sure where all this blogging thing is going.  Don't get me wrong I love blogging.  I'm just not sure what we are accomplishing (I know a few of you out there I pushed in this direction).  I think we are starting to get a cacophony of noise. 

Several years ago a bunch of people started the blogging thing as a way to talk about what happened to them with the failed DotCom boom (at least that's what Scoble tells us).  Later a few more people started blogging to exchange ideas (as well as some trendy and not so trendy teenagers who wanted to express their teenaged angst).  A couple of years later MS decided that blogging was a good thing and they decided to award some MVPs to some prolific bloggers who were really helping their camp. 

The next wave of bloggers were unknowns (like me) who were trying to make a name for themselves... They were about fame and the free MSDN universal (yep, I was one of those).  Each of these new bloggers tried to make a name for themselves by gravitating to a technology buzzword that they felt that they could make a name for themselves with.  SOA comes to mind... as does TDD, XP, and a whole line of other acronyms.

It's maddening and the advice that flies around is unreal... many times contradictory.  "OR Modelers are one thing you can't live without... you should use {fill in the blank} it's the one I use."  "You should always use Stored Procs, so if the OR Modeler can use SPs great... if not then get rid of the OR Modeler."  "Stored Procs are over hyped."  And this is just from the OR Modeler/anti OR modeler crowd.

There's the SOA crowd, the remoting crowd, the WSE crowd, the open sourcers, and don't forget the security crowd.  I'm getting all kinds of advice, but I'm not sure who to listen to at times because I really don't know who really knows what their talking about.  Ok, seriously I do know a few people who I would consider experts in their field; the problem is some of my other mentors think their ideas are crap... what's a poor "Mort" developer to do... And some of these experts think each other's ideas are crap... WWDBD (What would Don Box Do?  He is the smartest developer that I can think of... maybe it's WWCVD for you --Clemens Vasters, BTW)

Honestly I really don't have a good piece of advice on this.  Do you listen to MVPs only?  Do you give them more credit than others when looking for advice on a new technology?  Maybe you shouldn't because they don't always agree... 

I strive for excellence in what I do.  I think I'm slowly moving toward the path of architecting solutions, but I have old habits die hard, and good advice on what the correct course is even harder.  So what am I talking about?  I know I may not be making total sense, so let's take something practical...

I recently decided to take the plunge (against all advice I have been given) and play with an OOP DB.  I have downloaded the free db4o database and plan on building a few things with it to see if it's really worthwhile or not.  The advice I have been given to date is that storing objects in the database is a bad idea (I've known some people who tried to simply serialize an object and store the string in SQL Server and have watched the local "experts" here rip into the person).  I guess with where I'm at I need to play with some of these new concepts/technologies and decide for myself. I'm still afraid that others around me may tell me I'm dumb for even messing with it...

(Another quick example) Steve Maine recently contacted me to ask what I thought about some stuff regarding Indigo... it was too important of a question to be left to myself, so I asked a couple of the guys around me at work what they thought.  Long story My advisors were not well informed...  Actually I fell like a total @$$ because I met Steve back at the XML DevCon and he's a cool guy... If I were him I probably wouldn't ask me for an opinion again... I lost credibility (or at least I feel like I lost some credibility) because I listened to an expert who was not as much "in the know" as I thought...

[Sorry, no solutions here]


Pie in the sky...

20 May 2005
Jay Kimble

[WARNING! This is an archived post and as such there may be things broken/missing here.. you have been warned.]

Eric wrote an insteresting piece over here about here inviting employers to pay us less and let us work a few less hours.  My buddy Dave follows up over here.  Dave actually IM'd me to see what I thought.  I guess I may be a bit tainted in my views...

<negative_spin>
The problem with your idea is that the assumption is that employers actually care about their employees.  Eric and Dave work for a smaller shop; smaller shops generally care about their people.  But, what I've noticed is that as the size of the business grows the more a company seems to care less about the individual employee and more about their bottom line.

If I can get a good developer work him to death and not have to hire 3 people... that's a good thing.  Insurance, taxes, etc. cost them a lot more money than just your salary, too, so they are always looking at ways to get away with less people (not more).
</negative_spin>

<extra_religious_political_spin cost="free">
On of the reasons I'm less of a conservative (politically) today is that I don't believe in "trickle down."  I think it's a fiction invented by the rich.  People are not basically good (which is more of a conservative idea)... and for rich people this is especially true... they are greedy, and spend as little as possible (that's how they got rich).  In their world less money spent out means more for me...
</extra_religious_political_spin>

Maybe I'm working in a bad place, but right now it's how I see things.  Corporations care less about the individual and more about their profits.  Unless we the IT industry get them in some kind of headlock they are going to continue to treat us like crap... good ideas won't happen until they have no choice...