• DL (unregistered)

    Pro tip: if you're ever unsure of the best way to write a block of code, just write it in the most naive way possible, post it to The Daily WTF, and wait for someone to show you the right way to do it.

    It's sort of like crowd-sourcing code quality.

  • Gunslinger (unregistered) in reply to Samuel L. Jackson
    Samuel L. Jackson:
    Silfax:
    JolleSax:
    It shows pretty clearly though why they call it Python though.

    Is it that it's full of snakes that can bite you in the ass if not careful?

    I think that can happen in any language.

    I have had it with this motherfuckin' Python on this motherfuckin' website!

    Finally we get a good comment.

  • heyhermano (unregistered) in reply to Raugturi
    Raugturi:
    Given a list of characters (wlc) and a length (maxchar), it prints out all the possible combinations to a file (txt) and if verbose is true it also prints them to screen.

    As I noted on /r/python, not all combinations. Order is irrelevant in combinations, meaning 'aaZ' and 'Zaa' would not both appear. This code creates all k-permutations with repetition.

    The best one liner that doesn't express the pathological conditions (early termination if {9,Z,z} is not the last element in wlc, and |wlc|^15 steps if {9,Z,z} not in wlc) someone came up with is:

    lambda x: list(itertools.product(x, repeat=len(x)))

    Trying to reproduce the pathological conditions would be... interesting.

  • "Gay for Pay" Male Pornstar (unregistered)

    I'm sick of these motherfuckin' dicks fuckin' my motherfuckin' ass!

  • silent d (unregistered) in reply to Olius
    Olius:
    If you squint slightly and turn your head to one side, it kinda looks like a Space Invader.

    Any decent QA engineer knows that's the first thing to look for.

  • (cs)

    All code like this should be re-indented to look like a hand with a raised middle finger, flipping the bird at the future maintainer.

  • Orclev (unregistered) in reply to PedanticCurmudgeon
    PedanticCurmudgeon:
    ubersoldat:
    This is stupid in any language, but this shows that crappy programmers use Python too and not only VB or PHP.
    Indeed. That is why I advocate the use of "difficult" languages like Haskell, Common Lisp or Factor. The sort of programmer who writes today's WTF wouldn't be able to get anything to work in those languages.

    Interestingly enough I was just thinking something similar. Of course the down side to such massively difficult to learn languages (spoken as someone who is nearly proficient enough in Haskell to say so), is that while you're learning it you still write a lot of code that if not quite at the level of WTF exhibited here is at least still considered a minor WTF by someone proficient in the language.

    On the topic of Python I'm afraid it's quickly sliding into the realm of Javascript and VB, as the go to language of shitty programmers. It isn't quite there yet thankfully, WTFs in Python are still relatively few, but I have a feeling we'll be seeing a lot more Python posts on here before too much longer. I await with baited breath the very first Haskell WTF to be posted (I'm sure we'll see one eventually I just can't imagine what it's going to look like).

  • Sigivald (unregistered) in reply to airdrik

    Of course another WTF is assuming they don't want to generate passwords with more than 15 characters.

    No, no WTF there.

    What's the point of a 16+ character generated password?

    If people can change them, they will, and to something they can remember.

    If people can't change them, they're just going to get pissed off that you're trying to make them remember 16 or more characters of garbage - and this is never good, one way or another.

    If these are never being used by human beings directly, then it probably ought to be using something more awesome than a password, like an SSH key or certificate.

    I can't think of a sane design, ever, that requires such a thing as what that would be.

  • (cs) in reply to Orclev
    Orclev:
    Interestingly enough I was just thinking something similar. Of course the down side to such massively difficult to learn languages (spoken as someone who is nearly proficient enough in Haskell to say so), is that while you're learning it you still write a lot of code that if not quite at the level of WTF exhibited here is at least still considered a minor WTF by someone proficient in the language.
    That's true, but eventually you either stop writing the minor WTFs or give up and move on. The WTFery in the example of the day is most likely permanent.
    Orclev:
    On the topic of Python I'm afraid it's quickly sliding into the realm of Javascript and VB, as the go to language of shitty programmers. It isn't quite there yet thankfully...
    I've seen some Python open source code that may change your mind on this.
  • jkh888 (unregistered) in reply to scott

    That's nothing. I used to work on a product where the low level file and database api routines were so old, they were written when the proprietary language only had space for 4 different variables at a time. That meant all the variables in the whole thing were called q1,q2,q3 or q4. Cue much swapping of variables inside subroutines. Basically if a database query did something weird and the debugger took you into one of those libraries, you just gave up and worked around it.

  • Simon (unregistered) in reply to Chris
    Chris:
    Surley the Python thing is barely here nor there - if you were *going* to write like this, you'd indent pretty much the same in languages like Java or C#?

    Except that because whitespace matters so much, Python is a language where something like this is painful beyond belief, and utterly painful to have to deal with - far more so than the same code written in Java or C#.

    Stuffing up the indentation in Python is equivalent to mismatching brackets in those languages - a guaranteed bug.

  • coding god (unregistered) in reply to jkh888
    jkh888:
    That's *nothing*. I used to work on a product where the low level file and database api routines were so old, they were written when the proprietary language only had space for 4 different variables at a time. That meant all the variables in the whole thing were called q1,q2,q3 or q4. Cue much swapping of variables inside subroutines. Basically if a database query did something weird and the debugger took you into one of those libraries, you just gave up and worked around it.

    Whatever. Wimps need more than four variables. I only use more when I HAVE to to come down to your level -- I hate the mess when numb-skull coders' heads explode.

    I believe you've seen some of my clever work here in many of the articles. Those are MINE, and I will sue everyone who reads the code.

  • Simon (unregistered) in reply to heyhermano
    heyhermano:
    Trying to reproduce the pathological conditions would be... interesting.

    I think today's WTF certainly qualifies as a pathological condition... I can't imagine what kind of diseased mind wrote that code...

  • Herby (unregistered) in reply to QJo
    QJo:
    scott:
    On the contrary. I've seen work from a programmer who refused to use indentation at all because "all that white space is wasteful."

    And I once worked with a guy who felt the same way about line breaks. Not blank lines, all line breaks, so every line of code was the full width of the editor screen (which thank god back then was 80 characters), naturally all with 1- and 2-char var names. No, I am not kidding.

    Fortunately you can't write like that in FORTRAN as the end of a command is signaled by the end of the punch card .

    FTFY

  • (cs) in reply to JDege
    JDege:
    QJo:
    Fortunately you can't write like that in FORTRAN as the end of a command is signalled by the end of the punched card.
    If you're doing FORTRAN right, the end of a command is signaled by the end of the card.
    Remember that you didn't even get all of the card; columns 1-6 were for numeric labels and columns 73-80 were for sequence numbers. The sequence numbers let you resort your card deck in case you dropped it. Yes, I'm old enough to have used punched cards and young enough to never miss them.
  • Herby (unregistered) in reply to MarkJ
    MarkJ:
    JDege:
    QJo:
    Fortunately you can't write like that in FORTRAN as the end of a command is signalled by the end of the punched card.
    If you're doing FORTRAN right, the end of a command is signaled by the end of the card.
    Remember that you didn't even get all of the card; columns 1-5 were for numeric labels and columns 73-80 were for sequence numbers. The sequence numbers let you resort your card deck in case you dropped it. Yes, I'm old enough to have used punched cards and young enough to never miss them.

    Column 6 was for continuation. You could put anything there EXCEPT a blank, or the digit zero as they indicated the first card.

    The other thing to remember was that white space was NOT significant except in hollerith or quoted text strings (usually in format statements).

  • Bunburya (unregistered)

    I've seen this code before: http://www.python-forum.org/pythonforum/viewtopic.php?f=1&t=27111

    That guy posted this code, claiming he got it from somewhere else.

    Is Jakob working for the same company as the guy who created that thread? Or maybe they both ripped the code from some common source?

  • (cs) in reply to Bunburya
    Bunburya:
    I've seen this code before: http://www.python-forum.org/pythonforum/viewtopic.php?f=1&t=27111

    That guy posted this code, claiming he got it from somewhere else.

    Is Jakob working for the same company as the guy who created that thread? Or maybe they both ripped the code from some common source?

    The program name and author name in the version you linked, when combined with Google, will lead you to the original source.

    Comment from the original author, in the post where he seems to have first shared this: "The script isn't very fast."

  • Moekandu (unregistered) in reply to Silfax
    Silfax:
    JolleSax:
    It shows pretty clearly though why they call it Python though.

    Is it that it's full of snakes that can bite you in the ass if not careful?

    I think that can happen in any language.

    Sounds like he's got more than enough snake to choke himself with.

  • Bunburya (unregistered) in reply to Abso

    Good thinking! It saddens me that the original thread is full of praise. Maybe if the original post had elicited responses more along the lines of those found in the python-forum.org thread, people wouldn't be so eager to replicate the code (then again, maybe they would...).

  • Alex (unregistered) in reply to DL
    DL:
    Pro tip: if you're ever unsure of the best way to write a block of code, just write it in the most naive way possible, post it to The Daily WTF, and wait for someone to show you the right way to do it.

    It's sort of like crowd-sourcing code quality.

    I've already had three of my attempts corrected that way here.

    Hell, when I started, I was going to do it in php - The kind folks here quickly put a stop to that, and I have now learnt how to use CGI (Common Gateway Interface, not graphics stuff) so that I can use C and Perl for my web page instead of PHP!!

  • Danny (unregistered) in reply to Orclev
    Orclev:
    PedanticCurmudgeon:
    ubersoldat:
    This is stupid in any language, but this shows that crappy programmers use Python too and not only VB or PHP.
    Indeed. That is why I advocate the use of "difficult" languages like Haskell, Common Lisp or Factor. The sort of programmer who writes today's WTF wouldn't be able to get anything to work in those languages.

    Interestingly enough I was just thinking something similar. Of course the down side to such massively difficult to learn languages (spoken as someone who is nearly proficient enough in Haskell to say so), is that while you're learning it you still write a lot of code that if not quite at the level of WTF exhibited here is at least still considered a minor WTF by someone proficient in the language.

    On the topic of Python I'm afraid it's quickly sliding into the realm of Javascript and VB, as the go to language of shitty programmers. It isn't quite there yet thankfully, WTFs in Python are still relatively few, but I have a feeling we'll be seeing a lot more Python posts on here before too much longer. I await with baited breath the very first Haskell WTF to be posted (I'm sure we'll see one eventually I just can't imagine what it's going to look like).

    Something about people wanting it to be trendy.

    It's quite amusing, people argue to the death that the technology they have just discovered is the "new black", and then wonder why quickly it gets a reputation as a "shit programmer's" technology. They never seem to make the connection that perhaps people actually listened to all the costs about how cool dah new stuff is. People have been (and continue) singing the wonders of Python to all who will listen, and then seem surprised when some dopey pricks actually listen, but don't understand how to use it...

    sigh Sorry, I finished my grumpy bit. I going back to my Ol' C now....

  • Gary Olson (unregistered) in reply to Matt Westwood
    Matt Westwood:
    I want to die.
    for death in range(len(wlc)): if end == 1 : die
  • (cs) in reply to PedanticCurmudgeon
    PedanticCurmudgeon:
    ubersoldat:
    This is stupid in any language, but this shows that crappy programmers use Python too and not only VB or PHP.
    Indeed. That is why I advocate the use of "difficult" languages like Haskell, Common Lisp or Factor. The sort of programmer who writes today's WTF wouldn't be able to get anything to work in those languages.

    Oh, don't mind. You can be sure he would be able to get some kind of code working on any language. And you really don't want to see how he does that.

    The correct procedure is to fire this sort of programmer, letting him realise there could be something wrong with him. Unfortunately, that is also the last used route.

  • (cs) in reply to Matt Westwood
    Matt Westwood:
    I want to die.
    We all want you to die, Matt.

    Take Nagesh with you if you can. Thanks!

  • (cs) in reply to scott
    scott:
    On the contrary. I've seen work from a programmer who refused to use indentation at all because "all that white space is wasteful."
    And I once worked with a guy who felt the same way about line breaks. Not blank lines, all line breaks, so every line of code was the full width of the editor screen (which thank god back then was 80 characters), naturally all with 1- and 2-char var names. No, I am not kidding.
    You're not kidding indeed. Once, I worked for (that's "for", not "with") who did the same thing. If everything fit on one page, he found it "easier to read". He was dyslexic, if that has anything to do with it.
  • QJo (unregistered) in reply to MarkJ
    MarkJ:
    JDege:
    QJo:
    Fortunately you can't write like that in FORTRAN as the end of a command is signalled by the end of the punched card.
    If you're doing FORTRAN right, the end of a command is signaled by the end of the card.
    Remember that you didn't even get all of the card; columns 1-6 were for numeric labels and columns 73-80 were for sequence numbers. The sequence numbers let you resort your card deck in case you dropped it. Yes, I'm old enough to have used punched cards and young enough to never miss them.
    I'm going to jump on you here because FORTRAN no longer requires that all the code is written on punched card.

    I suppose you similarly ridicule science ficton fans because they all wear pointy plastic ears.

  • Ru (unregistered) in reply to Child of the '90s
    Child of the '90s:
    frits:
    Whacha gonna do, Brother, when this 15 iterator python comes crashing down on you?!
    What the h*** are you talking about?

    For fuck's sake, what is the point of asterisking out letters on a work that is at best mildly profane? For that matter, what is the point of doing it even to words which are presumably intended to be and are generally accepted as obscene? Everyone knows you just wrote "cunt" even if you took the trouble to obscure the u or n.

    Either clean up your language, or let it all out.

  • (cs) in reply to D-Coder
    D-Coder:
    Matt Westwood:
    I want to die.
    We all want you to die, Matt.

    Take Nagesh with you if you can. Thanks!

    Aw c'mon, I love Matt. Long live Matt! Not sure if my endorsement is helpful...

  • (cs) in reply to Mcoder
    Mcoder:
    PedanticCurmudgeon:
    ubersoldat:
    This is stupid in any language, but this shows that crappy programmers use Python too and not only VB or PHP.
    Indeed. That is why I advocate the use of "difficult" languages like Haskell, Common Lisp or Factor. The sort of programmer who writes today's WTF wouldn't be able to get anything to work in those languages.

    Oh, don't mind. You can be sure he would be able to get some kind of code working on any language. And you really don't want to see how he does that.

    I'll grant that in Common Lisp, he could have got something working, but have you ever written any Haskell? Today's example simply couldn't be done in Haskell in that fashion without extensive use of the State monad. Also, you can't get anything nontrivial to compile in Haskell without understanding the type system well enough to get all of the types right.

    Mcoder:
    The correct procedure is to fire this sort of programmer, letting him realise there could be something wrong with him. Unfortunately, that is also the last used route.
    True, but you'll find out a lot faster that he's beyond help if he's working in Haskell instead of Python.
  • (cs) in reply to Some damn Yank
    Some damn Yank:
    QJo:
    scott:
    On the contrary. I've seen work from a programmer who refused to use indentation at all because "all that white space is wasteful."

    And I once worked with a guy who felt the same way about line breaks. Not blank lines, all line breaks, so every line of code was the full width of the editor screen (which thank god back then was 80 characters), naturally all with 1- and 2-char var names. No, I am not kidding.

    Fortunately you can't write like that in FORTRAN as the end of a command is signalled by a line feed.
    Ah, FORTRAN. Those were the days. You'll find far fewer "c"s in FORTRAN than you'll find semicolons in most other languages. Why the others make the programmer do the compiler's job I never understood. Semicolons to end a line only make sense in Pascal, because Pascal was intended to be "compiled" by the teacher. For the rest, if the compiler can't figure out where the line ends, what good is it?

    CAPTCHA: esse - Enjoy my comments, or esse!

    Are you trolling? You prefer something like the abomination that is VB.NET? Fucking underscore gives me conniptions now. I don't mind telling the compiler I'm done with a command. What's wrong with semicolons?

  • PleaseFollowTheAdviceAndGoogleThisCrap (unregistered) in reply to Abso
    Abso:
    Bunburya:
    I've seen this code before: http://www.python-forum.org/pythonforum/viewtopic.php?f=1&t=27111

    That guy posted this code, claiming he got it from somewhere else.

    Is Jakob working for the same company as the guy who created that thread? Or maybe they both ripped the code from some common source?

    The program name and author name in the version you linked, when combined with Google, will lead you to the original source.

    Comment from the original author, in the post where he seems to have first shared this: "The script isn't very fast."

    Oh my god. Thank you for making my day. This is far better than the submission.. SO MUCH BETTER.

  • (cs) in reply to D-Coder
    D-Coder:
    Matt Westwood:
    I want to die.
    We all want you to die, Matt.

    Take Nagesh with you if you can. Thanks!

    Why spred hatred like this? be solid like Anna hazare.

  • QJo (unregistered) in reply to Bunburya
    Bunburya:
    I've seen this code before: http://www.python-forum.org/pythonforum/viewtopic.php?f=1&t=27111

    That guy posted this code, claiming he got it from somewhere else.

    Is Jakob working for the same company as the guy who created that thread? Or maybe they both ripped the code from some common source?

    It occurs to me: has anybody, on reading a WTF, posted a message along the lines: "Oh yeah, I remember that. I wrote that, it's mine. What's wrong with it, you philistines!"?

  • trtrwtf (unregistered) in reply to Orclev
    Orclev:
    I await with baited breath the very first Haskell WTF to be posted (I'm sure we'll see one eventually I just can't imagine what it's going to look like).
    I generally don't post things from messageboards or newsgroups

    And where else are you going to find any Haskell?

  • Some damn Yank (unregistered) in reply to Sigivald
    Sigivald:
    What's the point of a 16+ character generated password?
    Well, I suppose you wouldn't need to generate them, you could make them up manually, but I once worked at a factory where each piece of equipment on the shop floor had its own account and password on the server, and every morning they would all log in and get their jobs for the day. I wouldn't doubt if they had 16+ character passwords for additional security, because those passwords never changed. Indeed, one memorable day a new IT manager saw there were dozens of accounts that had passwords over 90 days old, so he decided to "teach those users a lesson" and changed all their passwords overnight. The next day the factory was effectively shut down and it took the support staff hours to figure out what was wrong. Now that's a WTF for you!

    CAPTCHA: secundum. I secundum that emotion!

  • (cs)

    exec ("word = " + " + ".join(["wlc[i" + str(15 - i) + "]" for i in range(int(maxchar))]))

    This saves quite a few lines here! Incredible they missed that opportunity to use code generation.

  • Todd Lewis (unregistered)

    This is the kind of code that makes me think Python is just Perl for whimps who are afraid of (or never learned to touch-type) punctuation. Except you can indent Perl sanely.

  • (cs) in reply to frits
    frits:
    D-Coder:
    Matt Westwood:
    I want to die.
    We all want you to die, Matt.

    Take Nagesh with you if you can. Thanks!

    Aw c'mon, I love Matt. Long live Matt! Not sure if my endorsement is helpful...
    Matt's awesome, but I hate him because of his vastly superior British wit.

  • Childish (unregistered) in reply to QJo
    QJo:
    scott:
    On the contrary. I've seen work from a programmer who refused to use indentation at all because "all that white space is wasteful."

    And I once worked with a guy who felt the same way about line breaks. Not blank lines, all line breaks, so every line of code was the full width of the editor screen (which thank god back then was 80 characters), naturally all with 1- and 2-char var names. No, I am not kidding.

    Fortunately you can't write like that in FORTRAN as the end of a command is signalled by a line feed.

    Standard FORTRAN77 (and earlier) allowed no whitespace between tokens. This lead to multiple parsing interpretations.

    The Dragon book (Aho, Sethi, & Ullman) gave this FORTRAN77 tokenizing error sample.

    5 DO20N=1.10 ... 20 CONTINUE

    The one-point-one-zero is a REAL constant & DO20N is an implicit REAL variable type. Line 5 is an assignment & line 10 is an un-matched CONTINUE

    A valid DO loop has the comma to show the 1..10 range.

    5 DO 20 N=1,10 ... 20 CONTINUE

  • (cs) in reply to Some damn Yank
    Some damn Yank:
    Sigivald:
    What's the point of a 16+ character generated password?
    Well, I suppose you wouldn't need to generate them, you could make them up manually, but I once worked at a factory where each piece of equipment on the shop floor had its own account and password on the server, and every morning they would all log in and get their jobs for the day. I wouldn't doubt if they had 16+ character passwords for additional security, because those passwords never changed. Indeed, one memorable day a new IT manager saw there were dozens of accounts that had passwords over 90 days old, so he decided to "teach those users a lesson" and changed all their passwords overnight. The next day the factory was effectively shut down and it took the support staff hours to figure out what was wrong. Now that's a WTF for you!
    That's front-page-worthy if you add some intrigue and unicorns.
  • (cs) in reply to hoodaticus
    hoodaticus:
    frits:
    D-Coder:
    Matt Westwood:
    I want to die.
    We all want you to die, Matt.

    Take Nagesh with you if you can. Thanks!

    Aw c'mon, I love Matt. Long live Matt! Not sure if my endorsement is helpful...
    Matt's awesome, but I hate him because of his vastly superior British wit.
    What wit?
    Nevermind, it's probably to subtle for me to understand.

  • (cs) in reply to Childish
    Childish:
    QJo:
    scott:
    On the contrary. I've seen work from a programmer who refused to use indentation at all because "all that white space is wasteful."

    And I once worked with a guy who felt the same way about line breaks. Not blank lines, all line breaks, so every line of code was the full width of the editor screen (which thank god back then was 80 characters), naturally all with 1- and 2-char var names. No, I am not kidding.

    Fortunately you can't write like that in FORTRAN as the end of a command is signalled by a line feed.

    Standard FORTRAN77 (and earlier) allowed no whitespace between tokens. This lead to multiple parsing interpretations.

    The Dragon book (Aho, Sethi, & Ullman) gave this FORTRAN77 tokenizing error sample.

    5 DO20N=1.10 ... 20 CONTINUE

    The one-point-one-zero is a REAL constant & DO20N is an implicit REAL variable type. Line 5 is an assignment & line 10 is an un-matched CONTINUE

    A valid DO loop has the comma to show the 1..10 range.

    5 DO 20 N=1,10 ... 20 CONTINUE

    What fucking shitty code.

       DO N = 1, 10
         ...
       END DO
    

    is the minimally standard to which any contemporary FORTRAN should be written. Anyone who thinks it may be written in anything more primitive should have his arse reamed out with a red-hot poker.

  • Henning Makholm (unregistered) in reply to Childish
    Childish:
    Standard FORTRAN77 (and earlier) allowed no whitespace between tokens.
    Because, as originally envisaged, programmers would produce code in manuscript that was then keyed into the computers by low-paid typists. Having intraline whitespace be significant was thought to invite too many errors when the punch operator who didn't know the language misunderstood the programmer's spacing.

    (This was well before the age of the personal computer, of course).

  • (cs) in reply to hoodaticus
    hoodaticus:
    frits:
    D-Coder:
    Matt Westwood:
    I want to die.
    We all want you to die, Matt.

    Take Nagesh with you if you can. Thanks!

    Aw c'mon, I love Matt. Long live Matt! Not sure if my endorsement is helpful...
    Matt's awesome, but I hate him because of his vastly superior British wit.

    Oh very well, just for you two darlings, I've decided to stay alive for at least another two WTFs.

    And, for the record, Nagesh is a fucking diamond.

  • (cs) in reply to frits
    frits:
    hoodaticus:
    frits:
    D-Coder:
    Matt Westwood:
    I want to die.
    We all want you to die, Matt.

    Take Nagesh with you if you can. Thanks!

    Aw c'mon, I love Matt. Long live Matt! Not sure if my endorsement is helpful...
    Matt's awesome, but I hate him because of his vastly superior British wit.
    What wit?
    Nevermind, it's probably to subtle for me to understand.

    He was probably trying to use sarcasm or irony, I don't bloody know the difference, in order to be funny.

  • (cs) in reply to frits
    frits:
    hoodaticus:
    frits:
    D-Coder:
    Matt Westwood:
    I want to die.
    We all want you to die, Matt.

    Take Nagesh with you if you can. Thanks!

    Aw c'mon, I love Matt. Long live Matt! Not sure if my endorsement is helpful...
    Matt's awesome, but I hate him because of his vastly superior British wit.
    What wit?
    Nevermind, it's probably to subtle for me to understand.

    He was probably trying to use sarcasm or irony, I don't bloody know the difference, in order to be funny.

  • old guy (unregistered)

    "Standard FORTRAN77 (and earlier) allowed no whitespace"

    I don't remember it like that at all and I wrote a lot of FORTRAN77 on HP/MPE, CDC/Cyber, PDP/11, VAX/VMS and Multics. Are you sure ?

    And I trashed my copy of the Dragon Book many years ago.

  • (cs) in reply to frits
    frits:
    D-Coder:
    Matt Westwood:
    I want to die.
    We all want you to die, Matt.

    Take Nagesh with you if you can. Thanks!

    Aw c'mon, I love Matt. Long live Matt! Not sure if my endorsement is helpful...
    Since Matt seems to reflexively oppose whatever the previous post was... maybe your endorsement will be helpful.

  • Ol' Bob (unregistered)

    COMPUTER LANGUAGES don't write bad code - PEOPLE with COMPUTER LANGUAGES write bad code!

Leave a comment on “Python Charmer”

Log In or post as a guest

Replying to comment #:

« Return to Article