For Whom the BEL Tolls

« Return to Article
  • COKKENBALZ 2012-07-02 09:06
    Ring my BEL... Ring my BEL
  • oheso 2012-07-02 09:07
    I typically refuse to be responsible for code I haven't seed, too.
  • LarryDavid 2012-07-02 09:20
    oheso:
    I typically refuse to be responsible for code I haven't seed, too.


    Everybody knows you should always seed
  • oheso 2012-07-02 09:23
    LarryDavid:

    Everybody knows you should always seed


    Wasn't that an issue with LinkedIn?
  • John 2012-07-02 09:25
    I bet the database query language was SQ-BEL
  • n/a 2012-07-02 09:27
    LarryDavid:

    Everybody knows you should always seed


    The developers of this WTF always seed their code... randomly.
  • Am Disappoint 2012-07-02 09:27
    See a moderateley WTF story
    Come to the site to look for snide meta-comments in the source of the story
    None there

    Very Disappoint.

    CAPTCHA: damnum - It's that damnum that's breaking the record
  • ¯\(°_o)/¯ I DUNNO LOL 2012-07-02 09:31
    One version of OS X TextEdit.app (10.4 era I think) somehow had the ability to insert control-P characters into the text. I was using plain old TextEdit.app rather than XCode because this was mostly a bunch of 8-bit assembly language code I was working on, such as for hacking on old video game consoles, and sometimes little command line utilities in C.

    I never figured out what sloppy keyboarding I did to trigger the control-P, but since it was completely invisible, even when whatever compiler/assembler I was using bitched about the line of code, it still took me a minute or two before I found the place where I had to hit the left/right arrow keys twice to pass.
  • @Deprecated 2012-07-02 09:47
    So, did the rockstars come back and make it work in short order? Or did Martin replace it with something off the shelf?

    BTW, what is "WCF"? I'd like to think it's pronounced "Whatza F???"
  • Bob 2012-07-02 09:49
    C# doesn't have a chr() function?

    I agree that Martin doesn't qualify as a decent programmer, however, it seems the "rockstars" don't either.
  • scott 2012-07-02 09:49
    ¯\(°_o)/¯ I DUNNO LOL:
    One version of OS X TextEdit.app (10.4 era I think) somehow had the ability to insert control-P characters into the text. I was using plain old TextEdit.app rather than XCode because this was mostly a bunch of 8-bit assembly language code I was working on, such as for hacking on old video game consoles, and sometimes little command line utilities in C.

    I never figured out what sloppy keyboarding I did to trigger the control-P, but since it was completely invisible, even when whatever compiler/assembler I was using bitched about the line of code, it still took me a minute or two before I found the place where I had to hit the left/right arrow keys twice to pass.


    Yeah, well, Xcode 3.2 still has this "feature". About once a year I get a line of code that will not compile until I retype it character for visible character...
  • Bob 2012-07-02 09:49
    Ha! C# _doesn't_ have a chr() function!

    However, you can cast, so still no excuse.
  • ObiWayneKenobi 2012-07-02 09:51
    Sounds kind of like they were trying to do a NoSQL database type of thing, but failed miserably.

    Lesson: There's a difference between REAL "rockstar" developers, and snake oil salesmen who happen to talk a big game.
  • dkf 2012-07-02 09:54
    @Deprecated:
    BTW, what is "WCF"?
    Windows Communication Foundation.

    I wish I didn't know that.
  • David Crowell 2012-07-02 09:54
    Ding! Fries are done!
  • toth 2012-07-02 09:56
    Martin didn't want to be responsible for code that he hadn't seed nor couldn't build


    ...Does TDWTF have editors?
  • PiisAWheeL 2012-07-02 09:57
    David Crowell:
    Ding! Fries are done!
    I work at burger king i make flaming whoppers i wear paper hats!

    Really not a very exciting 1 tho.
  • Anon 2012-07-02 09:59
    Yes, but they use visible characters only.
  • rss is broken 2012-07-02 10:02
    article breaks rss
  • Someone You Know 2012-07-02 10:02
    Alex Papadimoulis:
    When it called for an airplaneā€¦ well, they'd just build a carplane. A boat? Try a carboat.


    And we can save them hundreds by combining their plane, car and boat policies!
  • For the Proliferation of Excellence 2012-07-02 10:06
    Is there still a "live" version of How to Write Unmaintainable Code, that this ought to be added to? :-)
  • Rootbeer 2012-07-02 10:17

    The Real What TF is that they misused BEL as a delimiter when there's already an ASCII Unit Separator non-printable control character (0x1F) that fits the purpose exactly, right?
  • PleegWat 2012-07-02 10:26
    I wouldn't expect a chr() character in C#, but I'd expect "\a" or "\009" works?
  • Steve The Cynic 2012-07-02 10:41
    Re: Rotary engines.

    "Rotary engine" originally referred to engines that look superficially like "radial" engines, except that the crankshaft is bolted to the plane and the engine block to the propeller, rather than the other way around, with the result that the engine block rotates... It saw a reasonable amount of use on aircraft up to the 1920s, and limited application in motorcycles and a very few cars, all in more or less the same period. It's a poor fit for most automotive applications, since the "ideal" place to put it is in one or more of the wheels, and that does dubious things to the unsprung weight, and therefore to handling.

    The other common application of the term "rotary engine" is pistonless engines such as the Wankel rotary. This is perfectly acceptable as an engine for cars, motorbikes, aircraft and other applications where a compact high-power engine is needed.

    So, rotary engines having problems migrating from cars to aeroplanes is a poor analogy (since it isn't true) for wonky software design (which evidently is true in this case)...
  • William 2012-07-02 10:48
    scott:
    ¯\(°_o)/¯ I DUNNO LOL:
    One version of OS X TextEdit.app (10.4 era I think) somehow had the ability to insert control-P characters into the text. I was using plain old TextEdit.app rather than XCode because this was mostly a bunch of 8-bit assembly language code I was working on, such as for hacking on old video game consoles, and sometimes little command line utilities in C.

    I never figured out what sloppy keyboarding I did to trigger the control-P, but since it was completely invisible, even when whatever compiler/assembler I was using bitched about the line of code, it still took me a minute or two before I found the place where I had to hit the left/right arrow keys twice to pass.


    Yeah, well, Xcode 3.2 still has this "feature". About once a year I get a line of code that will not compile until I retype it character for visible character...


    Bummer that y'all don't have a zap gremlins or show invisibles feature.
  • Roby McAndrew 2012-07-02 11:02
    ...Does TDWTF have editors?


    We got both editor kinds of editor ! We got Vi AND emacs !
  • Nemosoft Unv. 2012-07-02 11:03
    Martin is just lucky that his editor doesn't actually generate a beep when it hits a BEL character... Imagine this conversation taking place outside Martin's cubicle between two fellow developers:

    "I didn't know our editors had built-in censor capabilities..."
  • Nagesh 2012-07-02 11:04
    PleegWat:
    I wouldn't expect a chr() character in C#, but I'd expect "\a" or "\009" works?

    Not unless 009 suddenly became the octal notation for seven.
  • Some Damn Yank 2012-07-02 11:19
    toth:
    Martin didn't want to be responsible for code that he hadn't seed nor couldn't build


    ...Does TDWTF have editors?
    No. You have to ask?
  • Some Damn Yank 2012-07-02 11:22
    Rootbeer:

    The Real What TF is that they misused BEL as a delimiter when there's already an ASCII Unit Separator non-printable control character (0x1F) that fits the purpose exactly, right?
    BEL BEL BEL BEL BEL! You get the prize!
  • steroberts89 2012-07-02 11:23
    Windows Communication Foundation
  • no laughing matter 2012-07-02 11:26
    Bob:
    Ha! C# _doesn't_ have a chr() function!
    What a retarded programming-language!

    Bob:
    However, you can cast, so still no excuse.
    So instead of rockstars they should have employed wizards?
  • qbolec 2012-07-02 11:29
    We have our own home-grown NoSQL database at nk, and it uses spaces for separation which provides even more fun with escaping and unescaping.

    We also use our own scheme of serialization of table rows for cacheing which is uses \xFF as separator, which is quite unlikely to happen anywhere in UTF-8 strings or numbers (and most of coulmns are of either of these types), but in case it happens we escape it by doubling (\xFF becomes \xFF\xFF).

    We thought for a minute about using \0 which also doesn't happen inside regular strings, but that would be problematic for almost every part of the stack.

    I've never heard about unit separator ASCII character but sounds elegant, if it doesn't occur in UTF-8 strings to often.

    I've heard about guys who were implementing some MMORPG internet protocol which chosen 37 (or some other odd byte) as a separator, which was found by experiment to be the least probable byte value. It was like 12 years ago, but I am still wondering WTF was wrong with them, their priorities, their architecture, their stats analyzis, and their data distribution.
  • PiisAWheeL 2012-07-02 11:38
    Steve The Cynic:
    Re: Rotary engines.

    "Rotary engine" originally referred to engines that look superficially like "radial" engines, except that the crankshaft is bolted to the plane and the engine block to the propeller, rather than the other way around, with the result that the engine block rotates... It saw a reasonable amount of use on aircraft up to the 1920s, and limited application in motorcycles and a very few cars, all in more or less the same period. It's a poor fit for most automotive applications, since the "ideal" place to put it is in one or more of the wheels, and that does dubious things to the unsprung weight, and therefore to handling.

    The other common application of the term "rotary engine" is pistonless engines such as the Wankel rotary. This is perfectly acceptable as an engine for cars, motorbikes, aircraft and other applications where a compact high-power engine is needed.

    So, rotary engines having problems migrating from cars to aeroplanes is a poor analogy (since it isn't true) for wonky software design (which evidently is true in this case)...
    Given what these 2 crackpot programmers do I would say that a rotary engine in any application is a perfect analogy to anything these 2 programmers are trying to accomplish.
  • Christian 2012-07-02 11:45
    There are advantages to being second. Not being the first to be blamed for one...
  • Sociopath 2012-07-02 12:03
    ObiWayneKenobi:
    Lesson: There's a difference between REAL "rockstar" developers, and snake oil salesmen who happen to talk a big game.

    The former are smart. The latter are rich.
  • Scrummy 2012-07-02 12:21
    Agile strongly discourages "rockstar programmers." Everyone on the team should be well-versed in all areas of the codebase(s). This provides for emergent design, which is a far superior outcome to the kind of not-invented-here code we see in today's WTF.
  • an editor 2012-07-02 12:22
    toth:
    Martin didn't want to be responsible for code that he hadn't seed nor couldn't build


    ...Do TDWTF have editors?


    FTFY
  • Nagesh 2012-07-02 12:31
    qbolec:
    uses \xFF as separator, which is quite unlikely to happen anywhere in UTF-8 strings
    To say the least. \xFF is not allowed at all in well-formed UTF-8.
    qbolec:
    I've never heard about unit separator ASCII character but sounds elegant, if it doesn't occur in UTF-8 strings to often.
    Every 7-bit ASCII character appears as itself in UTF-8 encoding, and nothing that looks like a 7-bit ASCII character ever appears in UTF-8 except to represent that particular 7-bit ASCII character in the represented Unicode string. This is true for the ASCII control characters too.
  • no laughing matter 2012-07-02 12:38
    Scrummy:
    Agile strongly discourages "rockstar programmers." Everyone on the team should be well-versed in all areas of the codebase(s). This provides for emergent design, which is a far superior outcome to the kind of not-invented-here code we see in today's WTF.

    If you are using todays WTF as a benchmark for your crummy software development method, you fail at marketing.
  • Zylon 2012-07-02 13:04
    Rootbeer:
    The Real What TF is that they misused BEL as a delimiter when there's already an ASCII Unit Separator non-printable control character (0x1F) that fits the purpose exactly, right?

    Pretty much any arbitrary character in the 1 - 31 range except backspace/tab/newline/carriage return could be used as a delimiter these days.
  • Gurth 2012-07-02 13:21
    The BEL character was originally used to cause an audible beep or buzz on terminals

    No, it was originally used to ring the physical bell on a teletype. That is, a low-tech version of this.
  • aa 2012-07-02 13:23
    Zylon:
    Rootbeer:
    The Real What TF is that they misused BEL as a delimiter when there's already an ASCII Unit Separator non-printable control character (0x1F) that fits the purpose exactly, right?

    Pretty much any arbitrary character in the 1 - 31 range except backspace/tab/newline/carriage return could be used as a delimiter these days.

    My first instinct would be to pick something common, like ':', then build in some escape sequences. What if some data gets thrown at it that happens to contain the more esoteric of the ASCII?
  • Scrummy 2012-07-02 13:35
    no laughing matter:
    Scrummy:
    Agile strongly discourages "rockstar programmers." Everyone on the team should be well-versed in all areas of the codebase(s). This provides for emergent design, which is a far superior outcome to the kind of not-invented-here code we see in today's WTF.

    If you are using todays WTF as a benchmark for your crummy software development method, you fail at marketing.


    I believe you fail at reading comprehension. What I was saying is that Agile would have AVOIDED today's WTF. Guaranteed.
  • pjt33 2012-07-02 13:42
    qbolec:
    \xFF as separator, which is quite unlikely to happen anywhere in UTF-8 strings or numbers (and most of coulmns are of either of these types), but in case it happens we escape it by doubling (\xFF becomes \xFF\xFF)

    I'm guessing that you don't use negative integers much.
  • Steve 2012-07-02 14:06
    Martin is lucky that he wasn't relegated to "forth-rate status", because then he might have to use the Forth language.
  • JJ 2012-07-02 14:30
    TFA:
    ...he was never was able...

    ...forth-rate...

    ...that he hadn't seed nor couldn't build...

    Ouch.
  • Kenny Akridge 2012-07-02 14:46
    This seems silly to me. If you want a chr() function in C#, write the function. The cast works just fine though. What's the problem?
  • Daily C# Codemonkey 2012-07-02 14:57
    Bob:
    Ha! C# _doesn't_ have a chr() function!

    However, you can cast, so still no excuse.


    C# has a Chr() function. It's in the VB-to-VB.Net compatibility library, which is plain ol' .Net and can be used from C#.

    See here:http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.strings.chr.aspx

    Also, can someone take Akismet out back and shoot it? It thinks this is spam. The correct classification is "nitpick".
  • Coyne 2012-07-02 15:04
    Scrummy:
    Agile strongly discourages "rockstar programmers." Everyone on the team should be well-versed in all areas of the codebase(s). This provides for emergent design, which is a far superior outcome to the kind of not-invented-here code we see in today's WTF.


    "Rockstar" programmers do just fine in agile environments.

    They design everything with no plan for the future (because we'll worry about that when it comes).

    They put together write-once-work-once code that everyone else is expected to use as an example of perfection.

    They examine the the common code base to drive everyone else crazy by criticizing their code. Best of all, in this category, is criticizing code patterned after what the "rockstars" originally wrote.

    Everyone else is expected to know the whole code base, but except for the random critical attacks, the "rockstars" can't be bothered.

    Finally, by the time the spit really hits the fan, the "rockstars" have moved on to greater "gigs"; and won't deign to revert to lesser things. Anyway, it's the current maintainers' fault because they didn't follow the "rockstars'" perfect plan.

    They're agile as can be.
  • Jinren 2012-07-02 15:05
    Doesn't that result in violence?
  • Zylon 2012-07-02 15:48
    Steve:
    Martin is lucky that he wasn't relegated to "forth-rate status", because then he might have to use the Forth language.

    That's cute the way you felt like you had to explain what Forth is.
  • herby 2012-07-02 15:49
    Then there is a truism that follows:
    Anyone who calls themselves a "rockstar" (programmer, etc.) probably isn't.
    Anything else is generally a WTF moment!
  • da Doctah 2012-07-02 15:54
    Scrummy:
    Agile strongly discourages "rockstar programmers." Everyone on the team should be well-versed in all areas of the codebase(s). This provides for emergent design, which is a far superior outcome to the kind of not-invented-here code we see in today's WTF.
    But being rockstars explains why they thought their database needed more cowbell.
  • Jay 2012-07-02 16:14
    Gurth:
    The BEL character was originally used to cause an audible beep or buzz on terminals

    No, it was originally used to ring the physical bell on a teletype. That is, a low-tech version of this.


    Or more specifically, one of these.
  • Captcha:ideo 2012-07-02 16:28
    Rootbeer:

    The Real What TF is that they misused BEL as a delimiter when there's already an ASCII Unit Separator non-printable control character (0x1F) that fits the purpose exactly, right?

    Nobody cares about lower ASCII characters anymore (excluding tab, space,newline, etc). UTF-8 should just declare them all invalid and have software convert them into spaces or just remove them silently.

    ASCII is the perfect example of a standard that was designed with lots of features that are just unnecessary today (though I suppose they were used back then). The other example is HTTP (PUT, DELETE, OPTIONS, PATCH?).
  • PseudoBovine 2012-07-02 16:46
    Jay:
    Gurth:
    The BEL character was originally used to cause an audible beep or buzz on terminals

    No, it was originally used to ring the physical bell on a teletype. That is, a low-tech version of this.


    Or more specifically, one of these.


    Pff. Young'uns. In my day it was one of these.

    (Yes, it's a joke. I'm not *that* old.)
  • qbolec 2012-07-02 16:57
    pjt33:
    qbolec:
    \xFF as separator, which is quite unlikely to happen anywhere in UTF-8 strings or numbers (and most of coulmns are of either of these types), but in case it happens we escape it by doubling (\xFF becomes \xFF\xFF)

    I'm guessing that you don't use negative integers much.

    nice one;)

    Unfortunately once you get into PHP world you start to believe that "-123" is a negative number. Then you start to believe that JSON is a compact serialization format.

    I must admit that using \xFF as a separator and serializing -123 as "-123" in the same piece of software is a symptom of schizophrenia, at least. Thanks for bringing it back to my attention :)
  • Nagesh 2012-07-02 17:04
    herby:
    Then there is a truism that follows:
    Anyone who calls themselves a "rockstar" (programmer, etc.) probably isn't.
    Absent specific anecdata to back it up, I refuse to believe that anyone calls themself a "rockstar". The word is only ever used as a derogatory reference to other people whose behavior fits the Rock Star antipattern. Also, possibly by particularly clueless managers who haven't grasped that it's an antipattern.

    (Actual performing artists are a possible exception, though I suspect they too prefer using more specific words about themselves).
  • Nagesh 2012-07-02 17:19
    Captcha:ideo:

    Nobody cares about lower ASCII characters anymore (excluding tab, space,newline, etc). UTF-8 should just declare them all invalid and have software convert them into spaces or just remove them silently.
    How would you use Emacs in an UTF-8 terminal, then?

    Also, at a more principled level, UTF-8 has no business deciding that any codepoints Unicode defines are unworthy of being encoded. Its mandate is to be able to express any imaginable sequence of codepoints, and it takes that reasonably seriously.

    Also also, it's very easy to think up scenarios where it could open a pretty serious security problem if UTF-8 decoders began producing spaces from unwanted byte combinations, or even removing them silently. Imagine someone thinking themselves secure because they have verified that the UTF-8 input doesn't contain ".." anywhere and then later convert the checked string to UTF-16, silently removing the spurious bytes in ".\x01./.\0x01./.\x01./etc/passwd"?

    HIBT?
  • Matt Westwood 2012-07-02 17:53
    Any program which is passed from one s/w designer to another which the latter can't get to work is always the fault of the former. If they're pressing the wrong buttons, it's because you haven't told them what the buttons do. If it hasn't been configured correctly, it's because you haven't provided the configuration instructions. And if the fucker won't work because of bugs, then it is the top priority for the shithead who wrote it to fix the cunt.

    I took over a program from someone at short notice a few months ago and it took me a week to get up to speed, because (a) the configuration had been changed at the last minute and the fuckwit hadn't checked in all the changes, (b) the underlying architecture had been amended and the installation instructions hadn't been updated (they were incomplete and misleading in the first place) and (c) the actual code I was supposed to be working on didn't even compile caused the IDE to crash when checked out of CVS. The reason it took so long to fix it was because the perpetrator of this shabby shower of shit was too busy to talk to me (he was schmoozing with managers) and frantic emails to him were responded to with "Well I'm sure if you were just to apply yourself with a little more zeal you'd soon be able to fix what, knowing you, are probably trivial issues."

    All's well that ended well, when I finally managed to get his boss to persuade him to spend a couple of hours with me to look over my shoulder to make sure I wasn't doing anything wrong. And indeed, the stupid cunt finally got the fucking message that he had seriously fucked up. More to the point, his boss also got the message that he had fucked up. Even more to the point, it was noted that not only had he fucked up but he had also been complacent about such fucking up. His push to be promoted to senior consultant has met up against considerable resistance. And I'm convinced he wears a wig.
  • Andrew 2012-07-02 18:15
    What is even worse is that there are legitimate ASCII control codes for delimiting text:
    http://en.wikipedia.org/wiki/Delimiter#ASCII_delimited_text
  • Jim 2012-07-02 18:32
    Even if we change seed to seen, this hurt my head:
    "...for code that he hadn't seed nor couldn't build..."
  • da Doctah 2012-07-02 18:36
    I'm coming up blank trying to remember the context, but there was some environment in my past where BEL characters had a special (non-audio) significance. Not field delimiters, exactly, but something like record terminators, or "wait for input here" indicators.

    Something about as mnemonic as SUB (aka Ctrl-Z) for terminating input in a DOS prompt window.
  • Friedrice the Great 2012-07-02 18:41
    Scrummy:
    no laughing matter:
    Scrummy:
    Agile strongly discourages "rockstar programmers." Everyone on the team should be well-versed in all areas of the codebase(s). This provides for emergent design, which is a far superior outcome to the kind of not-invented-here code we see in today's WTF.

    If you are using todays WTF as a benchmark for your crummy software development method, you fail at marketing.


    I believe you fail at reading comprehension. What I was saying is that Agile would have AVOIDED today's WTF. Guaranteed.


    Oh, so the Not-Invented-Here code would have been written by the TEAM instead of the "rockstar" programmers?"
  • dogmatic 2012-07-02 19:19
    I have never actually met a 'junior' consultant. All consultants are senior, at least according to those that hired them.
  • Jim 2012-07-02 19:34
    PseudoBovine:
    Jay:
    Gurth:
    The BEL character was originally used to cause an audible beep or buzz on terminals

    No, it was originally used to ring the physical bell on a teletype. That is, a low-tech version of this.


    Or more specifically, one of these.


    Pff. Young'uns. In my day it was one of these.

    (Yes, it's a joke. I'm not *that* old.)



  • Techpaul 2012-07-02 20:47
    Jay:
    Gurth:
    The BEL character was originally used to cause an audible beep or buzz on terminals

    No, it was originally used to ring the physical bell on a teletype. That is, a low-tech version of this.


    Or more specifically, one of these.


    Now I feel ancient remembering using them and loading paper tape. No doubt some will say whats paper tape.
  • foo 2012-07-02 23:08
    Nagesh:
    PleegWat:
    I wouldn't expect a chr() character in C#, but I'd expect "\a" or "\009" works?

    Not unless 009 suddenly became the octal notation for seven.
    James Bond 009: You only live thrice.
  • foo 2012-07-02 23:25
    Captcha:ideo:
    Rootbeer:

    The Real What TF is that they misused BEL as a delimiter when there's already an ASCII Unit Separator non-printable control character (0x1F) that fits the purpose exactly, right?

    Nobody cares about lower ASCII characters anymore (excluding tab, space,newline, etc). UTF-8 should just declare them all invalid and have software convert them into spaces or just remove them silently.
    Not sure if you're trolling or just never bothered to look outside your Windows, but some other are still in current use, including EOT 4 (end of terminal text input), FF 12 (page break in text files), XON 17/XOFF 19 (pause/continue output) and of course ESC 27 for terminal control sequences or, to put it in fashionable terms, for serializing operations such as text color etc.

    I even use BEL to get notified about some important events since it works even if my audio is turned off or muted.
    ASCII is the perfect example of a standard that was designed with lots of features that are just unnecessary today (though I suppose they were used back then). The other example is HTTP (PUT, DELETE, OPTIONS, PATCH?).
    And the other other example is just about any standard of a certain age. C library functions, x64 machine instructions, SMTP protocol, ..., you name it.
  • foo 2012-07-02 23:26
    Meant x86 of course.
  • Mr Obvious 2012-07-03 00:59
    Captcha:ideo:
    ASCII is the perfect example of a standard that was designed with lots of features that are just unnecessary today (though I suppose they were used back then). The other example is HTTP (PUT, DELETE, OPTIONS, PATCH?).

    Read up on RESTful and then creep back into your hole fool!
  • Dirk 2012-07-03 01:07

    If this is reinventing the wheel I'm all for it! This thing's awesome!!!
  • Steve The Cynic 2012-07-03 03:08
    Captcha:ideo:
    Nobody cares about lower ASCII characters anymore (excluding tab, space,newline, etc). UTF-8 should just declare them all invalid and have software convert them into spaces or just remove them silently.

    I care about them enough to know that space isn't a "lower" ASCII character. (Hint: they begin at '\x00' and end at '\x1F', and space is '\x20'...)
  • 2nd class programmer 2012-07-03 03:16
    Roby McAndrew:
    ...Does TDWTF have editors?


    We got both editor kinds of editor ! We got Vi AND emacs !


    Yeah, you got Phobos and Deimos...
  • Anonymouse 2012-07-03 06:55
    LarryDavid:
    oheso:
    I typically refuse to be responsible for code I haven't seed, too.
    Everybody knows you should always seed
    I usually have to seed after chatting to that hot chick in accounting.
  • Hewes 2012-07-03 07:40
    Scrummy:
    no laughing matter:
    Scrummy:
    Agile strongly discourages "rockstar programmers." Everyone on the team should be well-versed in all areas of the codebase(s). This provides for emergent design, which is a far superior outcome to the kind of not-invented-here code we see in today's WTF.

    If you are using todays WTF as a benchmark for your crummy software development method, you fail at marketing.


    I believe you fail at reading comprehension. What I was saying is that Agile would have AVOIDED today's WTF. Guaranteed.


    I still can't figure out what this guy is trying to sell...

    Captcha saluto: We who are about to die saluto you
  • ¯\(°_o)/¯ I DUNNO LOL 2012-07-03 08:13
    qbolec:
    We also use our own scheme of serialization of table rows for cacheing which is uses \xFF as separator, which is quite unlikely to happen anywhere in UTF-8 strings or numbers (and most of coulmns are of either of these types), but in case it happens we escape it by doubling (\xFF becomes \xFF\xFF).

    Back in the late '90s I worked on an embedded system that used \xFF as a record separator in inter-process messages.

    This worked great except for one thing: when they added a PC POS (yes, Point of Sale) to the equation, they needed to pass around a MAC address. There was no escaping, and their VB6 code was sufficiently stupid that they couldn't just make an exception for that parameter type to always be 6 bytes or always at the end of the record or whatever.

    So for a while, whenever they got in new Ethernet cards to build a new POS at the factory, they would have to check each one and make sure that it didn't have \xFF in the MAC address.
  • QJo 2012-07-03 08:16
    Steve The Cynic:
    Captcha:ideo:
    Nobody cares about lower ASCII characters anymore (excluding tab, space,newline, etc). UTF-8 should just declare them all invalid and have software convert them into spaces or just remove them silently.

    I care about them enough to know that space isn't a "lower" ASCII character. (Hint: they begin at '\x00' and end at '\x1F', and space is '\x20'...)


    If you were to make a mistake and replace \x20 with a space I doubt anyone would make too much of a fuss.
  • QJo 2012-07-03 08:20
    Roby McAndrew:
    ...Does TDWTF have editors?


    We got both editor kinds of editor ! We got Vi AND emacs !


    Presumably this is supposed to read:
    "We gaaht aaahl kaahnds of editah! We gaaht Vi aiyund emacs!"
  • My Name 2012-07-03 08:48
    Zylon:
    Steve:
    Martin is lucky that he wasn't relegated to "forth-rate status", because then he might have to use the Forth language.

    That's cute the way you felt like you had to explain what Forth is.

    I only have any idea what Forth is because I remember useless information for decades at a time.;-)
  • Cbuttius 2012-07-03 08:57
    In C++ you can do \x07

    There is no huge WTF about using a non-printable character as a delimiter, is it a far better one than having to deal with comma as a delimiter and then having to work out where this is used in quoted text.

    Having different serialization functions in different places that were all different is probably historic. Someone needed one, the existing one didn't fit and it was too risky to change it so they just wrote a new one.
  • monkeyPushButton 2012-07-03 09:46
    da Doctah:
    Scrummy:
    Agile strongly discourages "rockstar programmers." Everyone on the team should be well-versed in all areas of the codebase(s). This provides for emergent design, which is a far superior outcome to the kind of not-invented-here code we see in today's WTF.
    But being rockstars explains why they thought their database needed more cowbell.

    Real Rockstar programmers use one of these

    so their hands are free to program.

    The cowbelt in action
    http://www.youtube.com/watch?v=mxnFDaZ4WXE
  • Scrummy 2012-07-03 10:02
    Friedrice the Great:
    Scrummy:
    no laughing matter:
    Scrummy:
    Agile strongly discourages "rockstar programmers." Everyone on the team should be well-versed in all areas of the codebase(s). This provides for emergent design, which is a far superior outcome to the kind of not-invented-here code we see in today's WTF.

    If you are using todays WTF as a benchmark for your crummy software development method, you fail at marketing.


    I believe you fail at reading comprehension. What I was saying is that Agile would have AVOIDED today's WTF. Guaranteed.


    Oh, so the Not-Invented-Here code would have been written by the TEAM instead of the "rockstar" programmers?"


    Or it would not have been written at all, which is my assertion. That's the beauty of a team of empowered peers -- it fosters an environment where the better ideas bubble to the top, and the lesser ideas are quickly exposed. Anyone who claims that Agile teams don't work this way obviously has never seen a true Agile team at work.
  • Cbuttius 2012-07-03 10:19
    For most companies who decide to adopt "agile" this "team" attitude is just put there by thick neurotypicals to keep the intellectual aspies out.

  • DCRoss 2012-07-03 10:54
    @Deprecated:
    BTW, what is "WCF"? I'd like to think it's pronounced "Whatza F???"


    Officially it's pronounced "Indigo", with silent 'W', 'C', and 'F', but I think it's more appropriate to call it 'WhaCkofF'. The trick is to properly enunciate the upper case 'C' in the middle.

  • Zylon 2012-07-03 11:26
    Steve The Cynic:
    Captcha:ideo:
    Nobody cares about lower ASCII characters anymore (excluding tab, space,newline, etc). UTF-8 should just declare them all invalid and have software convert them into spaces or just remove them silently.

    I care about them enough to know that space isn't a "lower" ASCII character. (Hint: they begin at '\x00' and end at '\x1F', and space is '\x20'...)

    Um, no. The 0-31 range is control characters. "Low ASCII" is a retronym referring to the 0-127 range, with 128-255 being the non-standardized "high ASCII" range.
  • Scrummy 2012-07-03 11:43
    Cbuttius:
    For most companies who decide to adopt "agile" this "team" attitude is just put there by thick neurotypicals to keep the intellectual aspies out.



    We like to call companies like those "AINO's."
  • The Bytemaster 2012-07-03 12:43
    STX. Pardon me, but I would linke to ENQ more about your BEL article. I ACK your work, but cannot ESC the throught that you used a lot of BS in it. Right from STX something was a bit fishy about it. Can you tell me if you SUB items in your articles? A simple ACK or NAK would be fine. Thank you.

    ETX
    EOT
  • no laughing matter 2012-07-03 12:50
    Scrummy:

    Anyone who claims that Agile teams don't work this way obviously has never seen a true scotsman at work.

    FTFY!
  • Svensson 2012-07-03 13:10
    no laughing matter:
    Scrummy:

    Anyone who claims that Agile teams don't work this way obviously has never seen a true scotsman at work.

    FTFY!

    Yes!

    But Scrummy's original comment is correct in one respect: I have never seen a "true agile team" at work. In fact, if you look at all the things that Agile advocates claim for it, I think I can reasonably conjecture that NOBODY has ever seen a "true agile team" at work.
  • Nexzus 2012-07-03 13:39
    Ah yes, CHR$07 on the Apple II gs in third grade.

    10. print CHR$07
    20. GOTO 10

    *beep* *beep* *beep* *beep*... ad infinitum.

    I thought I was a genius.
  • shadowman 2012-07-03 14:19
    Am Disappoint:
    See a moderateley WTF story
    Come to the site to look for snide meta-comments in the source of the story
    None there

    Very Disappoint.

    CAPTCHA: damnum - It's that damnum that's breaking the record


    Those are Remy's thing, this was an Alex Story.
  • Scrummy 2012-07-03 14:33
    Svensson:
    no laughing matter:
    Scrummy:

    Anyone who claims that Agile teams don't work this way obviously has never seen a true scotsman at work.

    FTFY!

    Yes!

    But Scrummy's original comment is correct in one respect: I have never seen a "true agile team" at work. In fact, if you look at all the things that Agile advocates claim for it, I think I can reasonably conjecture that NOBODY has ever seen a "true agile team" at work.


    All it takes is one team to make your conjecture completely unreasonable then.

    My team is a highly-functioning Scrum team. We have very engaged stakeholders, write tests first religiously, and our automation is second to none. Scrum helps those who help themselves, to paraphrase an old adage. It is really a brilliant framework, but it requires diligent buy-in by everyone involved, from executives in the company to developers on the team.
  • Bob 2012-07-03 14:40
    Roby McAndrew:
    We got both editor kinds of editor ! We got Vi AND emacs !
    This ain't no Hank Williams code!
  • Nagesh 2012-07-03 15:46
    Scrummy:
    Svensson:
    no laughing matter:
    Scrummy:

    Anyone who claims that Agile teams don't work this way obviously has never seen a true scotsman at work.

    FTFY!

    Yes!

    But Scrummy's original comment is correct in one respect: I have never seen a "true agile team" at work. In fact, if you look at all the things that Agile advocates claim for it, I think I can reasonably conjecture that NOBODY has ever seen a "true agile team" at work.


    All it takes is one team to make your conjecture completely unreasonable then.

    My team is a highly-functioning Scrum team. We have very engaged stakeholders, write tests first religiously, and our automation is second to none. Scrum helps those who help themselves, to paraphrase an old adage. It is really a brilliant framework, but it requires diligent buy-in by everyone involved, from executives in the company to developers on the team.


    Obvious you're working in cmm level 5 and above company.

    What part of India do you come in?
  • Ragnax 2012-07-03 18:01
    DCRoss:

    but I think it's more appropriate to call it 'WhaCkofF'. The trick is to properly enunciate the upper case 'C' in the middle.

    Pronounced in the right way, that sounds like a whip being cracked, ... or a face being backhanded. Whichever you prefer, really. Both are equally appropriate in the context of WCF ...
  • Aargle Zymurgy 2012-07-03 18:16
    Wow... this many comments and not a peep about using CSV?
  • Shinobu 2012-07-04 04:57
    Just testing... ''
  • Cbuttius 2012-07-04 05:34
    Aargle Zymurgy:
    Wow... this many comments and not a peep about using CSV?


    I did earlier you just weren't reading properly.

    comma really is a very poor choice of delimiter.

    There are altneratives that are humanly readable and typeable but rarely used in data, e.g. ` (very infrequently required) and | (usually infrequent).

    Tab is commonly used which is ok except that Microsoft Word seems to be the only text editor that allows you to find-replace using it (you put in ^t for it), which often leads me to copy-pasting text into blank Word documents just to "process" it into tab-separated before copying it back (to Excel or wherever).




  • no laughing matter 2012-07-04 07:23
    Cbuttius:

    Tab is commonly used which is ok except that Microsoft Word seems to be the only text editor that allows you to find-replace using it

    Wait what?!?
    Cbuttius:

    Microsoft Word seems to be the only text editor
    OK, you clearly don't know what a text editor is!

    (Hint: Notepad is not a text editor; as the name suggests, it's a pad for your notes; also Wordpad is not a text editor).

    Just three examples of real text-editors: Ultraedit; Programmer's file editor; Notepad++.

    A google search for "Windows text editor" will come up with lots and lots of alternatives.
  • Hogan 2012-07-04 11:22
    rss is broken:
    article breaks rss

    Or RSS breaks article.
  • Captcha:vereor 2012-07-04 15:36
    Nagesh:
    Also, at a more principled level, UTF-8 has no business deciding that any codepoints Unicode defines are unworthy of being encoded. Its mandate is to be able to express any imaginable sequence of codepoints, and it takes that reasonably seriously.

    Well, not UTF-8 then, just Unicode. Whatever.



    Also also, it's very easy to think up scenarios where it could open a pretty serious security problem if UTF-8 decoders began producing spaces from unwanted byte combinations, or even removing them silently. Imagine someone thinking themselves secure because they have verified that the UTF-8 input doesn't contain ".." anywhere and then later convert the checked string to UTF-16, silently removing the spurious bytes in ".\x01./.\0x01./.\x01./etc/passwd"?


    Oh, but that happens all the time today. You can trick such filters with percent-encoding, or other tricks. The solution is of course to actually test after it has been converted.

    HIBT?

    Probably not.
  • lucidfox 2012-07-05 01:33
    Surely TRWTF is WCF.
  • big picture thinker 2012-07-05 10:31
    PleegWat:
    I wouldn't expect a chr() character in C#, but I'd expect "\a" or "\009" works?


    There is a Chr() in VB.NET but there it does not exist in C# (also .NET).

    In C#, char is a 2-byte integer that represents a UTF-16 Unicode codepoint.


    To to use a hexadecimal escape sequence, you need to put the u:

    "For whom the \u0007 tolls"


    Or cast the codepoint to a char:

    char myBel = (char)7
    string myString = String.Format("For whom the {0} tolls", myBel);
  • Randy Snicker 2012-07-07 09:30
    <b>UPDATE</b>: Google Feedburner, our RSS feed host, apparently doesn't like BEL characters, so I removed it from the article in hopes that it will fix the broken feed.


    Wait? They worked at Google?
  • A Gould 2012-07-09 13:03
    Gurth:
    The BEL character was originally used to cause an audible beep or buzz on terminals

    No, it was originally used to ring the physical bell on a teletype. That is, a low-tech version of this.


    Ack, I suddenly feel old for being around when you used BEL to get the attention of the Sysop (or for them to get your attention). (Post-physical bell, but we got the point).

  • spstanley 2012-07-09 14:41
    Rootbeer:

    The Real What TF is that they misused BEL as a delimiter when there's already an ASCII Unit Separator non-printable control character (0x1F) that fits the purpose exactly, right?

    Now I want to use Emoji as delimiters.
  • spstanley 2012-07-09 14:43
    A Gould:
    Gurth:
    The BEL character was originally used to cause an audible beep or buzz on terminals

    No, it was originally used to ring the physical bell on a teletype. That is, a low-tech version of this.


    Ack, I suddenly feel old for being around when you used BEL to get the attention of the Sysop (or for them to get your attention). (Post-physical bell, but we got the point).


    WHADDAYA MEAN "POST"? I'M USING A TTY 33!
  • Luiz Felipe 2012-07-12 21:21
    Cbuttius:
    Aargle Zymurgy:
    Wow... this many comments and not a peep about using CSV?


    I did earlier you just weren't reading properly.

    comma really is a very poor choice of delimiter.

    There are altneratives that are humanly readable and typeable but rarely used in data, e.g. ` (very infrequently required) and | (usually infrequent).

    Tab is commonly used which is ok except that Microsoft Word seems to be the only text editor that allows you to find-replace using it (you put in ^t for it), which often leads me to copy-pasting text into blank Word documents just to "process" it into tab-separated before copying it back (to Excel or wherever).






    ç is a good delimiter character, no one uses it. yes, my native language has that abortion of character, i cleanse all my text of it before serialization
  • KMag 2012-07-15 12:25
    qbolec:
    We have our own home-grown NoSQL database at nk, and it uses spaces for separation which provides even more fun with escaping and unescaping.

    We also use our own scheme of serialization of table rows for cacheing which is uses \xFF as separator, which is quite unlikely to happen anywhere in UTF-8 strings or numbers (and most of coulmns are of either of these types), but in case it happens we escape it by doubling (\xFF becomes \xFF\xFF).

    We thought for a minute about using \0 which also doesn't happen inside regular strings, but that would be problematic for almost every part of the stack.

    I've never heard about unit separator ASCII character but sounds elegant, if it doesn't occur in UTF-8 strings to often.

    I've heard about guys who were implementing some MMORPG internet protocol which chosen 37 (or some other odd byte) as a separator, which was found by experiment to be the least probable byte value. It was like 12 years ago, but I am still wondering WTF was wrong with them, their priorities, their architecture, their stats analyzis, and their data distribution.


    No no no. Prefix (or postfix) the individual elements with a variable-length encoded integer. That way (1) you don't need to scan in order to parse and (2) no quoting is necessary. In-band signaling was a bad idea before phreakers figured out how to break it. Magic bytes aren't even quant or retro at this point, they're just broken. If you need a particular lexical order, then use 0x00 or 0xFF as delimiters and append multiple variable-length integers to the very end of your string, so you still don't need to quote magic bytes, or scan every byte in order to parse your data structure. This is faster and more robust than using delimiters.
  • AN AMAZING CODER 2012-07-16 00:07
    Captcha:ideo:

    ASCII is the perfect example of a standard that was designed with lots of features that are just unnecessary today (though I suppose they were used back then). The other example is HTTP (PUT, DELETE, OPTIONS, PATCH?).


    Can't tell if serious or troll