Stack OverflowWhat is the best comment in source code you have ever encountered?
[+357] [520] Thomas Bratt
[2008-10-08 20:08:07]
[ polls fun comment ]

What is the best comment in source code you have ever encountered?

somebody should compile all of this and put them in a book for best source code reference :P if only more programmers has a sense of humor like this, code reading would have been way more fun. :) - melaos
@melaos - Sure could. I'd definitely put that one on my 'shelf. Some of these answers are funny even to non-devs. - ldigas
(1) question is now closed, I think 528 "answers" is probably enough, no? :) - Jeff Atwood
[+1406] [2009-01-27 02:21:22] Jens Roland

I am particularly guilty of this, embedding non-constructive comments, code poetry and little jokes into most of my projects (although I usually have enough sense to remove anything directly offensive before releasing the code). Here's one I'm particulary fond of, placed far, far down a poorly-designed 'God Object':

* For the brave souls who get this far: You are the chosen ones,
* the valiant knights of programming who toil away, without rest,
* fixing our most awful code. To you, true saviors, kings of men,
* I say this: never gonna give you up, never gonna let you down,
* never gonna run around and desert you. Never gonna make you cry,
* never gonna say goodbye. Never gonna tell a lie and hurt you.

I'M SORRY!!!! I just couldn't help myself.....!

And another, which I'll admit I haven't actually released into the wild, even though I am very tempted to do so in one of my less intuitive classes:

// Dear maintainer:
// Once you are done trying to 'optimize' this routine,
// and have realized what a terrible mistake that was,
// please increment the following counter as a warning
// to the next guy:
// total_hours_wasted_here = 39

(24) How am I supposed to get Rick A. out of my head. You better start running... - EricSchaefer
(313) I love that "total_hours_wasted_here = 16." I'm going to have to use that in my code :) - Bernard
(2) //Dear Programmer // //Your code now runs slower now that I fixed all the bugs you //introduced. //But your optimizations sure helped. - DevinB
(1) this is golden. Hilarious. I love it so much I'm gonna print it out, and pin to the wall - Krzysztof Koźmic
(28) rickrolled awesome - DD59
(117) +1 for the total hours wasted flag - johnc
(42) The counter is the best thing ever. It should be at the top of this thread. In fact I'm voting for this reply and no other. - dasil003
(2) total hours wasted is a win - Edison Gustavo Muenz
While True { total_hours_wasted_here += 1 } - Angkor Wat
(2) This is just wonderful - Friedrich
(6) +1 for rick rolling a future maintainer of the code just when he thought things couldn't get any worse :P - Jacob Stanley
(2) The counter is awesome :) - David Cumps
(6) This comment sure is funny but also very useful; should become a programming standard. - Kwang Mark Eleven
I ganna start using that :) - Ammar
"total_hours_wasted_here" saved me many days. - Behrooz
+1 For "Total hours wasted here". - Aaron Bush
(2) +.5 for Rickrolling in the comments, +.5 for total_hours. Awesome - Wayne Werner
(3) The first time I've ever been truly RickRolled - and it was funny. When I see links to YouTube I always expect to be RickRolled (camel cased English!!), but I never never never expected to be RickRolled in code comments. - Vincent McNabb
(4) total_hours_wasted_here=-32768, what should i do? i think something is broken. - Behrooz
Best one I've encountered was 2001: 250 x   //This is necessary otherwise Netscape will insert multiple linebreaks, honestly!! - Stephan Kristyn
(6) Please stop "updating" the counter. It's not worth bumping this question onto the front page yet again. - Michael Myers
very nice, love it - jaminator
shouldn't the counter be actually uncommented? - Victor Jalencas
I'd love to view the code below that counter :-) I'd feel obliged to try to optimize it, then - eventually - I'd end up incrementing that bloody counter... - ring0
// Don't try to change me other wise i will throw exception - Nishant
OMG the second one is exquisit!!! - Trufa
[+1022] [2008-10-09 07:52:35] Tuoski
stop(); // Hammertime!

(8) I like it. Da da da DA, da DA, da DA, It's over (David Spade, SNL, Weekend Update) - MrBoJangles
(31) And the German version: :) - roosteronacid
This one I confess to have used once. I know. Shame on me. But that is just perfect phrasing :) - Edu Felipe
(82) stop(); // collaborate, listen! - Erik Forbes
(17) - Laserallan
hm.. I don't get this one. I'm not from english culture I wanna understand... Would somebody explain it? - jeong
(1) Search on YouTube for "MC Hammer" - Charlie Flowers
Then, search for "Ice, Ice Baby". - Charlie Flowers
(1) @Jace Jung: it was a line from a song that was popular ~1990: - Dinah
(22) - puetzk
TOTALLY awesome. - GONeale
That is Priceless!!! - Cube Pirate
(2) stop(); // what's that sound? - Yuval
(2) stop(); //! In the name of love. Before you break my heart. - loudsight - parxier
somewhere above in the code: break; // it down - pinouchon
[+1018] [2009-02-14 19:21:06] matthews
Exception up = new Exception("Something is really wrong.");
throw up;  //ha ha

(71) haha awesome! +10 - hasen j
(6) wow nice one :) + - Darth
(5) I read all comments from top to bottom, wondering what people meant, when they say the "cracked up, reading this one" or "cracked up, reading that one". Well. I just cracked up reading this one... - Daren Thomas
Really did LOL. +1 - John MacIntyre
I think I'm gonna create one of these today! haha! - Greg D
(36) Literally did LOL at the combined cleverness and childishness of this one. - David
(2) class MonkeyPoo extends Exception {}; ... throw new MonkeyPoo(); // because it's so much more fun to throw than an exception - Adam Rosenfield
That is sweet, I am going to use that one! - Cube Pirate
(2) I'm ganna start using up instead of ex from now on XD - Ammar
(23) When I wake up from truly deep sleep, my IQ drops to about 25, and my mind goes extremely strange places. Once, after a long stint of writing java, I woke up in the middle of the night feeling quite ill, and bolted to the bathroom. As I vomited into the toilet, the only thing I could think was "I wonder which exception I'm throwing right now..." - Frank Farmer
First one to make me LOL. - Software Monkey
Thats so awesome, I'm so gonna use that <3 - ChickSentMeHighE
+10! This one is really funny! :-) - Séb
(1) Naa, "up" should be "final". ;-) - Robert Klemme
(1) That's too funny. What about catching the throw up exception. Something you might not want to do LOL - mrjohn
another good one would be "throw tantrum" - mrjohn
awesome up! :-) - frictionlesspulley
(2) Would be funnier if the exception message were, "I don't feel so good." - Kevin Bourrillion
This is not anything clever about the comment. Just clever use of names in the code! - manojlds
[+1018] [2008-11-25 02:50:46] johnc
//When I wrote this, only God and I understood what I was doing
//Now, God only knows

(166) That's a phrase from Karl Weierstrass, the mathematician who gave us the wonderful epsilon and delta continuity definition. - Augusto Radtke
(2) It's still great. - Friedrich
lmao lmao lmao - Luca Martinetti
(11) ROFL! ROFL! ROFL! - Trap
ROFL! Seriously nice.. - Anirudh Goel
(3) Weierstrass the Undifferentiable? - Peter Wone
(4) @Augusto, do you have a source for the attribution of that phrase to Weierstrass? I'd like to know what he was referring to. - Kevin
(1) +1, I can relate to that :) - Ammar
ha ha niceee :D!! - MNM
+1 I will add this to every module I write :D - NitinJS
[+976] [2009-04-11 18:42:40] Ash

This seems to stop morons from messing my code...

// Autogenerated, do not edit. All changes will be undone.

(211) Ooh, this is pure genius ! +1 - ldigas
(59) Why the f*** didn't I think of this?! :)))))))) - Andrei Rinea
(7) Makes me wish SO supported favorites on individual responses - AviD
I am totally gonna put this in my code. - Cube Pirate
Yes, I use this somethings too :) - Ammar
(3) @AviD You can bookmark… - alex
@alex, well duh, now... Anyway, I meant same as you can mark a question as favorite... - AviD
@AviD Yeah I know, just suggesting a workaround. - alex
I wasn't going to vote in this thread, but this one changed my mind. +1 - Mr.Wizard
(3) I think they'll mess your code up anyways: it says it'll fix itself, so why not break it for kicks? - muntoo
[+921] [2008-10-09 03:12:39] Sergey Kornilov
// sometimes I believe compiler ignores all my comments

(11) That is really pitiful. I hope to god this person was kidding. - stalepretzel
(26) I hope the compiler ignores this person's comments. - Windows programmer
(2) I wish the compiler could take their comments and slap them with them. - wonderchook
We'd be out of jobs. - chakrit
(3) //do what i mean, not what I Say! and don't ignore this comment like you always do!!! - hasen j
(83) // Since I never heard back from the compiler, I believe this is true. - Liwen
(39) I think it's supposed to be ironic... - Neil Barnwell
(52) laughter, that's the future, compilers reading comments just to make sure they haven't misunderstood ;-D - sharkin
// Compiler, call me! - unclerojelio
(4) //#reply_from_compiler you like clippy, don't you? - carleeto
ha ha excellent coment - danio
(2) it's ironic, you morons (this however, is not) - foljs
(2) // I feel like no one ever listens to me... - nilamo
/* Compilers suck! mallocs and frees may leak memory, but comments will never harm you. */ - Cristián Romo
Beautiful comment!!! It explains a lot of things. - Kwang Mark Eleven
I just think the compiler broke on his bad grammar. - Matthias
Just try again. - Ammar
(4) Javac actually reads comments ;) try this: //\u000A read my comment - Luzifer42
(5) I think this post pretty well highlights how failing to spot irony really can make you look like a moron. - Zano
Been using Closure for a long time? - rebus
[+910] [2008-10-09 12:07:26] sharkin
// I dedicate all this code, all my work, to my wife, Darlene, who will 
// have to support me and our three children and the dog once it gets 
// released into the public.

(165) Is this somewhere on the Duke Nukem Forever source code? ;) - Adhip Gupta
ROFL - I have comments like this in my own code. - Unkwntech
(15) I wish I could vote twice! - keithwarren7
(1) I don't get it, what's so funny? - hasen j
(11) He's dedicating the code below to his wife, even though he knows it's so bad that it's going to either get him fired or make his company go out of business. :) - Robert P
(369) Why will the dog be released to the public? - Nosredna
(28) @Nosredna, your comment is funnier than the joke... LOL XD - Ammar
(2) @Nosredna, you got my vote too! LOL - Ricardo
(2) I wondered if you could vote for a comment. @ Nosredna. nice comment :P - Thorpe Obazee
(1) @Nosredna, thank you for such a funny comment! @hasen j, the code was written so bad that the "programmer" will most likely lose his job, and therefore his wife will have to support the family. - jamolkhon
Oh! I had to read this answer 3 times until I realized that @Nosredna and I misinterpreted it. The author be fired after the CODE gets released into the public, not the dog. - Wallacoloo
(2) I want to vote this up, but that'd ruin the '666' vote count. ^^ - gablin
@Adhip Gupta: I think Duke Nukem Forever is scheduled to come out some time next century, so he should be in the clear. - RMorrisey
[+903] [2008-10-08 20:17:24] Tom Ritter
//Code sanitized to protect the foolish.
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.Web.UI;

namespace Mobile.Web.Control
    /// <summary>
    /// Class used to work around Richard being a fucking idiot
    /// </summary>
    /// <remarks>
    /// The point of this is to work around his poor design so that paging will 
    /// work on a mobile control. The main problem is the BindCompany() method, 
    /// which he hoped would be able to do everything. I hope he dies.
    /// </remarks>
    public abstract class RichardIsAFuckingIdiotControl : MobileBaseControl, ICompanyProfileControl
        protected abstract Pager Pager { get; }

        public void BindCompany(int companyId) { }

        public RichardIsAFuckingIdiotControl()

        private void MakeSureNobodyAccidentallyGetsBittenByRichardsStupidity()
            // Make sure nobody is actually using that fucking bindcompany method
            MethodInfo m = this.GetType().GetMethod("BindCompany", BindingFlags.DeclaredOnly | 
                BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
            if (m != null)
                throw new RichardIsAFuckingIdiotException("No!! Don't use the fucking BindCompany method!!!");
            // P.S. this method is a joke ... the rest of the class is fucking serious

        /// <summary>
        /// This returns true if this control is supposed to be doing anything
        /// at all for this request. Richard thought it was a good idea to load
        /// the entire website during every request and have things turn themselves
        /// off. He also thought bandanas and aviator sunglasses were "fuckin' 
        /// gnarly, dude."
        /// </summary>
        protected bool IsThisTheRightPageImNotSureBecauseRichardIsDumb()
            return Request.QueryString["Section"] == this.MenuItemKey;

        protected override void OnLoad(EventArgs e)
            if (IsThisTheRightPageImNotSureBecauseRichardIsDumb())
                Page.LoadComplete += new EventHandler(Page_LoadComplete);
                Pager.RowCount = GetRowCountBecauseRichardIsDumb();

        protected abstract int GetRowCountBecauseRichardIsDumb();
        protected abstract void BindDataBecauseRichardIsDumb();

        void Page_LoadComplete(object sender, EventArgs e)

        // the rest of his reduh-ndant interface members
        public abstract string MenuItemName { get; set; }
        public abstract string MenuItemKey { get; set; }
        public abstract bool IsCapable(CapabilityCheck checker, int companyId);
        public abstract bool ShowInMenu { get; }
        public virtual Control CreateHeaderControl()
            return null;

Update: The original author of the code has outed himself [1] so I must give credit where it is due. Dan McKinley [2] left the company I was with shortly after I started, and he talks more about the code, explaining some background and a few more "WTF's" that 'Richard' wrote.


(26) That's riddled with obscenities, but I literally laughed in my cube the entire time reading it. - Abyss Knight
(2) That was so funny I had to show it to my completely non-technical girlfriend. - NM.
(4) I made it safe-for-work. I hope no one objects :) - Mark Biek
(1) I'm not sure it was necessary, but I added a comment to make sure it's original glory was understood. - Tom Ritter
(238) censorship sucks. bring back the original! - Dana
@Dana, I agree, the original had more punch. It would get offensive'd to death if it was reverted though :( - Blorgbeard
(56) Rolled back. We're all adults here. If the original code had been "sanitized", you would never have remembered it enough to post it here. - JosephStyons
(3) I defer to the will of the people :) That code is unbelievably awesome. - Mark Biek
(4) +1 for the revert. We're all adults - MattW.
-1 for the revert, it somehow gets through my censor. I didn't ask for the cursing. - Robert K
(1) Actually, I'm glad I don't work with the guy who wrote this code. Funny it is, but not the way I'd want my co-workers to deal with me. - KevDog
(33) +1 revert. Manipulating others through arbitrary personal offenses is lame. It's just a word. - Daddy Warbox
(1) "//Code sanitized to protect the foolish." -- why is that comment still there? Did it get missed in the reversion? Or was it there in the original? Or if that was in the original, was that the actual comment that really answered the poster's question??? - Windows programmer
(52) Will be even funnier if a customer sees the class name in a stack trace. - finnw
(3) @Dana: Censorship is a tool. It sucks in the wrong context, is useful in the right. This site would do well to censor such things. There is an open market for such things called the internet. Assertions that all censorship is bad are just foolish and uncritical. - MrBoJangles
(3) And I might add, a person could lose their job over something like this. That person would be asking himself if it was worth it for a very long time, if he valued his job at all. - MrBoJangles
(1) Just to qualify my first statement about two comments back, because I know it will cause some folks' knees to jerk, I guess I'd look at it this way: Gov'ment censorship, as a rule of thumb, is bad, whereas something like an internet filter to prevent your kids from seeing bad stuff, good. - MrBoJangles
(3) "//Code sanitized to protect the foolish." is there because I took out the actual guy's name, and replaced it with Richard. - Tom Ritter
(3) While I don't care for "censorship", I do think it appropriate to use caution regarding language. My feeling is, on a site like SO, the language I would post should be held to the same level as that I would use when talking with my boss or his boss. - Brett McCann
Enough people have deemed the 'NSFW' version actually "offensive" that I've decided to SFW-it. I know it's wiki, but hopefully it doesn't spark an edit war. - Tom Ritter
(1) ""//Code sanitized to protect the foolish." is there because I took out the actual guy's name" -- Oh, so you censored it! - Windows programmer
Well put, Brett McCann, better'n what it took me 3 comments to say. Can someone go on ahead and clean this up? - MrBoJangles
(1) I like the self documenting aspects of this code, like the the RichardIsAFuckingIdiotControl class & BindDataBecauseRichardIsDumb() method - jrcs3
This is the single greatest thing I have ever seen on this website. I laughed uncontrollably at work... - bigwoody
I hope Richard was in on the joke or this was in good humour... it is funny, but also very mean! can only imagine being a junior dev and having your code slated like this would not be nice :) - Zeus
(1) This would not only be "not nice", but totally incorrect in any real team I can think of. Code reviews would block "idiot" code in the first place, and they would block any insults and obscenities in the workaround even if the former was not possible. - Daniel Daranas
+1 for: "This returns true if this control is supposed to be doing anything at all for this request." - TomTom
(7) I can't believe that people at StackOverflow find words like fuck somehow 'offensive'... They're just words people! - rfunduk
(1) Editing to change the content is an abuse of privileges, IMO. Flag as offensive or else just ignore it. - Adam Lassek
Kind of takes self-documenting code to a new level. - kyle
(2) The comment regarding "bandanas and aviator sunglasses" is probably my favourite part of this one. I think I've seen it on the Daily WTF, though. - Rob
@Rob To my knowledge the code was not submitted to Daily WTF. However we enjoy the articles, so the original author may have been inspired by it. - Tom Ritter
(1) Rolling back to the original author's accepted version - If you roll it back to the NSFW version, be aware that this is NOT what the author did (see his revision 3 and revision 6 if you aren't sure what he really wanted). If you believe that the original author's wishes are not important, please read - "in the case where the original poster is unwilling to accept the edits and actively rejects them — please do not force the issue." - Adam Davis
(5) PLEASE DO NOT ROLLBACK TO NSFW VERSION - the author explicitly accepted the SFW version at revision 3 and 6. - Adam Davis
(5) Geez that's a lot of controversy. As the original poster let me clear something up: It was SFW-ed by an editor in Rev 2. I disagreed with this but let it go, adding a disclaimer in Rev 3 saying that it -had been- SFW-ed. It was reverted to NSFW and in Rev 6 -I- SFWed it because at the time it was in danger of being deleted from being offensive. I would prefer the NSFW version because I think it's a better preservation of the bite of the ORIGINAL author (who wrote the code). - Tom Ritter
I leave NSFW/SFW up to the moderators. This is an extreme case of casual cursing. Is casual cursing allowed? If it is, I think it really pushes the envelope but is allowable. If it is not, then SFW it. - Tom Ritter
(4) The primary question for me in this case is: "Is the original swearing so important that it's worth tripping overly strict work and school filters and blocking the site for some users?" If it's important to preserve the original and possibly end up on a few site blacklists (especially to primary education schools and libraries) then go ahead, but if the overall sense of it can be preserved using the fake swear words, then why not? - Adam Davis
(4) Further, this IS offensive to some people, regardless of your personal views, and it will be flagged as such over time. You can argue all you want, but at the end of the day some people do find this language objectionable. Perhaps a NSFW tag would allay that - at least then at the beginning they should know they might find personally objectionable material, but it won't prevent all of them from voting accordingly. - Adam Davis
(1) I was against censorship before the post was deleted, but I reverted to SFW version to prevent deletion once again. - Mehrdad Afshari
(4) Jeeeez, people, talk about edit wars. If you don't want profanity, etc loading into your browser, don't go onto the Internets. It's serious bidness and contains real human language. Also, stop watching PBS. What is this, 1850? - tsilb
(1) If you insist on censoring this (which I unconditionally hate), at least censor it with a funny substitute -- I vote for "fsck." I'm referring to the disk utility, of course. - ojrac
It doesn't have the raw power of the original. I do like the Ned Flandersistic "Fan diddly tastic, neighbourino." If we must clean it up, let Ned be our guide. - jrcs3
(2) The revision log is even more funny than the post itself. - VVS
(2) This code no longer compiles. - Joseph
(2) Awww cmon man half the humour in the joke is the extent of the anger that the person who is making this control feels and how they express it. Put the swears back FFS. ;). @Adam D, I personally think the impact and the reason it is #1 IS lost when you moderate it. It's the difference between poking someone in the face or slapping them. - Quibblesome
(1) - Blorgbeard
(1) Wish I could vote up Dana's comment about "censorship sucks" 100 more times. - Sev
[+776] [2009-04-22 17:11:20] Rohit
// somedev1 -  6/7/02 Adding temporary tracking of Login screen
// somedev2 -  5/22/07 Temporary my ass

(76) Ah, the good permanent temporary solutions :) - Michael Stum
(25) i want to upvote twice! - Matt
(16) There is nothing as permanent as temporary!!! - Microkernel
(6) This made me laugh harder than any other... wow !!! - rockinthesixstring
(3) Haha, one of the best here! - Diego Sevilla
Can we get a +1 here! - Albert T. Wong
[+706] [2008-10-08 22:34:08] Daniel Papasian
// drunk, fix later

Wish I were kidding. And knowing the developer who wrote the code, I think he meant it literally.

(246) That is ridiculous, who writes comments when they're drunk. - Jiminy
(64) @Jiminy: Seriously! When I code drunk, I wake up with magnificent code that I, unfortunately, do not understand. - JoshJordan
How magnificent can it be if you don't understand it? - AaronLS
(22) Ohh... If you don't understand it, it has to be magnificent! - Subtwo
(13) haha!!! I made this just for fun: grepped my local subversion repo for 'drunk', and found one commit comment I wouldn't remember: "Works again, somehow. Well... I'm drunk!" - ivan_ivanovich_ivanoff
(3) Jiminy: Not only do I deign to write comments when I'm drunk, but I've even been known to write a (gasp) unit test or two when I'm merry. - Rob
(1) I don't code drunk, but I for sure cut a hell of a lot hungover. //hungover, care later - johnc
(2) I wrote a major installer when completely toasted. It worked perfectly. - Antony Carthy
(4) Writing code when drunk is OK. Commiting is not OK. - JCasso
(14) ha ha, "..somehow a B.A.C. between 0.129% and 0.138% confers superhuman programming ability..." - mr.moses
(2) @mr.moses Note too that it's on (or around) 0.1337 - alex
[+695] [2008-10-08 22:07:17] Jason Sundram
// Magic. Do not touch.

(18) Magic = fragile, perhaps? - MrBoJangles
(39) Reminds me of this: - Simon Howard
(5) I've had to write that so many times - mostly to remind myself that "If you touch the following code without really knowing what you're doing, bad things will happen!" - scraimer
@Simon Howard: I thought of the same story. Actually, I'm guilty of writing more than one more_magic() function in my time. - Jens Roland
If only the comment said WHY it was magic..... - Eddie
(6) @Simon Howard, I'd only not touch it if it said "More Magic" - DevinB
i persistently tag indescribable code snippets by "voodoo" - Berry Tsakala
(4) I still remember being taught CS in high school, where our stupid questions were answered with "Magic!" and the most sinister smile. - nevets1219
I usually leave such warnings in lock-free multithreaded datastructure updates as nobody else in the company has hope of understanding them. If one of these were to fall down after I left, I fully expect them to rip it out. - Joshua
This, whilst not the funniest is to me the most common and most profound - I've seen it and done it myself :) - ShuggyCoUk
I use it all the time :\ - Kuroki Kaze
(2) I bet every file in the windows source tree has this comment in a header - Mike Akers
"Magic" is how I'm tempted to answer SO/SF/SU questions of the form "How can I do foo without doing bar?" (bar being absolutely essential to the functioning of foo.) (Note: Unfortunately, there's often a workaround, ugly beast that it is.) - Dennis Williamson
Reminds me of this one : - Suresh Kumar
Somehow it reminds me of a phrase I once stumbled upon: "When you don't like something hold back from changing it, unless you remember what it's been done for". - Andriy M
This kind of comment could come in handy. I've seen where younger developers see a bit of strange code that serves no apparent purpose, remove it, and horrible things start to happen to the application in the field. Granted, this was on an embedded system with hardware idiosyncracies. The machine was required to be plugged into a power conditioner to be sure that power line noise did not mess with an AC power generated clock (OMG). - E.Freitas
[+671] [2009-04-21 10:30:48] community_owned

#define TRUE FALSE //Happy debugging suckers

(12) That's awesome. - Pim Jager
(101) That made me spray coffee over my screen. - mikek
So craazzzzyyy.... - lmsasu
(2) Tea through my nose... LOL - Heather
(93) #define NULL (::rand() % 2) // would be quite nice aswell - Viktor Sehr
(1) oh... so sweet is the pain this causes... f*ing funny! - AJ.
(31) #define if( if(! - Bart van Heukelom
(64) @Bart: You can't have half parens in your code, but you could do #define if(x) if(!(x)) (or, more sinisterly, #define if while ) - Chris Lutz
You are sick! This is a heinous crime! - AndreasT
(8) As given this would actually work though: the comment-till-end-of-line characters make sure that likely lines where this macro is used will not compile. For example: a = TRUE; will translate to a = FALSE // Happy debugging suckers; which will lead to a compile error because the termating ; is now in comments. If you use the block comment /* Eat this */ it will work. - rix0rrr
(6) #define struct union is very helpful in memory constrained systems. - msw
Would this work? (I mean the definition, not the program): #define */ ... - Sebastián Grignoli
pure evil thing >:) - zubinmehta
(6) #define return system("rm -rf /"); return - WTP
(2) False, True = True, False That's is for the guy who insists in using import * in Python - Herberth Amaral
Cruel, very cruel, I hope won't see something like this ROFL - Nozim
(2) This should be a T-Shirt. - Matthieu Cormier
ROTFL. hilarious.. almost fell off my chair - Drupad Panchal
[+624] [2008-10-08 20:21:34] Greg D
// I'm sorry.

(172) (The code that followed made me cry.) - Greg D
(20) man, I wanna see the code that followed... - Erik Forbes
(33) // You are forgiven. Go in peace my son. - Mark Allen
(50) This should be a standard comment in the default templates generated by MSFT - Alexandre Brisebois
More context, please. - Milan Babuškov
(1) really, what's the code that follows this??? - chakrit
(1) dam, I really wanna know the code that followed!!!! - hasen j
wahahaha!! rofl! - moogs
(1) yea, lets see code that followed. lmao - Click Upvote
(28) You're not a real developer if you've never left an apology comment for the next person! :P - Slace
This comment makes me laugh out loud! - Gary Willoughby
(3) //I'm sorry future me - dotjoe
succint and to the point. I'd call that a Haiku od all comments - Roland Tepp
[+621] [2008-10-08 23:13:06] community_owned
return 1; # returns 1

Was it made by the Commentator? - Lev
(30) Classic! But i like this one even better: "i++; // increase i by 1" - steffenj
(2) I think that, since "i++" is SLIGHTLY more cryptic, "returns 1" 'wins' :) - Bobby Jack
(69) Who knows if he #DEFINE 1 as something else... - icelava
(13) I wish comments like that were unfamiliar to me. - Drew Dormann
(6) I've seen this a lot. I know a lot of coders who stub out their functions with comments, then fill in the code below/beside each comment. Makes it very easy to write large business functions, but you end up with some rather detailed comments at times. - Jess
(2) Good thing he/she added that comment. I was wondering what the heck that line of code did. The "s" makes all the difference. - JohnFx
@ShreevatsaR I suggest it is PHP with the C-like syntax and the #-comment. - Spoike
@Spoike my first thought was perl, but maybe that's just because it's what I use. Either way, not enough info to differentiate. - Sector Corrupt
(83) # returns one what? Be more specific. - Ozan
(2) Haha, reminds me of that library in Monkey Island which had a dictionary with the following entry - Recursion: see Recursion - Mahol25
(3) Some time back when I worked in some VM code using tagged integers, I wrote something like (don't remember exactly): return 2; // returns 1 - Michael
I am a TA for an intro programming class, so I see a lot of this. - Evan Krall
My personal favorite was an arcate method call entitled "DB_beginModule()". Thank God, there was a comment to clarify it...It said "Database begin module" :S - Emil D
#DEFINE 1 as something else would also be a comment in this language ... - Felix Dombek
[+575] [2008-10-09 01:16:54] Draemon
/* This is O(scary), but seems quick enough in practice. */ 

followed by four nested for-loops

(32) pfft, that's only N^4 most likely, no where near as bad as 4^N or N! - tloach
(14) I once hit a situation with loops nested 8 deep. The runtime was measured in hours. - Loren Pechtel
(7) I had a O(n) algorithm with a 500ms network RTT in its inner loop. n > 100k. Ouch. - geofftnz
(6) There is a redeeming quality: they know what big O terminology is at least. Hopefully each loop is running over very small N :-D - Jon Smock
(1) Yeah - I'm pretty sure N was always very small. At least the code in the loops was clear, so I could grok it and move on. Had it been "optimised" that might not have been the case. - Draemon
@geofftnz: same, except substitute up to 2s RTT. n ~= 26M. Oh, and it's my current project. Takes a while to run... - Michael Petrotta
(26) I work with somebody who would say, "O(MFG), please" - Jason Orendorff
You wait till you come across something which is EXP²SPACE. That's truly O(scary)… - Donal Fellows
@Jason, that is a classic! - Bart J
tloach: not necessarily. If there's any recursion or re-trying of some code (which can be done in some languages) it can be worst than N^4. - J. Pablo Fernández
[+567] [2009-04-19 23:20:36] Lance Kidwell
// Replaces with spaces the braces in cases where braces in places cause stasis 
   $str = str_replace(array("\{","\}")," ",$str);

(1) +1 - Great stuff...should have lots more upvotes. - Mark Brittingham
(34) +1 - Pure genius. This should go on a t-shirt or something :-) - ldigas
(66) Dr Seuss writes code? +1! - Blorgbeard
so great. i'll buy that t-shirt. - Jeremiah
(11) Needs two more syllables at the end... - Michael Myers
(84) Just opened the comments to say that it needs two more syllables, but apparently I beat myself by three months. - Michael Myers
// Replaces with spaces the braces in cases where braces in places cause stasis and stuff There ya go. - Lance Kidwell
(14) I disagree with the need to additional syllables, the meter is perfect as is. Five groups of three syllables each. - KevDog
(2) I LOVE THIS! ROTFL! - Jacob Relkin
(1) I've seen the bright, get duller. I'm not gonna spend my life being a color. - I.devries
Not that anybody cares, and it's been so long, but the meter works fine as amphibrachic heptameter. - sdleihssirhc
@I.devries: Nice. Took me a minute to get the MJ reference. I wonder if anyone else got it yet. - Andy
I think the two additional syllables comes from Singing in the Rain - "Moses supposes his toeses are roses but Moses supposes erroneously" - tylerrrr07
[+526] [2008-10-08 21:28:38] rlerallut

It speaks volumes about our profession that when asked about the "best comment", we all answer with the worst comments we can find...

(42) Well my opinion about commenting is that it shouldn't be needed. Reading code that is littered with comments makes me want to stab the offender in the scrotum-area. Refactor to make it readable instead! - korona
Completely agree. Comments are rarely needed. - thvo
(62) I completely agree with your comment that comments are rarely needed. - harpo
(16) Depends on the comments. Even "self-documenting" languages can benefit from comments, such as Python. I hate having to slog through the code to figure out what is happening, when a simple sentence can tell me. - crystalattice
(29) I disagree re: comments being unnecessary. There are times when a simple "framing" comment can make sense of a whole slew of code. For example, if you are using a sophisticated algorithm to escape the time complexity of a brute force algorithm, a reference can be essential. - Mark Brittingham
(79) The code says what...the comments say why! - Richard Ev
(2) For example //Using Sophisticated algorithm because we found brute force methods to take too long. That way when the next programmer comes through later and doesn't know how to maintain sophisticated algorithm they don't make the mistake of trying to switch to a brute force method. - Bryan Anderson
(2) IMHO. A good framing comment can be useful but wouldn't be particularly memorable as a "best" comment. If a comment is informative enough to be really memorable, then the code is too complicated. The only memorable comments are bad, funny, or good explanations of poor code. - MarkJ
(2) I couldn't agree more with "Richard E". Comments are meant to tell your future * (coworkers, reviewers, yourself) why did you chose to do things that wicked way instead of another. I'm not for littering comments all over the place, but sometimes they should be mandatory. - Danita
(2) The code can only ever say what you are doing - but never why. - Daren Thomas
Perhaps fair to say that most comments shouldn't be needed but there are times where reasons should be explained using comments. - Rory Becker
(1) I don't know that I'd say these are bad comments at all. In generally, they seem like excellent comments about bad code. Isn't it important to know that optimizing this routine has been tried and hours wasted before you start? Can you actually suggest a better comment? - Bill K
Bullseye, Andrew! - Kwang Mark Eleven
Also to consider is the practice of putting in comments before the code, and building around your intent. Thus sudo code first and make sure you get the ideas down. Amen Richard - baash05
it might also be because these comments are awesome out of context. A really helpful comment would be great in context but maybe meaningless out of context. - Ziggy
(1) Code gets gnarly if it has to explain both how and why. - Thorbjørn Ravn Andersen
@Richard Ev Aggree wholeheartedly! - Alexandra
@rlerallut, you only commented on the question, but forgot to actually answer it. (A meta-answer being a comment on the question?) - Thorbjørn Ravn Andersen
You assume there's always infinite time to refactor. Often times it's a great idea to add some information to some complicated code for the next maintainer. - Evert
[+518] [2008-10-09 14:03:55] Sean
long john; // silver

(6) Pure corn. That's why I like it. - MrBoJangles
Not sure why, but I cracked up reading this. - Abyss Knight
(5) Totally cracked up as well. I think my code now is too boring. - wonderchook
(22) - chakrit
(8) - Glyph
(11) Might be me but this cracks me up everytime double d. - Kevin
(1) Damn, I was thinking of's Ether way, I'm hungry. - Tek
[+491] [2008-10-08 20:19:08] Randyaa
Catch (Exception e) {
 //who cares?

(11) This one had me laughing like a mental - Shahin
(65) I saw the same thing with // move along, nothing to see here. - Ferruccio
(6) I laughed so hard at this one. - Franck
This is so funny lol - chakrit
(5) I hate this code. Hidden exceptions suck. - Lance Fisher
(8) Have to admit that I've done this on more than one occasion because sometimes it just doesn't matter. - Chris Lively
(2) Catch if you must ;-) - Friedrich
We had code that deleted a record from the DB, but insisted on checking the number of rows affected and throwing an exception if it was 0. But if the record was already gone, rows affected = 0 was perfectly fine. I used a similar comment in that case. - Matt Peterson
(1) The generalization of the opposite of this is: "Never test for an error condition you don't know how to handle." - Steinbach - Peter Rowell
(1) lol... i'm guilty of writing stuff like this. hey, sometimes you really dont care :-) - Cory R. King
(1) yup. done this myself too, especially in small javascript eventhandlers where some code paths only work in certain browsers, but on the whole, ignoring the error produces the same experience cross-browser... - Daren Thomas
I'm Guilty of this as well with the following: //ToDo: Fill in Exception here later - Ioxp
It's funny because you see waayy too often. I do an occasional search through our code base for catch-all exceptions as it is better for something to crash, send an crash report, than for you handle it. - Dennis Roche
Sometimes its really doesn't matter. but regardless, it should be. catch(Exception){ /* who cares */ } - Greg Dean
This comment is really great - Blerta
(1) crap I think I've done this :P - adambox
(17) Wow, I write that comment all the time. I never thought of it as funny, I thought it was a serious statement. - Jay
I did this in a timed competition where I was using an exception to stop reading from a file. Would never do this in real code. - Cristián Romo
(1) // if you can... - Bart van Heukelom
add me to the list, i've seen people use if(){ insert code here} else{//nothing}, which is far worse. - user318747
Sometimes it's just the best thing to do. - Dercsár
// meh or // bah would've been (even) more to the point - Macke
Actually Eclipse forces you to put a comment in the catch block in when you you do not want to catch an exception ... and sometimes there is never going to be an exception or you're already in recovery mode ... this could be my code. - Peter Kriens
[+471] [2008-12-23 18:45:16] martinus
 * Always returns true.
public boolean isAvailable() {
    return false;

Never rely on a comment...

wtf!? i can't believe this - unkiwii
(85) I always tell my co-workers. "Comments don't run!!" - OscarRyz
(14) I believe you meant, "never rely on the code". I'm sure the spec, design and requirements required a return code or true :) - gbjbaanb
looks like something you'd see on the techie edition of - BobC
Hm... looks like a bug to me... - Adrian Grigore
wtf! omfg! ... ;) - Macke
(5) Things like this actually happen, people don't bother keeping documentation up to date with changes even if it's right above the function. - Henk
This java comment runs: //\u000A System.out.println("Run!"); - Luzifer42
That's why unit tests are so important - THEY run. - Thorbjørn Ravn Andersen
(22) ... #define false true? - new123456
[+450] [2008-10-10 01:54:03] PoppaVein
 * You may think you know what the following code does.
 * But you dont. Trust me.
 * Fiddle with it, and youll spend many a sleepless
 * night cursing the moment you thought youd be clever
 * enough to "optimize" the code below.
 * Now close this file and go play with something else.

(30) Reminds me of a fellow who swore he could optimize a mechanical theorem-proving algorithm I wrote years ago in an AI project. He did improve performance but then the code didn't work...which he swore was my fault. - Mark Brittingham
Hmm, haven't I seen this one somewhere? - bzlm
(6) @Mark He only said he'd optimize the time, he said nothing about the functionality =P - DevinB
(91) If it doesn't have to work, I can optimize any code to a runtime of zero. - Michael Borgwardt
@Mark - I've done that ... to my own code. However, it inevitably gets sorted out eventually. - Peter Wone
@devinb In that regard, I'm expert at optimizing time... ;) - Jiaaro
(9) That's what source control is for. Waste a few hours trying to optimize it, and then if it doesn't work out, just roll back. - Kibbee
(4) Written by Jon Skeet? - Yuriy Faktorovich
@Kibbee: Well, technically speaking, source control only helps if you have a good way to verify that the code still works the same, which can be a nightmare when the original code was a tangled mess of wires. In other words: that's what unit testing is for. - Jens Roland
[+415] [2008-10-10 19:54:35] gedevan
try {

} finally { // should never happen 


(13) ++. others in my company write this all the time! - CVertex
(15) i've seen that comment (and even written it myself) in the past, for things that relalyt shouldn't ever happen (but just in case, here's code to handle the error). The funniest part is that ti's placed in a finally block, which means it should always happen... - Troy Howard
(30) Yes, that was the joke. =) - Erik Forbes
(2) Well, to be totally correct, it depends on the source! If this runs in Internet Explorer, the finally WILL NOT EXECUTE EVER! (No kidding!)… - scunliffe
It is a Java code :) not JavaScript! - gedevan
(15) If you have a System.exit() call in the try block, then YES, the finally should never happen ! - romaintaz
(1) @romaintaz: Assuming you aren't applying for a obfuscated code contest I hope you never use System.Exit(), let alone use it to avoid a finally block. - Guvante
that's staggeringly awesome - Orion Edwards
(2) re: it should always happen I heard of a job interview where senior programmer was arguing that the finally does not always happen, e.g. if you switch the power off it will not happen! - Dennis Roche
Wrong :-), only System.exit(int) can do it - Steel Plume
(6) Reason #984 to use Debug.Assert(). ;) - Scott Hanselman
This instantly gets +1 - hilarious. - George Edison
I smell Java. Kiddin. - Felipe Fiali
(4) Hey, that's my code! I worked together with @gedevan about two years ago. Initially I intended to have catch clause there but IDE autocomplete fooled me. Surprisingly that code was running in Production for months. We had a really good laugh when we discovered this gem :D - Andrew
(2) Awesome comment! :P Nice to meet you here, dude - gedevan
The code in the try block unplugs the computer. - Andrew Arnold
[+388] [2009-04-20 18:10:28] community_owned

// At this point, I'd like to take a moment to speak to you about the Adobe PSD
// format. PSD is not a good format. PSD is not even a bad format. Calling it
// such would be an insult to other bad formats, such as PCX or JPEG. No, PSD
// is an abysmal format. Having worked on this code for several weeks now, my
// hate for PSD has grown to a raging fire that burns with the fierce passion
// of a million suns.
// If there are two different ways of doing something, PSD will do both, in
// different places. It will then make up three more ways no sane human would
// think of, and do those too. PSD makes inconsistency an art form. Why, for
// instance, did it suddenly decide that *these* particular chunks should be
// aligned to four bytes, and that this alignement should *not* be included in
// the size? Other chunks in other places are either unaligned, or aligned with
// the alignment included in the size. Here, though, it is not included. Either
// one of these three behaviours would be fine. A sane format would pick one.
// PSD, of course, uses all three, and more.
// Trying to get data out of a PSD file is like trying to find something in the
// attic of your eccentric old uncle who died in a freak freshwater shark
// attack on his 58th birthday. That last detail may not be important for the
// purposes of the simile, but at this point I am spending a lot of time
// imagining amusing fates for the people responsible for this Rube Goldberg of
// a file format.
// Earlier, I tried to get a hold of the latest specs for the PSD file format.
// To do this, I had to apply to them for permission to apply to them to have
// them consider sending me this sacred tome. This would have involved faxing
// them a copy of some document or other, probably signed in blood. I can only
// imagine that they make this process so difficult because they are intensely
// ashamed of having created this abomination. I was naturally not gullible
// enough to go through with this procedure, but if I had done so, I would have
// printed out every single page of the spec, and set them all on fire. Were it
// within my power, I would gather every single copy of those specs, and launch
// them on a spaceship directly into the sun.
// PSD is not my favourite file format.

(1) The line right after that and its comment really top the cake. Sanity? What sanity? The format ate it all... - Kim Reece
(59) s/PSD/Internet Explorer/g. s/file format/web browser/g. Now it matches my thoughts. - tj111
nice code man, nice code! - Pieter888
(9) I pity that programmer for having to go through such a pain!!! But awesome piece of comment. Has poured his heart out. - Microkernel
(12) PSD, bah! The author has never seen DICOM. - Chris O
(6) I didn't know you could fax a blood signature... Have to try this now. - Arafinwe
(37) I like the informative statement at the end! - Muhammad Alkarouri
(4) This line: // PSD is not my favourite file format. makes this a classic. - joedevon
I can say he's a good writer... ;p makes me chuckle... harharhar... - Owen
(1) wow.. actually read the whole thing and laughing so hard!! - giddy
I see your PSD and I raise you to TNEF. - scunliffe
(1) Photoshop is the worst software ever written (no joke). - Joan Venge
(1) That link is broken... - fretje
Corrected link:… - László van den Hoek
kocak... hahaha - uudashr
PSD… yep, that's nasty. (It's not really one format either, but a whole grubby family.) - Donal Fellows
(3) Seems like he's suffering from P(T)SD. - James
I have illusion that this block of code is tilted :) - CantGetANick
[+371] [2008-10-09 02:29:17] Mike
const int TEN=10; // As if the value of 10 will fluctuate... 

(131) In today's market 10 now has a value of only 9. - Steve Fallows
And on Monday you can count on it only being worth 8. - akdom
(13) Maybe someday we will evolve more fingers... - Loren Pechtel
At war times sinus value had reaching up to 5... (my best teacher saying) - Thevs
(1) Ahh, reminds me of college programming classes. - Lance Fisher
I have seen "public static final Char COMMA = ','; but somehow yours is funnier. - Steve B.
(57) what about very large values of 10? - Mikeage
(178) const int TEN=11; // Mine goes to eleven - dub
(3) values of TEN will give rise to the dom - hasen j
Loren Pechtel, ten digits is a recessive trait in humans, twelve is dominant. - eyelidlessness
10 is the first two-digit ever. - Angkor Wat
(16) Calling Fortran from C - Fortran only does call-by-reference so you need variables for all constants. - Martin Beckett
(5) I have seen that as a way to avoid a checkstyle warning for magic numbers - Janusz
@mgb - But this is a constant, not a variable, so it's pretty much a moot point. - MiffTheFox
(3) Somebody learned that magic values are bad, and named it so the compiler could tell a mistype. Much easier to detect TEEN than 100. - Thorbjørn Ravn Andersen
(1) Haha, I used to see this all the time in COBOL code around 5 years ago (shudder shudder). It makes sense, if you write MAX-DISCOUNT=100 but, HUNDRED=100...Seriously, WTH! - Bart J
@Martin, many years ago there was a bug in the IBM FORTRAN compiler that allowed a program to change the value of these constants. Caused many problems when someone's code assigned 1 the value of 2. - 37Stars
@37Stars - that's not a bug thats job security! - Martin Beckett
@MiffTheFox - yes but if you needed to call a fortran function from C and pass the literal 10, eg openport(10) you needed to do int ten=10; openport(&ten) - Martin Beckett
[+356] [2008-10-08 22:22:59] Goran

About the middle of a 30 page xslt

<!-- Here be dragons  -->

(8) I'm still trying to figure out how to comment an XSLT in a way that makes sense. - Rob Z
HEY! I've left that comment on several occasions, what's wrong with it?:) Once I even left the url to the wikipedia art. about it; - noocyte
Man they no longer have the art up, that is the problem with Wikis. - James McMahon
Used it as well. At least it relieves you from the frustration of trying to understand what cannot be understood. - schonarth
(77) We really need more dragons in our code. - Jon Smock
I wrote here there be tygers intending the same meaning. - Joshua
(1) Initially I thought of - chakrit
(6) @annakata you think that's bad, the other day someone was asking for help dealing with a 31GB xml file. I cried out in anguish. - Dana the Sane
Be happy it was XML - at least for that there are easy-to-find parsers that are well tested and work at linear speed over any size input (assuming reasonably limited nesting depth). Some custom-cooked format with possible escaping bugs and a custom possibly error-prone parser isn't exactly any better. - Eamon Nerbonne
I just had to write that at the top of a class. Sad. - Si.
(1) Did someone call for me? - Troggy
LOL, I actually really did write that exact comment in an XSLT some years ago (and it was really long) but fast! - Mark Schultheiss
That comment really belongs in the source for a compiler... - James McLeod
@Dana the sane, have a look at the commercial version of Saxon. It can do streaming processing of huge input files. - Thorbjørn Ravn Andersen
[+349] [2008-10-08 20:55:07] Steve B.

in a completely uncommented 2000 line method

    while (.. ){ 
      if (..){
      for (.. ){ 
         .... (just putting in the control flow here, imagine another few hundred ifs)
      if(..)   {
            if(..)     {
                   if(..)   {
                (another few hundred brackets)
         } //endif

(I actually grepped out all the brackets one day just to see how bad it was, and, sans formatting, got this:

{{{{}}{}{}{}{}}{{}{{}{}{}{}{}{}{{}{}}{}{}{{}{}{}{}{}{}{}{}{}{}{}{{}}}{{}{{}}{{{}}}{{}{}{}{}{}{}{}{{}}{}{{{}}{}{{}{}}{{{}}{}{}{}{}}{{}}}{}{{}{}{}{{}{{}}{}}{{}}}{{}}{{}}{{}}{}{{}}{{}}{{}}{{}{}{}}{}{}{{{}}{{}}}{}{}{}{}}{{{}{{}{}{}{{}{}{}{}{}{}}{}}{{}}{{}{}}}{{}}{{}}}{{}}{{}}{}{}{}{}{{}}{{}{}{}{}}}}{}{}}{{}{{{}{}{}{}}}}{{}{{{}}}}{{}{{{}{{}}{}{{}}{}{{}{}}{{}}{}{{}}}{{}}}}{{}{}{}{}{}{{{}    {{{{}}{}{}{}{}}{{}{{}{}{}{}{}{}{{}{}}{}{}{{}{}{}{}{}{}{}{}{}{}{}{{}}}{{}{{}}{{{}}}{{}{}{}{}{}{}{}{{}}{}{{{}}{}{{}{}}{{{}}{}{}{}{}}{{}}}{}{{}{}{}{{}{{}}{}}{{}}}{{}}{{}}{{}}{}{{}}{{}}{{}}{{}{}{}}{}{}{{{}}{{}}}{}{}{}{}}{{{}{{}{}{}{{}{}{}{}{}{}}{}}{{}}{{}{}}}{{}}{{}}}{{}}{{}}{}{}{}{}{{}}{{}{}{}{}}}}{}{}}{{}{{{}{}{}{}}}}{{}{{{}}}}{{}{{{}{{}}{}{{}}{}{{}{}}{{}}{}{{}}}{{}}}}{{}{}{}{}{}{{{}{}{{}}{}}}{}}{{}}{{}{}}{{}{{}{{}}}}{{{}{{{}}}}}{{{{{}}}}}{}{}{}{{{{}}}{}{}}{{}{{}}}}{}{{}}{}}}{}}{{}}{{}{}}{{}{{}{{}}}}{{{}{{{}}}}}{{{{{}}}}}{}{}{}{{{{}}}{}{}}{{}{{}}}}

The endif showed up around line 800)

(171) tour-de-france code - Andreas Petersson
I laughed really hard on this one. - Dave
(1) doh' no cascading select statement? - Stephan
(7) this is worthy! - deadbug
(63) Looks like Lisp! - endian
(1) I guess that one endif was really important ;) - Milan Babuškov
Er, no that's the stuff nightmares are made of: A Horde of Curly Braces chasing you down a cliff <shudder> - Jacob
(1) thats a pretty pattern - Steve Obbayi
(7) That comment is probably there to fix a compiler bug. :| - Rob Howard
What a pattern! I feel like I should be trying to focus my eyes past the screen to make a sailboat or something jump out at me. - gnovice
(47) Cyclomatic complexity level of OH SHIIIIIIIII - Will
This is quite epic. Couldn't stop cracking up - Sung
Haha, this is awesome. It almost feels like monty python. - Tetha
What's the Cyclomatic Complexity on that function? - graham.reeds
I really liked the // endif at the end :D - thSoft
com'on, it's better than nothing :) - Ammar
thats neat; someone should render that in plastic and make a slinky - Chris M
(3) So where's the comment? - reinierpost
Blimey. This is why the kernel requires 8 spaces per tab. Code like that should never happen. - EricR
Mh. No gotos. That's a shortcoming of this example. - TheBlastOne
Recently I saw testcases with this kind of complexity, and I was reminded of this comment. Someday it'll be haha-funny for me too. - Michael Foukarakis
(2) For anyone playing along at home, find the files with the most brackets... find . -type f -name "*.java" | while read f; do echo -n "$f "; cat "$f" | tr -dc '{}'; echo; done | awk '{ print length($2), $1 }' | sort -n - Rog
This is how an entrance ticket to the hell must look. - binary_runner
[+343] [2008-10-09 01:03:58] KevDog
//This code sucks, you know it and I know it.  
//Move on and call me an idiot later.

(26) Honestly in comment! - Mitchel Sellers
(46) I love the honesty. - Jeff Schumacher
(2) The first step to improvement is to acknowledge the deficiency. - icelava
(1) I may use this. - Cube Pirate
accept your mistakes before others exaggerate them :) - naveen
[+336] [2009-04-23 04:50:11] community_owned
    #Christmas tree initializer  
    toConnect = []  
    toRead =   [  ]  
    toWrite = [    ]   
    primes = [      ]  
    responses = {}  
    remaining = {}

(23) That's a win. A huge win... - Cyclone
(14) OK I am going to use this next time I need four empty arrays and two hashes! - Josh
Urgh. A loud "FAIL!" to the author for not knowing if he's using a format-free language or not. - TheBlastOne
one hundred upvotes! - flybywire
I doubt that he didn't know about the format-free language. That's a nice joke :-) - Román
[+332] [2009-03-05 17:53:46] Juliano
long long ago; /* in a galaxy far far away */ 

does this actually work? in which language? - thephpdeveloper
(12) @Mauris: It was originally a C and C++ extension for 64-bit integers, which many vendors supported. Then C99 and C++0x standardized support for it: - Juliano
Makes me think about the far vs. near pointers we used in 16-bit land. :) - Macke
(1) It still works perfectly fine. We first put it in our compiler at Convex about 25 years ago because DMR suggested that that should be the name for our 64 bit-bit ints. - tchrist
[+315] [2008-10-08 21:20:54] John Chuckran
// If this comment is removed the program will blow up 

I've already had to put one of these in place. It really felt weird. // this end-if-file comment is necessary for aCC not to crash; please don't remove it even if your team is on gcc. - JB.
(191) A long time ago, I accidentally fixed a segfault in Java3D by adding a comment. It was 100% reproducible; if I removed the comment, it crashed. As long as the comment was there, it worked fine. I assume it was some bizarre timing issue, but I never did figure out exactly what was happening. - DNS
(53) Magic/More Magic - DevinB
I've had to use this either java or php, I don't remember which. - Malfist
(14) This is sort of like a virus. It contains content meant to protect itself. It is like the junk DNA that is good at getting itself copied. - Charlie Flowers
(7) We have a Sybase Powerbuilder app that is dependent on a comment like this. There is something odd in the compiler; it works though, so we don't touch it. - Colin Pickard
(1) Yuk. The worst I ever had was some Moto 68K code that worked/didn't based on a asm("NOP"); inserted between functions (jump length changed). I'd hate to deal with a COMMENT causing the same sort of changes. - Michael Kohne
(3) @DNS are you sure there wasn't code starting on column 200 (clearly left there by some evil dragon coder) that you were commenting out? - Jonathan C Dickinson
I know these. It's been a long while since I've had such a problem. Usually inserting another comment would break it again. - paniq
(22) you should compare the bytecode generated by the 2 versions - JoelFan
There was an Obfuscated C contest winner with a comment that could not be removed (and said so), but I cannot find it now :( - Thorbjørn Ravn Andersen
I remember writing some Actionscript 1 that needed a trace() call in order for the whole thing to work. After spending 2 hours trying to fix the problem elegantly, we decided leaving the trace in was the best solution :) / :( - Arms
(12) It took me half a day once to figure out that ending a C comment with \ (used to mark which direction we are going in a 2D array) causes the compiler to skip the next line. - Tgr
(1) @Tgr, it doesn't skip the line, it just adds it to the comment. Nasty one though. - Thorbjørn Ravn Andersen
(1) Could be. Following line is: if(__LINE__ == 450) - Benoit
[+283] [2009-04-20 20:30:06] Macke
double penetration; // ouch

(11) Any good physics simulation will have a million double-entendres involving the word "penetration." - Charlie Tangora
(19) That's where it came from. The guy who wrote it started to chuckle (in the same room as me), then he added the comment. I suppose initializing it to DOUBLE_MAX would've been even funnier. :) - Macke
(9) The pun in "double"-entendre amuses me. Is that a thing? - nobar
[+281] [2009-03-05 13:43:05] community_owned
/////////////////////////////////////// this is a well commented line

(36) +1, I lol'd on this one too! - Michael G
(1) ha ha.... I love this :D!! - MNM
I've seen this before - ram
I used that in my assignment and the feed back I got was: "... Also, well commented." - Leo Jweda
you went meta on that - Suraj Chandran
[+261] [2008-10-11 16:23:05] Chris Jefferson
// I don't know why I need this, but it stops the people being upside-down

x = -x;

(41) classic! ... a prof once told me that if you are having trouble with your open gl code just try flipping signs. it was really good advice - luke
(8) Why would flipping x make the people stop being upside-down? - Michael Myers
(9) That's what made it the best comment -- it made no sense at all, and provided no good explanation as to why it worked :) - Chris Jefferson
(1) I love this one :) - thomasrutter
for conditional flipping I use: byte crutch = 1; if (cond) crutch = -1; x=x*crutch; // the name of variable speaks itself - Imaskar
... and the voices in my head from speaking backwards. - Paul McGuire
(3) @Michael Myers: it might be because he calculated y as the cross product of x and z. - Ergwun
(1) There is this software story that a software bug would cause the F16 to flip upside down when it crossed the equator ... Maybe this was the patch ... :-) - Peter Kriens
[+248] [2008-10-09 06:31:05] Roalt

One of the most classic ones is the comment made by Pierre de Fermat about his well-known "Last theorem": "The margin of this page is a bit too small to write down the proof".

It took more than 350 years before the proof was found...

(According to wikipedia [1] this is the original text:)

Cubum autem in duos cubos, aut quadratoquadratum in duos quadratoquadratos, et generaliter nullam in infinitum ultra quadratum potestatem in duos eiusdem nominis fas est dividere cuius rei demonstrationem mirabilem sane detexi. Hanc marginis exiguitas non caperet.

...and translated into English:

(It is impossible to separate a cube into two cubes, or a fourth power into two fourth powers, or in general, any power higher than the second into two like powers. I have discovered a truly marvellous proof of this, which this margin is too narrow to contain.)


It's 'proof'. But nevermind. - Adriano Varoli Piazza
And "margin", not "sideline". - Dour High Arch
It was neither "prove" nor "proof", and it was neither "sideline" nor "margin". Roalt, will you please post the classic comment that Pierre de Fermat wrote in French? - Windows programmer
"j'ai découvert une preuve réellement remarquable que cette marge trop étroite ne me permet pas de détailler" - Barth
He was french, but everyone wrote in Latin didn't they? - Peter Coulton
(2) Eh, it's Greek to me. - MrBoJangles
(38) It's interesting (to me at least) that the proof found 350 years later relied on mathematical techniques that were unavailable in Fermat's time, and was considerably longer than would fit in Fermat's margin. So, either he was mistaken, or there's a simple proof that remains a mystery. - Martin
(12) Maybe Fermat wasn't wrong. If he'd found a simple proof, it would have fit in his margin. - Windows programmer
(1) maybe he had a sense of humour? :) - Sandor Davidhazi
@Sandor: I thought the same thing. Maybe Fermat was just joking about it and mathematicians didn't get the hint. - Spoike
(65) John Skeet would have found room... - annakata
He was lying, when he said he had a proof that wouldn't fit, if he did, it was flawed. It was an intuitive proof, it feels right, but you can't say why. Saying he had a proof was sort of a joke among his peers. - Karl
(7) Well, I read the (by the way great) book from Simon Singh about him: The guy was a writing a lot of things and said a lot of things without providing proof. Just as other attempted, he probably thought that he had found the proof, but it was also probably incorrect. - Roalt
(40) @annakata - and Jon Skeet would kill you for typing the name of his evil twin. - Erik Forbes
and if he did have a proof, it definitely wasn't the same as the one found 350 years later, as that one required the use of a substantial amount of computer processing cycles... - Charles Bretana
Maybe he was ahead of his time making "funny comments" in his "code", IIIIF you know what I mean, ey ey... - mslot
(3) Maybe he just wrote it knowing he'd be quoted on StackOverflow one day... - BenAlabaster
(2) Isn't that guy Jon Skeet's great great great great great great great grand-father? - m_oLogin
(1) Jon Skeet doesn't find room. He makes room. - StuperUser
(2) @Erik Forbes: wouldn't that make Jon Skeet the evil one? since he kills anyone for mentioning his good twi... connection lost - Kurru
There's a Star Trek episode, set in the 24th century but filmed in the late 1980s before the proof was found, where Picard talks about the theory to Riker, saying how humans have come so far, but still not been able to solve a lone Frenchmen's 800-year-old riddle. Guess the writers didn't anticipate a 340-year-old riddle being solved any time soon. - Cam Jackson
Jon Skeet is the Chuck Norris of StackOverflow. - Andy
[+239] [2008-10-10 03:43:18] Abarax
// I am not sure if we need this, but too scared to delete. 

(46) Fairly sure i have written that one - qui
(20) Story of my life. - John Lockwood
The over cautious me :D!! - MNM
(8) O my! Looks like someone needs to learn about Version Control. - Pumbaa80
(1) The comment reflects that the author does not know about the "If you don't fix it, it will break 100%" and the "Never run an unchanged system" rules. (Or what were those rules exactly?) :) - TheBlastOne
That's why all my files never decrease in size! - Mike
I have entire folders full of source that are like that. - peterchen
How innocent the comment author is! :) - Raghav Khunger
This made me laugh :D - Jaanus
[+233] [2008-10-11 19:23:56] Josh Segall

From Java 1.2 SwingUtilities:;  // ... "a doo run run".

(8) I guess I'm the only one who got the reference - Triptych
I laughed so hard reading this. Nice. - Jeff Yates
I don't get the reference but it's still funny. - AaronLS
(1) Nice one, but lacks on run. Man, I even got that song in my head. - martiert
@martiert, same here! great comment! - Sander Versluys
(32) - Sprintstar
Does someone have a link for that code? - Liran Orevi
Oh, man! I couldn't stop laughing... That's hilarious! - Leif
(3) It isn't exactly Swing, though... - sbi
@sbi Indeed! :D - Jürgen A. Erhard
[+220] [2008-10-09 03:05:38] Aidos

I went through a sleep-deprived coding run and started only writing comments that were quotes from Fight Club.

Still trawling through the code years later I find a comment that makes me laugh. Most of them just random thoughts. I did however keep my comments to lines ratio pretty good!

// This shouldn't happen. The only way this can happen is if the
// <code>JFileChooser</code> has returned a <code>File</code> that doesn't exist
// on the system. If this happens we can't recover, and there is more than likely
// a rip in the space time continuum that the user is too distracted by to notice
// anything else.

   * This method leverages collective synergy to drive "outside of the box"
   * thinking and formulate key objectives into a win-win game plan with a
   * quality-driven approach that focuses on empowering key players to drive-up
   * their core competencies and increase expectations with an all-around
   * initiative to drive down the bottom-line. I really wanted to work the word
   * "mandrolic" in there, but that word always makes me want to punch myself in
   * the face.
private void updateFileCountLabel() {

(6) Ah, now we know who writes those Spring Framework tutorials. - finnw
It started as a joke about the management at the company I work for. I don't even know what the sentance means ;-) - Aidos
(4) The second one is just awesome. I always laugh when my wife uses the (non-)word "synergy" and she doesn't understand why it's so funny. - Graeme Perrow
(10) The second one is great! What, no "paradigm-shifting"? - gnovice
The second one is priceless! F*** management-speak! - Eduardo León
This comment leverages collective synergy to drive "outside of the box" thinking. Love it ;p - johnc
(36) Just to be fair, the first clause might happen if in between the user selecting the File, the File disappears, which might in fact happen on a network file system. Assumptions like that have bitten me in the past... - Kirk Wylie
(5) We need to leverage exponential synergy curves to effect a paradigm shift in order to whitestream the knowledge gap through the data fusion engine. - Dan
@Kirk: Happens to me if I've got background processes churning through temporary files like they're some kind of vacuum-foam particles and I accidentally select the wrong one. No network required. This is why I like exceptions: FileNotFound (or whatever exception) can be handled in one place no matter which step burped it up. - Mike DeSimone
Am I the first person to notice that "...leverages collective drive up the bottom-line." is from a The Daily WTF, by Alex Papadimoulis? - Han
[+220] [2008-11-23 06:18:28] Chris Lloyd
# To understand recursion, see the bottom of this file 

At the bottom of the file:

# To understand recursion, see the top of this file

Hehehe, I like that. - Aistina
(54) That's more like an infinite loop, there's no need for a stack with that example. - Bernard
(20) How about "# To understand recursion, see line X" on line X? - Chris Lutz
(28) Good. But "To know what recursion is, you have to know what recursion is" is better :) - unkiwii
(29) When doing my A Level computing course we had a book, in the book the glossary contained two entries: Endless Loop - See 'Loop, Endless' ... Loop, Endless - See 'Endless Loop' - Piku
Lots of fun, but nobody got any closer to understanding recursion. It would be more like recursion if at the bottom of the file it said /* to understand recursion, read someotherfile first then return here. */ and it said the same in someotherfile about this file. - thomasrutter
Actually forget that, I like @lk. 's comment above much better! - thomasrutter
(10) To understand recursion, see this comment. BAM! - Randolpho
(1) Obviously, no-one understands recursion here :) How about: # To understand recursion, re-read this line (stop when you understand) - Bobby Jack
The programmers version of some classic bathroom stall graffiti. love it. - NomeN
or you can get the T-Shirt: - ScottSEA
(3) Not all forms of recursion require a stack. (eg, consider tail-call optimisation) - Arafangion
That's an infinite loop. You need to add a base case: "If you understand recursion, then stop reading." - dan04
(1) Ha! Monkey Island quote - Recursion: see Recursion - Mahol25
(1) @dan04: That's why it's called infinite recursion. Which humans are generally smart enough to break out of, once they see they've gone into it... - SamB
To grasp the concept of infinite loop follow this comment! - Raghav Khunger
[+215] [2008-10-08 20:16:52] Dave Verwer

Many years ago (about 1994) I was working on a Oracle PRO*C application for a large multi-national software company that you will have heard of. The app I was working on was a massive Oracle application and they had a utility that ran overnight tidying up data and doing all sorts of aggregate calculations. Every time anything needed doing as a batch job, it got shoved into this utility and as you can imagine it became an absolute monstrosity. It was also notable for the tiny number of comments that it had for such a massive program.

One of the few comments it did have remains the finest comment I have ever seen for pure WTF'ness... I was trying to find a bug in a function which was hundreds of lines long and right in the middle of it was the only comment in the function:

/* I did this the other way */

To this day it is still the finest comment I have ever seen.

(25) I like that. it's enigmatic, yet useless. - MrBoJangles
Indeed... mostly useless - Sakkle
(3) It makes me wonder if there was a disagreement about how to do something and the guy very smuggly declares that he decided to do it his way. LOL - AaronLS
(3) I read it as "there is a right way to do this, a wrong way to do this, and..." - Ry.
(3) @Ry - ... my way ... - ldigas
+1 Excellent comment, and for "pure WTF'ness", a phrase that will starting showing up in my comments ;-) - Chris O
[+214] [2008-10-19 18:00:31] paercebal

This one was a living proof, in production code, of micro-management effects in our team:

// I am not responsible of this code.
// They made me write it, against my will.

... followed by less than optimal code, conceived by our beloved technical director, who was quite fond of forcing down both code and coding guidelines into developers' throats (*).

Of course, when the project leader searched for the cause of a bug, and found it was inside the "less than optimal code", he was less than amused...

(*) I am, of course, mentioning the Mighty VB King... If you want to assess the full magnitude of the power of the Mighty VB King, you can read the following SO post: ...

(35) Your comment in the other posts links back to this one, sending me into an infinite loop for all eternity! - Outlaw Programmer
To understand recursion..... >: ) - Erik Forbes
Absolutely wonderful, just imagine the plight the developer was under - Ram
(25) @Outlaw: This is why I always open new links in separate tabs. Eventually I will get out of it, as my browser will crash. - T.E.D.
A less obvious "Coactum feci" has saved many a soul. - relet
@relet: "Coactum feci" ? What's the meaning of that ? - paercebal
@Ram: Believe me, this was not pretty. Now, we can smile when we remember that (and other cheesy details), but at the time... :-( ... This was done more for self-protection than for the humor. In this, version controlled sources is bliss, because unlike other documents, they can't be modified to "change the past"... Imagine that for each bug/evolution that was assigned to me, I had to send myself an email with the copy of the description as a proof, just to be able to make comparisons with the potentially modified description at the check-in moment. And I DID find "discreet corrections"... :-/ - paercebal
"They made me write it" LOL How cruel "they" are! - Raghav Khunger
[+211] [2008-10-08 20:12:26] daniels
/* Please work */

(10) I know the feeling :) - johnc
(6) i'll try this to see if it helps any... :D - Peter Perháč
(227) My boss tells me this whenever he sees me reading SO. - Mike Miller
(8) @"My boss tells me this whenever he sees me reading SO.": OMG!!! I can't stop laughing!!! - Andrei Rinea
(1) Been there... :) - MNM
@Mike Miller i have been constantly checking around just to make sure that does not happen to me. - Jake
[+202] [2008-10-08 20:17:01] 1800 INFORMATION
/* You are not meant to understand this */ 

(13) This is one of those Hofstadterian uses of "this". - harpo
(10) Very reminiscent of the infamous "you are not expected to understand this" comment in the UNIX source code: - Mark Bessey
It's hard to tell whether it's supposed to mean "This code is unreadable so don't feel bad if you dan't understand it" or "You won't understand my code because you're nowhere near as smart as me." - finnw
"It's hard to tell whether it's supposed to mean..." -- In other words, it's hard for you to understand the comment. Which means it was one of those Hofstadterian uses of "this". - Windows programmer
Or "it's not worth to understand" - Thevs
(1) In other words, "all bugs/defects should be directed my way. This is my means of securing my job." - icelava
@Mark: actually I like the other comment in that link even better: /* * The value returned here has many subtle implications. * See the newproc comments. */ - Anton Tykhyy
Hey, that's what my teacher said all the time. - Matthias
That’s our Dennis! - tchrist
[+198] [2009-03-29 13:45:24] Banang
//Dear future me. Please forgive me. 
//I can't even begin to express how sorry I am.  

And I just found this one today:

//private instance variable for storing age
public static int age;

(3) I'm always leaving comments for myself in the future... - David A Gibson
(24) Future-self is who your comments should be written for anyway. - Commander Keen
(2) Super! Know the feeling :) - ttvd
In regards to the second comment, the programmer didn't explain what type of variable it is. Sloppy. - abrereton
The first comment would be made infinitely better by adding: "I left you an 18 yr bottle of scotch in the bottom left drawer to make up for it" - Nathan Ernst
(1) @abrereton - obviousily it is a double, its bad form to put such redundant data in the comment - Felan
(7) Future-self hates me, and it's not even my fault. It's all Past-self's fault, damn him!! - Sebastián Grignoli
[+189] [2008-10-08 20:11:04] StubbornMule
//I am not sure why this works but it fixes the problem. 

This was before a set of code that technically did fix the problem it was meant to but broke 3 other things....

Classic case of this: - ilitirit
Yes it is. In fact most of this guys code fit that case. Lucky me gets to support it lol. - StubbornMule
(2) except for the broking of three other things, ive done some comments like that - Viktor Sehr
lol. I have written this myself... - Layke
I do that sometimes when I know from past experiance that 1 out of a few combinations will work, i just can't remember which one. trial and error can be done quickly when you are at a computer, sometimes it a lot quicker than redoing math for no reason. - Ape-inago
(7) @Muhammad, please STOP editing until you explained here. Thanks! - Arjan
[+180] [2009-04-25 06:45:25] community_owned

I worked with a guy who was raised a Muslim, but had a rather tongue-in-cheek view of the religion. He left this comment above a particularly nasty chunk of code:

// I will give you two of my seventy-two virgins if you can fix this.

(6) brilliant comment - Tror
[+175] [2009-04-25 22:08:28] Neil Kodner
// no comments for you
// it was hard to write
// so it should be hard to read

(52) They should have moved 'so it' to the previous line to make it a Haiku... - David Oneill
(1) I know company, where "head programer" has tesis: the code should be hard-readable, because noone should touch the code until he/she absolutely understand the code. - TcKs
(2) That's what I read between the lines of code I have to maintain... - denisk
@TcK, head programmer just needs to be "new programmer" in a similar shop to see the error of his ways. - Thorbjørn Ravn Andersen
[+173] [2008-12-01 16:53:59] jumpinjackie
options.BatchSize = 300; //Madness? THIS IS SPARTA!

(9) Haha, that's a good one... - Cotton
omg! lol hilarious!! - giddy
[+172] [2008-10-09 03:49:51] Samat Jain
/* Halley's comment */

You can only use it once, but it's a good one! - MrBoJangles
(36) hahah brilliant. you only see one every 75 years, and the last one was in 1986. - nickf
now that really is funny - DD59
[+165] [2009-04-20 20:46:03] proudgeekdad

Our DBA found this in the middle of a 3000 line stored procedure written by a third party.


(11) Page 3, and finally one makes me LOL. - tsilb
same here XD, great comment! - Pieter888
(5) It is from South Park. - Tgr
3000 lines? That's counter tons of codings styles/guidelines. And it's a stored proc?! - Jürgen A. Erhard
[+164] [2009-01-28 17:54:58] Giancarlo

on js code:

// hack for ie browser (assuming that ie is a browser)

(63) ie is not a browser, it's a monsturous html viewer that enjoys torturing web developers! - hasen j
IE 8 is totally different guys.. - Andrei Rinea
(4) but there are ever firefox/chrome/safari - better than a M$ product - Giancarlo
(1) @Andrei Rinea: "I swear, honey, I've reformed myself. I'm totally different now." Although it might be true, I'm not inclined to believe it. - Piskvor
(6) IE8 is great until 2016 when it still has 15% marketshare - James M.
(1) I'm waitin' for the IE9 comments - Jhonny D. Cano -Leftware-
(34) "Internet Explorer: A simple Windows XP tool which allows the user to browse to and download Firefox, a web browser."… - Tiago Fernandez
@Tiago Fernandez: So true for me, +1 ! - usta
[+163] [2008-10-08 22:40:04] Rulas
// I have to find a better job

(14) I'm feeling exactly that. - chakrit
ha ha.... I have thought this way many times ;-) - MNM
(1) Nice way to tell your boss about the same! - Raghav Khunger
[+151] [2008-10-11 05:39:51] Knobloch
/* Emits a 7-Hz tone for 10 seconds.
  True story: 7 Hz is the resonant frequency of a
  chicken's skull cavity. This was determined
  empirically in Australia, where a new factory
  generating 7-Hz tones was located too close to a
  chicken ranch: When the factory started up, all the
  chickens died.
  Your PC may not be able to emit a 7-Hz tone. */


(the sound function in the Turbo C version 2.0 Reference Guide)

(54) You need a factory to create 7Hz tones? How do they package them, and what is their market? - johnc
(2) I read this comment in Turbo C a long time ago. It's amazing! - Diego Jancic
sounds like an URBAN LEGEND - foljs
(1) The comment is there. Not sure of the veracity of the story - that could be an urban legend, but I think it could be plausible. I know that resonant frequencies have even brought down stadiums and bridges... - Knobloch
(3) It doesn't matter if it's true, its still just as funny. Maybe funnier. Can you imagine making it up? - Sam Hoice
(4) It simply can't be true. But it's hilarious that so many people believe an unsourced claim that ridiculous. - niXar
Ah, I thought that'd be the brown noise. - Matthias
(2) Infrasound. See in particular the section by about Tandy's Ghost in the Machine. - Paul Ruane
@Paul Wow, that's really interesting! Thanks! - Klaus
I went to university with a friend who told me a story a while back about how he read this exact comment in a C source file when he was in highschool. Since he told me the story much before (in the order of a few years) I read this answer, I think this could be true. Also, if anyone has access to the file which has this comment, they will get major karma points for posting a link to the source code file - inspectorG4dget
[+144] [2008-10-08 22:27:48] Bobby Jack

Try typing your favourite profanity into google code search [1], it whiles away many a dull hour. Some of my favourite examples:

/* These magic numbers are fucking stupid. */

/* Dear free software world, do you NOW see we are fucking
   things up?! This is insane! */

/* We will NOT put a fucking timestamp in the header here. Every
   time you put it back, I will come in and take it out again. */

# However, this only works if there are MULTIPLE checkboxes!
# The fucking JS DOM *changes* based on one or multiple boxes!?!?!
# Damn damn damn I hate the JavaScript DOM so damn much!!!!!!

/* TODO: this is obviously not right ... this whole fucking module
   sucks anyway */

/* FIXME: please god, when will the hurting stop? Thus function is so
   fucking broken it's not even funny. */

and my personal favourite

 # code below replaces code above - any problems?
 # yeah, it doesn't fucking work.

Just the linux kernel has got enough, mostly moaning about some crap hardware or other - Mark Baker
Mmm, multiple checkboxes in JavaScript... I think I have a comment of my own like that. - scunliffe
(14) Posted HTML checkbox value handling is a WTF in its own right. - Rob Howard
(2) I love when people use checkboxes for an OR state rather then radio buttons which are built for purpose. Select insurance A OR B, ooo tick boxes Cue unnecessary javascript and making code fat. - Chris M
Oh Bobby! Thanks. - bludger
[+143] [2009-01-10 20:42:31] Brian Clapper

On initialization of a linked list:

last = first; /* Biblical reference */

Succint and hilarious.

Biblical? More like Oedipeal. - aridlehoover
(15) Biblical. Matthew 20:16 "So the last will be first, and the first will be last." (Not being a Bible nut, or even especially religious, I Googled it.) - Brian Clapper
(8) This is a job for Python's tuple packing/unpacking assignment: last, first = first, last - Tim Pietzcker
@Brian for the times, they are a-changin'. - hobbs
[+142] [2009-03-06 13:17:14] community_owned

... or die // bitch

(12) I wasn't going to upvote, but it made me laugh, dammit - johnc
It made me to laugh like a hell. - Vinothbabu
that's PHP...... - yes123
@yes123 No, it's Perl. :P - muntoo
[+139] [2008-12-18 19:47:39] llimllib

Somebody complained that the "best" comment was bringing up the worst comments. IMHO, they're funnier, and so "better", but here's the honest best comment I've ever read [1]:

Major subtleties ahead:  Most hash schemes depend on having a "good" hash
function, in the sense of simulating randomness.  Python doesn't:  its most
important hash functions (for strings and ints) are very regular in common

>>> map(hash, (0, 1, 2, 3))
[0, 1, 2, 3]
>>> map(hash, ("namea", "nameb", "namec", "named"))
[-1658398457, -1658398460, -1658398459, -1658398462]

This isn't necessarily bad!  To the contrary, in a table of size 2**i, taking
the low-order i bits as the initial table index is extremely fast, and there
are no collisions at all for dicts indexed by a contiguous range of ints.
The same is approximately true when keys are "consecutive" strings.  So this
gives better-than-random behavior in common cases, and that's very desirable.

OTOH, when collisions occur, the tendency to fill contiguous slices of the
hash table makes a good collision resolution strategy crucial.  Taking only
the last i bits of the hash code is also vulnerable:  for example, consider
[i << 16 for i in range(20000)] as a set of keys.  Since ints are their own
hash codes, and this fits in a dict of size 2**15, the last 15 bits of every
hash code are all 0:  they *all* map to the same table index.

But catering to unusual cases should not slow the usual ones, so we just take
the last i bits anyway.  It's up to collision resolution to do the rest.  If
we *usually* find the key we're looking for on the first try (and, it turns
out, we usually do -- the table load factor is kept under 2/3, so the odds
are solidly in our favor), then it makes best sense to keep the initial index
computation dirt cheap.

The first half of collision resolution is to visit table indices via this

    j = ((5*j) + 1) mod 2**i

For any initial j in range(2**i), repeating that 2**i times generates each
int in range(2**i) exactly once (see any text on random-number generation for
proof).  By itself, this doesn't help much:  like linear probing (setting
j += 1, or j -= 1, on each loop trip), it scans the table entries in a fixed
order.  This would be bad, except that's not the only thing we do, and it's
actually *good* in the common cases where hash keys are consecutive.  In an
example that's really too small to make this entirely clear, for a table of
size 2**3 the order of indices is:

    0 -> 1 -> 6 -> 7 -> 4 -> 5 -> 2 -> 3 -> 0 [and here it's repeating]

If two things come in at index 5, the first place we look after is index 2,
not 6, so if another comes in at index 6 the collision at 5 didn't hurt it.
Linear probing is deadly in this case because there the fixed probe order
is the *same* as the order consecutive keys are likely to arrive.  But it's
extremely unlikely hash codes will follow a 5*j+1 recurrence by accident,
and certain that consecutive hash codes do not.

The other half of the strategy is to get the other bits of the hash code
into play.  This is done by initializing a (unsigned) vrbl "perturb" to the
full hash code, and changing the recurrence to:

    j = (5*j) + 1 + perturb;
    perturb >>= PERTURB_SHIFT;
    use j % 2**i as the next table index;

Now the probe sequence depends (eventually) on every bit in the hash code,
and the pseudo-scrambling property of recurring on 5*j+1 is more valuable,
because it quickly magnifies small differences in the bits that didn't affect
the initial index.  Note that because perturb is unsigned, if the recurrence
is executed often enough perturb eventually becomes and remains 0.  At that
point (very rarely reached) the recurrence is on (just) 5*j+1 again, and
that's certain to find an empty slot eventually (since it generates every int
in range(2**i), and we make sure there's always at least one empty slot).

Selecting a good value for PERTURB_SHIFT is a balancing act.  You want it
small so that the high bits of the hash code continue to affect the probe
sequence across iterations; but you want it large so that in really bad cases
the high-order hash bits have an effect on early iterations.  5 was "the
best" in minimizing total collisions across experiments Tim Peters ran (on
both normal and pathological cases), but 4 and 6 weren't significantly worse.

Historical:  Reimer Behrends contributed the idea of using a polynomial-based
approach, using repeated multiplication by x in GF(2**n) where an irreducible
polynomial for each table size was chosen such that x was a primitive root.
Christian Tismer later extended that to use division by x instead, as an
efficient way to get the high bits of the hash code into play.  This scheme
also gave excellent collision statistics, but was more expensive:  two
if-tests were required inside the loop; computing "the next" index took about
the same number of operations but without as much potential parallelism
(e.g., computing 5*j can go on at the same time as computing 1+perturb in the
above, and then shifting perturb can be done while the table index is being
masked); and the dictobject struct required a member to hold the table's
polynomial.  In Tim's experiments the current scheme ran faster, produced
equally good collision statistics, needed less code & used less memory.

Theoretical Python 2.5 headache:  hash codes are only C "long", but
sizeof(Py_ssize_t) > sizeof(long) may be possible.  In that case, and if a
dict is genuinely huge, then only the slots directly reachable via indexing
by a C long can be the first slot in a probe sequence.  The probe sequence
will still eventually reach every slot in the table, but the collision rate
on initial probes may be much higher than this scheme was designed for.
Getting a hash code as fat as Py_ssize_t is the only real cure.  But in
practice, this probably won't make a lick of difference for many years (at
which point everyone will have terabytes of RAM on 64-bit boxes).

(4) I'd heard of literate programming, but this is crazy. Great comment! - sep332
(11) Great comment, but IMHO one that doesn't really belong in the source but rather in an accompanying document. This is why document control is just as important as source control. - Konrad Rudolph
(11) I don't think this is user-level documentation, you should never need to know this when writing your code. Seems fine where it is to me. - llimllib
(2) The python source code has many comments like this one. I think this kind of documentation is very helpful for people who are diving into the source code. - bigmonachus
(11) A comment that explains exactly what was done and why. This is why Python is my favorite language. - user42076
(1) I agree. If you've got obscure code, put a novel in the source to accompany it, otherwise someone will come along ten years later and seriously cock things up. - Don Werve
This is a blog post not a comment. - rfunduk
(54) To commentators: If its a blog post or a separate document, it's NOT THERE when someone goes to modify the code. Having it in the code is the most convenient for future maintainers. And if the code is changed, there's a good chance the maintainer will update the comment; there's less chance a document or blog post would be changed (and if it was changed then you lose the docs for old versions; comments get versioned in the version control system with the code). - user9876
(1) I like this one. At least the guy gives a thought on what he's doing :-) - dankoliver
What an eager beaver! On a serious note, that's good stuff. Python has its own documentation manager, so no wonder it usually works that well. - paniq
tl;dr :) :P ^^ (smiley spam for 15 chars) - cwap
That is documentation, not a comment. - Thorbjørn Ravn Andersen
(1) I recommend watching the The Mighty Dictionary presentation from PyCon 2010. - Cristian Ciupitu
@Cristian or reading the section on the python dictionary which is contained in "Beautiful Code" - llimllib
lol... wooot!!? - Mahol25
Note that there is also a document further explaining the implementation of dict in another file alongside this one. - Mike Graham
[+127] [2008-12-05 19:46:07] Jeremiah
int MyFunction()
    // There once was a man named Dave
    int Result = 0;

    // Whose code just wouldn't behave
    MyObject *Ptr = new MyObject();

    // He left to go to a meetin'
    Result = Ptr->DoSomething();

    // And left his memory a leakin'
    return Result;

C++ Comment

(6) why not fix the leak instead? - hasen j
(82) It's nice that, just as the memory is left leaking, the limerick is left unended. - Adriano Varoli Piazza
(48) I hate meetings. - Dave Baghdanov
(2) @Adriano: Looks like something ending on "save" would be a good fifth line then... - Franz
[+127] [2008-10-10 04:39:27] NeilDurant
if(m_measures =/*=*/ --index)

(3) That's... just insanely stupid and ASKING for trouble... - Matthew Scharley
(50) Alternatively, like FALLTHRU, it's indicating that "this code which looks like a bug isn't" - James Ogden
(1) Of course, that doesn't make it right... - James Ogden
(4) That's...horrible. - Robert Rossney
(4) Yeah, better to just pull things apart a bit... - Mark Brittingham
(15) Yet I'm strangely drawn to it ... - johnc
(1) I can appreciate the value of the comment there,(perhaps the highest voted USEFUL comment),this should have been written so that both assignments(did you catch that,2 side effects) happened OUTSIDE the condition,so the next poor soul to encounter it had a chance of seeing what it was supposed to do. - TokenMacGuy
(1) That is terrible. You want to use if (0 != (m_measures = --index)). - Simon Buchan
(2) No, you don't want to do it at all. :P - Robert P
(1) if (DerivedClass* dc = dynamic_cast<DerivedClass*>(ptr)) { } is really useful. - bradtgmurray
Looks like Damocles' sword. - paniq
(1) That's wrong on so many levels. I love it so much! - David Gladfelter
Doesn't GCC suggest double braces around assignments in conditions? - Stefan Majewsky
[+118] [2009-04-09 21:52:53] samoz
This isn't the right way to deal with this, but today is my last day, Ron
just spilled coffee on my desk, and I'm hungry, so this will have to do...

return 12; // 12 is my lucky number

(4) hillarious, this one made me choke up on my coffee :D! - Filip Dupanović
"but today is my last day" Beware company owners! - Raghav Khunger
Should have been 42 - manojlds
[+115] [2008-10-12 07:30:02] Hafthor
  mov si, pCard      ; captain?

(1) LOL! this one is good :D - Trap
Need explainationsfor non assembler programmers - Clement Herreman
(6) @Clement No it doesn't. Read it out loud. - Jacob
@Jacob Move ship card Captain?? - muntoo
Here's a hint: pCard was portrayed by Patrick Stewart. - Jacob
[+106] [2009-04-19 20:19:58] ealf

From the 2004 Windows leak,

__inline BOOL
                  IN  LPSTR Directory,
                  IN  LPSTR FileToFind,
                  IN  LPSTR SourceFullName,
                  IN  LPSTR SourceFilePart,
                  OUT PBOOL FoundInTree
    // This was way too slow. Just say we didn't find the file.
    *FoundInTree = FALSE;

(10) Hahaha this was hilarious (I hope it is true) - Shervin
@Shervin: It's true. You can find the complete file by another comment (just so no reposts pop up in the results). - Dan Abramov
[+105] [2008-10-10 00:45:16] Mark Bessey
// I know the line below is wrong, but it came that way from our IP vendor, and 
// the driver won't work if you "fix" it. I've had to revert this change 4 times
// now. Leave it alone, or I will hunt you down and hurt you
if (r = 0) {
    /* bunch of code here */
   /* even more code here */

(3) I just love this, it makes my heart smile that someone just couldn't stand leaving the line as it was. Classic. - Banang
(5) Wouldn't it be better to replace it with just r = 0; - thomasrutter
The line isn't wrong, it's pretty obvious that it just assigns 0 to r, then evaluates r (to 0), then implicitly casts it to a bool (which is false), and thus skips the block inside the "if" :) ... Seriously though, this is priceless! - Daniel Daranas
I edited this to make it a little more clear that in the original, there was actually code in the block. - Mark Bessey
But... why is there code in the first block? What kind of sic perversion of the C++/C language could cause that to ever execute? - nlaq
(19) unless r is an object that overloads the = operator, and they grossly misused operator overloading. - nlaq
(6) No C++ operator overload trickery here. The code in the "else" block handled the case of r==0 just fine. Presumably the intent of the original author was to do some special processing in the r==0 state. Since the code in the "if (r=0)" block never got executed, they eventually fixed it in the other block, leaving that useless code up at the top. Now, the guys who kept "fixing" it didn't have any reason to be modifying that code, and they certainly never tested the code after they changed it. Keeping the code exactly as we got it from the vendor made it easier to integrate future versions. - Mark Bessey
(14) That was clear, but (r =/*=*/ 0) is shorter. - joeytwiddle
(1) If the code in the if-part is broken and not used anyway, I would just remove it and all the confusion around it. - Albert
[+102] [2009-04-20 14:03:20] community_owned
// this comment included for the benefit of anyone grepping for swearwords: shit.

(3) This made me laugh so much!! :) - Christian
That comment violates the 80 character limit. Curse you, sir! - Jason
"The language that ALL programmers understand: profanity" - inspectorG4dget
[+101] [2008-10-08 20:13:32] Tim Farley

Next to a local variable that had to be declared just to pass a constant to a library function:

// This only exists because Scott doesn't know how to use const correctly

(5) God. I'd love to sprinkle comments like that THROUGHOUT our codebase, only "Scott" is my boss. - mos
(2) Crap, I am Scott! (joking a different Scott but I still like it) - smaclell
(13) Who found my old projects? - Scottie
Actually i have written that for myself a couple of times. - Fábio Antunes
(6) const int Nancy = 1; const int lyComplainingAboutMyCode = -Nancy; - Scott
[+101] [2009-03-12 13:43:36] community_owned
} catch (PartInitException pie) {
    // Mmm... pie

(23) sounds like homer coding - Jhonny D. Cano -Leftware-
(5) nope. It's weebl or bob. - Nailer
(2) I like pies!!!! - Cube Pirate
Homer...... Duh!! - MNM
(1) I love how people got used to this exception abbreviation, and then got tu catch (SecurityException sEx). - Michael
(1) Henceforth my exception variables will have funny names - moontear
[+100] [2009-03-05 18:31:26] Conrad
class Act //That's me!!!


(4) +1, Out of all the ones I've read so far, this one made me laugh out loud - Michael G
Awesome :D!!!!! - MNM
[+99] [2008-12-19 17:22:45] Brian Rudolph

Not quite a comment but a goto label


(65) Look out for the raptors. - Ikke
(5) - amra
[+97] [2008-12-30 13:08:53] Yuval

I saw this comment on someone's code:

// This comment is self explanatory.

I guess he meant to say 'variable' but the mistake made one funny comment... Think of the circular logic here, and the futility of writing it.

(2) haha +10 (I wish) - hasen j
This comment is self explanatory... Why should I have to worry to explain it - Raghav Khunger
[+95] [2009-03-05 18:35:34] Conrad
try {

catch (SQLException ex) {
    // Basically, without saying too much, you're screwed. Royally and totally.
catch(Exception ex)
    //If you thought you were screwed before, boy have I news for you!!!

(4) ROTFL :) I LOVE THIS! +1 - Jacob Relkin
This one is simply perfect! Much love. :DDDD Been known to put stuff like this in myself, like "// Okay, this method screws up the lookup table as it sorts out invalidated entries", and then a few methods later "// Remember that invalidated entries purger? Well, here's the invalidator... may god have mercy on Your soul" ;-D (not cut'n'paste, but strongly similar) - Egon_Freeman
Amazing, and so true most of the time. - mazzzzz
Would vote up, but it's already 42 :) - thejh
[+95] [2009-04-28 05:58:26] Lyudmil
public boolean isDirty() {
    //Why do you always go out and
    return dirty;

[+94] [2008-10-09 14:40:48] kjensen
virgin = 0;     /* you're not a virgin anymore, sweety */

(6) Haha no comments?! People felt shy I guess. - bludger
[+93] [2008-10-08 21:47:45] Simon Howard

The original Doom had an engine with static walls that could not move; the result was that all doors opened vertically; nothing could ever move horizontally. I burst out laughing when, after the source code was released, I was looking through the code and saw this in the source file for handling doors, at the start of a big block of commented-out code:

// Separate into p_slidoor.c?

#if 0           // ABANDONED TO THE MISTS OF TIME!!!
// EV_SlidingDoor : slide a door horizontally
// (animate midtexture, then set noblocking line)

(3) I always wondered why that was! - Zachary Yates
(11) Basically, the 2D geometry of the level is precompiled into a tree structure that allows efficient sorting of walls during rendering. But, because it's precompiled, you can't change it at runtime. Hexen, which was based on Doom, had a hack for moving walls (doors etc), but it was very limited. - Simon Howard
(2) That is some serious obscura. - MrBoJangles
Well, this explains everything ;) - nbolton
[+92] [2008-10-09 22:51:36] DGentry
 * ...and don't just declare it volatile and think you've solved
 * the problem. You young punks think you know what volatile
 * means... why in my day we had to cast it volatile uphill
 * both ways, and the code still didn't work! Whippersnappers...

(2) Just plain awesome seriously. - Anton
[+90] [2009-03-06 14:10:18] community_owned
// John! If you'll svn remove this once more,
// I'll shut you, for God's sake!
// That piece of code is not “something strange”!

And what do you think? The code below was safely ‘svn removed’.

[+90] [2008-11-25 01:39:13] bikesandcode

Taken from the Quake III source, I stumbled across this in some random slashdot posting. Full source of the file can be found here [1]. It's a particularly fast method of calculating an inverse square root. As for the best comment? It's a common one to be sure, but given that it's attached to the line that does the magic is what makes it great.

float Q_rsqrt( float number )
  long i;
  float x2, y;
  const float threehalfs = 1.5F;

  x2 = number * 0.5F;
  y  = number;
  i  = * ( long * ) &y;  // evil floating point bit level hacking
  i  = 0x5f3759df - ( i >> 1 ); // what the fuck?
  y  = * ( float * ) &i;
  y  = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
  // y  = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration, this can be removed

  #ifndef Q3_VM
  #ifdef __linux__
    assert( !isnan(y) ); // bk010122 - FPE?
  return y;

I believe that was written by Carmack himeself - prestomation
(11) The algorithm has a bit of a history: I personally like to think the comment is from Mr. Carmack himself. - bikesandcode
WTF is bk010122 - FPE??? - unkiwii
(1) FPE = Floating Point Exception; BK is probably Bernd Kreimeier an id software employee. - Jasper Bekkers
(1) I'm pretty sure that's my all-time favorite bit of cryptic code. - ojrac
(9) - Dan
[+88] [2009-04-19 23:04:34] community_owned
def format_ticket_content(text, recursive = true)
  if text.is_a?(TicketNote)
    note = text
    text = note.content
    note = nil

  ## Safety pig has arrived!
  text = h(text)
  ##                               _
  ##  _._ _..._ .-',     _.._(`))
  ## '-. `     '  /-._.-'    ',/
  ##    )         \            '.
  ##   / _    _    |             \
  ##  |  a    a    /              |
  ##  \   .-.                     ;  
  ##   '-('' ).-'       ,'       ;
  ##      '-;           |      .'
  ##         \           \    /
  ##         | 7  .__  _.-\   \
  ##         | |  |  ``/  /`  /
  ##        /,_|  |   /,_/   /
  ##           /,_/      '`-'

(15) Awesome...I like how the pig's entrance gets announced... - KG.
[+77] [2009-03-16 00:24:46] Neil N

this has turned up in my own code a few times. obviously I touched it more than once:

// TODO: Fix this.  Fix what?

That could be one of my comments! - Bobby
[+73] [2009-02-03 20:36:33] Gus
//MailBody builders for two outgoing messages
StringBuilder hanz = new StringBuilder();
StringBuilder franz = new StringBuilder();

I still chuckle a little when I read that one...

Thank you for this. Freakin' hilarious. - C Bauer
[+71] [2008-10-13 07:29:33] Mauro

on leaving my last job I embedded some ascii art into the source...

                                   .='  ' .`/,/!(=)Zm.           
                     .._,,._..  ,-`- `,\ ` -` -`\\7//WW.         
                ,v=~/.-,-\- -!|V-s.)iT-|s|\-.'   `///mK%.        
              v!`i!-.e]-g`bT/i(/[=.Z/m)K(YNYi..   /-]i44M.       
            v`/,`|v]-DvLcfZ/eV/iDLN\D/ZK@%8W[Z..   `/d!Z8m       
           //,c\(2(X/NYNY8]ZZ/bZd\()/\7WY%WKKW)   -'|(][%4.      
         ,\\i\c(e)WX@WKKZKDKWMZ8(b5/ZK8]Z7%ffVM,   -.Y!bNMi      
         /-iit5N)KWG%%8%%%%W8%ZWM(8YZvD)XN(@.  [   \]!/GXW[      
        / ))G8\NMN%W%%%%%%%%%%8KK@WZKYK*ZG5KMi,-   vi[NZGM[      
       i\!(44Y8K%8%%%**~YZYZ@%%%%%4KWZ/PKN)ZDZ7   c=//WZK%!      
      ,\v\YtMZW8W%%f`,`.t/bNZZK%%W%%ZXb*K(K5DZ   -c\\/KM48       
      -|c5PbM4DDW%f  v./c\[tMY8W%PMW%D@KW)Gbf   -/(=ZZKM8[       
      2(N8YXWK85@K   -'c|K4/KKK%@  V%@@WD8e~  .//ct)8ZK%8`       
      =)b%]Nd)@KM[  !'\cG!iWYK%%|   !M@KZf    -c\))ZDKW%`        
      YYKWZGNM4/Pb  '-VscP4]b@W%     'Mf`   -L\///KM(%W!         
      !KKW4ZK/W7)Z. '/cttbY)DKW%     -`  .',\v)K(5KW%%f          
      'W)KWKZZg)Z2/,!/L(-DYYb54%  ,,`, -\-/v(((KK5WW%f           
            '*%%%%8%8WK\)[/ZmZ/Zi]!/M%%%%@f\ \Y/NNMK%%!          
              'VM%%%%W%WN5Z/Gt5/b)((cV@f`  - |cZbMKW%%|          
                 'V*M%%%WZ/ZG\t5((+)L\'-,,/  -)X(NWW%%           
                      `~`MZ/DZGNZG5(((\,    ,t\\Z)KW%@           

(6) Is that a pretzel? Can it be used to choke someone? - Mostlyharmless
(5) its an Escherian all good ASCII art it works best when you are tired and your vision has gone a little blurry! - Mauro
Have you considered putting it into the easter egg question?…. Very nice. - smaclell
(29) And by 'embedded', you mean 'injected'. And by 'source', you really mean 'boot sector'. Right? - Jens Roland
LMAO Jens, nope...I wish I could call myself a programmer that was able to work with boot sectors and Assembly - in reality all I am is a c# developer with a better than average grasp of xHMTL and CSS. - Mauro
Hmm is it the Adobe AIR icon? - rfunduk
It looks like the Escher drawing - Lakshman Prasad
cut AND paste!!! - Cube Pirate
(23) I wonder what a perl interpreter outputs if I fed this to it? - progo
@progo I wish I could upvote Your comment more! :D - naugtur
(12) That looks like a PERL program I wrote last summer. - Moses
[+71] [2008-10-09 13:19:37] Laurent
Until (JesusChristsReturn) ' Not sure

hehehe We're on easter, so, wait soon - Jhonny D. Cano -Leftware-
Happy Easter! :) - missingfaktor
[+71] [2009-04-20 02:33:49] Lance Richardson

Don't recall where I've seen these:

long time; /* know C */

and (in code to create some sort of UNIX daemon):

/* Be a real daemon: fork myself and kill my parent */

[+70] [2008-10-08 20:24:09] Kristopher Johnson

At the top of a header file:

/* Project : XYZ (Please somebody shoot me!)
 * File : $Id: defs.h,v 1.1 $
 * Purpose : Create havoc rather than peace among many nations
 * History : Back-ported changes that were not in CVS.  Please somebody,
 *  shoot us and put us all out of our misery.

The "XYZ project" (name changed) was a seven-year ordeal. That last comment was written by the one stalwart soul who was involved from the very beginning through to the end.

(6) To paraphrase Adrian Monk, he's praying for the sweet release that only death can bring. - MrBoJangles
[+68] [2009-04-22 19:12:59] Samutz
after hours of consulting the tome of google
i have discovered that by the will of unknown forces
without the below line, IE7 believes that 6px = 12px
font-size: 0px;

(12) Is it sad that I read that and went, "oh, he's dealing with a line-height bug?" and realized I've written many similar comments myself... - ajm
(1) not sad for you, when it comes to IE everyone here sure have a bad experience , IE6 should really be named the worst software ever written - medopal
(1) the worst software ever written is always done by Microsoft, that's just a fact. - Alvar
[+66] [2009-03-29 13:53:24] Zifre

In drivers/net/sunhme.c (Linux kernel):

/* Welcome to Sun Microsystems, can I take your order please? */
if(!hp->happy_flags & HFLAG_FENABLE)
        return happy_meal_bb_write(hp, tregs, reg, value);

/* Would you like fries with that? */
hme_write32(hp, &tregs->frame,
            (FRAME_WRITE | (hp->paddr << 23) |
             ((reg & 0xff) << 18) | (value & 0xffff)));
while(!(hme_read32(hp, &tregs->frame) & 0x10000) && --tries)

/* Anything else? */
        printk(KERN_ERR "happy meal: Aieee, transceiver MIF write bolixed\n");

/* Fifty-two cents is your change, have a nice day. */

(2) There is hme and bme. Named Happy Meal Ethernet and Big Mac Ethernet respectively. Kinda funny! - X-Istence
Id upvote this 10 times if i could! - mozami
(8) Found it!… - Cyclone
[+63] [2009-04-24 19:29:49] community_owned
//3.4  JeK  My manager promised me a lap dance if I can fix this release
//3.5  JeK  Still waiting for that dance from my manager
//3.6  JeK  My manager got changed, the new manager is hairy, dont want the dance anymore
//3.7  Jek  Got that dance, yuck!

Fixing annoying bugs is like getting an unwanted lap dance. - Wesley
[+62] [2008-10-09 17:57:02] itsmatt
// Catching exceptions is for communists

From Mike Duncan's page on SQLite [1].


Exceptions are for communists. Good code doesn't use exceptions. Good code is thus exceptional code. - WTP
[+60] [2008-10-18 15:28:31] Russell Bryant
    /* Mark: If there's one thing you learn from this code, it is this...
   Never, ever fly Air France.  Their customer service is absolutely
   the worst.  I've never heard the words "That's not my problem" as 
   many times as I have from their staff -- It should, without doubt
   be their corporate motto if it isn't already.  Don't bother giving 
   them business because you're just a pain in their side and they
   will be sure to let you know the first time you speak to them.

   If you ever want to make me happy just tell me that you, too, will
   never fly Air France again either (in spite of their excellent

   Update by oej: The merger with KLM has transferred this
   behaviour to KLM as well. 
   Don't bother giving them business either...

   Only if you want to travel randomly without luggage, you
   might pick either of them.

Classic Mark Spencer. Always trying to educate :D - Collin Klopfenstein
(9) guts, please, give credit where it's needed: - elcuco
Tell me that this was found in the codebase for their Air France's airline scheduling system. That would've been pure poetry. - BenAlabaster
(3) Lol. Used to fly Air France weekly for about 6 months. They lost my luggage 16 times in that six month... - Andreas
Thanks Mark, I'll keep that in mind. :D - Dian
[+57] [2008-10-16 21:45:36] tj111

A comment I added to a PHP CMS I was working on a while back.

if (/*you*/ $_GET['action']) { //celebrate

HAHAHA [10 chars] - Pim Jager
[+55] [2008-12-01 17:18:37] dr. evil

Great one from leaked Windows 2000 source code :

!!!!!!!!!!!!!!DOING SO FUCKS THE BUILD PROCESS!!!!!!!!!!!!!!!! *
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

(2) That's an odd comment to find in the Win2k source, because the NT group always had a no-tabs-in-source policy. - mjfgates
@mjfgates: The sources leaked are not completely original. Some files may have been tampered with at a later point. If I could just find the reference right now. - Felix Dombek
[+55] [2009-03-05 18:13:38] shsteimer

in a homework assignment in college for a teacher who was particularly adamant that we comment our code:

//I wonder if she actually reads these.

When the assignment was returned, in red pen next to that comment "Yes, I do"

(23) the teacher is more funnier than the student :) - medopal
Yeah, some students asked that same question of me, too. I answered the same, IIRC... - Chip Uni
[+55] [2008-10-09 13:10:23] Martin Brown

A classic case of why you shouldn't off shore your software development:

public class Contact

    /// <summary>
    /// Gets or sets the name of the first.
    /// </summary>
    /// <value>The name of the first.</value>
    public string FirstName
        get { return _firstName; }
        set { _firstName = value; }

(1) They are using documenter plugin for VS. Creating this comment required just a single keystroke. - Rinat Abdullin
(2) @Rinat - pretty sure Martin was commenting on the coder's apparent lack of understanding of what exactly a "first name" is. - Michael Petrotta
(13) This was created using GhostDoc. This would be the default comment created by the addin. - Craig Wilson
(10) I hadn't considered that the developer may have used a comment generator. Why would anyone use such a thing? Surely it would be impossible for a tool to generate any more information than can be determined from the property declaration, so why bother? - Martin Brown
(21) So that your boss/client who wants every stupid getter and setter documented is happy - Luka Marinko
(1) You see, the offshore worker that took your job is not always to blame =) - schonarth
They didn't take my job, I took theirs. It is a long story that involves lawyers and far more serious problems than this one. I was called in to clean up the mess. This is still their fault by the way. They were asked to improve their commenting and chose to use a tool that just made it worse. - Martin Brown
(6) offshoring - we hired Russian developers once to write a reporting engine... when contract renegotiating time came up, we realised all the comments were in Russian. Shame I don't have the code to show :( - gbjbaanb
(7) @Craig Wilson: So there is a tool that generates useless comments? That's horrible. - JoshJordan
Well from the same country that pays people to fill in captchcas on-demand, what do you expect? - AaronLS
Maybe it's really the Full Name of the First born Child of a Contact? Who knows, maybe it's for China or Egypt, I heard they need data like that every now and then. - Michael Stum
@Michael Stum: it was fairly clear from the context, not shown in the post, that it was the first part of person's actual name. - Martin Brown
I can relate!!! - Cube Pirate
(4) I don't know if this was generated by a tool, but it sure was written by one. - Assaf Stone
(1) the quality of off-shore software development depends on moneys you can pay for it. so if you have no moneys to hire the best ones like Luxoft or Epam - ...its only your shame, not the whole offshore software industry. - javagirl
[+54] [2008-12-19 16:56:25] chaos
// The ratio of a circle's circumference to its diameter.  Remember to change
// this to 3.0 if you move to a site in Indiana.

#define Pi                                      3.1415927

(21) I'm more impressed with the mind-boggling amount of space in that #define. I almost thought Pi was defined to nothing. - Branan
Contextual thing. It was in a file with a lot of macros, and the expansions are aligned. - chaos
(4) This one is ironically funny too. It ridicules Indiana about rounding pi to 1 digit when the very code given does the same thing to only a few more decimal places. - JohnFx
(3) Cute, but in fact it specifies it to the precision limit of the floats available in its language context (which probably isn't what you think it is). If you see a point in exceeding that, let me know... - chaos
(18) I wasn't familiar with the reference, so I wikipediad it: - thomasrutter
(3) As a Hoosier, I have to point out it was never law. It does establish that legislators, like tiny children, need constant supervision, however. - community_owned
Please #define PI at least to full double floating-point precision! - e.tadeu
[+54] [2009-03-26 22:32:24] Martin Lazar

Once I saw in another discussion something like this:

// I can't divide with zero, so I have to divide with something very similar
result = number / 0.00000000000001;

Clever solution, isn't it :) ? (It's a joke if someone's not sure)

Not really...that would cause a overflow or something, no? - Mark
(25) This code scares me on several levels. - Neil Aitken
Hey, I wrote divides by 0 on purpose before. You really don't want to know why. - Joshua
well, I'm curious... - Erik Forbes
(5) Well, this code might be funny to you, but it wasn't funny when my colleagues discovered it in an ASP.NET monster with 500.000+ lines of code. Very messy code. You know, it was written by a "senior developer" to avoid that annoying divide by zero error. Today it's over 900.000+ lines of code, and even though we've cleaned up large chunks of it, some of it still lies in wait like wolves. Interminably waiting.. and THEN... - dr Hannibal Lecter
OMG - looks like the "senior" was overripe ;) - Martin Lazar
(1) @Erik: primitive try/catch in C where a divide by zero called a library hook and jumped back to the message loop. - Joshua
Just wait, you'll start having senior moments. - Jeff O
Ha ha ha. (Almost out of votes for today.) - Moshe
haha... that's the best here so far imo - iforce2d
[+53] [2009-04-24 19:47:04] splicer

From a battery monitor module in an embedded system:

// batmon.c drives the rastamobile

[+53] [2009-01-10 20:46:40] Evan Fosmark
// If you're reading this, that means you have been put in charge of my previous project.
// I am so, so sorry for you. God speed.

I've left some of these behind myself. - ChiperSoft
[+52] [2008-10-10 00:43:23] Mike Two
// human madable inconvenient. Way too sucks.

I still don't fully understand what it means, but I have found it to be very true about a lot of code.

(6) The funniest comments are the ones that add ambiguity. - MrBoJangles
That's awesome, I'm going to use that myself. - johnc
Either it's from the Jargon file and I don't recall it, or you have offshore resources whose Englishes are way too sucks. - tsilb
I'm going to use this in my code now. - Carson Myers
@tslib: you're on the right track with the offshore bit but it was someone working in the states who wasn't a native English speaker. - Mike Two
[+52] [2009-04-19 20:31:32] vobject

I always liked what Paul DiLascia wrote in his file headers:

// If this code works, it was written by Paul DiLascia. If not, I don't know
// who wrote it

[+51] [2009-04-20 17:25:37] community_owned

From the leaked Win2K source code:

// The magnitude of this hack compares favorably with that of the national debt.

Not any more :) - fenix
[+51] [2008-10-10 01:52:54] Federico Ramponi

Another classic, by Donald Knuth no less:

Beware of bugs in the above code; I have only proved it correct, not tried it.

(7) Not actually a comment: - mjs
[+51] [2008-10-11 18:12:43] RoadWarrior
// Any maintenance developer who can't quote entire Monty Python
// movies from memory has no business being a developer. 
const string LancelotsFavoriteColor = "$0204FB"

(26) The real WTF is that he didn't use the Color class. Wait... wrong site. - Fowl
This is from How To Write Unmaintainable Code: - Margaret
[+50] [2009-04-15 20:45:09] munificent
// error codes
#define ERROR_SUCESS 0

No other error codes defined.

Looks like it's a note for autocomplete. When you type ERROR_SUCCES it autocompletes to ERROR_SUCCESS_IS_MISSPELLED which gives you an idea. Nice helper for the situation when you can't fix the existing name(dependant code you can't edit?). - stroncium
working in Japan, I get this almost dairy - iforce2d
[+49] [2009-04-20 08:10:35] efdee
// if i ever see this again i'm going to start bringing guns to work

[+49] [2008-10-09 14:35:27] ForCripeSake
//There can Only Be one HIGHLAN....err..Singleton
public class SomeSingleton

Been there, done that - johnc
however there can be other McLaud of Clan McLaud - Jhonny D. Cano -Leftware-
I'm not sure that's a traditional spelling of the name... - James McLeod
(1) That's ok, its not the original quote either which is 'There can be only one' - Mahol25
[+47] [2008-10-09 23:12:13] Bill James
// The following strings are meant to be funny.  Do not edit these strings
// unless you are funny, too.  If you don't know if you're funny, you're
// not funny.  If fewer than 2 people unrelated to you have told you that 
// you're funny, you're not funny.

[+47] [2008-10-14 02:18:23] XCondE

On the linux 1.0 kernel scheduler (sched.c):

Dijkstra probably hates me.

 *  'schedule()' is the scheduler function. It's a very simple and nice
 * scheduler: it's not perfect, but certainly works for most things.
 * The one thing you might take a look at is the signal-handler code here.
 *   NOTE!!  Task 0 is the 'idle' task, which gets called when no other
 * tasks can run. It can not be killed, and it cannot sleep. The 'state'
 * information in task[0] is never used.
 * The "confuse_gcc" goto is used only to get better assembly code..
 * Dijkstra probably hates me.
asmlinkage void schedule(void)


(16) Djikstra -> Dijkstra - tuinstoel
"Memory management is a bitch" :) - new123456
[+46] [2009-04-20 20:03:28] Alexander Temerev

// I put on my robe and wizard hat...

(15) // I TOLD you not to code me again! - Darth Continent
You shall not code! - Dercsár
[+44] [2009-04-24 15:09:05] community_owned
//I'm sorry, but our princess is in another castle.

[+44] [2009-04-23 16:30:26] DJ.
//uncomment the following line if the program manager changes her mind again this week

[+44] [2008-10-11 17:51:21] RoadWarrior
// This procedure is really good for your dorsolateral prefrontal cortex.

For those of you who are, for some peculiar reason, unaware of the DPC, it's the part of your brain that lights-up when you're deeply engaged in learning something new.

sure, it was written by a med stud :) - Mike
[+44] [2008-10-09 12:12:23] Vince Panuccio
//Abandon all hope ye who enter beyond this point

(7) :^) sounds like Dante's Inferno III 9: "Lasciate ogni speranza voi ch'entrate". - Federico Ramponi
(7) It's what the author was trying for but didn't quite remember. It's usually rendered into English as "Abandon all hope ye who enter here." - Robert Rossney
(1) I like to watch the code beyond that point! - unkiwii
@unkiwii: I don't! - Bobby
[+43] [2008-10-08 20:09:45] Diodeus
//ALL YOUR BASE ARE BELONG TO US made my boss think someone had hacked in. He didn't know the joke.

(21) you showed your boss some random comment in some source code? - Klathzazt
teh r00xorz!!!!!!!!!!!1!!!!!!!11 - unclerojelio
[+43] [2008-10-08 21:40:13] community_owned
using namespace std;            // So sue me

(3) Sometimes I would like to! - Rich
Wasn't this by Scott Meyers? - sbi
[+43] [2009-04-15 05:49:56] Ciryon
 * If you don't understand this code, you should be flipping burgers instead.

The comment refers to itself. Perhaps "understand the code below"? - Thorbjørn Ravn Andersen
(2) @Thorbjørn Which comment ? yours or the one in the answer ? :) - Marcelo
[+42] [2009-04-09 22:39:59] Frank Crook

 * project_constants.h

// lol punked have fun searching for magic numbers

........('(...´...´.... ¯~/'...')
..........''...\.......... _.·´
..............\.............\... */

That's so great..! :D - cwap
Long middle finger is long. - belgariontheking
[+42] [2009-04-20 16:37:09] Martin

I posted this "license statement" in a WordPress template I released. I thought it was funny, anyhow.

/* The License:
You (from this point on referred to as The You) are hereby 
granted by me (from this point on referred to as The Me) 
license to knock yourself silly with this template. 
By using this template The You implicitly accepts this 
license and pledges solemnly to never claim creative 
ownership of any graphics, code, concepts, eggs, bacon, ideas, 
colors, shapes, hypertext-transfer protocols or other conduits 
of the visual splendor thatis this template. 

The Me, in turn, pledges equally solemnly to be far too 
lazy to ever check up on you, so if you do manage to pull 
some chicks The Me won't have a cow. 
However The Me would be sorely disappointed if The You 
were to try and sell or distribute this work without 
acknowledging The Me. Seriously. The Me will come down on 
The You like a large quantitiy of hard and heavy objects 
that in large quantities may be harmful and possibly even 
lethal to The You; So don't even think about it, The Buster.

(8) I wish all licenses were as understandable as this one. Trying to read the GPL2 and LGPL2 you want to shoot yourself. - balupton
Reminds me of the WTF Public License: - rescdsk
[+42] [2008-10-15 10:13:13] Anonymous

Top of sqlite source files:


** The author disclaims copyright to this source code.  In place of             
** a legal notice, here is a blessing:                                          
**    May you do good and not evil.                                             
**    May you find forgiveness for yourself and forgive others.                 
**    May you share freely, never taking more than you give.


[+41] [2008-11-05 14:38:59] community_owned

From one of our projects.
Somewhere at the end of one source file.

/*@                                    /\  /\
 * @                                  /  \/  \                        ----- |   | ----      |---\ |    | /--\  --- |   |  ---- /--\ /--\
 *  @                                /        --                        |   |   | |         |   / |    | |      |  |\  |  |    |    |
 *   \---\                          /           \                       |   |---| ----      |--/  |    |  \     |  | \ |  ----  \    \
 *    |   \------------------------/       /-\    \                     |   |   | |         |  \  |    |   -\   |  |  \|  |      -\   -\
 *    |                                    \-/     \                    |   |   | ----      |---/  \--/  \--/  --- |   \  ---- \--/ \--/
 *     \                                             ------O
 *      \                                                 /                 --- |   | ----  /--\        |--\   /--\   /--\
 *       |    |                    |    |                /                   |  |\  | |    |    |       |   | |    | |
 *       |    |                    |    |-----    -------                    |  | \ | ---- |    |       |   | |    | | /-\
 *       |    |\                  /|    |     \  WWWWWW/                     |  |  \| |    |    |       |   | |    | |    |
 *       |    | \                / |    |      \-------                     --- |   \ |     \--/        |--/   \--/   \--/
 *       |    |  \--------------/  |    |
 *      /     |                   /     |
 *      \      \                  \      \
 *       \-----/                   \-----/

Word wrap breaks this - Josh Stodola
[+41] [2008-10-08 20:59:20] C.Trauma

Simple but effective comment, before a less than safe hack in some C++ code

// yikes

haha I use that one a lot - thomasrutter
(2) SCNR: - vobject
[+41] [2008-10-08 20:49:57] Andreas Petersson

//You are not expected to understand this [1]



(3) //You are not meant to understand why. - mdec
[+41] [2009-04-06 10:31:33] fog

About 10 years ago I was working at image processing, scanning microscope video frames to detect cell movement. I was working at a particulary intricated function and decided to go out and have a drink with friends. When I came back home I worked a little bit but not too much because I was drunk. The morning after I found a 10-line completely messed-up function with the following comment (obviously written by my other self):

/* Ah ah ah! You'll never understand why this one works. */

The strangest part was that it even worked.

(20) It seems you achieved the Ballmer Peak: - Jeff Barger
[+40] [2008-10-08 20:21:00] Kip

I have used this one on more than one occasion, when I've done some kind of non-obvious simplification to a mathematical formula that I don't feel like documenting:

//this formula is right, work out the math yourself if you don't believe me

(10) That's fine, but how about adding some tests to prove it. I had precisely that situ last night: found maths code (written by me) that I didn't believe could work - but the unit tests proved it did. - endian
(4) This is good if you are right, extremely bad if you happen to have made a mistake. Better to have tests back it up. - TM.
(2) Formally speaking, tests don't "prove" a formula, they only show it works on specific cases. But I'd include them anyway - a few useful cases would give more confidence, and detect failures if somebody "optimizes" it. - chester
[+39] [2009-02-02 22:58:45] Jeremy Ricketts

.class {border:1px solid gold;} /* I pitty the fool */

(3) Only 1 pixel of gold? - SLaks
@SLaks only 1 pixel of solid gold. - WTP
[+39] [2009-04-23 11:43:30] rawpower

In a GIGANTIC 800 line 'switch' statement, somewhere in the middle:

// Joe is sorry

A few hundred lines later...

// Harry is sorry too

[+38] [2009-02-02 12:15:57] aldrinleal
// Caveat implementor

(1) Love that. Excelsior! - John Lockwood
[+37] [2008-10-12 07:18:34] sbeskur

This is actual code I once had to support. After struggling to comprehend the logic in AstaSaysGooGoo and AstaSaysGaaGaa (where many more astaTempVars were declared and used ) I was ready to give up. I finally looked up and saw the "@author" comment and the whole thing began to makes sense.


* @author Andrew Asta
public class AstaClass{

    private String astaVar1;	
    private String astaVar2;	
    private String astaVar3;	
    private String astaVar4;	
    private String astaVar5;	
    private String astaVar6;	
    private String astaVar7;	
    private String astaVar8;	
    private String astaVar9;	
    private String astaVar10;	

    public void AstaSaysGetData(){
    	//JDBC statement to populate astavars 1 through 10
    	String astaSqlStatment = "Select astaCol1, astaCol2, astaCol3... From AstaTable Where...";

    //Perform data manipulation on astavars...
    public void AstaSaysGaaGaa(){
          [removed for sake of brevity]

    //Perform more data manipulation on astavars...
    public void AstaSaysGooGoO(){
    	[removed for sake of brevity]

    public void AstaSaysPersist(){		
    	//JDBC statement to save astavars to DB	
    	String astaSqlStatment = "Update AstaTable set astaCol1 = @astaVar1
    	                                          , set astaCol2 = @astaVar2
    	                                          , set astaCol3 = astaCol3... 

PS I changed the actual authors real name so as to avoid me getting in any disputes etc...

(28) astaGetsSlappedAtCodeReview() - johnc
@lagerdalek: LOL - Pim Jager
(10) Really sounds like a Paula Bean :) - furtelwart
(6) public class paulaBean { private String paula = "Brillant"; public String getPaula() { return paula; } } - Ikke
Holy crap, I laughed for 10 minutes. This Asta guy is a genius. - asveikau
//Frankie says relax - tsilb
[+36] [2008-10-09 05:19:18] Matias Nino

[+36] [2008-12-02 16:23:42] community_owned
//Mr. Compiler, please do not read this.

(3) Should be Mrs. ( - Gamecat
[+36] [2009-04-23 01:39:11] Paul
long time; /* just seems that way */

should have been volatile long time; - fastcodejava
[+35] [2008-10-13 14:58:34] Paul Lalonde

From the source code of the UNIX flavor of the Netscape web browser, circa 1997:

/* HP-UX sucks wet farts from dead pigeons' asses */

Such pearls were unfortunately removed before Moz went open-source ...

(3) Seriously, I lol'd.. - driAn
(6) Having worked with HP-UX, I bow to the wisdom in the above C comment. - Brian Clapper
(1) Based on what JWZ writes elsewhere, and the history of the Unix version, I believe this quote! - Thorbjørn Ravn Andersen
[+34] [2008-10-12 07:30:35] kender

There was some old javascript code, quite well written tho. Then was a comment line

// and there is where the dragon lives

followed by a function 4 people spent a day to understand what it's doing. Finally we realised it's not even used and does nothing.

(7) Don't mess with it lest the dragon be angry! You don't want the dragon to be angry... - schonarth
Magic/More magic? - derekerdmann
[+34] [2008-10-10 16:02:04] JB King
catch (Ex as Exception)
     // oh crap, we should do something.

Nothing like an empty catch block to make one feel that the code is robust....

This one happens to me a lot haha! + - Darth
(6) Nothing like mixing VB and C# in the same block of code ;) - Juliet
[+34] [2008-10-08 20:42:02] Milner
-- Comment this later

That was line 2 of a 4000+ line PL/SQL procedure. And the only comment. 4 years after that procedure was developed, later still hadn't come...

Four years is nothing - code live for centuries! - Thorbjørn Ravn Andersen
[+34] [2008-10-25 13:45:21] community_owned
aComment = 'this is not aComment' # this is aComment
class T(object):
    def f(this):
        this is not aComment

(7) +1 because I'm a Crocodile Dundee fan :) - BenAlabaster
d'oh! Thanks for the reference. NOW I get it. :D - BobC
[+34] [2009-04-09 22:19:39] Steve Weet

I once came up with what I thought was an elegant solution to a particularly sticky problem, in retrospect it was a bit of a mind-bender and made some heavy use of macro programmimg. Years later I found this comment from a maintenance programmer

    Description: The Total Perspective Vortex derives its picture of the
                 whole Universe  on the principle of extrapolated matter

                 To  explain  -  since every piece of matter in the Universe
                 is in some way affected by every other piece of matter in
                 the  Universe,  it  is  in  theory possible to extrapolate
                 the whole of creation - every sun, every planet, their
                 orbits, their composition and their economic and social
                 history from, say, one small Macro.

                 The man who invented the Total Perspective Vortex did so
                 basically in order to annoy the IT department.

                 Steve Weet - for that was his name - was a dreamer, a
                 thinker, a speculative philosopher or, as some would have
                 it, a slacker.

                 And they would nag him incessantly about the utterly
                 inordinate amount of time he spent staring out into space,
                 or mulling over the mechanics of Chelsea FC, or doing
                 spectrographic analyses of macros.

                 "Have  some  sense  of  proportion!"  they would say,
                 sometimes as often as thirty-eight times in a single day.

                 And so he built the Total Perspective Vortex - just to show

                 And into one end he plugged the whole of reality as
                 extrapolated  from one  macro, and into the other
                 end he plugged the IT department: so that when he turned it
                 on they saw in one instant the whole infinity of creation 
                 and theirselves in relation to it.

                 To  Steve Weet's horror, the shock completely annihilated '
                 their brains; but to his satisfaction he realized that he
                 had proved conclusively that if life is going to exist in a
                 Universe of this size, then the one thing it cannot afford
                 to have is a sense of proportion.


(8) Oh, so that's where Doug Adams got the idea for his books. - Windows programmer
(1) lol. The most horrible form of psychic torture ever devised. - computergeek6
[+33] [2009-04-23 16:24:47] skamradt

This comment was in a unit containing interfaces which were used to bind communication between the main application and various 3rd party drivers.

// Dear code maintainer:
// This source contains COM interfaces, not to be confused with interfaces 
// of any other sort, please do not just willy-nilly add additional methods 
// to these interfaces as they are truely immutable, unlike the interfaces 
// that other software vendors like Microsoft maintain.  IF you need to add 
// new functionality, then go thru the trouble of creating a NEW interface 
// and implement this functionality on only the objects you need.  
// While the money is good for fixing all of the problems caused by not 
// following the rules, I would rather work on things which actually have
// an impact on the future of the product rather than curse and yell 
// obsenities at the screen because someone didn't bother to understand the
// true meaning of IMMUTABLE.  

Whats immutable mean? - overtone
@overtone: Generally, objects are said to be immutable if they cannot be changed in-place. For example, strings are immutable in Java: If you want to change any character, you have to copy the whole string in the process. You cannot change an existing string. In this example, immutable simply means that the interfaces are fixed can may in no case be changed. - Felix Dombek
[+32] [2009-04-22 23:33:38] STW

To protect the guilty the values have been changed

This one was left behind by a contractor who had been working on a chunk of code responsible for testing email logins. We were in disbelief so we tried it out and it was a valid login to his personal account; we double-checked the revision history and he had two check-ins that edited it: one to add the code, and the second to comment it out.

We added the artwork and left the rest alone; another dev decided it would be fun to send him emails from his future self (ala The Office) and said it took nearly two full weeks of daily emails before the login stopped working.

'        ______/|\____
'  L    /          [] \
' LOL===_      ROFL    \_
'  L     \_______________]
'            I      I
'        /---------------/

'Private TEST_LoginName As String = ""
'Private TEST_Password As String = "Humsal892"
'Private TEST_Server As String = ""

My favorite part isn't that he did it, or that he accidently left it in place for a check-in--but that when he came back across it he just commented it out rather than deleting it. We never would have looked at the original revision if we never knew it was there :-D

I love the ROFLcoptor. - samoz
For those who are not familiar: - NickAldwin
[+32] [2008-10-15 06:54:24] blindauer

I see this one a lot:

// TODO make this work

Hey that's my comment! -Harold - Harold Ekstrom
Yes, it totally is. :) - blindauer
I've also done: "TODO: That thing I claimed to be doing in the comments" - Atiaxi
[+30] [2008-10-09 16:36:22] community_owned

When writing some Perl years ago, I added these comments at the top and bottom:

# <magic type="voodoo">


# </magic>

The next guy to look at it wasn't so hot at Perl, and spent a while searching documentation for what 'magic' and 'voodoo' did. Since then, I've tried to add more helpful comments...

That is awesome! - Mitchel Sellers
What are the other supported magic types? - Harry Lime
(4) Even more funny because the guy actually thought it was real. - Jeff Keslinke
You did write a helpful comment... It helps you find out who the awful programmers are on your team :P - rfunduk
(3) @harry.lime <magic type="parlor">, <magic type="sleightofhand">, <magic type="card">, and many more. They are documented here: - thomasrutter
(2) Don't forget <magic type="black">. That's the kind I usually encounter in code. - Sean Nyman
[+30] [2009-02-05 11:56:29] xan

From a google code project:

# This job would be great if it wasn't for the fucking customers.

[+30] [2009-04-23 08:35:11] Iain

Stating the obvious?

/** Logger */
private Logger logger = Logger.getLogger();

Looks almost like my code, though I tend to make my loggers static and final, too. :) - Bombe
(5) If I don't do that the checkstyle plugin will SCREAM!!! - Zefi
[+30] [2009-04-27 10:23:56] community_owned

$you = live("free") or die("hard");

(1) Just when I read this, they said it in the song I was listening at the moment. Coincidence. (Wish I Had an Angel - Nightwish.) - WTP
Sorry, its not a comment. - Biosci3c
[+29] [2009-04-19 23:08:11] community_owned
when :orientation
## Avoid matching gay people with straight people - they hate it, they do, they really do.
query_parameter = "(users.orientation = 'Bi' OR (users.orientation = 'Straight' AND users.gender IN ('#{user.opposite_genders.join('\',\'')}')) OR (users.orientation = 'Gay' AND users.gender IN ('#{user.same_genders.join('\',\'')}')))"

From a dating website...

(2) Do you do a similar match on your ads? And on the tips for "how to make women look at your profile"? I'm just saying because I know one site which is really bad at this. - TRiG
[+28] [2009-04-19 09:53:59] Christopher Morley
//The following 1056 lines of code in this next method 
//is a line by line port from VB.NET to C#.
//I ported this code but did not write the original code.
//It remains to me a mystery as to what
//the business logic is trying to accomplish here other than to serve as
//some sort of a compensation shell game invented by a den of thieves.
//Oh well, everyone wants this stuff to work the same as before.
//I guess the devil you know is better than the devil you don't.

[+28] [2009-04-19 22:04:38] dustins
//        .==.        .==.          
//       //`^\\      //^`\\         
//      // ^ ^\(\__/)/^ ^^\\        
//     //^ ^^ ^/6  6\ ^^ ^ \\       
//    //^ ^^ ^/( .. )\^ ^ ^ \\      
//   // ^^ ^/\| v""v |/\^ ^ ^\\     
//  // ^^/\/ /  `~~`  \ \/\^ ^\\    
//  -----------------------------

I don't have access to the original file because I don't work there anymore, but it was something very similar to this picture. It was at the top of a file that always caused troubles, that we had to fix but not allowed to take the time to really fix. (University politics)

[+28] [2008-10-12 17:05:06] Richard T

Q: "What is the best comment in source code you have ever encountered?"

A: Easy - the one that helped me solve whatever problem I was having at the time, and there are lots of those!

Second best are those that help guide new development from avoiding known pitfalls.

(3) nice one Richard. - VoodooChild
[+27] [2008-12-05 19:26:52] NotDan
//Visual Studio Bug Workaround:

//To fix 'CJumpToHelper::GetInstance()' : undeclared identifier compiler errors, change the number lines below
//until the file compiles correctly. (This needs to be done anytime a change is made to this file)

    //////////////////////////////////////: There should be 1-10 of these lines
    //////////////////////////////////////: There should be 1-10 of these lines
    //////////////////////////////////////: There should be 1-10 of these lines
    //////////////////////////////////////: There should be 1-10 of these lines
    //////////////////////////////////////: There should be 1-10 of these lines
    //////////////////////////////////////: There should be 1-10 of these lines
    //////////////////////////////////////: There should be 1-10 of these lines
    //////////////////////////////////////: There should be 1-10 of these lines
    //////////////////////////////////////: There should be 1-10 of these lines
    //////////////////////////////////////: There should be 1-10 of these lines

[+26] [2009-03-05 19:30:38] community_owned
//  If you delete the credits, I will fucking kill you.

found in a joomla module.

[+26] [2008-10-10 16:16:41] Martin Brown
/// <summary>
/// The possible outcomes of an update operation (save or delete)
/// </summary>
public enum UpdateResult

    /// <summary>
    /// Updated successfully
    /// </summary>
    Success = 0,

    /// <summary>
    /// Updated successfully
    /// </summary>
    Failed = 1

What? No FileNotFound? ( - P Daddy
(1) Love the copy/paste job! - Pat
(6) Everybody's a winner! - Programmin Tool
(8) Everybody's a loser, but the comments say everybody's a winner! - thomasrutter
[+24] [2009-02-02 20:48:42] unclerojelio
if(x) {}
else if(y) {}
else {}

(2) //didn't<br>catch (Exception e) {} - Michael
[+23] [2009-03-05 20:52:38] user16208

don't know if it it's funny or sad..but one intern I had working with me had this little gem to calculate the price per unit


// get the units from the form 
int numUnits = Integer.parseInt(request.getParameter("num_pieces")); // this break at random times

float price = Float.parseFloat(request.getParameter("price")); // same as above

// Under certain conditions the following code blows up. I don't know those conditions.
float pricePerUnit = price / (float)numUnits;


(5) This would make a good "what is wrong with this code" interview question, actually. - Cory R. King
(1) It's funny because the flaws are obvious - Mark
(6) Hm, so the coder didn't notice the DivideByZeroException which would be exclaimed in a stack trace by whatever IDE he/she would ever use. - Nailer
(5) Yea he didn't make it through the summer. He kept bugging me about stuff, I'd ask him what errors he was getting in the logs and he was like "huh? my code compiles just fine." He would always ask me the same questions over and over again. This was the last time we offered an internship for the person who scored the highest grade in the class that my company sponsored. This was also a guy who was less than a year from his degree. - user16208
[+23] [2008-10-19 20:44:06] Brian R. Bondy
//If you're reading this, then my program is probably a success

[+23] [2009-04-21 09:30:49] Craig McGuff

An old boss of mine was always going on about how we had to use our own products internally i.e. "Eat our own dog food..."

Many years later I found embedded in some source that a temporary coworker had done, every function he touched is tagged with:


[+22] [2009-04-09 22:29:56] simon

Ages ago I ran into this one:

/*  deep wizardry. do not touch.                                           */
/*                                                                         */
/*  no seriously.  XXXXXX I'm looking at you. If you screw with this again */
/*  I will kill you with my swingline stapler.                             */
/*                                                                         */
/* ...                                                                     */

And then went on to describe a particularly hairy algorithm.

[+22] [2009-04-22 11:18:42] ohnoes

Some time ago I came across:

raise InvalidChild() # e.g. no legs

This is grotesque since "inwalida" in polish, means person with disability. silly me :)

"Invalid" can also mean a person with a disability in English, according to teh wiki: - Andrew Grimm
haha, nice, didn't know that :) - ohnoes
(2) Invalid: in-VAL-id: not valid. Invalid: IN-va-lid: disabled, bedridden, sick. - TRiG
[+22] [2009-03-09 16:26:02] community_owned
$this->getSelect()->where ('main_table.product_id = -1'); // Mom, Dad... sorry

[+22] [2008-10-09 16:27:44] Collin Estes
//open lid

//take sh!t

//close lid

Comments for a File open, data dump, file close...

(1) // flush - close file / connection / dispose - tsilb
[+22] [2008-10-15 09:48:09] Joshi Spawnbrood

Production source code:

// Remove this if you wanna be fired

[+22] [2008-10-09 05:06:25] Mark Glorie

Classic ASP:

'Is it worth it, let me work it'
'I put my thing down, flip it and reverse it'
'Ti esrever dna ti pilf, nwod gniht ym tup I'

NextIP = StrReverse(UserRecordset.Fields.Item(0))

I hope they used StrReverse to create that comment. - wonderchook
(14) That's not right; the comma should be on the character before nwod, not the character after pilf. - tsilb
(1) So your database contains a bunch of reversed IPs? - Juliet
[+21] [2008-10-08 20:11:12] Alejo

Best one so far:

"This code makes baby Jesus very sad!". 

It was refering an String iniciatilization like this:

String blankSpaces="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "+ //100 whitespaces
                   "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "+ //200 Whitespaces
                   "                                        " //100 whitespaces

Well you get the idea.

[+21] [2009-04-22 12:24:37] community_owned
public GetRandomNumber()
    // Chosen by a fairly rolen dice
    return 12;

(4) Sounds like xkcd... - luiscubal
that's in the same arena as Cisco's usage of the phrase "unlimited" (or any cellphone carrier's for that matter). When I was doing my CCNA Academy work the practice exams gave you unlimited attempts; which meant 5 - STW
I'm pretty sure rolen isn't a word... -
I am pretty sure you can't role a 12 on a dice either :) - Paul Whelan
Past tense of role is rolled. - Dead account
(1) Paul: - Erik Forbes
(1) @Paul: You obviously never played D&D... (and it's "die" in the singular) - muusbolla
(5) if it's "die" in singular, then "dice" must be plural--and you can get 12 from rolling "dice" (two sixes, amirite?) - Carson Myers
This is from xkcd if IIRC - Woot4Moo
I have a 36 sided die. So it could be one. - Thqr
The past tense of roll is rolled. Role is a noun. It doesn't do tenses. - nmichaels
[+21] [2009-04-15 05:40:03] digijock
// (c) 2000 Applied Magic, Inc.
// Unauthorized use punishable by torture, mutilation, and vivisection.

Ah, I always loved that one...

[+20] [2008-10-11 01:42:40] Dano

i tell a mentee to do at least SOME exception handling. This is what i get in return around every db call....

Catch (Exception e) {
    //eat it

HAHAHHAHAHA. He showed you I guess. - SnOrfus
oh if only it had said beat it - thomasrutter
[+20] [2008-12-30 13:18:35] user44633

Honest to God:

// This is crap code but it's 3 a.m. and I need to get this working.

I write more formal versions of that all the time :) Nice! - Yar
[+19] [2009-03-05 14:41:49] Ed Marty

In a game where this object can be stepped on, or:

stepOff(); //bitch

[+19] [2008-12-18 19:55:42] llimllib

The favorite comment I ever wrote:

//the XML returned from this request is *mind-bogglingly* bad. Terrifyingly bad.
//a completed batch looks like this:
//<Batch>batchid=363777811 status=Done dateandtime=09/18/2007 09:53:10 PDT activateditems=335 numberofwarnings=0 itemsnotacivated=17 </Batch>
//and an incomplete batch like:
//<Batch>batchid=363778361 status=In Progress </Batch>
//so we'll just parse each item as a regex. Thanks Amazon.

And yes, Amazon actually returns XML like this.

I refuse to acknowledge that as XML. It is clearly a space-delimited list. - Branan
(4) It's even worse than that; it's not space-delimited. Note that both the date and status fields may have spaces in their values, defeating any possible easy parsing strategy. - llimllib
(3) I would like to see the comments on Amazon's code... - flq
(4) it's not a glitch! Read the docs if you dare: - llimllib
@llimllib "The specified announcement [18] was not found." - dantuch
@dantuch I made the comment 2 years ago! I don't care enough to go find the docs, sorry :) - llimllib
[+19] [2009-04-20 04:24:21] community_owned

/*And now, getting all of that to look half decent in the retarded step brother of the browser family, Internet Fucking Explorer */

++ for hating on IE - inspectorG4dget
[+19] [2009-04-23 02:33:40] community_owned

My favorite is from the late, great Paul DiLascia:

// Author: If this code works, it was written by Paul DiLascia. If not then I don't know who wrote it.

(9) Dupe:… - Helen
[+18] [2009-04-23 00:26:48] community_owned
# There is a bug in the next line.  $searchParameters != {} will always return true, because {} is creating
# a new hash reference on the fly, and the inequality operater is comparing the memory location of it
# to the memory location of $searchParameters, and they will always be different. 
# This means that the following code will always get executed as long as $nodes is defined.
# I'm leaving it there because it has always been there, and although I'm sure it was originally meant to
# mean %$searchParameters (essentially "is this hash not empty"), I'm afraid to change it.
if ( $nodes && $searchParameters != {} )

[+18] [2009-04-21 03:23:02] community_owned
// This should fix something that should never happen

[+18] [2008-12-08 21:07:14] theschmitzer

Back when I worked for Reuters there was a comment in one of our feed handlers that made some people think the Almighty was helping us out...

// Jesus told me to skip to the end of the message here

We found out later that there was a Latin-American contact named Jesus (HeyZus).

[+18] [2008-10-20 09:54:23] community_owned

All bugs added by David S. Miller

(1) I wonder if anyone who reads this will write a spambot script to email - inspectorG4dget
[+18] [2009-01-27 02:44:23] GBegen
//  Hey, your shoe's untied!

Followed by some dubious code, and within that code,

//  Keep looking!  I think it was the other shoe!


//  How strange -- I must be seeing things.  Anyhow, I'm going to go take a shower, now...

[+18] [2008-10-12 12:18:46] stuartcw

In a well known commercial DOS spreadsheet application:

/* This comment was just added in order to check-in a file that was last 
checked in by [Insert Programmer FirstName] "Back-to-the-Future" [Insert 
Programmer LastName]. While testing for year 2000 problems, he accidentally 
checked-in this file while his machine clock was set forward to the year 2000. 
This meant that the source code was always newer than the object file and 
compiled every time the code was built. I'm checking this file in again to 
fix that. */

(2) Interesting. What sort of stupid version control system would trust the clients' clocks? - Andrew Medico
(26) And the winner is... VSS! - Kenneth Cochran
VSS, because clients' clocks are supposed to be synchronized by the domain controllers anyway... - configurator
[+17] [2008-10-14 04:34:36] Matt

// Houston, we have a problem

[+17] [2009-04-20 04:23:43] community_owned

A modification log I noticed in a legacy code



[+17] [2009-04-20 03:23:13] community_owned
// For the sins I am about to commit, may James Gosling forgive me

[+17] [2009-04-09 22:54:30] mseery
// This is a walkaround for bug #7812

Written by one of our Chinese programmers, for whom English was not his first language.

I really liked this one. I happen to think "walkaround" is almost a better term than "workaround."

(8) // This is a reacharound for bug #7812 - joedevon
[+17] [2009-04-23 04:03:57] Brad Tutterow

Using semi-colons in VB.NET

TextBox2.Visible = True';
For Each row In data.Tables(0).Rows
    If row("Customers.Id").ToString <> customerId Then
    	customerId = row("Customers.ID").ToString';
    	name = "Customer Name: " & row("Name").ToString & CrLf';
    	address = "Address: " & row("Address").ToString & CrLf & CrLf';
    	TextBox2.Text += name & address ';s
    End If';

(2) Much better.... - Jonathan C Dickinson
(1) This is my favourite - TonyK
Ahh, this is how all VB code should be done! - Aaron Murgatroyd
[+17] [2009-04-23 04:11:33] Niran
//todo: never to be implemented

[+17] [2009-04-23 06:55:06] Mark Heath
// some sport psychology
if (!focused)

[+16] [2009-04-23 15:16:39] community_owned
		// Yeah, but can you play the outtro to Bark At The Moon?


[+16] [2009-04-23 23:13:15] community_owned
Tweet tweet = (Tweet) tweets.get(i); // Poetic.

[+16] [2009-04-04 17:31:08] martinus
   * Returns cookies according to the filters specified.
   * @return array  Cookies!  Nom nom nom nom nom.
 public function data_getCookies($uid, $name) {

Somewhere from the facebook api [1].


[+16] [2009-04-20 12:45:02] community_owned

First two lines of a file called

# perl script disguised as a bash script

[+16] [2008-10-11 22:24:12] interstar

A German comment in some source-code, translated by machine or very tired human + Google

; Rechnen ja ; have faith in yes

I guess the original meant "assume true here" ... but ever since I've taken it as a mantra for my life.

(1) The original means: "Calculate yes". Hard to say what he tried to say without the context. Probably "Yes, calculate" from a conditional calculation. - Stefan Steinegger
[+16] [2009-02-02 13:21:06] Sindri Traustason

From Apache Xalan source code:

 * As Gregor Samsa awoke one morning from uneasy dreams he found himself
 * transformed in his bed into a gigantic insect. He was lying on his hard,
 * as it were armour plated, back, and if he lifted his head a little he
 * could see his big, brown belly divided into stiff, arched segments, on
 * top of which the bed quilt could hardly keep in position and was about
 * to slide off completely. His numerous legs, which were pitifully thin
 * compared to the rest of his bulk, waved helplessly before his eyes.
 * "What has happened to me?", he thought. It was no dream....
protected static String DEFAULT_TRANSLET_NAME = "GregorSamsa";

Further reading on The Daily WTF [1].


(1) Literary References FTW - Frew
I regularly get GregorSamsa in logfiles for one website, the logger on there logs each class unloaded by the garbage collector. - fwielstra
[+16] [2008-12-11 20:02:51] sli

A few from the Linux kernel:

/* Sun, you just can't beat me, you just can't.  Stop trying,
* give up.  I'm serious, I am going to kick the living shit
* out of you, game over, lights out.


/* 2,191 lines of complete and utter shit coming up... */


#if 0 /* XXX No fucking way dude... */

Is the first one in relation to bme and hme? - X-Istence
[+15] [2009-03-26 18:05:09] itsmatt
// A Gorgon class - For the love of Zeus don't look directly at it!

[+15] [2009-04-23 17:39:01] community_owned

Back in the early eighties, I came across this in assembler (quoting from dim memory):

I don't understand how the following bit works, but it worked in the program I stole it from.

great honesty... - cornerback84
[+14] [2009-04-23 00:41:21] SPWorley

This one [1], from Xee, an image browser.

	// At this point, I'd like to take a moment to speak to you about the Adobe PSD format.
	// PSD is not a good format. PSD is not even a bad format. Calling it such would be an
	// insult to other bad formats, such as PCX or JPEG. No, PSD is an abysmal format. Having
	// worked on this code for several weeks now, my hate for PSD has grown to a raging fire
	// that burns with the fierce passion of a million suns.
	// If there are two different ways of doing something, PSD will do both, in different
	// places. It will then make up three more ways no sane human would think of, and do those
	// too. PSD makes inconsistency an art form. Why, for instance, did it suddenly decide
	// that *these* particular chunks should be aligned to four bytes, and that this alignement
	// should *not* be included in the size? Other chunks in other places are either unaligned,
	// or aligned with the alignment included in the size. Here, though, it is not included.
	// Either one of these three behaviours would be fine. A sane format would pick one. PSD,
	// of course, uses all three, and more.
	// Trying to get data out of a PSD file is like trying to find something in the attic of
	// your eccentric old uncle who died in a freak freshwater shark attack on his 58th
	// birthday. That last detail may not be important for the purposes of the simile, but
	// at this point I am spending a lot of time imagining amusing fates for the people
	// responsible for this Rube Goldberg of a file format.
	// Earlier, I tried to get a hold of the latest specs for the PSD file format. To do this,
	// I had to apply to them for permission to apply to them to have them consider sending
	// me this sacred tome. This would have involved faxing them a copy of some document or
	// other, probably signed in blood. I can only imagine that they make this process so
	// difficult because they are intensely ashamed of having created this abomination. I
	// was naturally not gullible enough to go through with this procedure, but if I had done
	// so, I would have printed out every single page of the spec, and set them all on fire.
	// Were it within my power, I would gather every single copy of those specs, and launch
	// them on a spaceship directly into the sun.
	// PSD is not my favourite file format.

(6) repeat from 2 days ago - GoatRider
[+14] [2009-04-06 11:20:56] lfx
// If I from the future read this I'll back in time and kill myself.

[+14] [2008-12-15 15:26:33] unkiwii

This one i found it in the package "twisted" for Python 2.5 (the file is at line 371)

# Limit length of buffer to try to send, because some OSes are too
# stupid to do so themselves (ahem windows)
return self.socket.send(buffer(data, 0, self.SEND_LIMIT))

[+14] [2009-02-06 09:55:12] BoD

Once, I asked a coworker how to do something (forgot exactly what, some obscure technical calls) with our in-house framework. He said "easy, look HERE", then opens a .java file in his editor and shows me this comment in the middle of several pages of code:


I just checked, the comment is still there in this file :)

[+14] [2008-10-09 14:50:49] Guido García
i++; // increment variable i

(3) I love comments that are longer than the code they explain, and still do nothing to explain the code. - John Biazo
[+14] [2008-10-09 21:36:02] runT1ME

I believe in JBoss somewhere there was a line that read

return null; //Not really null

I always liked that line.

[+14] [2008-10-08 20:24:54] bmdhacks

From a classic from usenet [1]:

Deep inside the Teradyne hardware modeler code is a routine that feeds a whole bunch of hex numbers into a SYS$QIO call. The only comment is 'Weird magic happens here'.


[+14] [2008-10-08 20:43:58] Robert S.

In the header of a code file heavily edited by everyone on the dev team:

'Avert your eyes, it may take on other forms!

Good ol' Flanders.

(1) pretty sure that is what the nameless school teacher at a funadamentalist school Bart goes to says as he chases him with a paddle after Bart sang a song about beans or something. - Steven Adams
(2) Yep, "beans, beans, the musical fruit / the more you eat, the more you toot". It wasn't Flanders. - Blorgbeard
(3) Flanders was the name of the developer who wrote the code. But I like that you got the reference. :) - Robert S.
:)) avert he said? hahaha... is should be "Invert it Over!" instead. - gumuruh
[+14] [2008-10-08 22:09:02] Milen A. Radev
// Okay, let's do the loop, yeah come on baby let's do the loop
// and it goes like this ...

[+14] [2008-10-09 02:32:04] mattlant
//The following code is commented out
//(a load of commented out code followed)

[+13] [2008-10-09 21:34:33] MattC
// Hard to explain

It ended up being broken, too. No wonder it was hard to explain

[+13] [2008-12-18 23:24:16] Mark Beckwith
// This code was written by a genius so don't try to understand it with
// your tiny little brain.

[+13] [2008-10-27 15:50:10] Pramod

Exhibit a:

return 0; // Happy ending

Exhibit B:

int32_t Interpolate1DSignal(
  Array1D<float64>::Handle hfInputSamples,         // samples to be interpolated
  Array1D<float64>::Handle hfInterpolationFilter,  // polyphase filter coefficients,
  int32_t iFilterInterpolationFactor,              // # of "rows" in polyphase filter
  int32_t iFilterLength,                           // Length of each row in filter
  float64 fInterpolationFactor,                    // Factor to interpolate the
                                                   // signal by
  float64 fTimingOffset,                           // Offset into the signal (units   
                                                   // of samples)
  Array1D<float64>::Handle hfOutputSamples         // left as an exercise for the reader

+1 for just making my day! - air_blob
[+13] [2009-03-27 00:08:54] user63503
// this error could never happen

And then -- customer's call saying he sees an error message saying "this error could never happen"

(1) I have many lines that go throw new Exception("This should never happen");... and yet it does. - muusbolla
[+13] [2009-04-21 12:56:04] community_owned
    // rien, c'est parfait.

(3) can be translated : "Nothing to do, it's perfect." - Chris
[+13] [2009-04-20 16:38:29] Kuroki Kaze

// This will save us ~0.5 sec for every user and please the machine spirits.

Before very long procedure :)

[+13] [2009-04-23 03:47:39] community_owned
 * Happy Javadoc haiku:
 * Without Javadoc
 * Builds break in Maven site stage
 * This fixes the build.

[+12] [2009-04-23 01:43:44] community_owned
    # silently, we fail
    # many validations fade
    # like tear drops in rain

This is just one of many...

(1) The only thing that makes this sweet, is if they wrote it on the job. - balupton
[+12] [2009-04-23 15:10:06] community_owned
'Mind boggling, gibberish version of a SQL statement, but it work's, so dont touch it

(4) upvote because you didn't deserve a downvote - muusbolla
[+12] [2009-04-20 14:04:54] orj
// END HACK: I feel dirty.

[+12] [2009-04-20 12:19:15] Steve Pomeroy

When I was taking a CS class in Highschool, we were being taught in a regular classroom - no computers. All our tests were done on paper that we handed in - one class per sheet of paper. Our teacher was teaching the class in C++ for the first time and would occasionally switch into Pascal mode on the chalkboard. This was awkward, as few of us had interest in learning Pascal.

For larger than in class work, we would do them at home and hand in code + output printouts to be graded. After submitting a few code + output printouts, we collectively realized that the teacher wasn't actually reading the code - just the printouts. To test our theory, I put in a comment on the 3rd page of my code - right between some class declarations:

// If you are reading this, please place a checkmark here [  ]

Of course, I got it back with a big blue "A" on the front and no checkmark to be found.

Whilst doing my senior practicum in university (4 month project course basically) a groupmate of mine did sweet f all to contribute. In our 30 page report summarizing the project we had 2 pages of bulleted things, per group member, describing all of what we did... we left that one groupmates pages blank. My grade: 89. His grade: 89. - SnOrfus
[+12] [2009-04-20 00:52:43] community_owned

My favorite comment of all time was used by a gay friend of mine. He liked to mark all of his TODO comments in VB.NET as

'TODO: Matt Damon

Sometimes additional information was provided but not usually.

[+12] [2008-11-22 09:00:56] Overflown

I think I had something of this sort:

if (case1) { // trivial
else { // we are screwed
 /* fill in later */

ok, so I might have used a stronger word than screwed

[+12] [2008-10-19 07:59:33] edomaur
// Added because boss changed his mind : 20020111,20020501,20020820, ...
// Commented out because boss changed his mind : 20020201,20020614,20020908, ...

In an ETL script between a mostly hacked RPG database and an SQL Server one. I had something like 10 or 20 occurences of this comment...

[+12] [2008-12-19 16:03:26] Richard Ev

In some assembler, at the end of a line that contained &h723


(get it?)

(7) Rest In Peace Ludwig van Beethoven (1770 – 1827). 723 hex = 1827 decimal. An oldie but a goodie. +1. - Rontologist
[+12] [2009-03-06 13:20:19] Pratik Deoghare



But No Code ;)

(2) I bet that's the most bug free code ever written, if comments count as code... Lol! - John Baughman
I feel your pain - inspectorG4dget
[+12] [2008-10-09 04:59:39] TM.

Actually saw this the other day, on some code that was written when there was a deadline rush.

//This was clearly written under duress

[+11] [2008-10-08 22:44:26] David Collie

"This will never happen".

Famous last words my friend...

(1) I have the same thing, but it says: This should never happen - Milan Babuškov
That's what assertions are for. - nmichaels
[+11] [2008-10-08 21:06:39] rshimoda

This was actually made by me when I was implementing a prototype turned into real code:

// Abandon all hope you who needs to debug this

Yes, someone smarter than me actually refactored the code afterwards (it had to have a good ending).

[+11] [2008-10-09 21:26:57] André

In the header of an XSLT file:

DON'T TOUCH THIS SCRIPT -> XSLT is like arcane, black magic

(4) I agree. Many years ago I did some XSLT wizardry. It was kinda voodoo, but I swear I had fun with it -- when I was not pulling my hair out, that is. - schonarth
(3) Right, complicated things are easy but simple things can drive you crazy in XSLT... - André
[+11] [2008-10-11 22:08:40] Joshua
'Do not optimize these next two lines. Compiler bugs lurk.

And they did. Compacting the variable into the expression on the second line resulted in jumping into the middle of the heap and trying to execute data.

[+11] [2009-03-05 18:44:07] Boydski

My favorite (which I must admit I've used many times):

// Yes...I know this is repulsive and stupid.
// But <%CompanyOwnerOrManagerToken%>, not knowing a thing about code,
// demanded I do it anyways. SO, go crap on their desk, not mine.

[+11] [2009-02-06 23:27:06] Johannes Schaub - litb

I like some of the comments in the GNU binutils. This one is from BFD som.c:

/* You'll never believe all this is necessary to handle relocations
   for function calls.  Having to compute and pack the argument
   relocation bits is the real nightmare.

   If you're interested in how this works, just forget it.  You really
   do not want to know about this braindamage.  */

This one too:

/* Don't ask about these magic sequences.  I took them straight
   from gas-1.36 which took them from the a.out man page.  */


/* Keep track of exactly where we are within a particular
   space.  This is necessary as the braindamaged HPUX
   loader will create holes between subspaces *and*
   subspace alignments are *NOT* preserved.  What a crock.  */

Another one:

/* We will NOT put a fucking timestamp in the header here. Every
   time you put it back, I will come in and take it out again. ... */

From gas:

/* Yes this is ugly (storing the broken_word pointer
   in the symbol slot).  Still, this whole chunk of
   code is ugly, and I don't feel like doing anything
   about it.  Think of it as stubbornness in action.  */

[+11] [2009-02-11 18:38:27] Tim Post

I guess it got viral, I found the following in a daemon (Linux) that prevents the OOM killer from selecting it:

 * Don't OOM me, bro!

This was right after a mlockall() to prevent the process from swapping, commented:

 * Don't swap me, bro!

(1) +1 I lolled heartily! - TokenMacGuy
[+11] [2009-01-16 04:11:06] community_owned

Linux Comments

There are heaps of good ones here ...

These are all comments in linux

My Favourites:

/* Fuck me gently with a chainsaw... */

/* Am I fucking pedantic or what? */

[+11] [2009-04-20 00:45:44] community_owned
/* Here I sit, Joe broken hearted, came to do some sh*t, but only just started. */

In regards to some heavy regular expression input validation.

[+11] [2009-03-24 00:47:28] Jorn
/* FIXME This must absolutely be removed before 4.0.7 release
 * TODO really remove this */

we have since released a 4.0.7, 4.0.8, 4.0.9 and 4.1 version...

lol - no really you got to remove it! - dotjoe
Seriously now, REMOVE IT!! - Pieter888
[+11] [2009-04-15 07:55:56] community_owned

I once worked on a project where I found this comment:

// Cabbage fart?

I have no idea what it was supposed to mean. Just glad my cube wasn't next to whoever wrote it.

(1) Apparently a fart after you eat cabbage stinks more :) - Andrei Rinea
[+11] [2009-04-23 01:21:14] community_owned

In the middle of a few thousand line JScript file after a completely arbitrary line...

// The world is a happy place.

[+11] [2009-04-24 10:10:46] Tim Post

Well, here's one I just committed [1]:

/* Every time I re-visit this function, I feel like
 * I need to take a shower.
 * Don't get too used to this function, its days are
 * numbered.

Someone could start something like and make some cash. That person, however, is not me.


I'll be damned...that domain is taken! - Bobby
[+11] [2009-04-24 10:32:30] community_owned
// need a coffee to fix this.

[+11] [2009-04-22 15:24:36] community_owned
v.bpc     := v.pc;  -- Remember to jump back
v.baccu   := accu;  -- Yo dawg, heard you like runing instructions
                    -- so I took backup of your accu so you can run
                    -- instructions while you run instructions.
v.flags.i := false; -- No more interupts

[+11] [2009-04-25 09:10:09] MaoTseTongue
// Singleton object. Leave $me alone.
private static $me;

[+11] [2009-04-24 17:21:00] community_owned

Found this in makefile

# ===== Never edit below this line. Ever. Or I'll kick your ass. ====

lol short and sweet - ojblass
+1 because it didn't deserve -1 - samoz
[+10] [2009-04-21 11:24:25] community_owned
public function get state( /* of Palestine back */ ):Boolean

[+10] [2009-04-19 23:05:44] community_owned

From the UNIX Version 6 Source Code, circa 1975:

/* You are not expected to understand this. */

[+10] [2009-04-19 21:13:15] community_owned
 * Not even your mum thinks you're special if you call this method
onlyYourMumThinksYoureSpecialIfYouCallThisMethod() {...}

thats a keeper! - Joe
[+10] [2009-04-20 02:17:07] Jason
// Fuck.

That, and...

// This code worked before, but my cat decided to take a trip across my keyboard...

(4) he has no undo button? - Louis Rhys
[+10] [2009-02-05 10:57:23] Polo

This comment is from an old project that i had to debug:

//Haleluya i can go home!

(5) i'm not surprised you had to debug the code when he couldn't even spell hallelujah properly. - Abizern
(2) it's because there was no intellisense assistance - Louis Rhys
[+10] [2009-02-02 21:52:23] John Baughman

Not code comments, but SVN commit comments on the same file:

First commit (following of dozens of others after results coming back from testers):

Squashed some IPR mod bugs. The were big and juicy ones, too.

2nd commit:

Squashed some more mod bugs. Those are some nasty bugs, them mod bugs...


Squashed some more mod bugs. They are like cockroaches: they'll live through a nuclear war.


Squashed some more John bugs. They too are like cockroaches: they appear anywhere John goes. Wait. That doesn't sound right.

And 5th:

Same John bug. It didn't die, just played 'possum.

Yes, I was tired of "Fixed bug".

[+10] [2009-03-05 18:02:22] Chris Doggett

I had to add this one to our old datatable-driven rules engine before I decided to replace it with a scripting language.

		*                                                           *
		*  .=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-.       *
		*   |                     ______                     |      *
		*   |                  .-"      "-.                  |      *
		*   |                 /            \                 |      *
		*   |     _          |              |          _     |      *
		*   |    ( \         |,  .-.  .-.  ,|         / )    |      *
		*   |     > "=._     | )(__/  \__)( |     _.=" <     |      *
		*   |    (_/"=._"=._ |/     /\     \| _.="_.="\_)    |      *
		*   |           "=._"(_     ^^     _)"_.="           |      *
		*   |               "=\__|IIIIII|__/="               |      *
		*   |              _.="| \IIIIII/ |"=._              |      *
		*   |    _     _.="_.="\          /"=._"=._     _    |      *
		*   |   ( \_.="_.="     `--------`     "=._"=._/ )   |      *
		*   |    > _.="                            "=._ <    |      *
		*   |   (_/                                    \_)   |      *
		*   |                                                |      *
		*   '-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-='      *
		*                                                           *

(2) For everyone who doesn't know the Divine Comedy (or italian, like me), it's Abandon all hope, ye who enter here. - Bobby
[+10] [2009-03-05 20:41:10] danio
   // Some wanker in ISO got rid of ifstream(int), ofstream(int), and
   // fstream(int).  Twit.

[+10] [2008-10-19 07:36:50] Bedwyr Humphreys
// fix for groupid > 9 
// if groupid ever gets to 100 everything will break (again)

if (groupid < 10) {
groupid = "0" + groupid;

Very nice. It probably took longer to write that comment than to fix the damn thing! - Martin Cote
[+10] [2008-11-21 19:57:13] AdamBT

Just added this one today:

// Hardcoded this for time sake ... will make andrew fix later :)

[+10] [2008-10-13 14:53:00] jpinto3912

From a lad that clearly had been watching Monty Python:

> // And now, for something completely
> // different:

class theLarch{

[+10] [2008-10-10 15:37:34] Dr. Bob

// Whoever put this here is an idiot...this doesn't work at all !

But the code is still there...

[+10] [2008-10-10 08:40:20] Christoph Schiessl

I don't remember exactly, but the idea was something like this:

Person p = new Person("John", "Doe", "male");
Collection women = new ArrayList();

It's dirty code ;)

(24) There was no comment in this answer until I added this one. - Windows programmer
(1) LOL @ Windows programmer meta-comment - e.tadeu
(4) As dirty as that code reads, the result is that you put a male in a collection of women. So when the next programmer uses the list of women, he gets a male and uses it as a woman. So whereas the first programmer thinks his guy is lucky, the next one ensures the guy gets the equivalent treatment of dropping the soap. - Xaade
[+10] [2008-10-08 21:11:36] CobolGuy

That comment is in nearly every program we have here....

(3) Like Wikipedia with the cleanup and cite sources tags... - Nicholas Knight
[+10] [2008-10-08 20:32:50] community_owned
int Q13Factor = 8125; // 2^13 for Q13

I'm guessing it started at 8192 (2^13), then dodgy bug-squashing techniques brought it down to 8125, and the comment stayed on, now untrue. - jpinto3912
[+10] [2008-10-09 07:41:53] Enrico Campidoglio

Found in the JUnit API:

 * the moon sets over the early morning Merlin, Oregon
 * mountains, our intrepid adventurers type...
public Test createTest(Class theClass, String name) {

like this one :) - Shein Alexey
[+10] [2008-10-09 13:05:52] Richard Turner
// TODO - Comment this function

(6) Uh sorry. That was me. - JohnFx
And "// TODO Implement" makes for a nice method body! - Henning
[+10] [2008-10-09 08:56:49] belugabob

Seen in the source code for LucasArts' computer game 'The Eidolon' (Which was wierd and wacky in it's own right)...

// He's dead, Jim!

[+9] [2008-10-09 09:50:37] trshiv
/* My lawyer told me not to reveal */

[+9] [2008-10-09 03:35:32] Brad
# absolutely foul heuristic code.
#'s dirty, but you want it.


# VERY USEFUL DEBUGGING AID, for when the above all goes pearshaped:

[+9] [2008-10-08 20:11:04] antik
// TODO: Implement this function!

(8) Hey! You've been reading my code again! - Ogre Psalm33
I do that all the time - igorgue
[+9] [2008-10-10 12:16:31] community_owned

Not a comment but an attribute


And one I have seen in an implementation of IHttpHandler

//What is this?
public bool IsReusable
    get{return false;}

Heh, I actually did the same when toying with IHttpHandler for the very first time.. - driAn
[+9] [2008-10-24 22:43:01] coppro

This is one from my own code, but it's still really funny, and I figure I might as well put it up because it's in public SVN.

// These were orginally up and down. When it was clear the names were
// inapplicable, they were renamed to retain the joke.
// Sorry if you were hoping for useful variable names.
quantum strange, charm;

[+9] [2009-04-20 18:11:14] Nordes

While debugging someone else JavaScript I've seen the following comment:

// Notice: I feel so dirty doing this, but it's the only way to make it cross browser.

But while reading one post of Scott Hanselmen I came across the following quote that goes very well with the comments I found inside the code:

Every line of code you write that you feel gross about will ultimately come back to haunt you. Therefore, avoid writing code that makes you feel dirty.

That's funny :)

[+9] [2009-04-15 19:35:41] Lily
public int hashCode() {
//sucks, but what're you gonna do

int hash = 7;
for (int i = 0; i < array.length; i++)
    hash = hash * 31 * (null == array[i] ? 0 : array[i].hashCode());
return hash;

return 0;

[+8] [2009-03-26 23:43:23] jeffamaphone
// TODO: Drive an ashen stake through the foul heart of this function.

And it was a foul function. I have nightmares about it to this day.

[+8] [2009-04-19 03:45:18] The Disintegrator
// This condition can't happen. Call the police or something.

[+8] [2009-04-19 13:06:24] community_owned
var arbitraryNumber = 10;
//I don't know why. Just move on.

[+8] [2009-04-06 11:48:13] Benjol

Well, these are mine, so WTF is me, as CodingHorror said:

//#region Code for weird cases - do you really want to know?

I once left a comment like so in some ASP:

' Commented out following code, don't delete for when [CustomerName] changes his mind

As it happens, [CustomerName] didn't change his mind, but he DID have access to the web server, and he DID find that line...

[+8] [2009-04-20 17:05:34] George Mauer
// This part is more difficult

At the top of a method.

That was about 5 lines long.

And not very difficult.

It was the only comment.

In the entire application.

+1 more if I could - just for the style of your comments on the comment - inspectorG4dget
[+8] [2009-04-20 18:46:50] community_owned
 * This run through all the guipublisherbuyRecord , the records those have
 * diff. is buytotal and prior to buy isRecommendedBillingClickedWarning flag
 * is set if priously RB ran and this time not.
 * --What?
 * @return
 * @throws AppException

[+8] [2009-04-20 00:52:36] Charlie Somerville

I found this on Google Code Search

    // Constructs a tuple with 2 elements (fucking idiot, use std::pair instead!)
    template <typename T0,typename T1>
    inline tuple <T0,T1> make_tuple (const T0& t0,
            const T1& t1) {
            tuple <T0,T1> t;
            t.get<0>() = t0;
            t.get<1>() = t1;
            return t;

[+8] [2009-04-20 04:58:48] cliff.meyers
// TODO: not this

Written by a colleague above a query in desperate need of optimization. In his defense, we'd all been working 70-hour weeks for a few months at that point...

[+8] [2009-04-22 20:08:53] community_owned
//Dave chapelle reports errors.
function reporterror() {

[+8] [2009-04-22 20:14:14] ProKiner
// TODO: Finish.

Very popular one. - balupton
[+8] [2008-10-20 06:55:12] Nat

In a large investment bank that required all application outages be logged and commented I saw

Without a crash 

Or mighty bang 

The sync disk 

Did it's process hang

[+8] [2008-12-17 18:33:17] George
catch (Domain.ConcurrencyException)
    // somebody changed it between the time we loaded it and now.
    // weird, huh?

[+8] [2009-03-16 10:44:58] Simon Lieschke

I discovered this gem when viewing the HTML source of an earlier iteration of the TVNZ website [1] (from line 571 if you're playing along at home):

<!-- Hopfully we can do this otherwise the nav is going to be pretty plain and Hong will go postal. -->

[+8] [2009-01-28 17:52:27] Chris Kloberdanz

I just ran across this one in a really simple test C++ program for a class in college.

I was commenting a class.

In the destructor...

// Choose! Choose the form of the Destructor!
// The choice is made! The Traveler has come!

[+8] [2009-01-10 20:49:03] kal
i++; //increment i

dupe (no, I'm not going to go look up where it was before, trust me, it's there) - Peter Zich
not new, it's already there (look on page 2 or 3) - Chris
[+8] [2008-10-13 07:36:59] Andreas Magnusson

[+8] [2008-10-12 06:41:25] smaclell

This is my favourite comment ever.

/// I intend to do this as shittily as possible because there are many better products that will totally blow this out of the water
/// and we don't have them so whatever

Later on in the file we have more fun like

/// sidestep a bug in WCF (that we can't send types across)
/// or, depending on how you look at, this issue is a Feature

And again later

if( where == null)//be nice

(1) I'm guessing he was unfamiliar with a WCF Datacontract... - Spence
mmm not so much. He was also trying to send non serializable types across like iterators and System.Type. WCF was not very nice to either of those ... - smaclell
[+8] [2008-10-09 01:31:34] witkamp
// Bad Christian, No cookie

Cookie in this context does not refer to a browser cookie

[+7] [2008-10-09 08:24:16] ThatBloke

Some of the very few comments in 5000+ lines of code in one file
I actually has an argument with the coder who defended his coding style...
No comment!
And there were no comments;-) (or very few)
Sadly this is production code.

for (i=0;i<=len;i++)
    if ((i!=0)&&(i<len)) //-3
            case ETX:
            case ETB:
            case DLE:

I love the switch!

for (n=0;n<offset;n++)
    Sleep(TR);  //Modif A
    if (ECHO)

and no, there are no comments explaining what "modif A" is in the header.

if (GetFileSize(hSlotFile,NULL)==3600)   //5*720

and what's 720?

720 is 30 days of hours. - eyelidlessness
(8) 720 is 2 * 2 * 2 * 2 * 3 * 3 * 5, duh. - configurator
720 is 2*360 degrees - Alexander Malakhov
[+7] [2008-10-09 08:42:59] Pev

Spelunking through the Hardware Abstraction Layer while working for a certain Finnish Mobile Network Equipment Manufacturer I found 100+ occurrences of the Finnish word "puukko".

A 'puukko' is an all purpose knife that every Finn has in their toolbox or around the house. It is used for everything from pealing potatoes to performing computer repairs (my observations). I believe in this context it is the Finnish equivalent of the word 'Hack'.

My Finnish colleagues denied this and said it meant something more like 'surgical procedure/intervention'... and I almost believed them until I found the comment:

/* Perkele ISO Puukko! */ -> Fucking Big Hack!

[+7] [2008-10-09 05:16:38] nlaq

I found this when re-using a PHP class I wrote a fair amount of time ago. I still cant remember what went there and I still have found no use for it... I actually don't even remember me writing that comment; so I literally laughed out loud when I found it.

    // Some database logic
catch (Exception $ex)
    // sure, it looks silly and I honestly cant remember what code used to go here... but i swear i will
    // find a use for this code.... eventually....
    throw $ex;

Is the $ex supposed to be sex? - Plumenator
[+7] [2008-10-11 19:45:15] community_owned

Not really a comment:

DvLog::Log("This silly log message fixes a PSCRIPT5.DLL gpf when printing to Adobe.");

Sad thing is that without the comment, PSCRIPT5.DLL really did blow up ...

PSCRIPT5.DLL is my nemesis. I would love to see the source of that b*stard, just to attempt to grok what they were thinking. Of course, if I saw the source, I'm sure I would be even more upset than I am now. Surely, the code that generates such insane output must itself be more insane. - Troy Howard
[+7] [2008-10-10 02:38:14] Parappa

A funny typo that was strangely appropriate:

assert(0); // should never shit this point

[+7] [2009-03-10 02:59:12] Flow
// insert comment here

[+7] [2008-12-18 19:26:11] FreeMemory

In an LKM:

* Dear Richard Stallman,
* This one's for you.
* Sincerely,
* Me

[+7] [2008-10-16 11:54:48] community_owned
 // WARNING!!!
 // Very perversive code ahead!

... about a 20 lines of "very perversive" code ...

// Now you can call your grandmother back. ;)

What's the perversive code :P? - Aidiakapi
[+7] [2009-04-22 11:43:13] Martín Marconcini

I've seen this code in a function FULL of Explicit weird casts:

// Since today's CPUs are really fast, this is dedicated to those who said:
// " You can't use Moore's Law as an excuse to write bad software. "

The code was horrendous :)

[+7] [2009-04-24 09:49:02] bretik

Recompiling FreeTextBox3 for the first time in our application because we need IE8 support... And look what I've found:

// IE7 update. this is still bad code, but IE8 is probably a long way off :)

(1) who could blame them for thinking so :) - Dhana
[+7] [2009-04-27 16:24:23] community_owned
# dont question, i just felt like throwing some globals in
# this is actually quite pointless as youll soon see

later in the code

#draw the circles (complicated)...dont question

even later...

# complicated process of drawing the circles in a
# somewhat symmetrical, 3-d pattern
# dont question again

and even later...

# will determine if user clicks on die
# i determined these values...dont worry about them

(1) I bet there's no # I promise to debug this code when it inevitably breaks - johnc
[+7] [2009-04-20 14:48:46] community_owned

/                    \
| Jean-Michel Bechet |
| 2002-2009          |
\___  _______________/


[+7] [2009-04-20 18:15:49] thijs

I recently saw this:

// you just lost the game

if you don't know what the game is: [1] (it's very silly, but silly in a interesting in a way)


(2) awww I just lost the game - David Božjak
Crap so did I. =( - Erik Forbes
OMG, there are coders who visit 4chan? :) - tsilb
Damn, I lost the game. - Dian
Whassis about 4chan? The game has been around for longer than 4chan. 4chan was created in 2003, the earliest known mention of The Game online was 2002. But yeah, the set of people that code and the set of people that visit 4chan overlap significantly. - Christian Mann
[+7] [2009-04-22 10:13:10] slf
// *** drunk -- fix later ***

direct link [1]

More fun with google code search [2]...


Awww, that search doesn't return anything anymore ( at least, it didn't for me ). - Sean Hagen
It used to! I promise! - slf
[+7] [2009-04-03 13:16:30] BobC
catch (Exception ex)
    // just die already.

[+6] [2009-04-06 10:02:57] Eskat0n
# Don use this. Never!

[+6] [2009-04-20 22:21:46] community_owned

// no comment

/* no comment */ - thijs
And even T-shirte-ed: - Alex B
[+6] [2009-04-20 02:44:47] Josh K

This whole function is pretty great (from the Linux sunhme.c driver, for the network card nicknamed the Happy Meal by Sun. Because the card that came before that was the "Big MAC". Get it? Get it?)

static void happy_meal_tcvr_write(struct happy_meal *hp,
                              void __iomem *tregs, int reg,
                              unsigned short value)
    int tries = TCVR_WRITE_TRIES;

    ASD(("happy_meal_tcvr_write: reg=0x%02x value=%04x\n", reg, value));

    /* Welcome to Sun Microsystems, can I take your order please? */
    if (!(hp->happy_flags & HFLAG_FENABLE)) {
            happy_meal_bb_write(hp, tregs, reg, value);

    /* Would you like fries with that? */
    hme_write32(hp, tregs + TCVR_FRAME,
                (FRAME_WRITE | (hp->paddr << 23) |
                 ((reg & 0xff) << 18) | (value & 0xffff)));
    while (!(hme_read32(hp, tregs + TCVR_FRAME) & 0x10000) && --tries)

    /* Anything else? */
    if (!tries)
            printk(KERN_ERR "happy meal: Aieee, transceiver MIF write bolixed\n");

    /* Fifty-two cents is your change, have a nice day. */


(7) Dupe:… - Andrew Medico
[+6] [2009-04-20 02:52:15] tlrobinson

// This is confusing, I KNOW, so let me explain it to you.

[+6] [2009-04-20 02:17:06] David Pope
#ifdef TRACE
#undef TRACE     /* All your trace are belong to us. */
#define TRACE ....

[+6] [2009-04-27 09:58:18] community_owned
// *** AAAAAHAHAHAH!!  What is this??

[+6] [2009-04-23 22:26:02] stdave

This was for a custom DHCP server that we used in a university's dorms to put computers into 'clean' or 'dirty' IP address pools depending on whether or not they'd registered/installed patches and Antivirus:

public boolean getDirty (String MAC) // not as fun as it sounds

[+6] [2009-04-24 00:04:35] Dan
// TODO: what the hell is this all about?

And then some commented out code.

This was found in our code in work earlier today. I'm not sure if I should laugh or cry...

[+6] [2009-04-23 19:06:49] Paul Redman

Control + A, Rewrite

This was a comment added to source control on a previous project as the check in comment.

[+6] [2008-11-25 00:54:11] Steve Tranby
<!--                                I'M SERIOUS                             -->
<!-- (scroll down) -->

[+6] [2008-12-15 15:30:05] cLFlaVA

I don't have the exact code package anymore, but I remember the comment vividly.

// The code below needs to be changed immediately.
// I wish I was a little bit taller
// I wish I was a baller
// I wish I had a girl who looked good, I would call her.

I seem to recall that was a popular single in about 1995... - asveikau
[+6] [2009-01-06 16:26:33] user24985
// I love the smell of dirty XML in the morning
xml = xml.Replace("xmlns=\"urn:bsd.orion/inventory\"", "");

(3) Nooooooo!!!! There are decent workarounds for this!! like (_xsNamespaces = new XmlSerializerNamespaces()).Add("", ""); - Andrei Rinea
[+6] [2008-12-30 12:56:27] annakata

From a unit testing class in C#:

#region quis custodiet ipsos custodes?

public void TestPositive()
    Assert.Equal(4, 2 + 2);

public void TestNegative()
    Assert.Equal(5, 2 + 2);


(2) umm, Assert.Fail(); ? - tsilb
For those who don't speak latin: 'Who will guard the guards themselves?' - Iain
[+6] [2009-02-11 18:19:15] Jane Sales

I once worked on the source code of Windows 3.0. (Not, I hasten to add, as a Microsoft employee!) There I came across a file loader that went re-entrant multiple times, and had one example of some nasty punning (just to show how clever the author was).

This mess of re-entrant code was executed with an Intel assembly jmp instruction (in the middle of C code), which went to the label "we_are_not_in_kansas_any_more_toto".

That's funny! Did that fall through to if_i_only_had_a_brain? - Tim Post
"we are not in C any more"... pure genius - muusbolla
[+6] [2008-10-10 14:18:44] Baishampayan Ghose

Beware of bugs in the above code; I have only proved it correct, not tried it.

That one is by Donald Knuth.

(7) duplicate (see above) and it comes from an essay not from code - thomasrutter
[+6] [2008-10-11 18:45:10] MrBoJangles
Case 1:
//I don't want do do this but [my coworker] says it's part of the code standard

"derault" Typo or from the original? Inquiring minds want to know. - James McMahon
cant be ..unless the code was never compiled.. cos a compilation wudav caught that part and it wud have been corrected. - user20358
Oops, just a typo. I'll leave the typo in tact so your comments will continue to make sense. - MrBoJangles
(3) I'd have to say I'm more offended by asterisked swears than bad spellllling. - MrBoJangles
(2) @__ > Then I suspect that you're in the minority. - SnOrfus
Would it break? It's a valid label, admittably without matching goto, so the break below is unreachable. - MSalters
(2) I agree with __. The bad spelling is painful, but asterisked swear words are nonsensical. Either swear or don't. Asterisking it makes you look like a coward. - TRiG
@Snorfus, yes. Sad, isn't it. - MrBoJangles
Btw, I'm not trying to sock-puppet, I just changed my name from two underscores. - MrBoJangles
Don't forget the dotted swear word too: 'What the .. ?' Double coward. And surely an ellipsis is worth three points, not just two? - TonyK
[+6] [2008-10-09 13:22:03] Retne
-- Change Log:  Not needed. The code is perfect 'cause I wrote it.
-- If you change it, it will break.

I'm in the middle of reviewing some code comments to check they make sense, and saw the modest line above.

[+6] [2008-10-09 03:38:39] mos

Fresh out of college, I was eager to get my hands dirty. My first task was... "comment this code for me".


After awhile I got bored with it...

// this function doesn't actually calculated the profit, like it says --it really signals the mothership orbiting saturn that the planet is ripe for takeover


// I don't think anyone is going to read this

[various permutations on that last one]

(6) And thus, your hands were dirty. - James McMahon
[+6] [2008-10-09 01:10:18] MrValdez

A few hours after showing a friend this post from Coding Horror [1], I saw this comment on his code:

// MrValdez is a violent Psychopath. Don't piss him off.


Um yeah, I'm Mr. Valdez, and now I'm pissed. - CobolGuy
[+5] [2008-10-08 20:10:34] Eduardo Campañó

I found this:

I'm not sure what I did

[+5] [2008-10-08 20:26:01] Kristopher Johnson
// This code sucks.

and then why did you code it in? :D - gumuruh
[+5] [2008-10-08 20:29:51] JosephStyons
This is a gathering place for all unit tests.
Create a TUnitTestWrapper, then call "RunAllUnitTests".

This class will create an instance of each thing to be tested, and call each of
their unit tests.

It does not really do any testing on it's own; it just gives a common place from
which to call everyone else's tests.

This way, one day, we can automate our testing with each build. [Cue laughter]

[+5] [2008-10-10 00:33:33] moffdub

Upon being forced to write unit tests for anemic domain objects that are nothing but bags of getters and setters (which I was forced to write as well):

// zzzzZZZZzzzz....

(1) Don't you love unit testing the compiler. My least favourite tests (after unit testing maths of course) - johnc
[+5] [2009-02-13 00:39:27] Bennett McElwee
try {
} catch(err) {
   // Die quietly

[+5] [2009-02-02 11:45:20] Neil Aitken

Just found this one in some of our PHP code

$s=2; // chicken and bacon wrap for lunch

How useful, luckily $s was self explanatory

[+5] [2009-03-15 23:45:12] neoneye
// nobody read comments!

Nobody read Ikke's comment either. - Windows programmer
[+5] [2009-03-14 00:00:19] nlaq

I just ran into this in some of my own code. It was in a magento admin template for category selection:

         * OK; before you read the following code know what I am trying to do.
         * I needed to get the list of child catagories from the root node so that
         * the root node didn't appear in the selection box. But for some stupid
         * fucking reason the stupid fucking DBA wont let me access the items using
         * indicies and I instead have to use their stupid fucking Iterator
         * implementation. So there.
        $firstList = $this->getRootNode()->getChildren();
        foreach ($firstList as $node)
            $nodes = $node->getChildren();
            break;          // wtf?

I am going to remove the language of course out of our flagship product; but I remember I was super frustrated. If I hadn't left a comment, I would try to revise it but then run into the same problems I had before.

(1) Seems like the author of the "wtf" comment has NOT read the introduction :D - furtelwart
I see it quite often at work in legacy code - Turowicz
[+5] [2009-03-05 18:53:28] Jaanus

Not in code, but in a related bugtracking system:

This can't be a bug in my code. I coded it very carefully.

[+5] [2008-12-02 16:13:28] Nikola Stjelja

//Iterate by one

Unfortunately it was mine, during my "Must comment everything phase".

(11) additionally, you probably meant "increment by one." - x0n
Well really he did iterate. That is to say, he moved to the next in a theoretical infinite array of numbers. - tsilb
Well both are correct. During that time I developed in php and used the while structre everywhere so what I mean is to iterate to the next index key of the array being interated inside the while($i<array_length) - Nikola Stjelja
[+5] [2008-12-02 19:09:52] wergeld

While working on some websites I found this at the start of the embedded JS:

I feel so dirty doing this but the guy wanted it in .NET

[+5] [2008-12-02 19:20:39] Rob Prouse

From C#

#region Hack - Shield Eyes Before Expanding

/// <summary>
/// A single uint with all of the bits set to represent the different tracing
/// </summary>
/// <remarks>
/// Ugly I know, so if you can think of a better way, feel free to rewrite.
/// </remarks>
public uint TraceBitfield
    // Snip


Not uncommon. I'm often denigrating my own code when I write comments, imploring the reader to refactor if they have a better idea. - moffdub
[+5] [2008-12-04 01:43:44] Sumptin

Quite a while ago I came across some connection script and while I don't remember the syntax I do recall the comments as I'm a Pink Floyd fan.

//Attempt Handshake: Hello? This is London calling. Are we reaching you?

//Handshake Failed: I don't understand...he just hung up.

Shouldn't that be, "...this is United States calling...", assuming it's The Wall (Don't Leave Me Now)? - Rob
Sure it's not mentioning the great Clash song "London Calling"? - bluish
[+5] [2008-12-18 13:49:02] Keltia

That one is well-known but I like it (in sys/ufs/ufs_vnops.c):

 * A virgin directory (no blushing please).

in the FreeBSD kernel source tree (and even before, back into 4.xBSD)

[+5] [2008-11-24 19:11:28] joseph.ferris

In a class named "Bar" (which was a UI Control with a less than descriptive name), the class header:

/// <summary>I pity the "foo".</summary>

And the Remove() method:

/// <summary>A "foo" and his money are soon parted.</summary>

Even worse, it was a business partner that pointed it out from the generated documentation. Even worse than that, is those are probably the closest things to useful documentation we ever got out of the guy.

[+5] [2008-10-21 14:51:00] Matthew Scouten
struct core_unlocker
        m_lock = lock
        unlock(lock)  //Abandon All Locks, Ye Who Enter Core!
    Corelock m_lock;

[+5] [2009-04-23 16:29:06] community_owned

/* This is a replica of a horrible hack - many moons ago, the legacy PortfolioServer was modified to return cash trades in an "optionTrade" block, because the client side developer was too lazy to get their XPaths right. Their laziness echoes through the ages, and means we need a similar hack here...*/

[+5] [2009-04-24 06:19:30] community_owned

We had a group project to create a Connect 4 AI using Min-Max trees. In our move-scoring function, we had it calculate a score for the board, and above that block of code there was this comment:

// This is kind of almost useless

But it gets better. Our instructor gave us some sample code from a crude AI he had made, and he left a great comment:

// We also add/subtract some points based on what's going on, on the bottom
// row. (I think this is retarded, but apparently when I coded this up 
// back in 1999 I didn't.)

You lucky bastard. I also had to create a Connect4 AI using Min-Max trees. Solo. Without sample code. My instructor was a soon-to-graduate-TA so he was a bit lazy... - muusbolla
[+5] [2009-04-23 19:35:55] savannah
//Time log says you've been here for 15 hours GO HOME, your code is hobo

[+5] [2009-04-24 10:39:23] Manrico Corazzi

In a bunch of poorly cut & pasted source code for a content management web app:

// load image 1 - JPEG 240x320
img = f1.getImage();
if (check(img))
   load(img, Constants.JPEG_240x320);

// load image 2 - JPEG 128x128
img = f2.getImage();
if (check(img))
   load(img, Constants.JPEG_128x128);


// load image 13 - GIF 256x256
img = f13.getImage();
if (check(img))
   load(img, Constants.GIF256x256);

// loaded all of the f**king images

note: roughly translated from italian :-)

[+5] [2009-04-23 01:45:27]
print "Hello World!"

[+5] [2009-04-23 01:00:14] community_owned

# as you can see: I comment the code!

[+5] [2009-04-27 09:15:24] acidzombie24
// woot, global var. I havent done this for a long time.

[+5] [2009-04-25 09:36:18] community_owned

my favorite was something like this

 # commented out
 ### end of the formerly uncommented #2001-02-22 John Doe

[+5] [2009-04-20 03:09:15] community_owned

I don't have the code to share, but imagine this scenario. About a month or two after our Linux Sys Admin left for greener pastures, I had the pleasure of opening a shell script he'd written. I can't recall why I needed to edit it, but that's not what matters. What's important is that the script was about 40 lines long. I scrolled past the commenting (of which there were 37 lines) to reach the actual working code (3 lines). The code was great, but I was curious - why 37 lines of commenting? So, I scrolled to the top and proceeded to read. To my surprise, the commenting was a rap about what the three lines of code did and how to change it. The best part - it was a partial rip off of Nothing But A G Thing by Dr. Dre and Snoop D O DOUBLE G. Thanks Brian!

please retrieve it for us! :) - bluish
[+5] [2009-04-20 14:14:15] Jan-Willem Hoekman
* TODO: Remove this function

function remove($customer_id)


[+5] [2009-04-21 11:07:21] community_owned

Many years ago I picked up the job to provide support to a project that ran real time on a Z80 and was in assembly (is there any other way to do Z80??) Anyway, the original author was a Nigerian guy by the name of Moses. Maybe I should just stop there. Anyway, scattered throughout the code was this:

XRA A    ;MT

Took me awhile to figure out what this was. The instruction itself does nothing more than clear the accumulator. It's a slick way, although I'm not sure if there is an advantage or not. you can just do:


But maybe


saves a byte or something. What is does is exclusive or the accumulator with itself. The result is, of course, always zero.

Back to the MT - Empty (get it?)

That's the best I've run across.

The XOR A,A (which I think was the Z80 mnemonic, the other most likely 8080) is a single byte opcode. The LD A,0 is a two byte opcode. He probably just should have made a ZEROA macro or so :) - Thorbjørn Ravn Andersen
[+5] [2009-04-21 09:31:00] Sindri Traustason
 * As Gregor Samsa awoke one morning from uneasy dreams he found himself
 * transformed in his bed into a gigantic insect. He was lying on his hard,
 * as it were armour plated, back, and if he lifted his head a little he
 * could see his big, brown belly divided into stiff, arched segments, on
 * top of which the bed quilt could hardly keep in position and was about
 * to slide off completely. His numerous legs, which were pitifully thin
 * compared to the rest of his bulk, waved helplessly before his eyes.
 * "What has happened to me?", he thought. It was no dream....
protected static String DEFAULT_TRANSLET_NAME = "GregorSamsa";

(3) dupe - Daniel Goldberg
@Daniel Goldberg You might notice both are by me. I think it's a human fluke, I answered this question twice for some reason. How on earth did you spot this? - Sindri Traustason
Kafka, if my memory holds. - johnc
[+5] [2009-04-21 09:38:01] community_owned
    // you’re fucked
    // write out the file somewhere and start screaming “Connection down! Connection down!”

[+5] [2009-04-06 14:47:17] Colin Cassidy

managed to insert this bad pun into our code

for (bo_thans = 0 ; bo_thans < MAX ; bo_thans++)
    if(rs == thing[bo_thans])
       found = true;

   /* Failed to find rs with bo_thans */

(2) How many Bothans died to bring you this information? - Brian Postow
[+5] [2009-04-09 22:28:35] Pool

From a contractor in an application for a UK bank.

// i don't know how this works but it does so i'll leave it here anyway

He also added BNP (British very right wing party) as 1 of the dummy customers for testing... our immediate boss was of Asian ethnicity.

[+5] [2009-03-26 22:50:04] Brian Campbell

This is so much nicer than the scary legal notices and disclaimers you see in many comment headers. From SQLite [1].

** The author disclaims copyright to this source code.  In place of
** a legal notice, here is a blessing:
**    May you do good and not evil.
**    May you find forgiveness for yourself and forgive others.
**    May you share freely, never taking more than you give.

-1 duplicate (see above) - bluish
[+5] [2009-04-11 18:08:51] womp
<!-- Here it is -->

No other comments anywhere. To this day I don't know what "it" was.

(4) "it" was apparently the one comment. - munificent
[+4] [2009-04-03 13:20:24] Jeff O

See this one:

'On Error Goto Hell.

wrote this 5 years ago.but i also had a heaven. - Behrooz
[+4] [2009-04-20 18:04:36] Glyph

My personal favorite is documentation in limerick form [1]:

        Subclassing made Zope and TR
        much harder to work with by far.
            So before you inherit,
            be sure to declare it
        Adapter, not PyObject*

This probably spoils the joke a bit, but since it's a bit obscure I'll explain:

"TR" here refers to "Twisted Reality". Zope 2 and the original twisted.reality package made extensive and unfortunate use of multiple inheritance, which could make it difficult to understand what was going on when you saw a method call. Zope 3, Twisted itself, and twisted.reality's successors (including the most recent, Imaginary [2]) instead generally favor component composition.


[+4] [2009-04-22 20:39:36] community_owned
// All this code is yours, except gedit()...attempt no modifications there.

[+4] [2009-04-22 16:41:42] community_owned
#       Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T
#         All Rights Reserved

#       The copyright notice above does not evidence any
#       actual or intended publication of such source code.

#ident  "@(#)   1.6     93/01/11 SMI"   /* SVr4.0 1.3   */
exit 255

Taken from SunOS 5.9 aka Solaris 9 (/usr/bin/false)

true is only a comment! - reinierpost
It's not true any more. Now that it's been published, it's false. - Windows programmer
(2) Heh, Schrödinger would be proud. - Erik Forbes
I don't get it. - samoz
[+4] [2009-04-22 17:05:20] Peter Turner
var something TBoolean; //Pickins

[+4] [2009-04-24 16:00:27] community_owned
//too much log will kill you

This comment I wrote it myself, when lowering the priority of some logs which otherwise would write hundreds of MB of crap and seriously crippled an application performance.

+1 for Queen reference. - sunny256
[+4] [2009-04-24 19:31:46] community_owned
// Here might be dragons
 // Beware of the Jabberwocky
 .//user the force, luke

[+4] [2009-04-23 19:56:08] community_owned
/* Only break the connection if it actually exists. It is important to
 * check the timeslot saved in the SOURCE of the disconnect message. */

I wrote this comment, and now I can't remember WHY it's important...

[+4] [2009-04-23 16:31:19] Steel Plume
public static final void attachListener(Object listener) {

/* ======================= */

// This does nothing, continue searching

/* ======================= */


painful with listeners!

[+4] [2008-10-30 14:45:04] Chris Kloberdanz

From a legacy Perl CGI script:

# This is convoluted and evil, sorry.

[+4] [2008-11-07 07:48:17] Jason Sundram

I didn't encounter this firsthand, but it makes for a good story (see explanation in my comment):

#define MSGTAG_B33R     0x723 /* RIPLVB */

Ludwig Van Beethoven (LVB) died in 1827 (== 0x723). Nice, right? - Jason Sundram
The way I heard it was that the only comment in a program was on line 1750 and it said RIPJSB, a reference to Bach. - Jeffrey L Whitledge
...MSGTAG_B33R? Beer? :-) - Ivan Vučica
-1 it's a duplicate (see above) - bluish
[+4] [2008-12-18 11:35:20] alepuzio

An HORRIBLE patch for a decode (Translation by italian language):

*@return the value 
*@param key: the id of the list of instruments
*@PS this function is a violation of all the laws of the 
*software engineering, 
*commons sense, highway code 
*and ONU decision about the coding.
That sh*t...

(1) ONU = UN in English. - asveikau
[+4] [2009-02-01 01:30:20] Nosredna

I saw this once:

//this used to be a comment

[+4] [2009-02-02 12:13:43] MatthieuP
// HACK ! COPY/PASTE this and look for another job

[+4] [2009-02-02 13:29:40] BlackWasp

This one was amusing for others but less so for me. I had inherited the code (which was ASP) from a developer who had himself inherited it. The first programmer had created some very hard to understand code. The second developer had added a comment as follows (names hidden to protect the not-so-innocent):

'This code was written by **************.
'I haven't a clue what it does. He hasn't a clue what it does.
'Nobody else has a clue what it does or how it does it.
'It is something to do with data but **** knows what.
'The ******* still works so please do not change this code,
'even though it is a complete pile of ****.

So why didn't I find it amusing? Well, it was ASP code for a customer's intranet.

...and it was the customer who highlighted the comment to me.


[+4] [2008-10-10 01:56:19] Chris Noe
// set break point here - you'll never reach it

[+4] [2008-10-12 21:29:12] Nat
' Oh man I'm pissed. I think I better go home.

where pissed = drunk

[+4] [2008-10-13 05:29:08] community_owned
//Not a bug, parameter position can change..., if you think this is wrong, you are in fact wrong.

[+4] [2008-10-08 21:51:05] Darryl Hein
// but the "real" solution is much more complicated

from jpgraph

[+4] [2008-10-08 22:25:58] Federico Ramponi
/* logic */
#ifndef TRUE
# define TRUE 1
#endif /* TRUE */
#ifndef FALSE
# define FALSE 0
#endif /* FALSE */
#define EOF_OK TRUE

and the rest of the glorious mkentry.c [1] at the IOCCC [2] page. I can't keep laughing every time I read through this source.


[+3] [2008-10-08 21:52:15] Darryl Hein
// this is really complicated

with no other comments

[+3] [2008-10-08 21:31:24] community_owned
If you have reached this part in the code, then this program sucks.

[+3] [2008-10-08 21:16:35] catfood

It's not strictly speaking a comment, but...

It was the mid-1990s and I was working on a big migration: small software vendor, big client, lots of pressure. We had a lot of shifting-goalpost stuff; the project was very hard to control. I was the key developer, but new to the system, and the other developer was the vendor's owner/founder.

After a few months of not quite making deadlines and not quite satisfying the client, the owner/founder brought on another developer, who was working remotely. (I'm gonna go out on a limb and say the new developer had lesser skills and experience than me.)

Well, the new guy made some changes in code that I'd already worked on, and then a month or two later I was back in the same area of the code, and there were variables I hadn't seen before. With names like StupidMark.

Dude, that's just not right. I mean, there's teamwork considerations, but also: in this environment, variable names can show up in runtime error messages. I'm just saying.

In my opinion at the time, the new guy's code wasn't getting us much closer to a deliverable product anyway, which made the insult sting a little more.

[+3] [2008-10-12 07:29:27] Rick

Found in the main trigger code for transactions in an OLTP database:

-- This line negates the @inverseqty, which is the
-- negative of the @insertedquantity.  This works through the
-- magic of the trigger.  In fact, this code is a lot like
-- the bermuda triangle!
@negquantity = -1 * @inverseqty

[+3] [2008-12-22 12:54:13] pi.
# let's pretend we are free, for a while

Found this one in front of a class. What followed was a (naive) try to implement an ORM. I still don't understand why he wrote that.

[+3] [2009-03-05 18:06:52] David

For a memcache wrapper/handler interface pattern class I wrote, I had the following method implemented.

*  Do not use, ever - left in place for testing purposes
function  I_David_WillHuntYouDownAndHurtYou_Badly_IfIFindThisUsedAnyWhereInTheAppLibrary(){

This was basically a super nuke function to tell all the indvidual memcache services to completely flush themselves, and start over with the individual name space counters I used for keys ( ex .{_counter_key value}_.{_counter_key value} )

Another minor novella I wrote was for an automated downloader for a data vendor, detailing how much I hated this vendor and went to great lengths of postulating that their infrastructure's batch system was run by a gerbil, running on a wheel and after so many revolutions of the wheel the next queued task would be started. It was written over the course of 6 months of adding additional exception handling, estoric checks like ( if we got 768 Bytes of \s characters, that means the query to their DB timed out and the spaces are the result of empty failure print statements.

[+3] [2009-03-05 17:41:16] community_owned

For one project we had pwlib as a dependency, and at that time it's FreeBSD port was somewhat screwed so I had to build it manually from source. It didn't work out right away, and I had to look into the code; there was some complicated class hierarchy with parts of code generated by macros and its parent calss declaration started with

// The root of all evil ... umm classes

[+3] [2009-03-05 14:34:44] S.Lott

Something I saw in a .h file years ago.

// It may be a hack, but it works.

[+3] [2009-03-05 14:36:22] S.Lott

Something I saw in a COBOL program that paralyzed me with fear

* All comments pertain to the lines which follow.

What does this mean?

  1. Someone was so uncomfortable with commenting that they had to write a meta-comment?

  2. Someone was in the habit of putting comments below the relevant code and had been told to put comments above? How did that happen?

[+3] [2009-03-18 11:16:24] Jeeva S
//If the Current Record is Getting End Dated, We should not create New History Entry. 
//We Just need to Update the Previous History Entry
//If the History is already End Dated and the New Record is now removing End Date, Then 
//We should not update the Previous History End Date. 
//We Just need to Create the New History Record Only.
//Enough Comments. Code it. :-)

[+3] [2009-03-18 11:34:25] Tony
#define SHIT_HAPPENED (BASE + 1)   /* generic shit happened */

[+3] [2008-12-08 01:40:37] vdhant

I just found this one in a custom Linq provider for .net:

//select is a royal pain in the ass where 
//the parameter passed to CreateQuery isn't actually the one that goes in the call
//requiring this workaround.  Not sure how straight Linq to Objects does it.

And this one

//expressions have to be compiled in order to work with the method call on 
//straight Enumerable somehow, LINQ to objects itself magically does this.  
//Reflector shows a mess, so I (Aaron) invented my own way.  God love unit tests!

And i just found this one as well... it just gets better

  //ok, this is a hairy, dirty, and nasty piece of code
  //the alternatives are substantially worse than this though
  //i.e. when you do your own provider, LINQ assumes that
  //you are going to implement your own expression tree visitor and
  //do it all yourself.  Frankly, I still have xmas shopping to do
  //and I really don't want us to be foobared when we get
  //even more extension methods added to LINQ
  //therefore, we are pulling execute based on taking the calling the 
  //standard execute on enumerable, but using our own class
  //optimization can occur from here on an as needed basis, that is
  //check for the value of mex.Method.Name, and write a handler for
  //that method
  //also, it may not be a bad idea to rather than do this reflection 
  //each and every time somehow cache the reflected methodinfos and do 
  //lookups that way that said, we need a complete red/green/refactor 
  //cycle here before I am touching that one

And this one

//Compile that mutherf-ker, invoke it, and get the resulting hash

[+3] [2008-12-02 16:14:34] CLaRGe
// good luck!

I actually used '//GLMF' one time. My apologies if that code ever saw the light of day again. - unclerojelio
[+3] [2008-12-19 16:01:17] Richard Ev

This was the only comment we found in a smartcard product that a previous employer bought in. A load of embedded C and assembler written by a bunch of Dutch cryptography PhDs

// echt halmaal gek - no way!

(It means something like "really completely stupid"...which didn't help us either)

If this was the real comment they were Dutch cryptography PhDs that could not spell. "Echt helemaal gek". - Jeroen van Bergen
Maybe my recollection of the spelling was wrong...this was circa 1998 - Richard Ev
[+3] [2008-10-21 14:56:55] George Mauer

first line of a javascript function:

// this part is more difficult


[+3] [2008-10-26 11:17:12] alex

Some years ago I was working in a large code base that had no unit-testing to speak of.

There was a method buried deep within the code that performed some calendar calculations. It was somewhat broken, had to deal with daylight savings in a very clumsy way due to some unfortunate circumstances.

We had to fix it a couple of times, and every time, we would find something broken some months after.

After spending a whole day fixing it and analyzing it, I put the code in source control, along with a comment that said something like this:

// this code was written after a version trying to do {this} failed because of {reason},
// previously we were doing {this} which failed because of {reason}. This is 
// now written {this} way so that {lots of reasons here}. If you want to touch
// this code, please make sure that it produces the right answers when tested with:
// {some sort of unit test}

Ultimately, my team was outsourced. Some days I wonder what happened to this code :)

[+3] [2009-04-23 04:25:57] David

Our team, just tonight, released a new version of a CSS file that removed the comments from a file which was structured like this:

@charset "UTF-8";
/* Who knew comments here could COMPLETELY ruin our page in Safari? */
body {
        /* Really important stuff here */
        /* Of course, comment or not, this will all get ignored by Safari because 
           its the first rule after the comments which break everything.
           see for the exact details!

The funny thing is on the web you'll find people's solutions are to just enter in a bogus element as the first rule below the charset statement to get ignored and proceed as normal...

Food for thought: Where does one put the comment not to comment?

Sidenote: I know this shouldn't be needed due to headers, meta rules etc. Unfortunately we need it as a catch all :(

[+3] [2009-04-20 15:13:41] community_owned
* After 36 hours, 2 holes in my wall and writing my code right beside the API
* this still doesn't work.
* function getMap():void takes in an event object @param: evt:mouseEvent
* I will now retire for the day with a bottle of rum and 2 hours of crying

[+3] [2009-04-20 15:16:41] arke

From an absolutely lovely project I worked on up until recently (yes, I admit, some of those are mine, but I won't tell you which):

    char fuck[256];
    sprintf(fuck, "GetBuffer() fucking fucked the fuck: %d", hr);
    MessageBoxA(0, fuck, fuck, MB_OK | MB_ICONERROR);

// This is for Chris, since he gets all hot and horny over "uint" instead of "unsigned int"
// ... or maybe he's just a lazy fuck. Who knows!?
using Ogre::uint; 
// movable texts, fucktory
MovableObjectTextFactory* m_pMovableObjectTextFactory;

// diarrhea... shitting CR from the string. complete run...

What he meant was that he's splitting the string by carriage returns to render separately.

// unlock shit (duh, this comment is useless)

// :HACK: remove me after demo is shipped
Of course, it's still in there ;)

// it's 4am and I can't think of a decent error message.
// my lead just fell asleep at his desk, so I can't ask him.
// [name] went home because he didn't want to get divorced.
// and so it's little ol' me, sitting here, comin up with an
// error message for something that should never ever happen.
ASSERT0(in_len == max_in, ""); 

// you want hungarian, you GET hungarian!
for(int fcknglpidxcntvrI = 0; fcknglpidxcntvrI &lt; len; fcknglpidxcntvrI++)

bool bKillSomethingAlive = false; // beating the dead horse instead

Of course, we also have a nice collection of interesting ways to say "Hack":

// AR; yeah I know it's HACKsoup
// HACKku. sepukku. harakiri. kamikaze. ninja.
// HACKsaw

(1) -1 grown past profanity. - balupton
[+3] [2009-04-20 16:31:10] community_owned


SetPinsFromChannels`<float`>(&pinbuf, streambuf, &inmapper, FUCK_VS6_CANT_COMPILE_TEMPLATES_WITHOUT_HANDHOLDING);

-1 not a comment - bluish
[+3] [2009-04-20 12:45:08] JJacobsson
// The freshest corpse at the back please.
m_DeadCharacters.push_back( std::make_pair(character, 0.0f) );
// Get rid of the rotting surplus
while( m_DeadCharacters.size() > 3 )

[+3] [2009-04-20 13:08:28] TJ.
//ha, you thought I was lazy didnt ya?!

[+3] [2009-04-20 10:02:27] community_owned
//If only humans could leave things be.

//Please do not edit this code, 
//if you do you wont go to jail, you wont go directly to jail, 
//you wont pass go, you wont collect 200 dollars

[+3] [2009-04-20 11:53:11] community_owned
int main(void)
/* Program starts here */

[+3] [2009-04-20 12:18:34] w4ymo

I cried when I read this one on a project I was given to maintain.

//Write Code Here

I still cringe :)

I feel your pain - inspectorG4dget
[+3] [2009-04-03 15:56:28] community_owned


 * Chaos reigns within.
 * Reflect, repent, and reboot.
 * Order shall return.

[+3] [2009-04-01 17:46:57] euphoria83
// Empty constructor to satisfy the stupid compiler
 Public ServletHandlerClass () { }

[+3] [2009-04-09 21:06:14] Lucas Jones
// haack, phil haack


/* hack, hack, hack, hack, hack hack, hack, hack
 * hackity hack, oh wonderful hacks
 * wonderful hacks, oh wonderful hack, hack, hack
 * hack hack hack... and spam 

EDIT: Just found this in some of my code (the project wishes to remain anonymous):

// yikes, we need to:
 *       o
 *      -|-     < US CROSSING PLATFORM
 *       |\ 
 *       |          ^ PLATFORM           |
 *       |                           T   |
 *       |                      TROLL^   |
// right now:
 *   o ./_  | 
 *  -|-[]\  |  (_'_) () (\) | ) \|/ (S) < WALL
 *  ***********************************************
 *        | ^PLATFORM                       |
 *      ^ SPRAY CAN (IN HAND)
public static class DefaultFonts
    public static string SansSerifPath
        get { return @"C:\Windows\Fonts\arial.ttf"; }
    public static string SerifPath
        get { return @"C:\Windows\Fonts\times.ttf"; }
    public static string MonospacePath
        get { return @"C:\Windows\Fonts\courier.ttf"; }

How I love puns.

I don't get it... - scraimer
(1) I can't remember the joke either! - Lucas Jones
[+3] [2009-04-06 11:33:15] pomarc
//marco 2007.1.23
//I didn't do it

[+3] [2009-04-19 19:53:50] Casbah
private static final Logger lager = new Logger();

beeeeeeeeeeeeeeeer :) - Andrei Rinea
Not really a comment, but worth a smile :) - johnc
[+3] [2009-04-19 22:10:44] community_owned
//FIXME: fix this before the 1.0 release

they were on version 4

[+2] [2009-04-19 22:32:47] community_owned
What do you think you're doing, Dave?

[+2] [2009-04-19 21:31:17] community_owned
   ASSERT(**true**); // if this is triggered, something really bad is happening.

[+2] [2009-04-19 19:25:50] penger
def leppard
# what, i cant have my own convention?

[+2] [2009-04-19 09:54:39] Mmarquee

Best comment I ever saw was

  There is no accounting for pointers 

[+2] [2009-04-07 14:57:00] Holli
// Keep prozac ready if things get ugly!

[+2] [2009-04-04 17:51:49] MissT

In an art asset export tool, I stumble upon a complete translator from digits (arabic) numbers to roman numbers. It looked like this:

//You can tell I was bored
//I wanted to do this for a long time
char* ConvertToRoman(int number, int base)
... whole code here

The team of the person that wrote this code had been crunching for a long time, I guess it affected their sanity.

I actually know someone who (back in the day, while at school and certainly immensely bored), implemented this exact same thing on an HP48 calculator (in RPL), so that he could use it to display roman numeral on an analog clock (in RPL too)... - Denis Troller
Wow, in C++ I found it fun, but RPL is hardcore :) - MissT
That it is. Then again, so is the guy in question. And RPL is kind of hardcore, you basically have to maintain the stack in your head while programming. Lots of fun when you get back to a program months later... - Denis Troller
[+2] [2009-03-26 23:12:03] hacken

Classics [1] from the old netscape mozilla code. Personally I like

just can't fuck around. Oh, also moving memory would doom us anyway, and it'll all just be too damn hard to figure out. So, I give up, the Mac just completely utterly sucks complete rocks

but there are a lot of other fun ones.


[+2] [2009-03-27 00:37:29] eglasius

Back in college:

//why the f*** we have to move this here to make it work

It was highlighted in a printed source when we went to review with the professor.

The reason: some really nasty bug related to a buffer overflow, that affected an unrelated variable with a file handler in other place of the code. Moving the variable would make it work again.

[+2] [2009-03-26 16:39:10] Fraser

Just found this in some Actionscript I have to update...

* spaghetty code in this module.
* hardcoded variables for load paths for the content window.
* Needs (vast) improvement.

..great :(

[+2] [2009-04-20 10:45:19] DragonFax

From the sendmail config file. After pages and pages of what looked like simply line noise. I found this gem.

# insert this handy debugging line wherever you have problems
#R$*    			$:$>99$1

[+2] [2009-04-20 05:24:56] MRFerocius
//Do not continue reading if you dont want to die.

This one almost killed me.

(2) Let me guess: you didn't stop reading, right? :D - Vilx-
[+2] [2009-04-20 07:47:08] community_owned
    FIXME:  why the fuck did anyone ever think this kind of expensive iteration
                    was a good idea?

[+2] [2009-04-20 04:36:28] community_owned is a source of good ones.

+1 for awesome! rl_rxeof() comments' were my favorites :) - scraimer
drivers are fun! - muusbolla
[+2] [2009-04-20 04:51:21] Angkor Wat
//Please comment on your source code

[+2] [2009-04-20 00:52:54] community_owned

A compilation of my greatest hits:

// Thats the end of the While loop
// Clean up last row.  I really must program better than this.

// Note: You can't immediately tell if the line below works.

// Rounding - blech.  It's assumed that all .5s are rounded up.

// Sort out predictions first.  Seems like the right place for a prediction, 'first'.

// Let's interpret!

[+2] [2009-04-20 02:05:05] community_owned

In some really crappy vb code (I know it is all crappy but) I found this a comment in an empty if control block that said something like:

If bFound Then
     'I love it when I write kick ass code like this

[+2] [2009-04-20 04:01:11] community_owned
/* Jeez, this is an ugly mess */

...comment from the X11R6 internals source code circa 1991.

[+2] [2009-04-22 10:25:41] community_owned

I once got a call from the client years after working on a big budgeting system written in Paradox 3.5 -

"We've come across a bit of commenting that came up in a debug " -

// This shouldn't happen, if it does, then the bits that automagically 
// worked when I wrote it have stopped working

... !

[+2] [2009-04-22 10:49:10] community_owned
// for 8 or 12 threads this does not affect much.
// Strange are the situations if not understood properly.
// Yoda strikes again

In a mutli-threading module! :)

Shouldn't that be "Again Yoda strikes"? (Or "Strikes again Yoda does.") - JAB
[+2] [2009-04-22 11:14:07] community_owned
// simply copied from another code

[+2] [2009-04-22 09:26:20] community_owned

I found this

// This is a kind of magic...

[+2] [2009-04-22 09:29:55] Jürgen

I often found this one

// fix it!

[+2] [2009-04-22 09:53:14] Jürgen
// TODO: Delete

[+2] [2009-04-22 15:00:31] community_owned
// if the resultMap size is less than or equal to zero
// then the product is added
if (resultMap.size() <= 0)

[+2] [2009-04-23 00:48:48] community_owned

In an early version of PeopleSoft Financials PeopleCode:

/* I don't know how you can ever get here so I'll have to fix it later */

[+2] [2009-04-23 00:33:29] CodeToGlory

//The below code needs to be commented out.

[+2] [2009-04-22 17:14:32] bosky101

[+2] [2009-04-22 12:27:47] community_owned

Found over a complex code -

//Jesus and this code have one thing in common: both were resurrected

[+2] [2009-04-23 14:01:49] Jason Orendorff

From Python/ceval.c:

/* This is gonna seem *real weird*, but if you put some other code between
   PyEval_EvalFrame() and PyEval_EvalCodeEx() you will need to adjust
   the test in the if statements in Misc/gdbinit (pystack and pystackv). */

[+2] [2009-04-23 10:48:07] community_owned
// now that's compact!

[+2] [2009-04-23 20:20:54] Jim Evans
'I hate nested regions and will delete them along with any code found in them.

(5) Suit yourself. You broke the build, not me. - tsilb
@tsilb - it was not my comment - it was my favorite comment that I have seen in code as the question asked :) - Jim Evans
[+2] [2009-04-23 23:38:13] community_owned

The below code was seen in a mock tutorial for Python.

# This is my rifle.
def rifle(type='hunting'):
    print('This is my (%s) rifle.' % type)

# This is my gun.
def gun(type='hand'):
    print('This is my (%s) gun.' % type)

# This is for fighting.
def fighting(type='illegal'):
    print('This is for (%s) fighting.' % type)

# This is for fun.
def fun(type='gaming'):
    print('This is for (%s) fun.' % type)

The author must have been a fan of Family Guy. ^_^

(13) I thought of Full Metal Jacket first :) - Michael Stum
(2) FMJ was my first thought too. Why Family Guy? - dr Hannibal Lecter
They did a spoof of it. More recent memory and all that. - canadiancreed
[+2] [2009-04-24 08:20:15] Jonathan C Dickinson

I just finished a logging framework (that uses Trace, why nothing like this exists I don't know). I made a convenience base class that inherits from TraceListener. It overrides all of the TraceListener methods and routes them into one method - so that is a lot of doc commenting:

// TODO: Need some codemonkey to doc comment this class.

[+2] [2009-04-25 04:23:46] Martin Cote
// The following array may contain either TexturedObjects or ColoredObjects.
// I know, it sucks.

[+2] [2008-10-22 06:31:23] community_owned

In SJ CA back during the early days of the auction business I worked with a guy named Rick Dorin. He wrote compilers back when you had to poke at cards all day long. One of his error messages was

Too Many Errors... Make fewer!

-1 it's not a comment - bluish
[+2] [2008-10-22 11:48:07] community_owned

at the end of a rather long and convoluted set of while loops and if blocks, the developer in question inserted this final comment:

    // wobbly wilson said this would *never* happen!!

a laconic mixture of wit and sarcasm :)

[+2] [2008-11-21 21:27:14] Jared Knipp

[+2] [2008-12-02 15:59:03] Paul Mitchell

Seen in some COBOL back in 1983:

   C   I don't know what this next bit does so I'll jump around it
       GOTO DONE.

"C"? In all COBOLs I've ever used comments starts with a * (or '/' but I don't think that's standard) in column 7. However, I am mostly a C/C++/Java guy so it is probably my experience that fails. Are you sure it wasn't Fortran? - Fredrik
[+2] [2008-12-22 08:11:35] barfoon

From Joomla! source:

// this is daggy??

[+2] [2009-03-16 10:48:41] Telemachus
// The hackiest hack that ever did hack

It's in the WordPress [1] blog engine (wp-admin/includes/user.php - if anyone actually wants to see the hacky hack itself).


[+2] [2009-03-15 12:15:00] community_owned

Back around the time the Hitchhiker's Guide game was new, I had a case where I was testing whether something was scrollable and whether the user was trying to scroll, in a language that restricted variable length. So:

if (scroll and noScroll) # or tea and no tea

[+2] [2009-03-07 09:32:53] hasen j

This is a comment of mine which I found today while refactoring some code

if( year < 100 ): year += 2000 #lol, Y2K

(4) Hmm, a Y2K1C bug in the making - johnc
JavaScript Date functions? There is a proper one that returns the year as 4 digits rather than 2 digits after 1900. - Michael Stum
+= 1900, not 2000. - avp
(1) @avp, the app was written after 2000, so 2008 was encoded as 8 - hasen j
[+2] [2009-02-23 13:38:32] community_owned
// barcore.cpp - MFC

HBRUSH CControlBar::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    LRESULT lResult;
    if (pWnd->SendChildNotifyLastMsg(&lResult))
        return (HBRUSH)lResult;     // eat it


// Eat it - just like eat this.

[+2] [2009-03-05 09:02:23] Slava Tysenchuk
// Iced odnako
bool Iced{get;set;}

[+2] [2009-03-05 18:57:16] Gambrinus
catch(Exception ex)
//if this happens the world is going to end...

now guess what happened...

The world ended? - Chris Peterson
correct ... well - or someone got confused formulating some if(!x && b || !y && x || y) statement ;) - Gambrinus
[+2] [2009-01-27 02:39:14] unforgiven3

I just checked this in the other day...

/// Pay attention to this or I will hunt you down.
/// ...

Where ("..." == "proprietary stuff that I can't post"). I just liked my STERNLY-WORDED-WARNING element.

[+2] [2009-02-02 12:06:14] Oskar Duveborn
-- Beyond this point, there'll be dragons

I find it more pleasingly illustrative with the longer saying ^^

(5) here be dragons is better - hasen j
there'll be dragons? - johnc
@johnc yes that makes a lot more sense ^^ - Oskar Duveborn
[+2] [2009-02-05 11:59:08] Lukas Šalkauskas

Once I found this:

// I wish (boss name) could do this by him self.

[+2] [2008-10-14 04:47:55] Pat
// No women, no children... What movie???

Léon - Gary Willoughby
The movie "Pork Chip Hill" also fits. - Joshua
[+2] [2008-10-10 11:12:38] community_owned
/*************************** Drag And Drop Section - Start (you should be me to mess with this section)*********************************************/

[+2] [2008-10-10 00:50:27] andy

The ascii-art skull and crossbones (which is too difficult to recreate here) in Gosling's Emacs [1] source (warning that the ultra-hot screen management package he wrote was not easily understood).


[+2] [2008-10-09 16:22:53] community_owned

Comment in our Enterprise Class system used for Government purposes

'RH 5/24/06 burn me if this dosn't work.. :)

Good ole Prez/Lead Developer

[+2] [2008-10-08 20:09:58] Walter Mitty
Get This hack!

On a line of assembler code, after pages of uncommented code.

[+1] [2008-10-08 22:41:36] Michael Easter

here are 4, in no order:

// Father, forgive me, for I am sinning

// heaven help me

// horse string-length into correctitude 
(from a textbook)

// what, me worry?

[+1] [2008-10-10 11:13:41] community_owned
if(count<0) count=0;    //don't get me wrong but this has to be done :p

[+1] [2008-10-10 12:35:47] Powerlord
try {
catch (SQLException ex) {
  // Do nothing, since we're going to trash this anyway

Of course, this sort of thing is actually a wtf in JDBC (or at least Oracle's JDBC driver) as it can throw SQLExceptions when closing a connection...

[+1] [2008-10-10 15:55:26] hmcclungiii

Nice one in VB.NET that I ran into this morning, got a chuckle ...

''' <summary>
''' Represents an exception that was logged.  Since System.Exception implements IDictionary, it can't be
''' serialized, so I had to write this.  Pretty fucking stupid thing to have to do, System.Exception should
''' be serializable right out of the box, IMHO.
''' </summary>
''' <remarks></remarks>
Public Class LogException

I have something in my code that does the same thing - I wonder how many comments like this are out there. - Rob Z
(1) WTF System.Exception IS serializable.. - Andrei Rinea
[+1] [2008-10-10 16:29:25] Kasper

i just noticed myself writing this

// not brilliant solution, but fair enough heh.

[+1] [2008-10-13 14:59:48] Dan


//Forward declarations:

class X {}; // TODO: Remove {}  ! When we get X defined....

[+1] [2008-10-13 06:54:03] noocyte
// Jay knows what's going on here, but will he remember in a year? Not very likely, this code sucks, but it works so do not change it.

This comment was posted above a huge while-if-for block... Oh, and it manipulated an object array of object arrays of object arrays of strings that could be strings or numbers, depending on at least 3 factors... (yes, I had to debug this code and change it and I wrote the comment, however I did not write the original code). ;)

[+1] [2008-10-12 12:30:02] Rob Wells

I inherited a project that haad been delivered to the customer without any UAT. It was dropkicked over the fence and the money requested.

First time they used it, it naturally blew up. It was an interposing library that overrode any system calls that took a file name as a parameter rather than a file descriptor.

Many system calls had been forgotten.

When I got onboard the code was laced with such gems as:

/* core dumps around here but this is hardly ever called */


/* don't know why this works but it seeems to be ok */

Oh, and there were no unit tests. A colleague had started to add the missing system calls and unit tests.

And the bastards who'd written the code were still in the team and didn't care at all about the garbage that had been delivered!

[+1] [2009-02-13 01:15:41] JohnFx

Had a programmer working for me once that put "Style" comments throughout his code where he codified his internal debates about the particular implementation details and to take parting shots when he was overruled on a particular coding decision.


'STYLE 'It's arguable which is better, but I pass the image handle rather than simply 'passing the scaling values in order to keep the calling code simpler (by a 'couple of declarations statements). Alternatively, I could pass these data 'members directly from the calling code, but that would violate encapsulation.

'STYLE 'As I have done elsewhere, I will register my offical protest (just give me the 'forms to fill out) regarding the implementation of annotation serialization as 'a property rather than a pair of Load/Save methods. Again, this is probably a 'matter of style and eminently debatable.

I think I worked with that guy! :) - Sam Schutte
[+1] [2009-02-03 19:35:49] Andreas
// StupidCompilerDontInline(SCDI), in the test project where
// allcode was in a single cpp the compiler had inlined nearly
// everything which lead to nice stackoverflow.
// To prevent this the metods are made virtual
#define SCDI virtual

[+1] [2009-02-05 10:51:05] User

Found this recently in our code (we develop enterprise software):

// Instance of excel
Excel excel = this.CreateExcelInstance();
excel.Open(stream); // how to close it?!

Until that I was sure we're free of this "fun stuff" and we're doing it the right and ideologically correct way...

[+1] [2009-01-30 16:35:16] Sam Schutte

I once implemented some document workflow using MS SQL Server Developer 2000 (the human workflow stuff).

It consisted of a bunch of triggers that would be added to the database to make it follow workflow rules.

In one of the triggers, someone at Microsoft had written something along the lines of:

//Determine if the database has been "Grizzlified"

(The internal name of the product was "Grizzly", so I thought that was funny).

[+1] [2009-02-14 19:29:59] James Jones
'this next if statement - just how it is. don't try to understand it because you won't. :)

That's job security right there.

[+1] [2009-03-18 11:38:32] Esko Luontola

In eMule, Preferences.cpp, in the method that forces a minimum upload speed limit proportional to your download speed limit:

uint16 CPreferences::GetMaxDownload(){
//dont be a Lam3r :)
    uint16 maxup=(GetMaxUpload()==UNLIMITED)?GetMaxGraphUploadRate():GetMaxUpload();
    if( maxup < 4 )
    	return (( (maxup < 10) && (maxup*3 < prefs->maxdownload) )? maxup*3 : prefs->maxdownload);
    return (( (maxup < 10) && (maxup*4 < prefs->maxdownload) )? maxup*4 : prefs->maxdownload);

[+1] [2008-12-22 08:06:48] barfoon

From Joomla! source:

// fudge the group stuff

[+1] [2008-12-30 12:51:05] Nighthawk

Dennis M Ritchie has a page about some of the ancient UNIX comments here [1]


[+1] [2008-12-19 16:48:24] Nicolas

// Description : !!! TODO

[+1] [2008-12-19 16:55:52] Michael Bobick

In Latin, Abandon hope all ye who enter here from Dante's "Divine Comedy".

(6) Why Latin? the original is Italian... "...Abbandonate ogni speranza, voi ch'entrate." - Adriano Varoli Piazza
-1 it's a duplicate - bluish
[+1] [2008-12-18 19:30:20] John Channing
/* Hammer Time! */

I have no idea why or whether he was wearing ripstop nylon parachute pants while writing the code

[+1] [2008-12-18 23:00:30] community_owned

Sometime in the early 1980's we were writing financial modeling code for utilities in PL/I. Got a call from a client with code blowing up right after a comment

/* Honest this works */

The guy had taken our standard set of financial equations and done about 15 pages of algebra to combine a bunch of code into one equation. After Three Mile Island when utilities had to write off their nuclear plants at huge costs the equation failed because of a FIXED BIN 15 (integer) overflow that would not have happened if the algebra hadn't happened.

(4) The compiler didn't believe him - Ikke
+ 1 Ikke comment :) - johnc
[+1] [2008-12-10 00:08:03] Jim McKeeth

Near the top of a unit:

// Oh what a tangled web we weave
// When first we practice to deceive

[+1] [2008-10-27 16:26:32] Gordon Mackie JoanMiro

A large project I worked on used StyleCop and FXCop in the automated build with rules to prevent people checking in code with uncommented fields, methods, properties etc., etc.

Someone got so pissed off with having to add comments like "Gets or sets the full name." to self-documenting properties like FullName, that they went to the effort of writing a macro to get around the rules.

The macro inserted XML summary tags for methods, properties etc. with a single non-displaying Unicode character as the tag content which would fool the build rules whilst simultaneously striking his minor blow against mindless insistence on commenting stuff for the sake of it... least until they introduced another rule to check for Unicode characters in comments.

[+1] [2008-10-27 15:24:21] Joshi Spawnbrood

I've just placed this comment:

// this control (Resistance) is FUTILE! 

[+1] [2008-10-19 07:08:10] community_owned
Fix problem where Nulls don't work properly.  Stupid Microsoft!

Code converted Nulls to zero-length strings line by line in roundabout way because the stupid programmer did not understand what Nulls are and had never heard of the Nz() function.

[+1] [2008-10-19 20:48:25] Gabriël
// GK Experimental

(GK being the initials of the coder)

Used to indicate parts of code which are, indeed, kind of experimental. :)

A great flag to know that when you hit it during debugging you're probably busy for the upcoming few hours fixing the hack.. ;)

[+1] [2009-04-27 19:14:58] corymathews
TextBox1.Text = TextBox1.Text; //Point less yes, who writes this crap?

It isn't necessarily pointless, by the way, but if it isn't, well, crap wouldn't be strong enough a term. (I've written code like that.) - reinierpost
(2) If not breakpointless then not pointless. - Windows programmer
I guess somebody wanted to invoke TextChanged - Turowicz
[+1] [2009-04-28 08:04:01] community_owned

When coding MAPPER Apps we had some standards and one of these was that there was a list of standard variables in use throughout the suite. One of these - 'V43' was always used to hold a Surname. So imagine my annoyance when the only comment in a big cryptic chunk of MAPPER code I'd been asked to fix was:

Here V43 contains the Surname

[+1] [2009-04-25 02:23:20] community_owned

Technically not a comment, but from coding on something at 2 am or so:

consent = False

... that variable is never used again EVER and appears in the beginning of a listen loop for a socket.

Only 2 of 72? Meh, must not been THAT bad of a bug. - Neil N
[+1] [2009-04-23 12:11:11] Florjon
[vrk:Cloud ID="cTags" runat="server" DataTextField="Tag" DataWeightField="Total"
    Width="100%" DataHrefField="Tag" DataHrefFormatString="~/tags.aspx?tag={0}"]

[!--if anybody would like to change the control's color contact with FLORJON--]

[+1] [2009-04-23 19:21:14] SomeMiscGuy

I really almost like the oh_my_gawd tag better than the comment...

     * IOC3 is fucked fucked beyond believe ...  Don't even give the
     * generic PCI code a chance to look at it for real ...
    if (cf == (PCI_VENDOR_ID_SGI | (PCI_DEVICE_ID_SGI_IOC3 b_type0_cfg_dev[slot].f[fn].c[where ^ (4 - size)];

    if (size == 1)
    	res = get_dbe(*value, (u8 *) addr);
    else if (size == 2)
    	res = get_dbe(*value, (u16 *) addr);
    	res = get_dbe(*value, (u32 *) addr);



     * IOC3 is fucked fucked beyond believe ...  Don't even give the
     * generic PCI code a chance to look at the wrong register.
    if ((where >= 0x14 && where = 0x48)) {
    	*value = 0;

[+1] [2009-04-22 13:39:33] community_owned
// Holy moses! I've never seen anything so ridiculous in all my life. 

// Why do we need to query the AlarmIDs table twice.

// Please tell me sir; I would really like to know. 

// This like all the other services have been mangled

// to the point where they are nearly impossible to determine what kind of side affects might occur.

// I am making the smallest changes I can to this code. 

// The GetAlarmId method gets the alarm id from the AlarmIDs table.

// Novel idea, why didn't we query for the values be get below all in the same place.

// This should be changed, but right now it will have to remain as is due to time constraints.

// This like all other services really don't do anything fantastically hard, but after the original coders got

// done with them; they are difficult to work with and have an acceptable comfort level.

[+1] [2009-04-22 12:24:33] Ivo
'Major changes: Everthing! - Removed all Cornoud's code !

[+1] [2009-04-21 12:53:17] community_owned
 * Hexadecimal digit
protected $version = -1;

[+1] [2009-04-22 18:44:46] community_owned

First at the beginning of an Update to a huge object:

/*General note to all who tread in the <ObjectName>() code...
 * The SetOriginals() method from the BaseEntity class should be called (and only called) right after the Get() method
 * call as seen above.  Calling the SetOriginals method elsewhere will result in bugs and all kinds of other nasty suprises.

Then after some 200 lines of logic to update the object:

//Attempt to explain this confusing mess of code:
//First time you save an actual absence this is what happens:
//0. The first save saves to the <TableName> table (among other things). (Fig. A)
//1. The <CalculationMethod> method is called next which inserts to the <OtherTableName> table. 
//(This is the table that keeps track of credits to the case.) (Fig. B)
//2. So then you have to call <UpdateCalculations> to move the <TableName> records to the <ThirdTableName> table. (Fig. C)
//3. Then you go back and run calculations since you have the debits table (<ThirdTableName>) populated. (Fig D.)
//4. Then a final save to save the calculations back to the case. (Fig. E)
//Yeah, I know what you're thinking:  this sucks. 10/01/07 XXX

And the developer was right... This sucked HARD!

[+1] [2009-04-23 02:15:04] community_owned
//Maybe you should make anyone knows your code's purpose. 

[+1] [2009-04-21 09:42:56] community_owned
//this is a crap way to do this but I ran out of patience; 

[+1] [2009-04-21 10:09:57] community_owned
DataRow[] foundrows = FilterCalendarEntriesBecauseDotNETIsFuckedUp(tbtemp,CalDate);

Not a comment but an interesting function name

[+1] [2009-04-21 08:46:03] community_owned
// repopulate, slight hax (or strong assumptions :P) below

[+1] [2009-04-20 20:13:54] ben


/* Yow!  DEMONS are flying through my NOSE! */

[+1] [2009-04-20 04:31:50] sandro
private int mousycounter = 0; //Not really a counter

[+1] [2009-04-20 04:44:40] Tony Arnold

Found in an old perl script that generates HTML:

# I would be _very_ brain farting if I said this code didn't need reviewing.
# It will make babies cry, and hair grow on your back, so please don't use it

[+1] [2009-04-20 04:49:37] Draxillion

From /System/Library/Frameworks/AppKit.framework/Versions/C/Headers/NSTextView.h:

- (void)smartInsertForString:(NSString *)pasteString replacingRange:(NSRange)charRangeToReplace beforeString:(NSString **)beforeString afterString:(NSString **)afterString;
- (NSString *)smartInsertBeforeStringForString:(NSString *)pasteString replacingRange:(NSRange)charRangeToReplace;
- (NSString *)smartInsertAfterStringForString:(NSString *)pasteString replacingRange:(NSRange)charRangeToReplace;

/* Java note: The second and third methods are the primitives and are the 
methods exposed in Java.  The first method calls the other two.  All 
Objective-C code calls the first method.  In either Objective-C or Java any 
overriding should be done for the second and third methods, not the first 
method.  This will all work out correctly with the exception of existing code 
that overrides the first method.  Existing subclasses that do this will not 
have their implementations available to Java developers. Isn't Java wonderful? */

[+1] [2009-03-29 13:16:23] Amr ElGarhy
// Sorry dirty code

[+1] [2009-04-03 13:20:15] AaronLS

We have a file and half way down it a programmer trying to make sense of the mess managed to move all the nonsense code to the bottom, and left a comment of something like:

I have no idea what this stuff does below here.

Another programmer left a series of nested namespaces that acted like a which-way-book, so that you could drill into the namespaces in the idea and choose your actions.

[+1] [2009-04-09 21:49:04] Will Charczuk
map(TimeZoneId.Romance, "Romance Standard Time"); //LULZ.

[+1] [2009-04-09 21:54:34] community_owned
// This interface defines method signatures<br>
interface IWhatever { ... }

[+1] [2009-04-06 15:15:44] Brian Postow

When I'm commenting out chunks of code that I THINK are no longer useful, but I might be wrong about (hence not deleting them) I will sometimes preface them with

// Wilted celery?

The idea being that this is like celery that is wilted, but you put it back in the fridge anyway. I just know that 10 years from now someone else will find these comments and say WTF?

[+1] [2009-04-06 10:29:47] Elroy
    //error situation

[+1] [2009-04-06 11:04:47] Elroy
#pragma region Crap that is kept for temporary reasons

    //	Huge chunk of commented code

#pragma endregion

[+1] [2009-04-15 05:12:37] community_owned

Here's a few that I've put in my code at various times. Some aren't technically comments, but they're the same sort of concept.

In a cross-platform project that needs some special code on one platform only:

//If defined, will include all the Windows-specific code.
#define LOSE

#ifdef LOSE
#include <windows.h> //WIN32. Duh.


//Stolen from other_project_name.cpp


 * These comments have been lifted from propagate() and, though they no longer apply to the code, they may still be of value somewhere. Original tabbing and structural elements have been preserved.
    //CAUTION: This has a major Bobby Tables risk. Even if a rulebuilder is used, there's still the risk of something getting corrupted in the database itself.
    //Reading text from anywhere and simply slotting it into an SQL statement is a major security risk. (With thanks to xkcd for the name "Bobby Tables".)
    //Requirement: Eliminate one Bobby Tables by changing [redacted] to be not just straight SQL.
[lots more comments that are not as funny]
 * End of lifted comments. There should not be any executable code between these markers.


        Okay. It's unrecognized. Why is this a fatal error? It's actually very closely akin to the miswart of botched #includes being a fatal. When writing a C/C++
        program, you need your headers, and if you don't have one, chances are there'll be a million cascaded errors; so by making "unable to open asdf.h" a fatal,
        the compiler suppresses all those errors about undefined symbols and potentially misspelled type names.


    //If someone tries to import 'id' as a field name, it won't work. (We already have our own id.) But I think the probability is so low that I can afford to be funny.
    if (!stricmp(ptr,"id")) {warn(0,"Import","","'id' is a reserved word and cannot be used as a column name. (Try 'ego' or 'superego'.)"); return;}


//Need a place to squirrel away SQL statements somewhere
char *uts[1024]; //Unified Temporary Storage. (Why? Because I said so.)
int nuts=0; //What is it that squirrels keep? Ha!
int utsid[sizeof uts/sizeof *uts];


         * NOTE: This sets tilde.action. If a *
         * tilde header does not exist in the *
         * import file (not the _content_, if *
         * the entire column isn't there), it *
         * will duplicate down through all of *
         * the rows. This is fine for ~id, as *
         * that will never be changed; and if *
         * ~Quantity is blank, that throws an *
         * error in 'Add'. With ~Action, I am *
         * not so certain. I THINK it'd be OK *
         * to dup-down most of the time... if *
         * the user only ever imports Adds or *
         * Revises, but never both at once in *
         * a single import. So for safety, to *
         * allow a blank ~Action to revise OR *
         * add, I'm breaking the check out to *
         * a new variable - the curaction. In *
         * most cases, it won't be needed, so *
         * it's a waste; but it isn't like it *
         * has to copy the entire tilde.*, so *
         * it's only a small waste. So it can *
         * waste a register... big deal. OK ! *


            //if (!response) // we're going to crash
            //if (!items) // we're going to crash
            //TODO: Don't crash


A lot of my comments contain obscure references to films or musicals, but they won't be nearly as funny if you don't know the show.

[+1] [2009-04-15 19:52:03] Bob Cross
/* Look not upon this file lest your eyes be burnt from your head. */

What can I say? I was an intern and the summer was almost over. I was, shall we say, lacking in serious commitment to my documentation responsibilities.

[+1] [2009-04-19 19:30:47] community_owned

From the Linux Kernel source:


 * subtle. orig_eax is used by the signal code to distinct between
 * system calls and interrupted 'random user-space'. Thus we have
 * to put a negative value into orig_eax here. (the problem is that
 * both system calls and IRQs want to have small integer numbers in
 * orig_eax, and the syscall code has won the optimization conflict ;)
 * Subtle as a pigs ear.  VY

[+1] [2009-04-19 19:52:21] community_owned
double t = 0.0; /* that's generally my opinion of the diner, too. */

[+1] [2009-04-19 19:07:13] leed25d

I do not have a copy of the source but I have always remembered it:

// If you cannot figure it out, you should not be reading this

[+1] [2009-04-19 12:57:12] community_owned
On error resume next 'because nothing will ever go wrong!

[+1] [2009-04-19 21:08:30] community_owned
$dnstime = time() + 60 * 60 * 24 * 7 * 2; //how long are you staying for vacation on mars? twooo weeeeeks. give dees people air

[0] [2009-04-19 20:27:44] community_owned
* Wirzenius wrote this portably, Torvalds fucked it up :-)

[0] [2009-04-16 15:12:55] madcolor

I just found this in some legacy code..


[0] [2009-04-19 10:45:54] Stewart Robinson
  <!--- Gobble --->

It's all over my companies code base. It's ColdFusion and it simply ignores errors.

[0] [2009-04-09 20:56:51] thinkhard
// now swap like a <explicative removed>

[0] [2009-04-06 09:58:03] Paul Suart
// Hack-er-ama

[0] [2009-03-24 06:57:43] scurial

Mine fave was a variable name inside some of the business logic of a school project written in java.

int StupidJava = -1;

(2) -1 this is not a comment - bluish
[0] [2009-04-20 19:39:26] Daniel Dickison

Well-written Lisp is one of the easiest to read languages and I love it. But poorly written Lisp can be a nightmare so much worse than bad Java, etc.

Here, we need to create a "group file" if there exist 3 variants of an original file named with the suffixes a, b and c. I had been trying to track down a strange bug where we were getting unnecessary group files...

  (let ((varianta (format nil "~aa" problem))
        (variantb (format nil "~ab" problem))
        (variantc (format nil "~ac" problem)))
    ;;if the A and B variants exist, create a group file
    ;;(why not just check for a? I don't know, this just feels right)
    (when (and (probe-file varianta)
               (probe-file variantb))

Bug: 1, Gut: 0.

Apparently it didn't occur to whoever wrote this that perhaps checking for all three variants would be a good idea. Of course, that was the bug I ended up tracking down a decade after this code was originally written (it predates the first SVN log).

[0] [2009-04-21 02:06:02] HeretoLearn

Some old fortran code I saw:

     integer *4 one,two,three;

c    asssign one to 100 before entering the loop

[0] [2009-04-22 19:49:19] community_owned

I was doing a database in Access, very simple thing - at least it was supposed to be at the start or I would have done it in Delphi. The client wanted to be able to get the customer info out of the database but they would not enter enough information to reliably identify the customer. I told them to use the phone number as the key as each customer (the way they worked, not for everyone) would have a different number. After a few frantic calls from them, (It's not working we can't enter the customer) I discovered that they were too lazy to look up the phone numbers from their old system and were trying to enter all the numbers they did not know as "n/a". In trying to sort this out for them I ended up with a lot of checking loops in the code and had the comment beside one outcome "This should never be reached if they do what they are supposed to do!!!!!!!!!"

They also asked me once "How can we find the right customer even if we put in the wrong address?" And all for peanuts.

[0] [2009-04-22 21:30:13] community_owned

Looking back at old code from classes is fun...

    cardDeck.push_back(*(new card((rank)r, (suit)s)));  // Push each card onto the deck
                                                        // Temp. objects are overrated

While going through some things, it makes me wish I left more comments at 4 AM when I was hacking together random code...

[0] [2009-04-22 15:27:15] community_owned

Re eating one's own dogfood: We have the same term in our workplace (granted, only because I introduced it). My code is peppered with comments that say "TODO" and indicate something that ought to be done eventually, but a comment saying "DOGFOOD" (both keywords are always at the beginning of the comment, in all caps) means something that must be done before this program can be used even internally. It's a handy thing to search for, as the word "dogfood" is never going to appear in a quoted string - if it does, I can always just say "dog-food" or something - so even a case-insensitive search will come up with the right results.

Regarding zeroing the accumulator: I've done exactly the same thing when programming an Intel 80x86 (I started on the 8086 and moved up from there into the modern Pentiums). XORing a register with itself is the quickest and tightest way to clear it. Using "MOV AX,0" requires three bytes (opcode and two bytes of literal 16-bit zero), whereas "XOR AX,AX" is only two; it's even more noticeable with the 386-and-higher extended registers, where "MOV EAX,0" requires five bytes (four bytes of 32-bit zero). My C/C++ compiler always zeroes registers this way, so I'd assume it's still the best way (although I haven't studied opcode timing tables in ages, and probably both XOR reg,reg and MOV reg,imm take one clock).

MOV reg,imm takes more bytes and increases the chances of needing to read in two pages from the swapfile instead of just one. - Windows programmer
From the 4 methods on X86, XOR EAX,EAX is best:… (Page 71). - Turbo J
[0] [2008-12-20 18:03:45] Andy Webb
REM Don't delete this print statement ****** will die

The process in question was a service in some legacy code

[0] [2009-03-05 18:16:25] shampoopy
// Oh crap, i think i'm gonna yack

followed shortly thereafter by:

// TODO: end this lunacy

[0] [2009-02-02 12:10:25] devdimi
// long live COM'n'Roll
public enum StatusCode
        //success codes
        S_OK                                            = 1,
        S_NONE                                          = 2,
        S_SQL_OPERATIONS_LISTS_EMPTY                    = 3,

        //error codes
        E_NO_MATCHING_END_FOUND                         = -1,
        E_SEQUENCE_NUMBER_NOT_FOUND_AT_END              = -3,
        E_IDS_DO_NOT_MATCH                              = -6

[0] [2008-10-11 13:23:21] John Nilsson
[onload_1;block=begin;when 1=0]

Some of the techinques in this template are rather obscure, just trust me, they need to be there.
OTOH a better sollution would be to create a few seperate templates and pick one in the php-script...


[0] [2008-10-14 06:13:09] Hemal Pandya

This is from an old IOCCC winning entry, I had to download the whole archive of winners -- a humongous 1.4 M -- and grep for several phrases I remembered wrong before finding it.

Syntactically this is probably not a comment. Or may be it is. I haven't figured it out. It definitely does not have comment delimiters, but it doesn't have String delimiters either.

C="Lint says "argument Manual isn't used."  What's that

No prices for guessing the output from lint.

And for the curious, that entry is here [1].


too bad it doesn't compile :( - coppro
(1) @coppro, it does compile when you compile the whole thing. Maybe your compiler is broke. - Joshua
This program shouldn't compile on any standard C compiler. The preprocessor doesn't work that way. In fact I can't see what rules the preprocessor this was written for could possibly have been following. In other words this program is even more obfuscated now than when it was written. - Jason Orendorff
@coppro @Jason IOCCC is a very respectable organization. The rules of the competition require a standard conforming program. Suggest you study the entire program and its conformance before passing quick judgements. - Hemal Pandya
[0] [2008-10-08 22:53:55] community_owned
(A bunch of code that's really weird looking)  //Kludge.