• blob (unregistered)

    Frist! Really, finally?

  • JonnyBravo (unregistered)

    This is unreadable before coffee.

    The real wtfs are that a site called the thedailywtf.com is not daily, and that it's been running 9 years without any advancement in the art of writing.

  • Missus (unregistered)

    The real WTF is that they are using local config-files at all. The configs should be stored on the server and copied over on every start of The Blob. This way the administrators can tweak the configs for everybody.

    If figure a simple HTTP REST API would be easy enough to setup. A procedure like the following:

    1. Somebody starts The Blob
    2. The Blob sends a POST /theblob/provideconfig request with local IP address to The Blobserver and waits.
    3. The blobserver connects vie SSH and starts the script that copies the file over
    4. The blobserver kills the blob instance running and restarts theblob with the parameter -nocopyconfig so that the cycle doesn't repeat
    5. The blob starts with an updated config
    client---------------------------------> blobserver
           POST provideconfig IP x.x.x.x
    
         <---------------------------------
           SSH cp smb://GlobalShared/...config.x.x.x.x
    
         <---------------------------------
           SSH killall blob
    
         <---------------------------------
           SSH nohup blob -nocopyconfig
    

    You see how this procedure is server-driven and thus easy to adapt.

  • RandomGuy (unregistered)

    Ceci n'est pas une commentaire.

  • Warren (unregistered)

    Premeir!

  • Zappes (unregistered)

    The real WTF is french.

  • ZoomST (unregistered)

    And to think Switzerland has four official languages, and none of them are English! Oh, Mon Déité!

  • (cs)

    "... an 'cleverly' optimized routine..."

  • Bill (unregistered)

    Was this written by Christopher Nolan with Guy Pearce playing the part of Sep?

  • Cyt (unregistered)

    We all know how this will be fixed: Adding tests for each possible translation of that string...

  • Brent (unregistered) in reply to ZoomST
    ZoomST:
    And to think Switzerland has four official languages, and none of them are English! Oh, Mon Déité!

    The perfect reason to use a fifth language that kludges together things from Germanic and Romance ones.

  • (cs)

    Easily solved. Just add a file in the directory called "No such file or directory" and then remove after installation.

  • foo (unregistered)
    • Hardcoded ssh to localhost
    • Dos-batch-style %escapes% in a Unix command line
    • else-branch empty except for a comment
    • Checking error messages instead of exit status
    • Failing to tell users that English is the only acceptable language
    • The whole mis-optimization in the first (last) place

    Insane in every way, indeed.

  • coffee warrior (unregistered) in reply to JonnyBravo
    JonnyBravo:
    This is unreadable before coffee.

    The real wtfs are that a site called the thedailywtf.com is not daily, and that it's been running 9 years without any advancement in the art of writing.

    these comments are pointless both before and after coffee

  • faoileag (unregistered) in reply to Brent
    Brent:
    ZoomST:
    And to think Switzerland has four official languages, and none of them are English!

    The perfect reason to use a fifth language that kludges together things from Germanic and Romance ones.

    Which would be English ;-)

    Honestly, I never figured out the reason for low-level commands like "ls" to be multilingual. Those who regularly work on the console usually have a decent enough command of English, and those who don't shouldn't perhaps work on the console.

  • foo (unregistered) in reply to TDWTF123
    TDWTF123:
    Easily solved. Just add a file in the directory called "No such file or directory" and then remove after installation.
    Except that it's ls'ing the file, not the directory. So maybe you could symlink it to "No such file or directory" and hope that putFile replaces the symlink. Otherwise you could ...

    Well, or you just copy the damn file manually. Certainly not as elegant, sure.

  • faoileag (unregistered) in reply to TDWTF123
    TDWTF123:
    Easily solved. Just add a file in the directory called "No such file or directory" and then remove after installation.
    You can actually leave it in, it doesn't matter. The remoted "ls" command looks for "BlobConfig.Config" and the result contains the result of that lookup - no matter how many "No such file or directory".txt files you create in Blob's config directory.
  • anonymous_coder() (unregistered) in reply to faoileag
    faoileag:
    Brent:
    ZoomST:
    And to think Switzerland has four official languages, and none of them are English!

    The perfect reason to use a fifth language that kludges together things from Germanic and Romance ones.

    Which would be English ;-)

    Honestly, I never figured out the reason for low-level commands like "ls" to be multilingual. Those who regularly work on the console usually have a decent enough command of English, and those who don't shouldn't perhaps work on the console.

    Try telling that to the Quebec government - that'll get you mired in bureaucratic hell for a good long time...

  • F (unregistered) in reply to faoileag
    faoileag:
    Brent:
    ZoomST:
    And to think Switzerland has four official languages, and none of them are English!

    The perfect reason to use a fifth language that kludges together things from Germanic and Romance ones.

    Which would be English ;-)

    Gosh. Well spotted.

  • faoileag (unregistered) in reply to anonymous_coder()
    anonymous_coder():
    faoileag:
    Honestly, I never figured out the reason for low-level commands like "ls" to be multilingual. Those who regularly work on the console usually have a decent enough command of English, and those who don't shouldn't perhaps work on the console.

    Try telling that to the Quebec government - that'll get you mired in bureaucratic hell for a good long time...

    They are not really that much a stickler for french, are they? "Sorry, we can't use that OS because it doesn't speak french"?? I shudder at the thought...

  • Pero perić (unregistered) in reply to foo
    foo:
    - Hardcoded ssh to localhost - Checking error messages instead of exit status - The whole mis-optimization in the first (last) place

    Insane in every way, indeed.

    FTFY

    There is a special place in hell for developers that use shell commands inside non-script code.

  • PlanB (unregistered)

    Easy Fix:

    Change the if to:

    if (!result.contains("BlobConfig.config"))

  • (cs) in reply to faoileag
    faoileag:
    anonymous_coder():
    faoileag:
    Honestly, I never figured out the reason for low-level commands like "ls" to be multilingual. Those who regularly work on the console usually have a decent enough command of English, and those who don't shouldn't perhaps work on the console.

    Try telling that to the Quebec government - that'll get you mired in bureaucratic hell for a good long time...

    They are not really that much a stickler for french, are they? "Sorry, we can't use that OS because it doesn't speak french"?? I shudder at the thought...
    Perhaps, but don't all OS's (and programming languages for that matter) speak fluent WTF?!

  • faoileag (unregistered) in reply to PlanB
    PlanB:
    Easy Fix:

    Change the if to:

    if (!result.contains("BlobConfig.config"))

    "ls: access for BlobConfig.config failed: No such file or directory."
  • foo (unregistered) in reply to Pero perić
    Pero perić:
    foo:
    - Hardcoded ssh to localhost - Checking error messages instead of exit status - The whole mis-optimization in the first (last) place

    Insane in every way, indeed.

    FTFY

    There is a special place in hell for developers that use shell commands inside non-script code.

    Wrong. Calling shell commands can be quite useful if done right (i.e., check the status instead of error messages; quote parameters correctly, or call the program directly and avoid the shell interpreter if you don't actually need its functionality; no direct alternative available (i.e., don't call the shell to test whether a file exists, even without the redundant ssh).

    BTW, you didn't actually "fix" anything "for me" (that's what the acronym means, since you probably don't know it). You just quoted part of my comment and added your wrong opinion.

  • faoileag (unregistered) in reply to snoofle
    snoofle:
    but don't all OS's (and programming languages for that matter) speak fluent WTF?!
    But... I thought that was intentional? For those "apart from..." moments?

    Developer: I've developed this great OS. No security holes, as stable as a double-t bar lying on the ground and it's free!

    Manager: Great product! I can't find a single flaw! But we can't release it like that. We need a few things that irk some people, so that there will be flame wars and such. Without those controversial features, nobody will talk about it!

  • justsomedudette (unregistered) in reply to Zappes
    Zappes:
    The real WTF is french.
    The real WTF is that this wasn't the first comment.
  • (cs) in reply to foo
    foo:
    - Hardcoded ssh to localhost - Dos-batch-style %escapes% in a Unix command line - else-branch empty except for a comment - Checking error messages instead of exit status - Failing to tell users that English is the only acceptable language - The whole mis-optimization in the first (last) place

    Insane in every way, indeed.

    Not to mention using a static remotely shared over smb config.

  • Smug Unix User (unregistered)

    man test

  • (cs) in reply to faoileag
    faoileag:
    Honestly, I never figured out the reason for low-level commands like "ls" to be multilingual. Those who regularly work on the console usually have a decent enough command of English, and those who don't shouldn't perhaps work on the console.
    People who work on the console might or might not have a good grasp of English, but if they do, it might be because too many developers have this sort of arrogant attitude.

    Oh, and this might well be a function of libc's perror() function rather than ls itself. That said, my FreeBSD box that I'm using right now doesn't have localised output from ls, nor from perror.

    Caveat lector: I'm a native English speaker. That's English - you know, from England - not that weird stuff you Americans speak that sounds sort of similar.

    And yes, I know, I have an arrogant attitude, too. Live with it...

  • Kasper (unregistered) in reply to ZoomST
    ZoomST:
    And to think Switzerland has four official languages, and none of them are English!
    The reason this is truly a WTF, is that English is probably the third most spoken language in Switzerland, ahead of two of the official languages. The number of foreigners living in Switzerland is so large, that people who speak English but none of the official languages might very well outnumber the minorities speaking the third and fourth official language.

    There are private companies in Switzerland, who has understood, the multilingual reality around them. With four official languages, two of which are widely spoken, you just need to deal with multiple languages. And once you are dealing with two languages, the barrier to deal with another is relatively small.

    For example when you get a credit card, your preferred language will be stored, such that the ATM will switch to your preferred language as soon as you insert the card. And English is one of the supported languages, in spite of not being an official language.

    Of course you do come across people who aren't speaking a perfect English, but who can make themselves understandable. Like the person in a shop who needed my phone number to call me, when a particular shipment arrived, then told me: "When it is here, you will become a phone".

    Private companies do have to worry about competition, and the number of foreigners who prefer English is a sizeable market segment. Authorities aren't that great at dealing with the realities though, often they will refuse to speak anything but one of the official languages, regardless of the fact that they'd cover a larger fraction of the population by also communicating in English (and ditching two of the official languages, if five languages is somehow too much).

  • fjf (unregistered) in reply to Kasper
    Kasper:
    Like the person in a shop who needed my phone number to call me, when a particular shipment arrived, then told me: "When it is here, you will become a phone".
    Well known false friend in German ("bekommen" = "to get"). "Waiter, I'd like to become a steak please!"
    Authorities aren't that great at dealing with the realities though, often they will refuse to speak anything but one of the official languages, regardless of the fact that they'd cover a larger fraction of the population by also communicating in English (and ditching two of the official languages, if five languages is somehow too much).
    They probably can't ditch some official languages legally. And partly (not always) I can understand their unwillingness to add a non-official language, if official documents are involved. Mistranslations (or non-exact translations) in legal documents can cause all sorts of trouble. So unless the government starts writing the laws in English too, this won't happen.
  • Jim the Tool (unregistered) in reply to Zappes

    Yes. This is the real WTF in this scenario. But in the Switzerland situation generally, the real WTF is Google going, "oh, you're in Geneva, that's in Switzerland right? Now what do they speak in Switzerland, ah, German!" And then giving you all the pages in German. (They also do this in various other bi/multi-lingual countries. The fact that my browser says "en, en-us" is apparently less meaningful than that I'm in a "German" (or in other cases, "Dutch" - Belgium) speaking country.

    Also, a joke: In the far future, visitors from other parts of the world visit Quebec, and start speaking French. The locals wonder at this, and then realize what it is. "Ah, you're speaking that crazy language that has twenty different verb tenses (and multiple by six for a large chunk of those for added complexity). We gave up on that years ago. English is stupid, but it's better than French."

    captcha: luctus. luctus is when you get the same captcha since the last time you commented, and thus you don't have to retype the whole thing (just the first letter, and then select from the list).

  • Jim the Tool (unregistered) in reply to fjf

    Actually, many official documents are already provided in English. E.g. if you get a police check, the negative result is provided on a page that has at least four languages (one of which is English). Not to mention signs, and so on. Look at a railway sign next time, the "don't cross the tracks" is in four languages, French, German, Italian and English.

    (Disclaimer: I lived in Geneva for too long a few years ago. Some of my memories are a bit bad. E.g. I'm not sure if the train signs are actually in four languages; they might not have Italian in all cases.)

    captcha ingenium: Google has lots of ingenium, that's why they implemented geographical determining for what language to server, rather than just go with the traditional content negotiation system.

  • PlanB (unregistered) in reply to faoileag

    I have to admit: Ididn't test it.

    Will testing for the output beginning with "ls:" do the trick?

  • (cs) in reply to PlanB
    PlanB:
    I have to admit: Ididn't test it.

    Will testing for the output beginning with "ls:" do the trick?

    Not on the day when someone creates a directory "BlobConfig.config" in the expected place (in place of the file). Then ls will list the contents, and might (if the directory has no visible files/subdirectories) not output anything at all...
  • PlanB (unregistered) in reply to PlanB
    PlanB:
    I have to admit: Ididn't test it.

    Will testing for the output beginning with "ls:" do the trick?

    (reaction to faoileag)

  • PlanB (unregistered) in reply to Steve The Cynic
    Steve The Cynic:
    PlanB:
    I have to admit: Ididn't test it.

    Will testing for the output beginning with "ls:" do the trick?

    Not on the day when someone creates a directory "BlobConfig.config" in the expected place (in place of the file). Then ls will list the contents, and might (if the directory has no visible files/subdirectories) not output anything at all...

    That would seem like someone is deliberatly messing up the system. If you want to break it, there is always a way. (e.g. by creating an empty file)

  • Shutterbug (unregistered) in reply to JonnyBravo
    JonnyBravo:
    This is unreadable before coffee.

    The real wtfs are that I have read every published article for 9 years and yet still moan about the way it's provided, free of charge for my enjoyment.

    FTFY - if you don't like it, don't read it...

  • faoileag (unregistered) in reply to Steve The Cynic
    Steve The Cynic:
    People who work on the console might or might not have a good grasp of English, but if they do, it might be because too many developers have this sort of arrogant attitude.
    Actually, I am not a native English speaker myself, so it's not from a chauvinistic point of view I'm arguing here ("speak my language or go away").

    I currently have the pleasure of having to use localised versions (german) of the two OS I have to deal with at work, and I can't say I like it. The reason is simple: if I need to look something up, doing so in English means I have a much higher chance of finding what I'm looking for. So I use English in all my search queries on google, and I use Google's UK version to boot.

    The only problem is: somtimes I can't just simply follow the steps from a solution found on the net - I have to translate menu items, error messages etc first. That's unnecessary friction and extra work I can do without.

    In this day and age, English is pretty much the lingua franka in science and on the internet. So you learn to use it. At least in an admin / devolper environment.

  • Rob (unregistered)

    Could you make the story of the missed error message any more complex?

    The application did not run because it was missing a configuration file. The installer failed to create the configuration file because it checked for a "file not found" message when it checked to see if the configuration file existed, and did not allow for the message from the ls command to come back in non-english languages, such as French.

  • FILENOTFOUND (unregistered)

    Finally a WTF that actually includes FILENOTFOUND!
    It is missing true and false, though. Perhaps that is TRWTF?

  • faoileag (unregistered) in reply to PlanB
    PlanB:
    I have to admit: Ididn't test it.

    Will testing for the output beginning with "ls:" do the trick?

    Leaving aside sabotaging things like Steve suggested, what you could do is look at the output on the remote machine and then look for the combination of user and group in the result string. A successfull "ls -l" will give you lots of info on the file that can change, but user and group should be relatively stable. E.g.: if (result.indexOf('root root') > 0) { // file found }
  • (cs)

    TRWTF is not using the FILE_NOT_FOUND value in Boolean enum

  • Ariol (unregistered)

    Why not just "LANG=C ls -l GlobalShared/BlobConfig.Config" or "LANG=EN_US ls -l GlobalShared/BlobConfig.Config"....?

  • Unisol (unregistered) in reply to foo

    About the %escapes%... probably some spoiled anonymization.

  • Martin (unregistered)

    OS localization is a nightmare.

    When googling any error, you need to translate it back to english, which is sometimes really hard

  • (cs) in reply to Ariol
    Ariol:
    Why not just "LANG=C ls -l GlobalShared/BlobConfig.Config" or "LANG=EN_US ls -l GlobalShared/BlobConfig.Config"....?

    Why not use File.Exists()?!?

  • (cs) in reply to faoileag
    faoileag:
    Brent:
    ZoomST:
    And to think Switzerland has four official languages, and none of them are English!

    The perfect reason to use a fifth language that kludges together things from Germanic and Romance ones.

    Which would be English ;-)

    ...

    Kio? Mi pensis, ke li aludis al Esperanto.

  • Chuck Ritter (unregistered) in reply to PlanB
    PlanB:
    I have to admit: Ididn't test it.

    Will testing for the output beginning with "ls:" do the trick?

    Maybe it will; maybe not. What would work, however, is to do something that reads the machine-readable output from ls. You see, there is this thing called a 'return code' which will be 0 for most command when all goes well. When ls encounters this error, it returns 2. SSH is then kind enough to pass this value back to you by returning the same code.

Leave a comment on “The Impossible Blob”

Log In or post as a guest

Replying to comment #:

« Return to Article