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.
| [advertisement] Peer Code Review. No meetings. No busy-work. Customizable workflows and reports. Try Jolt Award-winning Code Collaborator. |
Posted by Jeff Atwood View blog reactions
« The One Thing Every Software Engineer Should Know The Web Browser is the New Laptop »
Jeff, 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 05: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 05:08 AMYou are not resetting the Stopwatch so EllapsedMilliseconds continues to grow with each Start/Stop
Shaun on October 24, 2008 05:14 AM> Many 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 05: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 05:15 AM> Was 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 05:19 AMI don't know which made me feel worse: discovering that there's a Stopwatch class in the .NET Framework, or realising that it's been there since version 2.0.
And there I was using Timers. Doh.
The Mighty Borkon on October 24, 2008 05:28 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 05: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 05: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.
See what ? that the timings always increase because you do not /reset/ ? You do start and stop, but /reset/?
bahbar on October 24, 2008 05:31 AM"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 05:36 AMsw.Start() should be sw.StartNew(), Mr. Dangerous.
pingpong on October 24, 2008 05: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 05:38 AM> You 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 05:39 AMSo, fixing the reset:
Gzip size: 3125
243-000=243
406-243=163
deflate size: 3107
637-406=231
794-637=157
They are close to each other, and decompressing takes less time than compressing... Much more sensical.
bahbar on October 24, 2008 05:40 AM> a 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 05: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 05:45 AM> You 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 05: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 05: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 05: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 Martínez.
Arturo Martinez on October 24, 2008 05: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 05: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 05: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 05:56 AM> You'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 05: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 05: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 06:01 AM> With 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 06: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 06: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 06: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 06: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 06: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 06: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 06: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 06: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 06: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 06: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 06: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 06: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 06:36 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 06:50 AM"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."
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 06: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 06: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 06: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 06: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 06: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 07: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 07: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 07: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 07: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 07:26 AMI rarely comment here, but this article is spot on.
Julio Capote on October 24, 2008 07: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 07: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 07: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 07:57 AMyou don´t like it here ? Go somewhere else. Tell your frieds to go somewhere else. Stop bugging us.
Maverick on October 24, 2008 07: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 08: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 08: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?
Women love a dangerous blogger.
Darren Kopp on October 24, 2008 08:23 AMI read this blog because DailyWTF has gone down hill lately. ;)
Tim on October 24, 2008 08:39 AMI am an engineer by training and only an occasional programmer, far from an application developer. I do read this blog because it is interesting and informative! I don't believe or embrace all of what I read here. But it often makes me think, and that's a good thing.
Every post I read is modest and often self-effacing. Jeff writes conviction, but the modesty will prevent the blog from being dangerous.
Bad programmers can make anything they read dangerous.
Jason B on October 24, 2008 08:43 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 08: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 08: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.
I especially like the fact that the "the most salient criticism from the reddit discussion" author found swearing the only effective way to communicate his annoyance. Perhaps just a *little* marketing savvy wouldn't be so bad? No?
John Lopez on October 24, 2008 09:01 AMJeff,
I program in PHP and JAVA, you blog about .NET. I read your blog because you have short articles on general programming concepts and how they apply to your current project. The best way to learn programming is to have real world examples and situations. Its easier to see a problem or solution when it applies to something tangible. When you get specific about .NET I cannot use those specifics towards my own projects in JAVA, but I can take away some tid bits of programming concepts as discussion points and food for thought.
That is how a blog should be taken. If you are looking for truth, you should read the api and official documentation.
As well, I hardly see an article talking about improving communication skills and the overall ability to convey the worth of your project as dangerous. Now if you were preaching against best practice standards and had a loyal zombie army of programmers, then yes you are dangerous to newbies. But anyone who would view you as dangerous for just expressing an opinion on personality traits, they themselves have to question their expertise.
Your blog was one of the top 100 web sites in the current edition of PC Magazine. Congratulations!
Jeff, I thought yesterdays post was spot on. Unfortunately, many of the "Grandma's Boy" people just don't get it.
Mark S. on October 24, 2008 09:07 AMVery much agreed. If people come here just looking for validation of their already ingrained notions, then why on earth are they even reading your blog?
As for (new?) programmers who might take everything you write as gospel, that sounds like a personal problem to me. Someone forgot to learn how to think critically, and one can only hope they learn (perhaps even from your blog--oh, irony!) before they do too much damage. I'm not holding my breath on that one, but I still fail to see how you are the problem there.
Anyway, thanks for the great work!
Nathaniel on October 24, 2008 09:07 AMYou told people what they need to hear rather than what they wanted to hear.
People will always hate you for that.
However, the other half will be improved for it.
"Reprove not a scorner, lest he hate you: rebuke a wise man, and he will love you. Give instruction to a wise man, and he will be yet wiser."
Thus the opposing responses to yesterdays post.
Practicality on October 24, 2008 09:09 AMI like how the comments totally prove your point. The fact that people considered the comment so insulting just proves how true it is. I love the way they take offense while at the same time making it perfectly clear that you are right. A little marketing never hurt anyone. Get over it, stop being insulted, and learn to talk to regular people.
Jasmine on October 24, 2008 09:14 AM"I am a better programmer for having read that blog post. Even though, near as I can tell, it's offering inaccurate advice."
No... you're a better programmer because of what you did after you read it. Most people are not like that... they want the blog itself to do the magic - they don't want to work for it. Those people will never be good programmers anyway and it doesn't matter what blogs they read - they are lacking a basic skill and desire that is required for this job.
Jasmine on October 24, 2008 09:27 AMThe person that was that flamed yesterdays blog post needs to get their keyboard out of their ass and get out to have a broader view of the real world. You are absolutly correct in that every budding developer needs to understand marketing. Almost as moch as they need to understand coding.
Creating the best piece of software or website is nothing more than wasting time unless people know about it and use it. In other words MARKETING! Take 2 sites one great, the other mediocre. Guess which one is going to be successful - the one that ranks in Google. In other words MARKETING.
The really successful developers will be the ones who understand the business of software and the web. I hate to break it to all the young developers out their but it's equally about sales and marketing as it is about software. Read Seth Godin's blog - Learn to be exceptional - it's equally as important as the latest coding blog.
I would hire a marginal developer who understands Marketing over a propeller head wiz kid who only knows code any day of the week.
Keep up the great posts Jeff!!!
Mark on October 24, 2008 09:29 AMJeff, You didn't "jump the shark". If the full analogy is taken from the Happy Days origins, it would mean you turned off so many readers your blog is dead. Far from it!
Most good programmers have the ability to think critically and skeptically. You can't be very good at maintenance programming without a little critical/skeptical thinking. Give us readers a little credit!
So, don't worry about jumping sharks. We won't drink all the kool-aid. We'll just mix the metaphors!
Charles on October 24, 2008 09:33 AMHey Jeff,
Maybe I'm just off my game today, but I cannot, to save my soul, get your code listed there to compile as is. Does it require VS 2008 and .NET 3.0/3.5 or can it be done unmodified in VS 2005 and .NET 2.0?
Sorry, C# is not my strongest language so I hope no one is put off if the answer to this is blindingly obvious.
Meis on October 24, 2008 09:34 AMJeff,
Thanks for writing the "most dangerous programming blog"!
Many of us need some extra danger in our lives, so keep up the good work!
Phil S. on October 24, 2008 09:36 AMJeff--
I only read one programming blog- yours. Keep up the great work.
--Rich
Rich on October 24, 2008 09:37 AMNo worries, Jeff - I still love the blog. I first found it when I did a Google Image Search for the "CODING HORROR" emblem from Code Complete a few years back, and have been hooked ever since.
One of the benefits- you got me hooked on Crazy Aaron's Thinking Putty.
Joe Attardi on October 24, 2008 09:41 AMJeff,
Not everything you post is "correct" (as if matters of opinion can be "correct" or or "incorrect" at all). That's not why I'm here, and that's not what I like about this blog. If being incorrect means you've jumped the shark, then you've done it many times in the past and will do it many times in the future. I'll still come back anyway.
What I like about this blog, is that you are not afraid to admit that you don't know everything. You are trying to better yourself, through code and through writing. And that learning process means making mistakes, discussion, and forming new opinions. It also means being humble about what you do and do not know.
Programmers are the biggest group of arrogant, know-it-all jerks. It's refreshing to see someone bucking that stereotype. We could all learn a little bit of humility from you in this regard, even if we don't agree on all technical matters.
Anonymous on October 24, 2008 09:49 AMPEDANTIC COMMENT:
Stopwatch.StartNew() is static, so you'd need to refactor your code a little bit, more than just s/Start/StartNew, if you wanted to use it.
Me, I just created a static class called MeasureDuration, with a static method called Of(), which returns a TimeSpan. Uses a Stopwatch internally, but I don't think the caller should care. Anyway it ends up looking like
var time = MeasureDuration.Of(() => x.DoStuff(123));
John on October 24, 2008 09:49 AMI personally read Jeff's blog because like him I want to open my mind towards different approaches to solving problems, I also read Jeff's blog because he is humble and knows his shortcomings.
I absolutely do not agree with people who say that bloggers should be held responsible for their post's, if you are looking for easy solutions through blogs and just copy+paste the code that is posted, it is your fault that you believed in it and not the poster's.
Also the "responsibility" was handed over to Jeff involuntarily, people assumed that whatever Jeff would post will be the word of god and the only way to go.
Programming blogs are more like diaries where you put your thoughts out with the added benefit of having a healthy conversation started with like minded people, they are not reference materials to be used by other developers to use blindly.
Amit on October 24, 2008 09:54 AMJeff has no responsibility to keep things accurate. I mean, nobody's going to toss him in jail if he claims three is bigger than two. But if he starts publishing garbage, his popular blog will quickly become an unpopular blog. The reason we stick around is because his stuff is generally accurate, and often prompts a rethink of how we do things professionally.
Izzy on October 24, 2008 10:02 AMDangerous? I'll admit that your blog can sometimes be random and obscure, and you frequently give a one-sided opinion - but isn't that the definition of a blog?
I have enjoyed your blog for years - keep up the good work!
Mark on October 24, 2008 10:05 AMI think that the government, who invented the internet, would be outraged to know that Jeff Atwood is not doing our thinking for us. I imagine that God, who invented the government, would be pretty outraged too.
I am going to vote Jeff Atwood out of office. I'm sure that whoever replaces him will be much more interested in the well-being of his audience, and demonstrate it by self-censoring and doing our thinking for us.
Good lord, I sound like a slashdot newbie post desperate for upmods. Sorry. I'm not usually this bad.
Trav on October 24, 2008 10:31 AM... and I've really been enjoying the fact that this comment thread is still part epistemology and part code review ...
Trav on October 24, 2008 10:34 AM@Trav "and I've really been enjoying the fact that this comment thread is still part epistemology and part code review ..."
Wholeheartedly agree. I love this blog.
SteveJ on October 24, 2008 10:41 AMSo when you jumped the shark, were you wearing Fonzie's leather jacket? Is there video?
It seems to me that this is all about assumptions.
Jeff: (repeated frequently in different ways) "I write what interests me, on any topic, as long as it relates in some way to programming or the business of programming. Sometimes the posts are focused, _to make a point_, at the expense of even-handedness, but you folks are plenty smart enough to handle it. And if I'm way off in something, I know you'll let me know--I value that. If you want a full picture of the topic in any given post, read the comments."
Some annoyed readers: "This is a programming blog, and as such it's supposed to look the way I think a programming blog should look. It doesn't. So Jeff has lost it for me. Because a lot of programmers think they way I do, he's lost it for all of us--and with this one post that annoys me, he has jumped the shark and is now past it."
People sail right past you telling us exactly what you're trying to do, then get ticked because you've just done exactly what you've told us.
They want a different blog. This isn't the blog they want it to be, they're affronted, and they can't figure out why you don't turn it into the blog they want.
Me, I'm just amused....
El on October 24, 2008 10:45 AMLook at it this way - if you're in the public spotlight, someone is going to hate you. Just look at the comments present in any of the thousands of forums (fora? The grammar nazi part of me just woke up...) and news sites all over the internet that draw a substantial readership. I can guarantee an overwhelming majority of them are from lamers who post mindless flamebait drivel because it directly conflicts with their narrow viewpoint on the world; if you need an example, just look at any article on ZDNet from Mary Jo Foley.
Point being - whatever criticism you draw, it's because someone read your posts and felt compelled enough to tell other people about it. The ensuing bitch-off is really a discussion about the merits and demerits of what you wrote, which is the entire point of writing it.
Props and peace.
James on October 24, 2008 10:52 AMlame post in the last year. last blogs were advertisement for stackoverflow (links) and very sporadic. haven't you written a blog entry were you have said the most important thing on writting a blog is constant effort?
you lost & get kicked from my start page.
offler on October 24, 2008 10:54 AMPeople, if you are unsatisfied with the product then you should ask for your money back. Er .... never mind.
JB on October 24, 2008 11:04 AMI'm one of these young inexperienced programmers who is, aparently, in danger.
I have to admit, I'm not really feeling it.
I read Jeff's blog because I respect Jeff's opinion, An opinion which he formulates from his experience.
After reading yesterday's post, I didn't burn all my programming referance books and enrol myself on a marketing course, but now I am aware of a potential problem that I can put my own thoughts into.
I'm glad to see that Jeff is unphased by such comments against him, as I like to hear Jeff's opinion but if he worries about what he is saying we will never hear his opinion, just what he feels safe talking about.
Chris on October 24, 2008 11:08 AMSometimes Jeff is full of baloney. Sometimes Jeff says something interesting. Such is the nature of reading blogs on the internet.
If you read blogs because you want people to provide the last word on programming topics, you are a novice mouthbreathing WTF generator. Read blogs, process the information, and test it if it seems interesting.
Sitten Spynne on October 24, 2008 11:27 AMThis is a dangerous idea, "Think for yourself". I think I'd rather let "Reddit" do the thinking for me and just come here and flame you for yet another dangerous blog post. ;)
Haacked on October 24, 2008 11:28 AMIt has taken me 8 years as a professional developer to learn the hard way that marketing is extremely relevant to my happiness as a developer.
Developers tend to have a severe blind spot when it comes to marketing. The blind spot persists despite painful evidence to the contrary because of strong idealistic emotions that tell us that marketing is evil and the brilliance of our work ought to manifest itself entirely through our code. To suggest otherwise makes us very angry. But I'm here to tell you that it is 100% true.
If you want to continue working on stuff you care passionately about, you have to sustain the management and team mindshare that sustains your ability to continue working on it without being undermined.
If you and a team member have a difference of technical opinion or a different direction in mind for the product, your ability to market (not just sufficiently explain) your viewpoint is crucial.
In my opinion, understanding the importance of marketing (and other soft skills) is a sign of maturity in a developer.
AC on October 24, 2008 11:37 AMThe nature of your blog has changed, as all do.
But you should really blog about the art of building a readership, learning how to leverage that with an understanding of how SEO, self-linking, and *MOST* importantly -- posting topics that appear contraversial so that people can't wait to get their 2 cents in.
You've become something of an internet whore (will this get filtered)?
Pardeep on October 24, 2008 11:38 AMThis blog is one of the best sources of development wisdom I have ever seen. That doesn't mean I always agree with everything. It means that the blog reflects many of the non-obvious lessons I've learned -- the hard way -- over decades of programming. It means I'm always learning new things from it, even with those decades of experience. It means I recognize that Jeff GETS IT, unlike so many programmers, who are full of opinions and religiosity, but generally clueless about anything deeper than the zits on their nose -- ignorant of their own ignorance, in other words.
I'd list some examples here of my fairly broad and deep experience since 1975, to lend some credence to this opinion, but the little pinheads that are determined to diss Jeff wouldn't believe it anyway (or understand the significance).
Keep up the good work, Jeff -- you're doing it EXACTLY RIGHT.
I felt this post (and in fact, your followup comments) came off as more than a little defensive.
That was all I had to add today.
Justice~! on October 24, 2008 11:54 AM"Many readers will take what you write as the last word in programming. You ought to write more responsibly."
In my opinion that is the same as calling the post "dangerous." As Jeff said, "you're implying the audience is too dumb or inept to read critically."
A couple of points to commenters like this...
1) The readers of this blog are people (JUST. LIKE. YOU.)
2) Those people aren't stupid
Criticism of the marketing post aside, I do like this blog and it's comment community and wouldn't comment from time to time if I didn't think it was worth adding to.
Keep up the good!
Clark on October 24, 2008 12:12 PMYou know, if it were me (and it has been) I'd just sigh and move on.
To put it bluntly, the more popular your blog, the more of this you will see. As my blog has increased in popularity, I've been amazed at how childish many people are.
It's your blog, post what you want.
Dave on October 24, 2008 12:31 PMWhat the hell are you doing reading Reddit or any other hip fad websites? Sheez. Just keep writing, I will keep reading and make what I want out of it.
Thank you for being you.
John A. Davis on October 24, 2008 12:50 PM> 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 01:06 PMWow, 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 01:08 PMI 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 01:20 PMI 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 02:09 PMAs 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 D&D 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 02:28 PMWelcome 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 02:32 PMEh, 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 02:35 PMI'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 02:44 PMI 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 03:04 PMI 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 03:10 PMI 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 03:22 PM
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 03:23 PMI 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 03:54 PMThis 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 03:56 PMDisagreement 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 05:12 PMMarketing 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 05:13 PMJeff,
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 06:15 PM@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 06:48 PMWhat'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 07:31 PMI 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 08:22 PMIt'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 08:28 PM@ Ricardo C on October 24, 2008 06:15 PM
Excellent put!
Bjřrn on October 24, 2008 08:29 PMDo any one of those trolls on reddit have a blog? Why don't we all have a look at what they've written, and try to pick apart every thing that they've ever written. Forget about those guys - they're absolutely pathetic in my opinion...
Matt on October 24, 2008 10:22 PMWell, the flamebait got a big whopper for sure! :)
anonymous on October 24, 2008 11:43 PMJeff,
Freedom of speech is good.
Freedom of thought is more useful.
Freedom to ignore is most apt.
Let me put it in his language and style:
"Naysayers have always held the distinction of being the most dangerous users of the WWW, in that some young or aspiring developers often actually listen to some of their "warnings", but now they've somehow managed to snag the achievement of becoming the most repulsive users as well.
To put it in more frank terms Mr.Naysayer: What you've just written is one of the most blatantly vitriolic things we have ever heard. At no point in your rambling, incoherent response were you even close to anything that could be considered a rational justification. Everyone in this room is now dumber for having read your comment. I award you no points, and may God have mercy on your soul."
There, fixed it for ya! :-P
I've had my share of disruptions with these people.
It is possible that they produce no content of use on the web or outside it.
It is possible that they do not contribute to any technical wikis.
It is possible that they do not distribute opensource or freeware programs.
It is possible that they do not write positive inspirational blogs.
It is possible that they do not write opensource or freeware code.
It is possible that they do not donate to good causes or opensource projects.
It is possible that they dont even play word games to help feed poor people for free.
Well, I speak only when I can say with proof that I do these things.
Mr. Naysayer, do you do any of the above?
If yes, do you do those by your own willing choice?
Even more dangerous are naysayers in positions of power.
Best strategy: Ignore most of them.
However, practcially, you cannot ignore trolls or naysayers in the boss/chief-stupidity-officer/chief-manipulation-officer category.
Regarding your code blurb, did it occur to you to pub deflate before gzip? the results may surprise you. One of the reasons deflate seems faster is that the data is already cached from the gzip pass.
This is hardly the right way to conduct scientific experiments. shame on you.
oh btw, RobDude, +1.
JoeBelowAverage on October 25, 2008 03:01 AMThe most common theme in your blog postings since I've started reading them is that you always enourage a developer to think on it's own. Test the code mentioned in blogpostings (wether it is coding horror or any other blog). Never just use code posted on the internet but think about what the code is doing and preferably test the applicability of the posting / code to you're own programming problem.
So I wonder how someone can declare you're blog postings 'dangerous' if they don't consider the advice given by you in most of you're postings.
Just my two cents
RobDin on October 25, 2008 03:09 AMIf you knew anything about marketing, you'd start calling this, "the most dangerous programming blog."
roger on October 25, 2008 05:20 AM> "What you've just written is one of the most insanely idiotic things I have ever heard"
Once again, I think someone has fallen into the same usual bug: Trying to undestand a concept by reading words literally.
Jeff said "The One Thing Every Software Engineer Should Know", he explained it was marketing, and someone understood: Jeff says there is *no other" important thing to know beyond marketing!!!!
We all know this man was not able to (or didn't want to) grasp the wider meaning of the phrase. If I say "This box is black", many of us will understand it is "very dark grey", because "black" doesn't exist as such in our universe. However we accept "This box is black" as a valid phrase without telling "You are idiot, dumb, etc". We must read far from the literal meaning of words... It's so strange to recall such a well known truth...
Just for fun, look at these 2 words in his phase: "What you've just WRITTEN is one of the most insanely idiotic things I have ever HEARD". If we play his game of literally reading, how can be said you *heard* something that was *written*? He should apply his own rules (discovering he is also idiot!), and start to write/speak properly, if he wants other people as refined as him to understand. The rest (we almost all) will understand anyway, without insulting anyone, as our mind seems to be more flexible.
When the wise man points the moon, the dumb man looks at his finger. It will always happen, sadly.
oscar on October 25, 2008 05:39 AMResponding to people who blog bad things about you? Your ego may be spirling out of control. Keep up the good work. =)
Patrick on October 25, 2008 08:44 AMJeff,
Just wanted to say I love reading your posts. Ignore people who take potshots at you. I am sure for every person who hates / criticizes your blog there are at least 10 people who love it. So keep up the good work.
BTW: "hear it spoken" for the captcha is a nice touch.
Since you didn't provide your implementation of your compress / decompress methods, I wrote my own. They are probably slightly different as I don't want to time things like creating the byte array from the file - after all, we're trying to measure compression/decompression, not System.IO.
I used this blog post's HTML for input, and get:
deflate gzip delta
compress 13962.66667 15211.33333 -0.089428953
decompress 5815.333333 6952 -0.195460277
No where near 40%, but no where near the identical numbers you put up, either. Would you care to share the complete program so other people could run it and see what results they get?
Donny V.:
The issue you point out in Stopwatch in reality only hits few systems. Unless on your specific machine you get strange results from Stopwatch or QueryPerformanceCounter (which Stopwatch is just a wrapper for) it's perfectly reliable.
When we're misunderstanding each another: I like being viewed as dangerous!
So fellow Coding Horror reader's: You're dangerous!!!
Jeff, once you get to a certain level of authority no matter what you write, it is widely interpreted in multiple ways. I think your message that readers should look at things critically has a lot of merit. I've seen so many times people blindly copying code snippets from internet and using them without understanding what they actually are doing. It would have save a lot of trouble if they first used their brains a bit :)
Keep up with the posts Jeff, even though I see you like to be controversial and in some cases just spread a lot of manure. Fair enough! Nobody is perfect sometimes your blogs have some pearls of wisdom in them, sometimes not.
Anders on October 25, 2008 11:29 AMYour posts always rock (stackoverflow-induced silence notwithstanding.) Keep up the good work and /ignore "t3h c0derZ!!"
Gavin on October 25, 2008 12:02 PMMaybe you need a disclaimer on the bottom of each post.
"Warning: Reading this blogpost might be dangerous and will make you dumber than you already are."
igge on October 25, 2008 01:33 PMI read many blogs, and reference sites in the course of trying to learn various aspects of software development, and I don't take ANY as being 100% accurate. (Not even MSDN, and similar)
I look for ideas and information to try out and more often than not, I find the information either not suitable, inaccurate to my situation, or irrelevant. BUT occasionally I find things that get me thinking and I'll try things out for myself, get a different view on the situation!
I'm terribly confused here. Was this entire post some sort of proof that we should never trust what we read? Did you deliberately try to defame another blog in order to prove a point, that your readers are smarter than other blogs' readers?
I, for one, will not be returning here.
Will on October 25, 2008 03:41 PM> Would you care to share the complete program so other people could run it and see what results they get?
Sure thing, here you go. Visual Studio 2008, C# project:
http://www.codinghorror.com/blog/files/deflate-vs-gzip-vs2008-solution.zip
> Did you deliberately try to defame another blog in order to prove a point, that your readers are smarter than other blogs' readers?
Um.. no? Did you read the same blog post I wrote, above?
http://www.codinghorror.com/blog/archives/000549.html
This post, with the graphs, is just as ridiculous as the original mentioned post.
gzip is deflage with a header and a checksum footer. period. end of discussion. Only extra overhead of gzip is the time to generate the header and calculate the CRC32 checksum. No fancy benchmarks and graphs necessary...
Jeff - long time reader, first time caller.
When I read the post in question, it made me think of my current position. One of our products is no longer as competitive in its niche market as it once was. You can be the world's best application developer, but if you can't get your program installed on someone else's computer, what's the point?
Chuck