Let Me Stack Overflow That For You

by Nick Monday, March 08, 2010 2:38 PM

I am somewhat active in the Stack Overflow community, and among other things, I find it an very interesting case in behavior, partly due to the reputation system that they've employed. It also makes me worry about the community of software developers that currently exists. Jeff Atwood, one of the creators of the site, famously talked about the 20% Programmers, as referenced in this other post:

There are two "classes" of programmers in the world of software development: I'm going to call them the 20% and the 80%.

The 20% folks are what many would call "alpha" programmers -- the leaders, trailblazers, trendsetters, the kind of folks that places like Google and Fog Creek software are obsessed with hiring. These folks were the first ones to install Linux at home in the 90's; the people who write lisp compilers and learn Haskell on weekends "just for fun"; they actively participate in open source projects; they're always aware of the latest, coolest new trends in programming and tools.

The 80% folks make up the bulk of the software development industry. They're not stupid; they're merely vocational. They went to school, learned just enough Java/C#/C++, then got a job writing internal apps for banks, governments, travel firms, law firms, etc. The world usually never sees their software. They use whatever tools Microsoft hands down to them -- usally VS.NET if they're doing C++, or maybe a GUI IDE like Eclipse or IntelliJ for Java development. They've never used Linux, and aren't very interested in it anyway. Many have never even used version control. If they have, it's only whatever tool shipped in the Microsoft box (like SourceSafe), or some ancient thing handed down to them. They know exactly enough to get their job done, then go home on the weekend and forget about computers.

There is no better demonstration of this than in the Stack Overflow community.  On that site, you have the 80% programmers who ask the most basic, mundane questions, that are easily answered by a simple Google search, and then you have the 20% programmers who are kind enough to Google the answer for them in return for "reputation".  In many cases, no Googling is necessary... we just know the answer.

It's an interesting study in instant feedback and gratification.  It seems that there are a whole host of people who, when faced with the simplest of problems, refuse to do even the most basic searching for an answer. Instead, they head over to Stack Overflow and ask the question.  Odds are that within 30 seconds they'll have a correct answer.  Often times that question has already been asked, and Stack Overflow will even tell you about potential duplicate questions as you are composing it.  But despite this help, people would rather ask their own version of it.

On the one hand, it is a tribute to how useful and well designed the site is. Think about... in 30 seconds, you can have an answer to a question. And yet... in 10 seconds you could have found it yourself. So what did you get in exchange for those 20 extra seconds?  Confidence.  If you really don't know the answer, then a Google search may give you the correct answer in the top couple of hits, but how would you really know? With the community vote system on Stack Overflow, you have a distributed fact checking system at your finger tips.

And yet, when you answer the same basic question over and over again... it really shakes your faith in the programming community. Are there that many programmers out there who don't know the difference between a Static and an Instance method? Are there that many programmers who don't know the difference between and int and a float? What does it say about programmers who would rather have answers spoon fed to them, rather than go out and discover the answer themselves?

I'm all for being helpful. I like to think the answers I've provided on Stack Overflow show that. But at a certain point in time, I wonder if it's really worth helping some of these people.

King of Useless Comments

by Nick Thursday, October 09, 2008 10:02 PM

There is a lot of debate among programmers about the proper way to comment your code.  One type of commenting that is sometimes more difficult, is how to comment code that is related to a bug fix.  We've all encountered the types of comments where the programmer states the obvious:

int i = 0;  // Initialize an integer to 0

But "bug fix comments" can sometimes really be longer than necessary.  Here is a typical example of what I'm talking about:

//######################################################
//#
//# Bug #: 1234
//# Date:  10/2/2006
//# Name:  John Smith
//#
//#######################################################
MethodCallAddedToFixBug();
//#######################################################

This type of commenting drives me nuts for a couple different reasons.  For one, it takes up a huge amount of screen space, which breaks up the flow of the rest of the function, and makes it hard to understand.  Can you imagine if a single method had 3 or 4 of these "bug fixes" in them?

Secondly, for all that space taken up on screen, what information did we get?  We got a name, a date, and a number.  What was the defect?  How did this method call actually fix the defect?  We don't know.  Now, if you feel the need to add a comment when you insert code to fix a bug (and I can be convinced pretty easily that there is value to doing that), why not this?

// JS 10/2/2006 - Added call to fix Bug 1234.  This method includs missing validation logic that was causing exception
MethodAddedToFixBug();
Was that so hard?

When Good XML Goes Bad

by Nick Monday, June 02, 2008 11:42 AM

Coding Horror recently went after XML as being a rather poor option for many things.  I generally don't agree with that sentiment, but I do agree with the idea that there is good XML structure and bad.  Here is an example of bad XML structure that is required to use a control library from Janus.  This sample XML snippet is required to define the columns in their grid control:

<Columns Collection="true">
  <Column0 ID="">
    <Caption>Home Term</Caption>
    <EditType>NoEdit</EditType>
    <Position>0</Position>
    <Width>73</Width>
  </Column0>
  <Column1 ID="Column1">
    <Caption>Driver</Caption>
    <EditType>NoEdit</EditType>
    <Key>Column1</Key>
    <Position>1</Position>
  </Column1>
  <!-- ... -->
</Columns>
The controls so far look rather nice, and fairly functional and complete.  At issue here is the use of tag names like "Column0" and "Column1".  A well designed XML structure would just have "Column" tags, and then use some sort of extra identifier... which ironically... they already do!  Yet they require that the tag name matches the identifier.  Definitely not a good use of XML's inherent structure and definition abilities.

My Morning Routine

by Nick Thursday, April 24, 2008 9:37 AM

I hate Internet Explorer 7.0 with a vengeance, but unfortunately due to certain policies at work, I have to use it.  The reason why I hate it may seem trivial, but it just goes to show you how a simple annoyance can eventually upset you to no end.  Internet Explorer refuses, absolutely refuses, to honor "Lock the Toolbars".  You see, I am very anal about what toolbars and strips I have on my screen, and I like to maximize the amount of viewable space for actual browsing.  So I actually try to get as many toolbars scrunched together as I can.  For whatever reason, every morning when I log in and start IE, it reorders my toolbars so that the "Links" bar is below my del.icio.us toolbar, and I have reorder them so they are next to each other.

If for some reason IE crashes on me during the day, and I have to restart it, then I have to do the "move the toolbars" dance all over again.  Why on Earth can't IE actually remember my settings and honor them?!

I Have a Cube Neighbor...

by Nick Monday, March 17, 2008 1:19 PM
... that enjoys listening to the radio at a reasonable volume from nine to eleven.

But I Need to Get the Dust Out!

by Nick Monday, March 10, 2008 12:10 PM

I was just walking back to my cubicle, and I heard a banging noise coming from one of the cubes I was walking past.  Being the curious type, I stopped and looked in to see one of the call center supervisors (who shall remain nameless... I'll caller her "J") holding her keyboard upright and banging the edge of it against the desk and then shaking it upside down.

Me:  What are you doing?
J:  I'm cleaning my keyboard.
Me:  You could damage your keyboard by doing that you know.
J:  No I can't.  I do this all the time and it still works.  Besides, how else am I supposed to do it?
Me:  They have little vacuum cleaners you can use, or a can of compressed air.
J:  I'm not paying money for a stupid can of air when I can just do this.
Me:  I'm telling you, that's like cleaning your car by crashing into a light post to shake the dirt off.
J:  Oh Nick, stop exaggerating.

These are the people we design computers and software for.  Always remember that.

The TSA Should Be Required to Read Slashdot

by Nick Monday, March 10, 2008 9:06 AM

After all, if they're going to be the arbiters of who can and cannot board a plan based on the technology you carry, they should be up to date on what the latest technology is.  Here's the story of someone who missed their flight because the TSA didn't believe that a Mac Book Air was a real laptop:

Only... today, something is different. Instead of my bags trundling through the x-ray machine, she stops the belt.  Calls over another agent, a palaver. Another agent flocks to the screen. A gabble, a conference, some consternation.

They pull my laptop, my new laptop making its first trip with me, out of the flow of bags. One takes me aside to a partitioned cubicle. Another of the endless supply of TSA agents takes the rest of my bags to a different cubicle. No yellow brick road here, just a pair of yellow painted feet on the floor, and my flight is boarding. I am made to understand that I should stand and wait.  My laptop is on the table in front of me, just beyond reach, like I am waiting to collect my personal effects after being paroled.

I'm standing, watching my laptop on the table, listening to security clucking just behind me. "There's no drive," one says. "And no ports on the back. It has a couple of lines where the drive should be," she continues.

Your tax dollars at work.  Via Engadget.

Yahoo! The Bid Was Rejected!

by Nick Monday, February 11, 2008 10:27 AM

Count me among those who was absolutely terrified that Microsoft was going to buy out Yahoo!  Also count me as one of the ones who is breathing a sigh of relief at the news that Yahoo rejected the offer, for now.  Actually, I was a little nervous when Yahoo bought Flickr, and also del.icio.us, but as it tuns out, those fears were unfounded.  Flickr has changed very minimally, and del.icio.us hasn't changed at all.  In fact, both services have have changed so little as far as integration with Yahoo (Flickr only changed their login) that I really have to wonder why Yahoo bothered at all.  My only explanation is that Yahoo did it to prevent Google from buying either service.  Google had bought Picasa, which I found to be a very strange purchase, since at the time, Picasa didn't have a web presence.  Google also didn't have a bookmarking service.  Google ended up having to build Picasa's web album infrastructure, and they built their own bookmarking infrastructure.  Neither of which have taken off like Flickr and del.icio.us.  Windows Live services have tanked as well.

But where Yahoo was smart and left those services alone to excel as they had prior the purchase, I have absolutely no faith in Microsoft to do the same.  Flickr will first get wrapped up in Windows Live ID, and then have their content pulled in with Windows Live as fast as humanly possible.  They will also replace the very capable Flash engine with Silverlight.  Just wait and see.  I have no idea what would happen to del.icio.us.  They'd probably port all your bookmarks to Windows Live and then close up that shop.

Anyone disagree?

Web 2.0 People!

by Nick Friday, June 15, 2007 8:18 AM

Yesterday at work I was trying to scan around MSDN at some documentation on Excel automation, and it was super slow.  It was really bugging the hell out of me.

Me:  Man... MSDN is slow today.

Coworker:  Actually, I'm trying to browse somewhere else and it's just crawling.

Me:  Don't we have dual T1's coming in here?

Coworker:  Yeah, I don't get it.

Then a few minutes later it all began to make sense.  A high priority email came in from one of our other offices, sent to the majority of the company (just shy of the "Everyone" list) that had a 6 MB WMV file.  It was a clip from a news broadcast talking about Microsoft Surface.

Who sends video files as email attachments to an entire company any more?!  Have you not heard of Google Video, YouTube, or the many other video sharing websites in existance?  Send a link to a YouTube video... it will take up a lot less bandwidth.  And who sends it as a high priority email to boot?!

Web 2.0 people... learn it... live it... love it.  And here is one video that demonstrates Surface... from YouTube of course.

Annoying Outlook Bug

by Nick Tuesday, June 12, 2007 1:44 PM

My new laptop for work is a really nice Dell.  In fact, it's the same Dell laptop I bought for myself a few months ago, except it doesn't have some of the extra features I got like Bluetooth and the nicer screen.  Anyway, we use Exchange here and I have Outlook 2007 installed.  However, whenever someone sent me a meeting request, even if they set it up as one time, it was always showing up as recurring.  After some searching, I found the following on Google Groups.  The suggestion was to look in Add/Remove Programs and find the following item:

Sure enough... I looked and there it was.  If you uninstall that, the problem goes away.  I also noticed that uninstalling this program makes Outlook load a lot faster than before.  Previously it seemed like my entire machine was hanging for about 1 minute after Outlook started.  The poster in the forum made it sound like this was something Dell installs by default.

What the heck could be the purpose for this program?!

About Me

Nick Schweitzer Nick Schweitzer
Wauwatosa, WI

Contact Me
I'm a Software Consultant in the Milwaukee area. Among various geeky pursuits, I'm also an amateur triathlete, and enjoy rock climbing. I also like to think I'm a political pundit. ... Full Bio

Community Involvement

Twitter

Archives

Flickr Photos

www.flickr.com
This is a Flickr badge showing public photos and videos from Nick_Schweitzer. Make your own badge here.

Standard Disclaimers

Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2014 Nick Schweitzer