Have you ever noticed that blogs are full of misinformation and lies? In particular, I'm referring to this blog. The one you're reading right now. For example, yesterday's post was so bad that it is conclusive proof that I've jumped the shark.
Again.
Apparently, according to one Reddit commenter, the information presented here is downright dangerous:
Jeff Atwood has always held the distinction of having the most dangerous programming blog, in that some young or aspiring developers may actually listen to some of his "advice", but now he's somehow managed to snag the achievement of having the most inane programming blog as well.To put it in more frank terms Jeff: What you've just written is one of the most insanely idiotic things I have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought. Everyone in this room is now dumber for having read this post. I award you no points, and may God have mercy on your soul.
I enjoyed the Billy Madison quote, but I'm not sure my blog has earned that particular distinction yet. If this blog is the most dangerous content that young, inexperienced developers have ever read then, well, I'd have to seriously question whether or not they've ever actually used this thing we call the "world wide web".
Allow me to illustrate with an example.
Today I happened across this blog entry from Mads Kristensen. In it, Mads explains that Deflate is faster than GZip.
First I tested theGZipStreamand then theDeflateStream. I expected a minor difference because the two compression methods are different, but the result astonished me. I measured the DeflateStream to be 41% faster than GZip. That's a very big difference. With this knowledge, I'll have to change the HTTP compression module to choose Deflate over GZip.
This was a surprising result to me, because the two compression algorithms are very closely related. On the other hand, we use GZip extensively and heavily to cache HTML fragment output strings on the Stack Overflow server, as Scott Hanselman explains. If Deflate really is that much faster, we need to switch to it!
But, like any veteran internet user, I never take what I read on a blog -- or any other site on the internet, for that matter -- as fact. Rather, it's a germ of an intriguing idea, a call to action. I fired up my IDE and built a small test harness to test for myself: is Deflate faster than GZip?
public static class StopwatchExtensions
{
public static long Time(this Stopwatch sw, Action action, int iterations)
{
sw.Reset();
sw.Start();
for (int i = 0; i < iterations; i++) { action(); }
sw.Stop();
return sw.ElapsedMilliseconds;
}
}
class Program
{
static void Main(string[] args)
{
string s = File.ReadAllText(@"c:\test.html");
byte[] b;
var sw = new Stopwatch();
b = CompressGzip(s);
Console.WriteLine("gzip size: " + b.Length);
Console.WriteLine(sw.Time(() => CompressGzip(s), 1000));
Console.WriteLine(sw.Time(() => DecompressGzip(b), 1000));
b = CompressDeflate(s);
Console.WriteLine("deflate size: " + b.Length);
Console.WriteLine(sw.Time(() => CompressDeflate(s), 1000));
Console.WriteLine(sw.Time(() => DecompressDeflate(b), 1000));
}
}
The results were surprising: on my box, GZip is just as fast as Deflate. For giant strings, for medium strings, for small strings. In every possible testing combination I can think of, Deflate is nowhere near 40% faster.
gzip size: 3125 242 171 deflate size: 3107 225 149
That's not exactly what Mads' blog entry tells me should happen. Do I think Mads is an idiot for posting this? Well, no. I don't.
Is this the type of dangerous misinformation that blogs are vilified for? Should I be angry at Mads for posting this? Not at all. I learned a bit more about Deflate and GZip. It provided an opportunity for me to refactor my compression code some. I even learned how to benchmark using lambda syntax. If I hadn't read this post, if it hadn't provided that impetus of an idea for me to ponder, I wouldn't have bothered.
I am a better programmer for having read that blog post. Even though, near as I can tell, it's offering inaccurate advice.
Update: I got a bit more curious about this, so I ran some more tests on different machines. Here are the results, in milliseconds, for a thousand runs each using the Google homepage HTML as the target (it's about 7 Kb):
How much faster is Deflate than GZip?
| Core 2 Duo 3.5 Ghz | Core 2 Quad 1.86 Ghz | Athlon X2 2.1 Ghz | |
| Compress | 8% faster | 8% faster | 50% faster |
| Decompress | 15% faster | 17% faster | 37% faster |
There's the 40% Mads was talking about. That is a little shocking when you consider that GZip is simply Deflate plus a checksum and header/footer! (You can download the source code for this test and try it yourself.)
So my point -- and I do have one -- is this: when you say that the information presented on a blog is "dangerous", you're implying the audience is too dumb or inept to read critically.
I, for one, have too much respect for my audience to ever do that. I am continually humbled by the quality of the comments and discussion on the blog entries I post. In fact, I'd say that has been the single most surprising thing I've learned in my four plus years of blogging: the best content always begins where the blog post ends. My audience is far, far smarter than I will ever be.
On second thought, maybe what I promote on this blog is dangerous: thinking for yourself.
But I'm pretty confident you can handle that.
I felt this post (and in fact, your followup comments) came off as more than a little defensive.
Defensive? Why do you say I'm defensive? I'm not defensive! You're defensive!
Jeff Atwood on October 24, 2008 2:06 AMWow, a lot of fanboys that couldn't wait to bend over and kiss Jeff's ass!
(Will I get a lot of replies to that? Does that make me dangerous? Does it make me a great blogger because I can piss people off?! By the way, I've left comments kissing his ass when *I* think he's right.)
Jeff's seems like a pretty good guys. He often rights interesting stuff. Some of it turns me off but I just ignore it. I would honestly prefer if he stuck to the business of programming (his forte on the blog) rather than the business of being a programmer (his views can not be applicable to everyone's situation). In his definition, I guess I am not a programmer because I do not have interest in marketing. Interesting word marketing because it can mean a lot of different things to a lot of different people. I grokked the meaning of his post, but soured on his ability as a writer in choosing better language. It would have been much less inflammatory (yes, Jeff could be accused of using the blog as his own flamebait) if he talked about communication, or just referred to it as selling your ideas. Personally, I have seen way to much marketing that is highly political and destructive.
Keep up the good work Jeff.
IAmNotAFanboy on October 24, 2008 2:08 AMI think I'll put this disclaimer on my future software products: I am not responsible for this software. Jeff Atwood, Steve Yegge, and Joel Spolsky are. As well as Mads Kristensen and various Reddit commentors.
This blog is a resource, and last I checked, Steve Atwood isn't writing my code for me. That means that I am responsible for the information I get from this blog and how I use it. That means that before I use or adopt a recommended approach, I should have invested some time to understanding the recommended approach, why it was used, similarities and differences between my situation and his, correctness, and so on. Many times, one or more of these aspects aren't clear in the article, but reader comments (and writer responses) are especially useful for more detailed understanding.
After all, God said, Thou shalt not use goto statements. So, better leave it at that, right?
Doug B on October 24, 2008 2:20 AMI frequently read your blog and I think you do well to write, because you're good at it. But I don't think devoting whole blog entries to defend previous ones in such a wise choise. It doesn't really have any point. You write what you think, so if you document it properly the first time, there's no point in returning to it again just because some people voiced their disagreement. Some will always disagree, and be loud about it. That's internet for ya.
mikeman on October 24, 2008 3:09 AMAs a software development manager, I find the whole idea of my guys turning to a single guru and blindly following his/her advice ridiculous. I don't want automatons writing code; I want intelligent, thoughtful, and broadly educated people writing code.
People. Well-rounded ones at that. I have no desire to hire people who cannot market their ideas to teammates and/or our projects to customers.
We can quibble as much as we want over the definition of marketing, but I don't think that was the goal of the referenced post. The imaginary DD programmer that he rolled was good at programming, no doubt, but he could also do all of the tasks that help teams and individuals function.
I am of the mind that even the Superstar Programmer pundits would agree that Superstars don't get to the Ivory Tower of Awesomeness by raw coding power alone. I also think they would say that you cannot teach Superstar Programming Skills to a marketer, but you can teach marketing skills to the Superstars.
The rest of us just become managers ...
gemils on October 24, 2008 3:28 AMWelcome back, Jeff. I was starting to get concerned after going several days without a new post here. And I agree with your point -- I rarely agree with 100% with every blog that I browser regularly, yours included.
MoffDub on October 24, 2008 3:32 AMEh, I'm a 'nothing' on the grand scale of computer programmers. I've been working as a full-time developer for about 2.5 years now. I'm not particularly smart or gifted and while I'd love to spend lots of free time learning more about computer programming; I'm at a stage in my life where it takes a backseat to other things. Having said that, I don't have kids or a wife, so I don't see that changing anytime soon.
So, take my opinion with a grain of salt...
From what I've seen and learned as a developer (as an IT Consultant specifically) is that appearance REALLY is important. In my past job, dealing with clients, as well as some on-the-side contract work I've done the people who write my check don't understand computers. They certainly don't understand programming. When a client requests a feature they really have no idea or understanding of the scope of that change.
When people don't understand *what* you do and can't very well measure how well you do it (Spagetti code in 4 hours that works or excellent code in 5 hours - what looks better to a client who doesn't know anything about development and who pays you $100 an hour. Hint, they'd rather have it done in 4 - most of them anyway).
When I read the post about marketing, it reminded me of my consulting days. Days when the whole team (five of us, staffed at the corporate headquarters of a large retail chain) all had to show up 25 minutes early - so that, even if there was traffic and we were running 20 minutes late - we'd make it on time. Days when even if you worked through lunch, you couldn't leave until 5.
I was a fresh out of college kid at the time and I didn't understand why it mattered. I'll code just as good from 7:30am - 5:00pm as I would from 8:30am-6:30pm. But the fact of it is, being there early and never leaving early left a real nice impression on all the workers.
That's just one tiny example, but there was a WHOLE LOT more to being a good consultant than doing a great job writing code. If the customer understood code - they probably wouldn't have hired us. That meant helping the client understand how easy or how hard something was. That meant, having visibility to the client. Interacting with the client. Making them think you were generally a nice, honest person who wasn't going to screw them over. If you could go even a little further and seem friendly, well, that was all the better.
Looking back, I didn't see why it should matter...and maybe for some of the amazing hot-shot programmers who land jobs at Google on their amazing technical merit - it doesn't. But for a guy like me...well...I can use all the help I can get.
RobDude on October 24, 2008 3:35 AMI'm a 16-year-old developer, and I have cited your posts in the past to some of my ex-workmates.
oops.
Andrew Chase on October 24, 2008 3:44 AMI love reading your blog, and I'm a young, relatively inexperienced developer. I don't agree with everything, and sometimes I take things at face value. If I screw up using an idea from here, I won't blame you. I appreciate the nuggets of thought you give me to chew on. Keep up the good work.
JJ on October 24, 2008 4:04 AMI think that the number of reponses to comments Jeff has made says a lot about what he is trying to get across. You learn by accepting (constructive) criticism and not by bicker.
I've not always agreed with what Jeff has posted, but I read and try to understand HIS viewpoint first before I interject mine. I think that by doing so then, and only then, can you really have ground to counter his opinions.
It's kinda like the current election; does Obama have a better platform than McCain, or vice versa? Which actually has a majority of beliefs that agree with yours? You can take this same principle and apply it to Jeff's posts and the comments to his posts. Once you gather those facts and start to compile them into a solid grounding into how to define YOUR principles and beliefs, you become a better programmer, and possibly a better person overall.
When you read one of his posts then dig into the comments, do you find that you start to understand the overall post better? Even coming up with counterpoints that you feel actually have merit? Then Jeff has done what he has set out to do. MAKE YOU THINK!
There's a particular phrase that isn't just for a particular race, but for all of mankind: A mind is a terrible thing to waste. Be it a programmer or otherwise, don't just focus on one thing and one thing only. Look at the big picture and see what there is to see from someone else's perspective.
Thanks for all the (mis)information, Jeff! You certainly have made me think more times than I can remember!
John Baughman on October 24, 2008 4:10 AMI think it's a very safe rule to not take any Redditor Microsoft-related comments that seriously. That group is serially against all things MS, as evidenced by the consistent anti-Atwood comments there and bigotry against MS technologies and developers. It's just a foregone conclusion there. The truth is, Jeff could say anything, and they'd find some criticism to make. It's part of their culture and identity. Even responding to them gives them too much credit. To wit, don't reward bad behavior.
I don't take much truck with generalizing about an entire population of users, but the evidence is overwhelming. While Reddit users are comparatively one the smarter groups on the web, they are also the most guilty of deep-seated bias and rampant group-think.
Of course this blog isn't dangerous to programmers. The supposition is as stupid as it is preposterous. Not only is it not a very technical blog, but it's also just that - a blog. And I disagree that Atwood has a larger responsibility than any other blogger. The onus falls to each individual developer to analyze information sources themselves.
T. Morgan on October 24, 2008 4:22 AM
Hi.
I wanted to sign up for StackOverflow but couldn't use my (probably still) existing Yahoo OpenID.
Then I wanted to leave a suggestion for improving a certain aspect of the site, but couldn't because I wasn't signed in.
You might want to consider letting users sign up with a good old fashioned username password -combo too.
OpenID just isn't all that appealing.
Someone on October 24, 2008 4:23 AMI agree critical thinking should be applied to everything you read, especially if it is online. I also agree that is is a reasonable expectation to have for almost everyone.
However experience and knowlege about a topic make a huge difference in how effectively someone can use their criticial thinking skills to form their own opinions on a particular issue.
A entry level programmer might not have the necessary background to see the drawbacks of a more advanced developer's approach, not because they don't evaluate it critically, but because they don't have suffecient context to have anything other than a trust-based conclusion.
This is isn't necessarily bad, it's part of human development.
I think it does mean that who offer advice have to be aware that those less advanced may be have to form some of their opinions in using little more than technotrust, simply because they haven't learned more.
Your writing is excellent Jeff. You stir thought into the minds of people who are too comfortable at being as good as they already are.
Of course a good reader should take what is published on the internet with a grain of salt, and to me that is a very good defense against the slander that people will label you with.
I always get something out of your articles whether or not I agree with them!
Keep it up dude.
genghis on October 24, 2008 4:54 AMThis is a great blog post. I know that for sure, when I've disagreed with you, I've learned something for myself by figuring out exactly what I disagreed with you on, or how to express it.
-Max
Max Kanat-Alexander on October 24, 2008 4:56 AMJeff, there is a big difference between Mads Kristensen' s blog and this blog. There are a lot more readers for this blog.
Many readers will take what you write as the last word in programming.
You ought to write more responsibly.
Thats it.
Niyaz PK on October 24, 2008 6:07 AMWas the Happy Gilmore (as opposed to Billy Madison) reference a joke pointed at the misinformation you're talking about? =)
Sammy Larbi on October 24, 2008 6:08 AMDisagreement is the only way to learn anything! Or am I missing something? The only times I learn -- about programming or anything else -- are when my opinions about what's true or possible are challenged, changed or expanded. Even expansion is a form of disagreement.
If I read something and just accept it as true without trying to poke holes in it then I learn nothing -- I'm just being lazy.
The point made above about experienced vs. novice programmers is interesting, but I don't think it gives enough credit to beginning developers -- even novices must take responsibility for evaluating different advice and techniques. A good way to do this is to absorb and synthesize information from a variety of sources. Sure, experience counts -- but I have more often seen experienced coders doing things in weird, wonky ways than inexperienced ones. Sometimes one's clutter of experience must be flushed to see a problem anew.
-Matt
Matt Perry on October 24, 2008 6:12 AMMarketing is either promoting fear or sex to the appropriate audience.
Programmer Audience:
Fear - that other code would never work
Sex - look at this class hierarchy
Manager Audience:
Fear - that other code will take 4 weeks to develop/fix
Sex - look at the expected low TR rate because of this
Customer Audience:
Fear - that other code is unreliable and expensive
Sex - this code is reliable and cheap
Okay, so do I get a marketing_skill++? ... didn't think so. This article appears to be marketing something too to someone.
charlie on October 24, 2008 6:13 AMYou are not resetting the Stopwatch so EllapsedMilliseconds continues to grow with each Start/Stop
Shaun on October 24, 2008 6:14 AMMany readers will take what you write as the last word in programming.
I do not think any programmer should ever do that for anything he or she reads, even if it's Knuth. And I am far, far from Knuth.
Jeff Atwood on October 24, 2008 6:14 AMI completely disagree Niyaz. A blog is an author expressing his or her thoughts/ideas, nothing else. If readers take what is written on a blog for a fact, well frankly that is not the authors fault.
It's as with every other type of media. Don't believe it just because you read/hear it. Think for yourself.
Tchami on October 24, 2008 6:15 AMWas the Happy Gilmore (as opposed to Billy Madison) reference a joke pointed at the misinformation you're talking about? =)
Heh, you give me too much credit. I'm not that clever. Fixed the post.
You are not resetting the Stopwatch so EllapsedMilliseconds continues to grow with each Start/Stop
Look more closely, or, try it yourself and see.
EDIT: of course you're right. Doh. Remember when I said the community was smarter than me? Proof! Corrected.
Jeff Atwood on October 24, 2008 6:19 AMHmm... I really don't see how you can seriously compare a blog entry about a verifiable technical issue and a blog entry that can affect a person's life and can only be validated over the course of a career.
Also, you didn't pick the most salient criticism from the reddit discussion:
http://www.reddit.com/r/programming/comments/78vq3/jeff_atwood_finally_jumps_the_shark/c05zp1u
The thing with articles like this is, it's basically boosterism for the term Marketing. It starts with the (shocking) claim that marketing isn't so bad - actually we should all be good at it. Then it says, Actually by marketing we really mean basic communication skills, so don't be frightened of this term marketing or of being good at it!
What irritates the shit out of me is that it conflates these two, falsely. What Atwood really means - what he can ONLY mean - in this conflation is that marketing is more important than programming in a programmer. Normal communication is not the same thing as selling yourself or selling what you've been up to lately. And the conflation is a totally Marketing attitude. To Marketing, everything is marketing. You know what guys? It's a good idea not to be a shrinking violet, and to have some conversation skills. And yes, the boundary between non-manipulative communication and manipulative communication is hazy. But telling programmers that they should all practice a more or less professional salesmanship, because they are (apparently) all social misfits, is insulting, and fucking annoying.
joe on October 24, 2008 6:28 AMTchami,
I will not take whatever written here for a fact; nor will you.
But that does not relieve Jeff from writing responsibly. This blog is high up in Google for many search terms and there are a lot of visitors to this blog. You cannot run away from that fact.
If Jeff can do something to stop WTF programmers from made, that is to write excellent programming articles that can be used as a fact rather than whining about the fact that this is 'just a blog'.
'Just a blog' applies to my blog where there are only a handful of readers. The 'just a blog' excuse cannot be used for a very popular blog like this for giving incorrect information.
Niyaz PK on October 24, 2008 6:30 AMJeff, the point for me is revealed in this sentence of yours:
But, like any veteran internet user, I never take what I read on a blog -- or any other site on the internet, for that matter -- as fact. Rather, it's a germ of an intriguing idea, a call to action.
Many many programmers (or internet users in general) believe what they see - without doing the investigation first. I disagree with Niyaz PK above - users who do not do the extra fingerwork to verify what they read will be burnt by their lazieness sooner or later - and that's a good thing. You can only write about what you know - even if in the due course of events that turns out to be incorrect. Scientists have been working this way for hundreds of years. To suggest that we (as bloggers) start writing about nothing but the absolute truth is patently absurd (besides, some people will argue that trut is subjective rather than objective).
Keep up the good work.
Jeff Atwood has always held the distinction of having the most dangerous programming blog ...
The arrogant, angry and hysterical will always be with us. I hope so. They're so CUTE!
Jeff,
Normally, it is the just the nature of media that people belive what they read,hear or watch. However, in your niche, people who are reading this blog, are genreally intelligent people, who should verify what they reas. Also a blog is meant to stimulate the thoughts, and should not be taken as absolute jugdement. Also, if you keep a lot of people's interest in your mind, it kills the creativity.
Jeff, I've seen quite a few comments/posts on Reddit bashing you lately.
Mostly it's just people who need to get over themselves and realize they have better things to do with their time.
I've often found your blog very educational, and your writing style pleasant too.
You bring up lots of topics that are useful reading, but might be unknown to many of your readers (like me).
As for all the bashing, I think should just ignore it all.
Besides, saying something like What you've just written is one of the most insanely idiotic things I have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational thought is just one of the most insanely idiotic things I've ever heard.
Somewhere on the Internet, a typical redditor just creamed himself and felt an urge to post CCC-C-C-C-COMBO-BREAKER!1!.
Considering Blogs Harmful Considered Harmful Considered Harmful Considered Harmful..
shiranaihito on October 24, 2008 6:36 AMsw.Start() should be sw.StartNew(), Mr. Dangerous.
pingpong on October 24, 2008 6:38 AMHow can GZip be faster than Deflate? GZip uses the exact same compression algorithm as Deflate (the deflate algorithm), but adds a header and a footer and calculates a CRC-32 checksum. Because of this, it should ALWAYS be slower than Deflate.
The fact that in your test GZip comes out faster might be because of the garbage collector or some other external factor. I suggest you change the order of your code: first test Deflate and then test GZip. If GZip is still faster, I'll retract my words.
Tommy Carlier on October 24, 2008 6:38 AMYou are not resetting the Stopwatch so EllapsedMilliseconds continues to grow with each Start/Stop
Sorry to say this Jeff, but I'd agree... MSDN states that the call to Stopwatch.Stop() does not reset the counter, and calling Stopwatch.Start() will continue from the previous time.
It seems to fit your data too. Looking at the differences between values,
GZip - Compress = 243, Decompress = 163
Deflate - Compress = 231, Decompress = 157
Not much in it really. Probably what I would expect considering the similar processing involved.
P.S. I'm with you on the dangerous principle though Jeff. Never just believe anything you read/hear - always ask youself - do I agree? Does this make sense?
Andy Wilkinson on October 24, 2008 6:39 AMa blog entry that can affect a person's life and can only be validated over the course of a career
At the risk of really distasteful name dropping and speaking on behalf of other people, I'm 99.9% sure that Steve Yegge and Joel Spolsky would all agree with the point of yesterday's post: Learning a little bit about marketing will make you a better programmer.
So, based on the sum of *our* careers, that is one thing we have all learned and would like to share with other programmers.
what he can ONLY mean - in this conflation is that marketing is more important than programming in a programmer
Never said that, of course, and I don't believe it.
Jeff Atwood on October 24, 2008 6:41 AMThomi, Varun Mahajan, Jeff
What I can understand from your points:
It is OK to write whatever you FEEL like writing in a programming blog. The readers are supposed to be intelligent (if not, they are doomed. isn't it?) and so they ought to search and find the correct information from somewhere else.
Is that it?
I mean, I seriously cannot understand this. What is the need for reading all these blogs if I should verify every single word you write?
Also, tell me guys, where am I supposed to get the CORRECT information from?
Some other programming blog? What is the guarantee that it will be correct?
Some programming website? What is the guarantee that it will be correct?
Wikipedia?
What is the guarantee that the information in the WWW is correct if everybody thinks like you guys?
You try your best to write a correct article. Mistakes may happen; acknowledge and update. That is what I would suggest. (Rather than telling people will verify whatever crap you will write)
Niyaz PK on October 24, 2008 6:45 AMYou do start and stop, but /reset/?
Of course you're right.
sw.Start() should be sw.StartNew(), Mr. Dangerous.
Yep. :P I hope no young, inexperienced programmers were reading that! Corrected.
Jeff Atwood on October 24, 2008 6:45 AMWell....maybe Jeff, but you gotta admit this is a great quote.
No, he's more like those girls in elementary school who were really good at jumping rope, and would jump the two opposite-ways-spinning ropes during recess for minutes at a time.
Only with sharks.
Wow, that's bad-ass!
WOW!!! how do you get them to bend like that?...I mean I know they're mostly cartilage and all but still. And I'm assuming the tail is easy to hold on to but what about the other end with all the pointy-bits? what do you hold on to there?
Love the show.
Keng on October 24, 2008 6:46 AMJeff,
From the doc it does seem like, Reset() is required in the stopwatch, haven't used the class so don't know what the actual semantics are.
But fits nicely into the pattern that you describe, 2x improvement for larger strings and smaller for smaller files.
Sijin on October 24, 2008 6:50 AMSo Mads was correct then, after all?
Bad testing is worse than not testing at all.
You're still wrong though: GZip is not as fast as Deflate. It's ALWAYS slower. How much slower depends on the situation. GZip just uses Deflate for its compression, but it also calculates a CRC-32 checksum and adds a header and footer to the compressed data.
Hi Jeff.
I don’t think that you should write “more responsibly”. This is your blog, yours and no one else’s. You have total freedom to write whatever you want, the way that you want.
The ones that should act more responsibly are us. We must think for ourselves, we must not take whatever we read as the whole truth. We are developers; we claim to be smart people. If we are that smart, then we shouldn’t be around taking anything that we read for granted.
Regards,
Arturo Martnez.
Arturo Martinez on October 24, 2008 6:53 AMI don't know much about the inner workings of the Stopwatch, but how do you know that it is showing the exact time it is used to run your code? What if there was some context switching in between?
I think that is what happened to Mads' calculation.
Niyaz PK on October 24, 2008 6:53 AMI was wondering which site the trolls all had gone off to. Surely a story with 25 comments on reddit doesn't really warrant a blog post? Not that it wasn't a good read.
Could you enlighten us on why the stopwatch code works? I'm not a .NET programmer and trying to navigate msdn makes me want to stab myself.
wds on October 24, 2008 6:53 AMI don't think I walked away feeling like everything he said was the truth; but I did walk away with a valuable and accurate lesson from yesterday's blogpost. We DO need to learn to market ourselves better. It may not be the most valuable thing, but it will certainly separate you from the mediocre. Also, the DND reference was kind of (albeit sort of unnecessary) accurate.
At any rate, I think you guys are coming down too hard on him. People shouldn't walk away taking everything implicitly to heart, but rather get the gist of his point, see if it's applicable to their scenario, and apply it if so.
Jeff - I enjoy and appreciate your blog, keep it up and many thanks.
Michael Foord on October 24, 2008 6:56 AMYou're still wrong though: GZip is not as fast as Deflate. It's ALWAYS slower. How much slower depends on the situation.
Like I was saying:
the best content always begins where the blog post ends. My audience is far, far smarter than I will ever be.
Jeff Atwood on October 24, 2008 6:56 AMJeff,
It's ironic that the people who could benefit the most from your idea are the one's who reject it the most forcefully. I could find fault with the post if I was so inclined, but that is true of almost everything, and this isn't a marketing blog anyway. I would rather see more ideas in imperfect posts than fewer ideas in perfect posts.
The best way to approach most writing is to try to figure out what the big idea is and then move on. The big idea in that post was that persuasion is important for technical people. If you really want to piss them off, do a post on the importance of networking for technical people.
It really sucks that many technical decisions are affected by non-technical considerations and that it's not enough to simply have the best technical solution. It really, really sucks. However, that's the way humans are wired and that's the way the world works. If we want to make a contribution, we have to figure out how to get others to accept our ideas and our work, and that involves persuasion. Or coercion, but that's probably the next post.
Thanks for the blog.
Matt
Matt on October 24, 2008 6:59 AMJeff,
bahbar is absolutely right. Just change the order of tests (deflate first, gzip second) and you will see.
So in reality you got:
gzip:
243
163
deflate:
231
157
sound of us all falling for your link bait ;)
It's intentional right? The headline The One Thing Every Software Engineer Should Know is straight out of How to Write Link Bait Headlines 101 (see CopyBlogger http://www.copyblogger.com/).
I'm sure you can see why some people don't like posts like that. The headlines are definitive and you are forcefully opinionated. It's like saying Fact: Deflate IS Faster than Gzip because it is a better headline than Deflate is faster than Gzip when you run this bit of code I hacked up, on my machine, when the whole string is zeros.
There are people out there that look up to you and will parrot what you say. People of more experience will take out what is useful and ignore the rest. But some of the less experienced in your 114,000 readers are at risk of Atwood disease.
In the case of Mads post, I would wager that way more than 50% of the readers of that post would take it as fact that Deflate was faster. And how did Mads post make you a better programmer? All it did was pique your interest. The post itself gave you nothing but that. With your argument me writing any old crap about a subject you happen to be interested in would have made you a better programmer.
It is your blog and your write want to. I bet you could not believe your luck that someone gave you the opportunity to write the headline You're Reading The World's Most Dangerous Programming Blog! ;)
Ben Taylor on October 24, 2008 7:01 AMWith your argument me writing any old crap about a subject you happen to be interested in would have made you a better programmer.
Writing about subjects you enjoy will make *you* a better programmer, is the point.
The headline The One Thing Every Software Engineer Should Know is straight out of How to Write Link Bait Headlines 101
I blog to help others and also to learn. As it turns out both are aided by getting folks to actually read the stuff. Please pardon the necessary devices.
I've seen the attitude of your blog sucks because it talks about marketing instead of insert-programming-language-here many times, even in fields as remote as finances (is the kind of reaction the guy who wrote Rich dad, poor dad adresses). Maybe it's just me, but I tend to associate it with code-monkeys, those who think that just by writing code you can create Google and be rich and successful.
Personally, I always considered this blog's orientation towards human factors what makes it different (and better) from other sites with the trick for making insert-task-here faster in Visual C#++ .Net focus, but being an uncommon point of view, this kind of hostile reaction doesn't surprise me. Is already hard enough to find not only programmers, but employees in general who can write and communicate ideas in a clear way, and you pretend a programmer to learn marketing, too? That's crazy talk! :)
Martin on October 24, 2008 7:06 AMI have nothing to worry about; I know PHP and Bash scripting, which according to every other programmer and/or developer I've ever talked to, neither of which qualify me as a programmer/developer.
So I guess I'm safe reading your blog. Good thing, too, the trolls had me worried that the end of my career in computers was nigh at hand!
*rolls eyes*
Point is this; the trolls that will tear in to you for taking a holistic approach to development (including marketing, technical writing, copy editing, graphic and interface design, all the things that are needed to make a good program a GOOD PROGRAM) are the same trolls who will tear in to you for your choice of language or, even, your choice of text editor.
Todd on October 24, 2008 7:10 AMExactly. If you are too stupid to recognize most situations when something is not right, or too naive to realize that people can be wrong, or too fucking lazy to bother looking into it for yourself, then you have NO business writing programs that others will depend on. You are lazy, slow, and ignorant, and I would rather never have to deal with you, especially for support issues.
Take some god damn responsibility for yourself and stop expecting everyone to hold your hand and spoon feed you, and then blaming others when your own ignorance and stupidity gets you into trouble.
It's called being a mature and responsible adult. Learn when you can. Recognize when you screw up. Get over it.
Keep up the good work, Jeff. The fact you're inspiring such impassioned comments only means that you've got some attention, and you have people scared.
I think the problem is that most programmers have entirely missed the point of programming. I'm a big proponent of technology as a tool, and as a means, but not an end in itself.
Everyone gets scared when their way of life is questioned. That's essentially what you did on the post that inspired that comment. Too often I see programmers and other technologists fall into a sort of tunnel vision where they begin to worship their trade, and completely ignore the purpose of what they're doing.
While I do think that in many ways programming can be an art form. There is beautiful and elegant code. When it comes down to it the only people that will ever care about that are other programmers. I think it's safe to say that in the vast majority of cases other programmers are not your customer, or your user. If you've lost focus on who is going to be using your software, and what they're going to be doing with it then you're just involved in self gratification.
Alex on October 24, 2008 7:15 AMJeff,
You write your thoughts and your believes, and I thank you for that!
In the land of the blind, the one-eyed man is king -- Desiderius Erasmus
I am the blind. You, Spolsky, and others are kings to me.
I am smart enough to understand your vision is not perfect, and may stumble and fall. But I am sure as hell that I am better off following your advice that I would be on my own.
If you tell me to turn right, I will. I will also extend my arms to fell any obstacles I may encounter.
Let these fools complain about your lack of a perfect vision. But please, I beg you: Do not let them take your advice away from me!
I do not hold your responsible for my safety. I just thank your kindness.
...and yet, I am stubborn enough to sometimes go in the opposite direction.
Ricardo C on October 24, 2008 7:15 AMCheers. I've learned tons from you. Recently discussing about your article about XML and why we shouldn't take it for granted.. among another things I have learned :) Keep up the good work bud
Sameer Alibhai on October 24, 2008 7:18 AMI was, just a few short months ago, of the opinion that Jeff had a greater responsibility to post carefully because of his large readership. Almost every post where he mentions this is the most important or this isn't very important really, I cringe. What if some naive automaton interprets Jeff literaly? My god, we could be overwhelmed by marketing guys who only use VB, won't learn xml and don't unit test!
I now believe that if you spend the whole article trying to be completely correct and careful on all points, you really can't make a point. Would you write 4000 lines of carefully constructed code to avoid a condition where the server would have to be on fire for the error to occur? Could you imagine the size of your favorite coding book with examples if every example had to be completely secure, run on and be optimized for the absolute best performance on every platform (especially those not invented yet), and be a shining example of idealistic ivory tower code? Oh and simple and understandable, that's crucial right?
It's just like when you hand off your favorite tome of programming knowledge to an impressionable new hire: This is a good book, but use your head.
I still worry a little about the introverts and conformists. There's an awful lot of those kind of programmers and they certainly aren't going to call Jeff out or dare to disagree. And what if Joel has a conflicting opinion? Maybe marketing is safer, much stronger herd mentality there...
SteveJ on October 24, 2008 7:18 AMOn second thought (after reading the comments) just do what Joel does and turn off the comments lol
Sameer Alibhai on October 24, 2008 7:19 AMThat's kinda' crazy. Blogs (esp technical ones) promote discussion and invite readers to take up the challenge of proving or disproving ideas if they so desire. In no way should anyone take a blog entry as fact.
Of course, I'm not stating anything most people don't already know.
Scott Marlowe on October 24, 2008 7:19 AMJeff
I've been a long time reader and love the fact that your posts don't just focus on technical issues. I don't always agree with what you say, but the fact that it has me thinking about the issues and about another possible point of view is what keeps me coming back.
As a developer in a very small software house (only three of us), I couldn't agree more that an understanding of marketing is a very useful tool. It may not improve the quality of my code, but it enables me to focus on the aspects of the application that matter to our current and potential users, and allocate my time more appropriately. At the end of the day, my job is to create software that sells, and anything that will help me achieve that is a welcome addition to my skill set.
Don't let the nay-sayers get to you and keep on posting.
Tim Greaves on October 24, 2008 7:24 AMAfter reading all those blog posts... okay, i only read the first twenty or so. Anyhow, after reading, I realized something.
b The people who most needed to gain something from your last post are the very people who would refuse to accept any of it./b Their attitudes as purists is reminiscent of those who believe in art for arts sake. It doesn't matter if you get paid, or if anyone understand your work. It doesn't matter if anyone cares. It just matters that you did something cool and *you* know it, and if no one else understands, then that's clearly a sign of failure on their part.
I collaborated with a guy like that on a current project. While he is smart, and his architecture was useful, I will NEVER share a contract with him again. In the end the time I had to spend convincing him to humble himself by explaining or documenting his genius, much less proposing ideas to me or *gasp* the client, cost me more than the fractional savings from his cool and innovative design.
The famous inventors and researchers you hear about in history, no matter how hated, all did marketing. For every one of them, there were usually five to twenty others doing exactly the same thing. The others just couldn't convince anyone to listen.
Yes programming is just writing code. However saying a programmer just programs shows a vast ignorance. Any baseball player who only showed up to play baseball would quickly find himself back in the minors. Or has everyone forgotten a pitcher who despite being great at playing baseball got booted for bad marketing?
Russ on October 24, 2008 7:25 AMSteveJ,
Good points. I agree.
Not only was the benchmark messed up, but there is at least one invalid assumption here. IIS has its own implementation of Deflate, so depending on where in the pipeline you apply compression, this benchmark may not even be relevant.
And it's a good thing that it has its own implementation, because the .NET implementation is absolutely horrible.
For a bit of background, deflate is a data encoding format, not a compression algorithm (RFC 1951). The implementation of deflate has a lot of leeway in how clever it wants to be in trying to compress the data. The inflate (decompression) process, on the other hand, is quite well-specified. The compression implementation can do pretty much whatever it wants as long as you get back the original data when you pass it through the standard decompression algorithm. GZip is a wrapper around deflate -- it just adds a small header and a CRC check at the end (RFC 1952). A ZLib stream is another kind of wrapper around deflate, adding a small header and footer around the raw deflate data (RFC 1950).
In any case, the .NET Inflate algorithm (decompress data that has been previously compressed) is generally adequate. It follows the algorithm correctly and can decompress anything from any deflate library. (It isn't as smart as it could be when dealing with the three formats raw/zlib/gzip, but I can deal with that.)
On the other hand, the .NET Deflate algorithm (create compressed data from uncompressed data) is terrible. In nearly all cases, it does not compress as well as most other deflate implementations (such as WinZip, InfoZip, or GZip). In some cases, the compressed data will be up to 60% larger than the decompressed data, even though a well-written Deflate implementation should be able to limit data growth to less than 1%. The problem is that the .NET compression algorithm always uses a specific method to try to compress the data, even though the deflate file format allows for several different methods so that the best method can be chosen for specific data. This could be fixed in a future .NET framework, but it is still a problem in the current versions.
Doug on October 24, 2008 7:29 AMprogrammers who take everything they read on the web at face value are dangerous. Programmers need to carefully evaluate information they read on the web, otherwise they could conceivably cut and paste dangerous code into their own programming environments. This would be just as bad as irresponsibly running as administrator or root any executable they find.
Don't let the bastards grind you down!
Joe Zack on October 24, 2008 7:34 AMJeff, you jumped the shark so hard that my head exploded.
Let's collaborate at some cool project in the future.
Lorenzo on October 24, 2008 7:34 AMOption A: Retaliate with an equally wasteful post.
Option B: Rise above this obvious failpost and be the bigger man.
So someone posted a blog that was chock full of flame bait, and you bit? Seriously, what is this, high school? Ohhhh its the intarweb, I forgots (sic). You might try just taking a big, long, deep breath, chalking this guy's post up to something you dont agree with, and move on. Might as well just drop a 'your mom' in there somewhere for good measure.
But then I guess you couldnt rally support and get that endorphin kick :P
Andrew Powell on October 24, 2008 7:36 AM@Niyaz PK
Programmers, of all people, should never take anyone's word for everything. We deal with wrong/misleading/incomplete information all the time; why would we ever take something we read on the net at face value?
Jeff writes about his experiences, he makes no guarantees that his interpretation of what happened in his experiences are 100% correct; he simply talks about them so that you can be that much further ahead when you encounter the same experience.
Anyway, yayyyyyyy Jeff is posting regularly again!
Gio on October 24, 2008 7:48 AMFor those who didn't have the opportunity to hear the wisdom of the ages from my Grandma Smith: The paper holds still, and you can write anything you want on it.
The corollary from Ronald Reagan: Trust, but verify.
Of course, being foolish takes much less effort...
David Smith on October 24, 2008 7:50 AMBut telling programmers that they should all practice a more or less professional salesmanship, because they are (apparently) all social misfits, is insulting, and fucking annoying.
Well, if you read it like that then I can see how it would be annoying.
But there's no harm in being able to sell yourself and your ideas to other people and if there's something that can help you with that, then having it brought to one's attention can't be a bad thing, can it?
There's even a logical way that's not particularly insulting and that's this: Marketer's are rarely going to bother to learn how to program, but programmers should have little difficulty in learning how to market (at least enough to get themselves across).
So they think a blog is authoritative? These are the same people who complain about Wikipedia being wrong?
A blog is a blog - it the authors thoughts (and on a good one some informed and interested peoples reactions to those thoughts) and as you say the comments and reaction are usually more interesting than the original blog
Most information from one source I have ever seen has had mistakes in it (some more than others) I too check and verify what I read (read widely, not narrowly)
Untested programming ideas are often wrong (or at least have bugs), bad testing may give you the wrong answer but at least you made an effort, no testing will not tell you anything
I still thing a programmer needs to know a little about marketing - they have to write stuff that people will actually buy (unfortunately) and they have to be able to sell themselves (to an employer, and to their colleagues - to convince them they really do know what they are doing)
Jaster on October 24, 2008 7:50 AMLord, Jeff, how flattering it must be to be labeled dangerous! It's like when Paul Newman got put on Nixon's enemies list -- he said it was one of his proudest achievements!
How amusing that the post about learning to market yourself was you jumping the shark. I thought that sort of thing was pretty common knowledge amongst people who wanted to be able to work on their own projects someday, rather than punching a timecard for someone else's dream.
If it makes you feel any better, Jeff, even though I am not a professional programmer, I don't always believe what you say anyway! I take it as an interesting opinion, and often disagree with much of it! That's right -- I have an independent opinion and am able to make judgments on my own! I thought you'd be proud -- a reader who doesn't always agree, but doesn't think that you're dangerous! Though it must be more fun to be dangerous...
Now I'm off to find a shark to jump of my own...
Shmork on October 24, 2008 7:51 AMA lot of the comments on this blog post illustrate a real ignorance and lack of understanding about what marketing means. Marketing is NOT sales. I think a lot of the people on here and reddit take offense to being told they need to be better marketers because they believe that means they need to be better salesmen. However, that is an extrememly limited, and non-professional view of what marketing is.
Marketing, as defined by the American Marketing Association is:
...an organizational function and a set of processes for creating, communicating and delivering value to customers and for managing customer relationships in ways that benefit the organization and its stakeholders. - from Wikipedia.
More precisely, marketing involves the 4 P's:
- Product - for programmers, this means things such as: Are your skills valuable? What skills do you need to learn to make yourself more valuable? What is my product advantage over other programmers?
- Price - I have run into far too many programmers in my day that have no idea what their skills are worth, and so they end up getting paid 50% of what they should be paid. So this part of marketing relates to doing research and studying what the price of your skills should be, i.e. - are you charging enough?
- Promotion - this P includes the sales part that most people think of when they think of marketing. But it also includes things like establishing relationships, branding, etc. So for a programmer, it means branching outside of your development group at your office and hob-nobbing with folks from HR, Finance, and other groups, and also creating a brand for yourself within your firm. For instance, are you the project plan master? Are you the go-to guy for debugging?
- Placement - this is the where of marketing. What area are you attempting to distribute your product in? For programmers, this comes down to are you working in a town that has a decent IT industry? Should you relocate? Should you telecommute?
There are of course a dozen other questions you could ask yourself for each of these.
The bottom line is programmers getting all bent out of shape because they're told they should be better marketers smells an awfully lot like a non-technical project manager getting pissed off when he's told he needs to brush up on his computer skills. Get over it or be passed up.
Sam Schutte on October 24, 2008 7:52 AMSo they think a blog is authoritative? These are the same people who complain about Wikipedia being wrong?
A blog is a blog - it the authors thoughts (and on a good one some informed and interested peoples reactions to those thoughts) and as you say the comments and reaction are usually more interesting than the original blog
Most information from one source I have ever seen has had mistakes in it (some more than others) I too check and verify what I read (read widely, not narrowly)
Untested programming ideas are often wrong (or at least have bugs), bad testing may give you the wrong answer but at least you made an effort, no testing will not tell you anything
I still thing a programmer needs to know a little about marketing - they have to write stuff that people will actually buy (unfortunately) and they have to be able to sell themselves (to an employer, and to their colleagues - to convince them they really do know what they are doing)
Jaster on October 24, 2008 7:52 AMBlogs are just not that important. Especially ones that assert that some other blog is dangerous, i.e., important.
Chris Noe on October 24, 2008 7:55 AMJeff,
I agreed with your marketing post completely. Too many times I've seen really sharp, intelligent programmers - WAY MORE TALENTED THAN ME - get their ideas rejected simply because they had no idea how to get their point across in a manner that is going to make upper management or a customer's eyes do anything other than glaze over. Then they get demoralized because Nobody ever listens.
A colleague once said, The difference between a good software engineer and a great software engineer is that the latter uses a word processor as well as he does a compiler. And he wasn't just talking about documentation or something inane like that, but about being able to write in a way that marketed ideas so that they would be adopted.
Keep up the good work.
Jim on October 24, 2008 8:03 AMI have to admit, I love this blog for the simple reason that you don't act like a supreme being of unnatural intellect and power....and don't expect everyone to swallow the pill and accept it as truth.
Keep up the critical thinking point of view, it's refreshing.
Mat on October 24, 2008 8:08 AMIf the content on this site is dangerous and irresponsible then what can we say about the responsibility of Wikipedia content? Or any website? Or any information that is presented to us in any form of media that is biased by the nature of humanity. Pretty sure we need to think for ourselves in all cases... Even old text-books have incorrect content over the passage of time.
JohnM on October 24, 2008 8:12 AMJeff, I read you blog precisely because it is the most radically dangerous one I can find. (I used to up the ante by reading it while holding a live bear cub in my lap, but the county came and took away the cub and its mother.)
By the way, blogging has jumped the shark. It's not just you.
--
Dave
Funny. I agreed with the marketing post. Does that make me dangerous? Can I put that on my resume?
A. Lloyd Flanagan on October 24, 2008 8:16 AMDanger is my *middle* online alias.
Jeff,
Two points:
1. Your post on marketing was spot on. Some may disagree because they might not operate in an environment where this is as obvious. However, I believe that the majority of seasoned programmers would eventually come to the same knowledge: people won't use what they don't know about. And how are people going to know about something unless it is marketed to them?
2. You're big these days. When you write something that is read by more than a small group you're just going to have people that disagree with you. There's no way around it. I think perhaps you're a little too worried about what everybody is thinking (ie. writing a whole post defending your last one). As long as you're successful, your detractors are only going to become louder. It isn't necessarily a bad thing...
Anonymous Coward on October 24, 2008 8:26 AMI rarely comment here, but this article is spot on.
Julio Capote on October 24, 2008 8:31 AMWhat's with this crap about Jeff having any responsibility to others? The only person he's responsible to with this blog is him self. We're all just along for the ride.
Hell, what happened to the reader's personal responsibility to discern and question what they read?
Frankly it’s hilarious to see comments pushing the former on a post advocating the latter.
Keep it up Jeff. The links with-in your posts alone make you a worthwhile read.
Lucas Goodwin on October 24, 2008 8:31 AMI've been really surprised at how brutal the comments in Reddit can be. It's sad because the people trying to help, like you, are getting drown out by those with just negative contributions.
A blog isn't a professional industry journal, posts aren't sent through peer review, and there isn't even a process in the industry to valid a fraction of what people are saying. Occasionally you'll get it wrong, or it will be debatable, or not what people want to hear, but that's exactly what is *good* about a blog. It's a discussion, and in our messy industry, it is an important one.
Personally, I've given up on reading all of the negative stuff. If people want to contribute in a positive way, that is great, but if they're just venting their frustrations at the wrong people then it's sad. I remember a book titled Don't let the turkeys get you down. It's appropriate for this topic.
Paul.
Paul W. Homer on October 24, 2008 8:48 AMBravo Jeff!
One of the reasons I have your RSS feed in my shortlist —and since a long time ago— is because you write in your own voice and with your own opinions.
Writing neutrally is an exceptionally reliable way to loose readers, underestimating them has an even more noticable result.
Dirk Stoop on October 24, 2008 8:52 AMJeff - Woody Allen said, If you aren't failing once in awhile, it probably means you're playing it safe. By fair analogy, if you aren't being flamed on the Web once in awhile, it probably means you aren't doing something good. For your critic, flaming is probably a habituated behavior. Here's a project for your to research in your blog: CRT (and LCD?) screens are known to activate the primitive areas of the back brain in preference to the prefrontal cortex, where focus, initiative, positive attitudes, perseverance, etc., are localized. Thus, children and adults can stare blankly at the tube for hours. It would be interesting to find how many hours, on average, flamers spend gazing at their screens, vs. how much PFC activation they show, etc. Not coincidentally, the PFC doesn't become fully activated until age 30. Flamers, I suspect, simply haven't grown up.
George Beinhorn on October 24, 2008 8:57 AMyou dont like it here ? Go somewhere else. Tell your frieds to go somewhere else. Stop bugging us.
Maverick on October 24, 2008 8:58 AMMarketing is important and Jeff is very good at it. Look at all the negative comments on Reddit about the Marketing related post he made. Apparently, they would like to swallow every idea Jeff has and when they can't, they complain!
I just don't get one thing.. Marketing is to buy your preference on a certain product, but it's you, who is supposed to think before making the choice..Why do you expect Jeff to do that for you?
We code. We market. We buy you to survive. Bear with that!
Saj on October 24, 2008 9:04 AMI notice that some of your critics ideas aren't going over too well.
Perhaps they need to market them better.
;)
Rich on October 24, 2008 9:06 AMJeff,
Having wirtten programs for more than 15 years, I can not see how your last blog post could be considered dangerous by anyone. Unless they believe that playing dungeons and Dragons is social suicide. I must admit that I do enjoy reading your blog because you are a constant source of brain food. I tend to look at what you write, do some research on topics I am not normally interested in, and then make a decision as to weather I agree with you or not. Many times I disagee. I think that anyone who believes this blog to be dangerous is a mindless drone. How can anyone seriously believe that forcing programmers to think about ay concept is dangerous? Is that not how programming came to be in the first place?
I don't think you should be using the StopWatch class to measure time.
It has a major flaw when being used on a PC with multiple cpu's.
You should use Process.TotalProcessorTime.
http://kristofverbiest.blogspot.com/2008/10/beware-of-stopwatch.html
Donny V. on October 24, 2008 9:22 AMWomen love a dangerous blogger.
Darren Kopp on October 24, 2008 9:23 AMIt's funny. I've read your blog for years and I *often* disagree with you, but yesterday's post was very good. In a lot of ways, it's just a different spin on don't go dark.
I think the issue for some people is that they can't pull their head far enough out of their code to realize that the coding isn't nearly as important as the social aspects around it.
But the good thing is that those people aren't all that competitive in the real world.
JPLemme on October 24, 2008 9:28 AM@ Ricardo C on October 24, 2008 06:15 PM
Excellent put!
Bjrn on October 24, 2008 9:29 AMI read this blog because DailyWTF has gone down hill lately. ;)
Tim on October 24, 2008 9:39 AMThere's a reason why people who ignore the heard get ahead in life. Keep it up Jeff. Reminds me of a great poem by Robert Frost:
TWO roads diverged in a yellow wood,
And sorry I could not travel both
And be one traveler, long I stood
And looked down one as far as I could
To where it bent in the undergrowth; 5
Then took the other, as just as fair,
And having perhaps the better claim,
Because it was grassy and wanted wear;
Though as for that the passing there
Had worn them really about the same, 10
And both that morning equally lay
In leaves no step had trodden black.
Oh, I kept the first for another day!
Yet knowing how way leads on to way,
I doubted if I should ever come back. 15
I shall be telling this with a sigh
Somewhere ages and ages hence:
Two roads diverged in a wood, and I—
I took the one less traveled by,
And that has made all the difference.
Jeff,
So someone on Reddit said you were dangerous. That's impressive. But you have yet to earn the Florida tag on Fark so keep trying.
I'm jealous.
twmcneil on October 24, 2008 9:45 AMYou can't please all the trolls all the time. Just ignore 'em. I think people are angry because you were successful with SO despite their predictions of failure and accusations of stupidity. They don't like you either because you aren't a champion for LAMP, RoR, or whatever other tech they worship. They don't like you because you have occasionally non-geeky moments. It's OK, the louder they shout, the dumber they look.
To the folks who think Mr. Dangerous is corrupting our programming youth: calm down, it's just another blog, get over yourselves. People without critical thinking skills are probably spending time looking at porn, not reading programming blogs.
Full disclosure: I'm not a MS fan-boy. I prefer the LAMP stack. However, I prefer decent writing, and despise blow hards and religious zealotry which is why I read here.
steve on October 24, 2008 9:45 AMWhile I agree that this is just a blog and everything you read on the Internet should be taken with a grain of salt, this whole discussion only highlights a much deeper problem with the IT industry: it lacks a lot in terms of fundamentals and core education.
That the majority of programmers do not have a solid background and education (not necessarily formal education) in what they are doing leads to the current situation of this blog, wikipedia, forums, etc. being the most authoritative source readily available for newbies.
Its hard to imagine say a civil engineer readily believing some informal article in a trade magazine because we assume civil engineers have a much deeper and solid background to stand on...otherwise we wouldnt want them designing our skyscrapers and bridges. Similar with medical doctors (those who are quick to peddle some anecdotally effective cure we tend to call them quacks...or snake oil salesmen..or new age practitioners ;-)).
The biggest value of Jeff's blog for me is not necessarily in the content, but in its ability to gather minds in a discussion. Its like a water cooler... it might be just an ugly dumb appliance but some of the best discussions happen there.
This is only a preview. Your comment has not yet been posted.
As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.
Having trouble reading this image? View an alternate.
| Content (c) 2009 Jeff Atwood. Logo image used with permission of the author. (c) 1993 Steven C. McConnell. All Rights Reserved. |
Posted by: |