• Warren (unregistered)

    Is my number "1st"?

  • (cs) in reply to Warren
    Warren:
    Is my number "1st"?
    No, it's "1ts".
  • DanDan (unregistered) in reply to Warren

    No, it's 1ts

  • (cs) in reply to DanDan
    DanDan:
    No, it's 1ts
    Great minds think alike. And so do DanDan and me.
  • Machtyn (unregistered)

    Can't see youtube right now. Does that youtube link point to homestarrunner's "The System is Down" email response?

    Oh, yeah, I can watch it on my "phone". Sure enough, it is strongbad.

  • Spivonious (unregistered) in reply to Machtyn

    lol, I'm going to put doomsday clocks in all of my apps from now on.

  • (cs)
    That table doubles as orders, employee info, and scratch space.
    Wow. Now that brings back memories I'd much rather leave buried. Something like that should have trigger alerts
  • (cs)
    There's a hidden screen in the application with a doomsday clock on it.

    OMG! This is so funny I have to do it.

  • (cs)

    This is known here as the "partitioned ID" anti-pattern. The last time I spotted it in the wild it was at least documented in a sense by a class containing one static method that "decoded" the ID .

  • Machtyn (unregistered)

    Also, I would assume that Daryl magically disappeared one day after giving short notice.

    /incassum he was ever needed again.

  • (cs)

    We get 2 wtfs today

    1: Why the fuck would you put all that shit into 1 table? 2: If you were putting everything all in 1 table, why name it "tbl14a_fx004B" when something like "table1" would suffice?

    I do however love the doomsday clock :)

    Also (my ignorance will start to show I'm sure), Why would you need scratch space in a database?

  • (cs) in reply to PiisAWheeL
    PiisAWheeL:
    Why would you need scratch space in a database?
    If you're the developer of that turd, why to scratch your head as to how to solve [problem] , of course.
  • An Old Hacker (unregistered) in reply to java.lang.Chris;
    java.lang.Chris;:
    This is known here as the "partitioned ID" anti-pattern. The last time I spotted it in the wild it was at least documented in a sense by a class containing one static method that "decoded" the ID .

    There are actually times when this is the right thing to do. Say, when you're partitioning VSIDs between processes. Or segmenting a network. Or...

    But not if you're a normal human being, no.

  • Krayz (unregistered)

    This comment is out of frists

    delete previous 12 comments to obtain more frists

  • (cs)

    The concept of having doomsday clocks in databases and code is not a bad idea, and already exists in slightly different forms like for tracking free space on hard drives and stuff (but without such a cool name). From now on I am going to put doomsday clocks anywhere I reasonably can for the poor souls that have to inherit my code.

    I think somewhere evil laughter is in order...

  • (cs)

    If nuber issues were tissues, this would be a box of Kleenex.

  • (cs)

    Kind of an easy fix, right? There must be a function to allocate IDs, since overwriting records wasn't a problem. Find all the code that references that function, then create a new scratch table and use that. Don't forget to remove the "OH NOSE, ITS OVAR" message that his doomsday clock probably triggers.

  • Ken (unregistered)

    Um, yeah. This is why when they talk about "a jury of your peers" they all have to be fellow coders. That way not only will they bring back an immediate verdict of justifiable homicide, they'll probably even award you something for helping to clean up the planet.

  • Ed (unregistered)

    Anyone else get to the first link then go on a massive Strong Bad-viewing-spree on YouTube and completely forget about the fact that they were trying to read TheDailyWtf?

    ... :D

  • letatio (unregistered) in reply to ContraCorners
    ContraCorners:
    DanDan:
    No, it's 1ts
    Great minds think alike. And so do DanDan and me.

    If you two are great minds, then I'm einstein (deliberately lowercased, you nitpicks; it's used as a common/collective noun).

  • (cs) in reply to Ed
    Ed:
    Anyone else get to the first link then go on a massive Strong Bad-viewing-spree on YouTube and completely forget about the fact that they were trying to read TheDailyWtf?

    ... :D

    Yes... For like the last hour and a half.

  • (cs)

    Error: Out of comments. Contact author.

  • (cs)

    "All of the IDs between 1 and 199 are reserved for employees, 200-499 for product codes."

    As long as we stay within these numbers we are ok.

  • (cs) in reply to letatio
    letatio:
    ContraCorners:
    DanDan:
    No, it's 1ts
    Great minds think alike. And so do DanDan and me.

    If you two are great minds, then I'm einstein (deliberately lowercased, you nitpicks; it's used as a common/collective noun).

    Well, they're not. And neither are you.

  • nitpicker (unregistered) in reply to letatio
    letatio:
    ContraCorners:
    DanDan:
    No, it's 1ts
    Great minds think alike. And so do DanDan and me.

    If you two are great minds, then I'm einstein (deliberately lowercased, you nitpicks; it's used as a common/collective noun).

    If you are using it as a collective noun, then you are using it wrong.

    You wouldn't say "I'm geese" or "I'm people".

    If you are using it as a common noun then you are referring to the particle; that doesn't make much sense either.

  • Bin Livin Underrock (unregistered)

    Only about 40 minutes of strongbad. But, I now have a new soundtrack for my life. time well spent. thanks TDWTF!

    TROGDOOOOOOOR!!!!!

    TROGDOR COMES IN THE NIGHT!!!!

  • Matt (unregistered)

    What a nuber.

    CAPTCHA: appellatio - What you have to perform to get some of these applications to work?

  • Zapp Brannigan (unregistered)

    From now on every application I write will have a doomsday clock. Except for the doomsday application, because that would be silly.

  • Anon (unregistered) in reply to ContraCorners
    ContraCorners:
    DanDan:
    No, it's 1ts
    Great minds think alike...

    ...but fools rarely differ.

  • Vlad Patryshev (unregistered)

    Oh, we in orkut team one nice Friday got out of user ids, and started assigning old ones to new customers. Luckily, account #1 (Orkut Buyukokten), as well as those of her girlfriend and other famous people (Brin, Page, Meyer etc) were spared, and were not shared with perplexed new guys in Rio (where orkut was most popular).

    Took half a week to throw in more ids and disambiguate between "old guys" (cf. MiB) and "new guys".

  • Anon (unregistered) in reply to ubersoldat
    ubersoldat:
    There's a hidden screen in the application with a doomsday clock on it.

    OMG! This is so funny I have to do it.

    Me too. That really won this WTF for me.

  • Ben Jammin (unregistered) in reply to PiisAWheeL
    PiisAWheeL:
    Why would you need scratch space in a database?
    My assumption is some log info. Possibly, inconsequential things like items within those customer orders. Seeing as you don't need to know what items to ship after an order has already been fulfilled, you can just delete them whenever. Also, since they don't get many orders, the risk of deleting items that haven't been shipped is minimal/acceptable.
  • Jazz (unregistered) in reply to PiisAWheeL
    PiisAWheeL:
    2: If you were putting everything all in 1 table, why name it "tbl14a_fx004B" when something like "table1" would suffice?

    Going out on a limb here, but that sounds like something I'd expect to find in an Oracle database (or created by an Oracle DBA). It's just the right combination of needlessly-esoteric and needlessly-complicated, with a healthy dash of not-invented-here thrown in.

  • (cs) in reply to An Old Hacker
    An Old Hacker:
    java.lang.Chris;:
    This is known here as the "partitioned ID" anti-pattern. The last time I spotted it in the wild it was at least documented in a sense by a class containing one static method that "decoded" the ID .

    There are actually times when this is the right thing to do. Say, when you're partitioning VSIDs between processes. Or segmenting a network. Or...

    But not if you're a normal human being, no.

    Heh. We use Peoplesoft for HR here, with a 5 digit employee number. Peoplesoft employee data, including the employee number, is used to populate Active Directory. Regular employees get an incremental (mine is in the high 46,000 range) and contractors get an incremental in the 90,000 range. We'll probably replace our HR system long before we run out of numbers though. I started four years ago, and it looks like the newest employee is in the 47,7## range.

  • (cs)

    while the concept of a doomsday clock is pretty awesome, it is the TRWTF. It shows the original coder knew that he was creating a problem, but only created a way to monitor it instead of doing it the right way.

  • The Movie (unregistered) in reply to esoterik
    Remy Porter:
    In a world... that has run out of numbers... only one developer... can save the application... from the DOOMSDAY CLOCK. In theaters this summer.
    I am totally going to see this!
  • Publius (unregistered) in reply to Jazz
    Jazz:
    PiisAWheeL:
    2: If you were putting everything all in 1 table, why name it "tbl14a_fx004B" when something like "table1" would suffice?

    Going out on a limb here, but that sounds like something I'd expect to find in an Oracle database (or created by an Oracle DBA). It's just the right combination of needlessly-esoteric and needlessly-complicated, with a healthy dash of not-invented-here thrown in.

    Oh, I think I know this one. It is simply "table 14", but the "fixed" one, so we had to add the "a". Changes to this table effects (get it, "fx"?) rows in Table 4 (but the second "fix"). The "00" part is the number of indexes and foreign keys, respectively, obviously.

  • (cs) in reply to The Movie
    The Movie:
    Remy Porter:
    In a world... that has run out of numbers... only one developer... can save the application... from the DOOMSDAY CLOCK. In theaters this summer.
    I am totally going to see this!
    Nah, I heard it's just a chick-flick...
  • (cs) in reply to Manos
    Manos:
    "All of the IDs between 1 and 199 are reserved for employees, 200-499 for product codes."

    As long as we stay within these numbers we are ok.

    Prediction: Codes 199 and 499 will become magic numbers indicating a link to new "extended codes" tables.

    Sigh.

  • What (unregistered)
    they'd hit 30,000 by next quarter.

    That's more than enough time to find a new job AND advance the doomsday clock by a quarter. That should teach those higher management morons a thing or two.

  • Robb (unregistered)

    Easy solution. Increase order count to 40k. Modify script to delete above 40000 instead of 30000.

    profit!

    bonus: tell bosses it will take 2 weeks to work the solution. Use extra time to find new job.

  • (cs) in reply to What

    I think that's what was implied in the TL;DR; source view of the storey...

    This story contained all the clues you need to know how Daryl solves this problem. Can you figure out how Daryl avoids having to deal with this problem? Hint: how did it become Daryl's problem in the first place.
    I'm guessing he just handed it off to the next poor schlub in line...
  • anon (unregistered)

    they hired me to fix it, but then never let me start the job. Something about me being the two hundredth employee.

  • Ben Jammin (unregistered) in reply to anon
    anon:
    they hired me to fix it, but then never let me start the job. Something about me being the two hundredth employee.
    I think this code may definitely be from Initech this time, and stapler guy was the 200th employee.
  • Ben Jammin (unregistered)

    Edit: Makes complete sense, cause they would only ever order as many desks/staplers/cake as employees in that system.

  • Your Name (unregistered)

    This is why the unique ID should be a floating point number. When you get to employee 199, the next one is 199.1, then 199.2, 199.3...

  • Clayton (unregistered) in reply to Robb

    Except now when you go to grab record 300001 for scratch space and scribble in it, you've corrupted whatever order was supposed to be there.

    Whoops.

  • (cs) in reply to Ben Jammin
    Ben Jammin:
    Edit: Makes complete sense, cause they would only ever order as many desks/staplers/cake as employees in that system.
    I would agree with you about the desks and staplers, but as for the cake, I hate to be the one to break it to you, but the cake is a lie.
  • (cs) in reply to java.lang.Chris;

    Minecraft does this - blocks have an ID under 256, items have higher IDs. They of course eventually decided to add support for more blocks in the latest snapshot -- but since it would be too much work to change the IDs of all the items to make space, they worked around it by adding a "4 bit data layer" i.e. another number you presumably have to add to the ID to get the actual ID of a block when it is >255

  • Nagesh-saki (unregistered) in reply to esoterik
    esoterik:
    while the concept of a doomsday clock is pretty awesome, it is the TRWTF. It shows the original coder knew that he was creating a problem, but only created a way to monitor it instead of doing it the right way.

    I am sure he had all the time in the world to do it correctly and that management had all the money to spend on hiring top quality staff with experience in that kind of project.

    TRWTF is that I fell for the troll

Leave a comment on “I've Got Your Number”

Log In or post as a guest

Replying to comment #:

« Return to Article