• (cs) in reply to MrChas
    MrChas:
    It would be one line in C#

    So... I suppose that would make it half a line in perl?

  • KT (unregistered) in reply to KT
    KT:
    MrChas:
    It would be one line in C#
    public boolean foo() { try { synchronized () { if () { } else { } for () { if () { if () { ......
  • SomeoneShouldSayIt (unregistered)

    The RWTF is Java...

    Seriously you'd never find a VB programmer stupid enough to write code like this.

    It's because everyone who writes in Java has the IQ of a monkey...

  • Jimbo (unregistered)

    Imagine something exactly like this, but written in vb6. That's the program I was hired to work on. Everything looks like this.

    The function that I'm currently working on takes a record from a database and puts it into a file for the user to upload. In this function the user validates the data for the current record, writes various different reports, moves the data, and performs company based checks.

    Here's a psudo-code breakdown of how it works.

    open itemtable recordset recordset.movefirst for i=1 to recordset length if validate_data_condition1 then ect... till all data is validated end if if itemtable!Itemtype = 2 then if reportType = 1 then blablabla elseif reportType = 2 then blablabla else if companyNumber=1234567 dosomething specific end if elseif itemtype = 34 then if reporttype = 4 blablabla end if end if select * from item_sub_table where itemtable.index = itemsubtable.index do ect..... next

    There are functions that are over 70 printed pages that I haven't even started to work on. That's 70 pages at times new roman, single spaced, no wordwrap (yes a lot of it flows off the end of the page and is lost), font size 8.

    At least i'm feeding my family.

  • NotAnEnglishMajor (unregistered) in reply to SomeoneShouldSayIt
    SomeoneShouldSayIt:
    The RWTF is Java...

    Seriously you'd never find a VB programmer stupid enough to write code like this.

    It's because everyone who writes in Java has the IQ of a monkey...

    Don't sell those monkeys short!

    -NotAn

  • d (unregistered)

    If you feed it through a player piano, out comes "The William Tell Overture".

  • Mark (unregistered)

    Using && is the coding equivalent of juicing.

  • (cs) in reply to snoofle
    snoofle:
    It needs a preceeding comment warning the reader to take Drammamine before proceeding!

    Exactly. I about lost my lunch following that thing.

  • (cs) in reply to brazzy
    brazzy:
    vt_mruhlin:
    My current project is to port an old C app to Java, with no spec other than "take this, port it to Java." The old app looks like this, so I'm really suspecting that mine will too.
    Only if the port is trivial and you're sure you won't have to maintain it in any way. Or if you lack the skill to do it better. Or if you're a masochist about working with crappy code.

    The "not having to maintain it" part sounds nice, and is the philosophy that the other 20 or 30 people to work on it before me thought (and they were right!). This thing comes from a long legacy of copy/pasted mangled code, undocumented acronyms (wtf is a BLIM?), and "TODO: delete this before production" comments dating back to 1996.

    That's why mine's going to look like arse. The original is such an unreadable, unmaintainable POS that there's no way to tell what stuff still needs to be there or not, without some input from the business guys who will actually be using the thing.

  • Jeff (unregistered)

    :-(

    the sad thing is I'm trying to clean up code that looks like this right now... and it is what currently generates our invoices!

  • SomeCoder (unregistered) in reply to iToad
    iToad:
    SomeCoder:
    Eric:
    Did anyone run this to get the Cyclomatic Complexity?

    Ok, somebody figure out the CC :) I don't really want to attempt to do it manually with THAT monstrosity but surely there are automated tools.

    The Cyclomatic Complexity appears to be approximately +INF.

    lol. I believe it.

  • Eric (unregistered) in reply to vt_mruhlin
    vt_mruhlin:
    brazzy:
    vt_mruhlin:
    My current project is to port an old C app to Java, with no spec other than "take this, port it to Java." The old app looks like this, so I'm really suspecting that mine will too.
    Only if the port is trivial and you're sure you won't have to maintain it in any way. Or if you lack the skill to do it better. Or if you're a masochist about working with crappy code.

    ... The original is such an unreadable, unmaintainable POS that there's no way to tell what stuff still needs to be there or not, without some input from the business guys who will actually be using the thing.

    Yeah, you certainly don't want the domain (business) experts providing input into what the end product is like. That could put some maintenance programmers out of a job... :(

  • Marisa (unregistered)

    This reminds me of a song:

    wara ningyo ni, wara ningyo ni, wara ningyo ni gossun gossun gosun kugi~!!

    yi er san yi er san one two three one two three ichi ni san, yi er san yi er san one two three one two three ichi ni san, yi er san yi er san one two three one two three ichi ni san,

    eins zwei guten morgen yi er yi er ichi ichi ichi ichi

    hi fu mi hi fu mi hi fu mi hi fu mi hi hi fu hi fu mi hi fu mi hi fu mi hi fu mi hi hi fu hi fu mi hi fu mi hi fu mi hi fu mi hi hi fu hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi hi fu mi yo hi fu mi yo

    ...

    don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu (kanji naiwa)

    don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu don-tsu (itaku naiwa)

    chiki-ti chiki-ti chiki-ti chiki-ti chiki-ti chiki-ti chiki-ti chiki-ti ugigi ugigi ugigi ugigi ugigi ugigi ugigi ugigi

    Shanghai Shanghai Shanghai Shanghai Hourai Hourai Hourai Hourai France Hollands Tibet Kyoto London Russia Orleans!

    kirai kirai, lovin' (an a an an a an~) dare ga dare ga, can't be alive without you

    doushite, naze ka~shi~ra~ (an a an an) wh-why why don't I miss you alot for-ever~

    shiranai wa, sonna mahou omoi wa tsuta~eta~ra~ ko~wa~re~cha~u~

    anata towa chigau kara hitono kokoro made kantan ni~ nu~sumana~ide~~

  • (cs) in reply to Eric
    Eric:
    vt_mruhlin:
    ... The original is such an unreadable, unmaintainable POS that there's no way to tell what stuff still needs to be there or not, without some input from the business guys who will actually be using the thing.

    Yeah, you certainly don't want the domain (business) experts providing input into what the end product is like. That could put some maintenance programmers out of a job... :(

    You seem to have misinterpreted (or I missed sarcasm on your part). I want their input. Just don't have it. "Well, you have the version that's there now. Just do the same thing it's doing." I'm glad they reminded me how simple it is.

  • Zygo (unregistered) in reply to Alcari
    Alcari:
    Tour de farce, more likely.

    Please tell me nobody codes like this. How the hell did they manage to get it to work?

    Wait, where did anyone say it worked?

  • let's see (unregistered) in reply to SomeoneShouldSayIt
    SomeoneShouldSayIt:
    The RWTF is Java...

    Seriously you'd never find a VB programmer stupid enough to write code like this.

    It's because everyone who writes in Java has the IQ of a monkey...

    Hahaha... that's hilarious - VB programmers not being stupid enough for stuff like that, gimme a break...

    Sorry, but aside the fact that there are morons in all parts of the industry (and anywhere else, at that) and that any language can be abused in terrible ways if you are dumb enough, the most disastrous flapdoodle I've seen in program code was either done in older host languages or in VB...

    This might stem from the fact that you can do nonsense in VB that Java (like other OO languages) does not even have keywords and/or constructs for.

    Now be honest - you have never used another language than Basic/VB on another OS than Windows, right? ;o)

  • woohoo (unregistered) in reply to anon
    anon:
    The synchronized block wrapping the whole thing is probably very performant.

    Spot on. But I'm even more worried about that big try/catch statement enclosing the whole code. Perhaps it is there to achieve the same result as this ingenious construct that I once encountered:

    foo() {
       try {
    
          // ~300 LOC ...
    
          String s = null;
          s.length();
    
          // ~300 LOC ...
       catch() {}
    }
    

    Yes, 600 LOC in one try/catch, and yes, the catch-block was empty... and yes, you perhaps guessed it already: That guy did not know about the return-statement and wanted to leave the method right there in the middle....

    Considering all that it is somewhat less surprising that he did not know about the throw-statement and had to craft his NullPointerException "by hand" ;o))

  • Jakob Engblom (unregistered)

    Does not look that bad to me, really. At least not if it was machine-generated from some algorithm language like state charts or matlab. Seen code like that, and actually computed the number of paths through a generated monstrosity that had many many billions of possible paths. 700 nested conditionals has a phenomenal complexity.

  • (cs) in reply to nobody
    nobody:
    MrChas:
    It would be one line in C#

    So... I suppose that would make it half a line in perl?

    Yeah, and a single character in APL.

    And then an actually skilled programmer comes along, looks at the Java original and where it's called and notices that if you generalize and simplify the calling classes a bit, you don't even need that method... ending up with -20 lines for the method (it's eliminated, and he saved code in the calling classes too).

  • JJB (unregistered)

    Out of curiosity, did you determine the Cyclomatic Complexity of this method? http://en.wikipedia.org/wiki/Cyclomatic_complexity

    I know there are tools that will do this for you.

  • (cs) in reply to SomeoneShouldSayIt
    SomeoneShouldSayIt:
    The RWTF is Java...

    Seriously you'd never find a VB programmer stupid enough to write code like this.

    It's because everyone who writes in Java has the IQ of a monkey...

    The only thing blanket generalizations like that prove that YOU have the IQ of a monkey.

  • Puckdropper (unregistered)

    Wait! I've played this game! ASCII man's falling down a rocky cliff and you have to move him around. Forget what it's called though.

  • SomeoneShouldSayIt (unregistered) in reply to let's see
    let's see:
    SomeoneShouldSayIt:
    The RWTF is Java...

    Seriously you'd never find a VB programmer stupid enough to write code like this.

    It's because everyone who writes in Java has the IQ of a monkey...

    Hahaha... that's hilarious - VB programmers not being stupid enough for stuff like that, gimme a break...

    Sorry, but aside the fact that there are morons in all parts of the industry (and anywhere else, at that) and that any language can be abused in terrible ways if you are dumb enough, the most disastrous flapdoodle I've seen in program code was either done in older host languages or in VB...

    This might stem from the fact that you can do nonsense in VB that Java (like other OO languages) does not even have keywords and/or constructs for.

    Now be honest - you have never used another language than Basic/VB on another OS than Windows, right? ;o)

    Hardly. I got my BS in CS using C++ for all my programming classes. Took C#, Java, OpenGL (using C++), and finally VB as electives. My 3 years professionally programming since then have taught me that the programming language has no impact on what really matters in programming. "Can you think logically or not?".

  • SomeoneShouldSayIt (unregistered) in reply to brazzy
    brazzy:
    SomeoneShouldSayIt:
    The RWTF is Java...

    Seriously you'd never find a VB programmer stupid enough to write code like this.

    It's because everyone who writes in Java has the IQ of a monkey...

    The only thing blanket generalizations like that prove that YOU have the IQ of a monkey.

    Once again, in English this time? lol... like that prove that... go get your sarcasm detector repaired...

  • SomeoneShouldSayIt (unregistered) in reply to SomeoneShouldSayIt
    SomeoneShouldSayIt:
    let's see:
    SomeoneShouldSayIt:
    The RWTF is Java...

    Seriously you'd never find a VB programmer stupid enough to write code like this.

    It's because everyone who writes in Java has the IQ of a monkey...

    Hahaha... that's hilarious - VB programmers not being stupid enough for stuff like that, gimme a break...

    Sorry, but aside the fact that there are morons in all parts of the industry (and anywhere else, at that) and that any language can be abused in terrible ways if you are dumb enough, the most disastrous flapdoodle I've seen in program code was either done in older host languages or in VB...

    This might stem from the fact that you can do nonsense in VB that Java (like other OO languages) does not even have keywords and/or constructs for.

    Now be honest - you have never used another language than Basic/VB on another OS than Windows, right? ;o)

    Hardly. I got my BS in CS using C++ for all my programming classes. Took C#, Java, OpenGL (using C++), and finally VB as electives. My 3 years professionally programming since then have taught me that the programming language has no impact on what really matters in programming. "Can you think logically or not?".

    I forgot Perl in Unix... and tons of VMS work prior to my degree. :) So wrong on all counts.

  • (cs) in reply to SomeoneShouldSayIt
    SomeoneShouldSayIt:
    let's see:
    SomeoneShouldSayIt:
    The RWTF is Java...

    Seriously you'd never find a VB programmer stupid enough to write code like this.

    It's because everyone who writes in Java has the IQ of a monkey...

    Hahaha... that's hilarious - VB programmers not being stupid enough for stuff like that, gimme a break...

    Sorry, but aside the fact that there are morons in all parts of the industry (and anywhere else, at that) and that any language can be abused in terrible ways if you are dumb enough, the most disastrous flapdoodle I've seen in program code was either done in older host languages or in VB...

    This might stem from the fact that you can do nonsense in VB that Java (like other OO languages) does not even have keywords and/or constructs for.

    Now be honest - you have never used another language than Basic/VB on another OS than Windows, right? ;o)

    Hardly. I got my BS in CS using C++ for all my programming classes. Took C#, Java, OpenGL (using C++), and finally VB as electives. My 3 years professionally programming since then have taught me that the programming language has no impact on what really matters in programming. "Can you think logically or not?".

    Agreed. People will act like somebody who's an expert in a particular language is a better candidate for a job because they know the ins and outs better than a n00b. But, at least from my experience, 95% of the hurdles you run into aren't a result of your lack of knowledge about a language, rather the batshit crazy code that your predecessor left you with. And it doesn't matter what language he wrote it in. It will always suck.

    I guess if you're making something totally new from scratch, getting a bunch of guys who are really good in a particular language might be helpful to keep WTFs down to a minimum, though.

  • (cs) in reply to MrChas
    MrChas:
    It would be one line in C#

    It's only 7 characters in perl:

    @ if; ‽

  • let's see (unregistered) in reply to SomeoneShouldSayIt
    SomeoneShouldSayIt:
    let's see:
    SomeoneShouldSayIt:
    The RWTF is Java...

    Seriously you'd never find a VB programmer stupid enough to write code like this.

    It's because everyone who writes in Java has the IQ of a monkey...

    Hahaha... that's hilarious - VB programmers not being stupid enough for stuff like that, gimme a break...

    Sorry, but aside the fact that there are morons in all parts of the industry (and anywhere else, at that) and that any language can be abused in terrible ways if you are dumb enough, the most disastrous flapdoodle I've seen in program code was either done in older host languages or in VB...

    This might stem from the fact that you can do nonsense in VB that Java (like other OO languages) does not even have keywords and/or constructs for.

    Now be honest - you have never used another language than Basic/VB on another OS than Windows, right? ;o)

    Hardly. I got my BS in CS using C++ for all my programming classes. Took C#, Java, OpenGL (using C++), and finally VB as electives. My 3 years professionally programming since then have taught me that the programming language has no impact on what really matters in programming. "Can you think logically or not?".

    That's what I said, amongst other things:

    let's see:
    Sorry, but aside the fact that there are morons in all parts of the industry (and anywhere else, at that) and that any language can be abused in terrible ways if you are dumb enough...

    You were the one who was over-generalizing, mind you. And it was not the least bit sarcastic or funny, if that might have been your intent.

    SomeoneShouldSayIt:
    I forgot Perl in Unix... and tons of VMS work prior to my degree. :) So wrong on all counts.

    Ah, so you like to take this out over the number of languages, quality of education and length of career? ;o)

    Ok. I've got nearly 20 computer languages under my belt, starting with Assembler and ranging to object oriented and functional languages and furthermore specialized languages for parallel computing, neural networks etc.

    And yes, I also did Basic and VB, so I know what I'm talking about.

    I've been using all those on several different platforms and operating systems in around 15 years of professional development and consulting in various branches of the IT industry.

    The fact that you know 3 or 4 (if you count OpenGL ...) languages does make your generalization non the wiser.

    And concerning your ridicule of brazzy's comment:

    SomeoneShouldSayIt:
    Once again, in English this time? lol...
    ever thought about the fact that not all people here are native speakers?

    BTW, I'm not an (english) native speaker. How about you? ;o)

  • (cs)

    That looks pretty much like the software I had to maintain for two years. Only it was written in Delphi. 5. By a guy who taught himself Delphi with one of those infamous 'teach yourself in 24-hours' books.

    To make matters worse, it was a very specific laboratory-oriented application (calculating concentrations of chemical compounds in ICP-AES/OES, GC-MS, LC-MS and GC-MS/TOF data), I didn't know anything about what it was supposed to do, it contained 125 forms and more than 150,000 lines of code, and most functions were > 1000 lines. It fully supported the 'magic pushbutton' antipattern and the guy who wrote it left the company before I started on it.

    Ah, the times I still worked there...

  • AdT (unregistered) in reply to SomeoneShouldSayIt
    SomeoneShouldSayIt:
    Hardly. I got my BS in CS using C++ for all my programming classes. Took C#, Java, OpenGL (using C++), and finally VB as electives. My 3 years professionally programming since then have taught me that the programming language has no impact on what really matters in programming. "Can you think logically or not?".

    I have also used a variety of programming languages, some long before college, and also have almost exactly 3 years of professional experience. But I disagree. The ability to think logically is necessary but insufficient for writing good programs in a short amount of time. While a true fool can write serial WTFs in every language, even a genius programmer will have a hard time implementing a complex application in assembler, for instance. I'm not even talking about languages that are inherently deficient, i.e. that will not allow you to write a good program in any amount of time. (By "good", I mean at least: correct, feature complete, efficient and easy to use. I left portability out of this list because it may not be essential for a given purpose, but I still value it highly.)

  • (cs) in reply to secundum
    secundum:
    looks like someone doesn't know what methods/functions are...

    secundum

    In his defense, the outer synchronized block makes those a bit dangerous. Any method that is called within a synchronized block needs to be aware that it might be the owner of a lock and needs to take certain precautions to prevent deadlocks. Though this certainly is a bit of an extreme case, and of course you can have the methods be private or final and with a comment/javadoc mentioning that fact.

    Most likely this started out as a short method, but through years of maintainers adding code snippets here and code snippets there, it grew into this beast.

  • El_oscuro (unregistered)

    I once had to maintain some PL/SQL code like that which was called by a VB program. Instead of updating the code, I spent a about a month figuring out what it did and replaced it with a SQL cursor and a fetch loop in VB. This code had been a royal PITA for everyone for years. Few things at work were more fun then issuing the following request to the DBAs:

    DROP package xxxxx; DROP package yyyyy; DROP package zzzzz;

    Gone. Just gone. I think I got a few free beers for that one...

  • SomeoneShouldSayIt (unregistered) in reply to let's see
    let's see:
    Hahaha... that's hilarious - VB programmers not being stupid enough for stuff like that, gimme a break...

    Now be honest - you have never used another language than Basic/VB on another OS than Windows, right? ;o)

    You were the one who was over-generalizing, mind you. And it was not the least bit sarcastic or funny, if that might have been your intent.

    Ah, so you like to take this out over the number of languages, quality of education and length of career? ;o)

    And concerning your ridicule of brazzy's comment:

    SomeoneShouldSayIt:
    Once again, in English this time? lol...
    ever thought about the fact that not all people here are native speakers?

    BTW, I'm not an (english) native speaker. How about you? ;o)

    Your english is fine, its your assertions that are retarded.

    You accuse me of having only ever programmed in VB on Windows then accuse me of making it about experience? You brought it up. I was only responding to you... but then you probably wanted to bring it up so you can talk about your experience. Too bad that in this industry, Old Programmer != Good Programmer. In fact I'd be willing to bet that, more often than not, Old Programmer = Horrible Programmer unable to grasp new concepts/languages/ideas/skills :P

    You say "Hahaha" in responce to my comment THEN dictate to me that my comment was neither funny nor sarcastic THEN state that you're unsure of my intent. Isn't sarcasm determined by the person talking and funny determined by the individual?

    I am a native english speaker as well as bilingual... and I don't feel the least bit bothered by laying into brazzy (or you)... and I won't until he (or you) can show me instances of him (or you) getting on to other posters for saying "TRWTF is VB."

    On a final note... If you really think the problem is that people get onto VB because of what you can write in that language that Java won't let you do... why don't they voice the same complaints against Assembly, Binary, C++, etc. Its really not the language, you can write crap in any language. It's the person using it. Thus it shouldn't be "TRWTF is VB/Java/C++/etc."

  • SomeoneShouldSayIt (unregistered) in reply to AdT
    AdT:
    SomeoneShouldSayIt:
    Hardly. I got my BS in CS using C++ for all my programming classes. Took C#, Java, OpenGL (using C++), and finally VB as electives. My 3 years professionally programming since then have taught me that the programming language has no impact on what really matters in programming. "Can you think logically or not?".

    I have also used a variety of programming languages, some long before college, and also have almost exactly 3 years of professional experience. But I disagree. The ability to think logically is necessary but insufficient for writing good programs in a short amount of time. While a true fool can write serial WTFs in every language, even a genius programmer will have a hard time implementing a complex application in assembler, for instance. I'm not even talking about languages that are inherently deficient, i.e. that will not allow you to write a good program in any amount of time. (By "good", I mean at least: correct, feature complete, efficient and easy to use. I left portability out of this list because it may not be essential for a given purpose, but I still value it highly.)

    But the programmer doesn't often determine the language being used. What matters is the Programmer and how they can logically wield the tools given. They are the one that either uses or abuses the language, whatever it may be. As proved by this WTF, you can write crap in any language. Now, for bonus points, tell me how VB.Net is "inherently deficient" when compared to Java/C#/etc.?

  • Grobbendonk (unregistered) in reply to Richard Pound
    Richard Pound:
    The World Anti-Doping Agency hereby informs you that henceforth all coders will be subject to random drug tests. It is obvious that nobody could possibly have written code like this without using banned substances.

    If I promise not to code while under the influence, can I have some? Actually, maybe not, I'd be very tempted to replace the sugar in the managers tea...

  • Liron Newman (unregistered)

    "Finally" indeed...

  • JC (unregistered) in reply to JiP

    nasty! It's synchronized too - so more like a time trial than the peloton! one rider at a time please...

  • iMalc (unregistered)

    It looks like us readers aren't the only ones still getting used to the new new new name for the site. The QuadraSort link is to worsethanfailure.com!

  • (cs)

    I feel ill... really ill. I read this while coding and repeating my mantra - less than 30 lines per function please. Refactor! Oh Power above save us.

  • Magnus (unregistered)

    Finally indeed.

  • Magnus (unregistered) in reply to Magnus

    Doh, beaten like a red-headed stepchild.

  • Chaos Personified (unregistered)

    The finally{} at the end makes this one quite poetic. Never saw a better place for "finally", neither from the perspective of coder or reader :-)

  • Theo (unregistered)

    The last statement is exactly what I felt when I read it.

    Finally.

  • Damo (unregistered) in reply to Richard Pound

    Uh... This looks like code I once wrote!!! (Dear god forgive me!)

  • marjolein (unregistered)

    Obviously, this code is implementing some Enterprise Business Logic (tm) ...

  • (cs) in reply to SomeoneShouldSayIt
    SomeoneShouldSayIt:
    I am a native english speaker as well as bilingual...
    And I am indeed not a native speaker but perfectly aware that my sentence was broken. Typed too fast and failed to proofread. But even if everyone were known to be a native speakert, "Once again, in English this time? lol... " in response to a single mistake is extremely childish. Or was that your way of mocking people who do spelling flames?
    SomeoneShouldSayIt:
    and I don't feel the least bit bothered by laying into brazzy (or you)... and I won't until he (or you) can show me instances of him (or you) getting on to other posters for saying "TRWTF is VB."

    On a final note... If you really think the problem is that people get onto VB because of what you can write in that language that Java won't let you do... why don't they voice the same complaints against Assembly, Binary, C++, etc. Its really not the language, you can write crap in any language. It's the person using it. Thus it shouldn't be "TRWTF is VB/Java/C++/etc."

    I mostly agree (some language features do nothing but enable bad practices). But expressing that the way you did is not perceived as sarcasm exactly BECAUSE so many people will readily and aggressively flame a language (and Java just as much as VB, in my experience). To work in a text-only medium, sarcasm has to be very obvious from the content, and yours wasn't.

  • (cs)
  • Bulletmagnet (unregistered) in reply to Alcari
    Alcari:
    Tour de farce, more likely.

    Please tell me nobody codes like this. How the hell did they manage to get it to work?

    Slowly and painfully.

  • Ugh (unregistered)

    Say what you like: At least the guy knows about try/catch. -both- my suppliers debug their code by inserting printf() at interesting points in the program. (oddly enough, they refuse to debug issues that can't be reproduced within a few minutes)

  • streeto (unregistered)

    That "finally" at the end is just perfect.

Leave a comment on “Coding Like the Tour de France”

Log In or post as a guest

Replying to comment #:

« Return to Article