Slashdot Mirror


The 32-Bit Dog Ate 16 Million Kids' CS Homework (code.org)

"Any student progress from 9:19 to 10:33 a.m. on Friday was not saved..." explained the embarrassed CTO of the educational non-profit Code.org, "and unfortunately cannot be recovered." Slashdot reader theodp writes: Code.org CTO Jeremy Stone gave the kids an impromptu lesson on the powers of two with his explanation of why The Cloud ate their homework. "The way we store student coding activity is in a table that until today had a 32-bit index... The database table could only store 4 billion rows of coding activity information [and] we didn't realize we were running up to the limit, and the table got full. We have now made a new student activity table that is storing progress by students. With the new table, we are switching to a 64-bit index which will hold up to 18 quintillion rows of information.
The issue also took the site offline, temporarily making the work of 16 million K-12 students who have used the nonprofit's Code Studio disappear. "On the plus side, this new table will be able to store student coding information for millions of years," explains the site's CTO. But besides Friday's missing saves, "On the down side, until we've moved everything over to the new table, some students' code from before today may temporarily not appear, so please be patient with us as we fix it."

161 comments

  1. Well then. by Anonymous Coward · · Score: 5, Funny

    That doesn't inspire a whole lot of trust in the system. Who did they get to code this thing, elementary school kids?!?

    1. Re:Well then. by omnichad · · Score: 1

      Wasn't that long ago that Youtube ran into the same problem for view counts (on Gangnam Style). They were even using signed integers - gotta be prepared for negative views, I guess.

    2. Re:Well then. by 93+Escort+Wagon · · Score: 1

      Who did they get to code this thing, elementary school kids?!?

      Larry Ellison personally set it up.

      ... But he did have to ask his next door neighbor's kid for advice on a few occasions.

      --
      #DeleteChrome
    3. Re: Well then. by Anonymous Coward · · Score: 0

      Millennials raising cloud millennials. Outages will be a new norm.

    4. Re: Well then. by Anonymous Coward · · Score: 4, Insightful

      Are you kidding or just have no memory of the past? Sites were incredibly fragile from before. Outages were the norm and you could take down most weak terribly written PHP sites by sneezing at them the wrong way. Maybe you haven't been here long, but we used to have this thing called "Slashdotting" which would take websites down just by being linked to by this webpage. Nothing had any ability to scale and of it did 99â... of the time that hardware was wildly over provisioned.

      This has nothing to do with your "hur Hur millennials" bullshit. 32 bit and 64 bit numbers, and problems with picking the right one had been around since the beginning of time. The person that picked 32 bit instead of 64 bit was more likely to be some grizzly old-timer used to drive and memory space being the main constraint. The evil millennial characatur you hate so much would have made it 128 bit and wasted all that space because in this day and age, why the fuck not?

    5. Re:Well then. by Hognoxious · · Score: 1

      Didn't the post/thread count overflow here about six owners back?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    6. Re:Well then. by Anonymous Coward · · Score: 0

      Be a good lesson for the children also. Save your work locally, there is no reason to save your work on someone else's hard drive. Even where I work I will save my work on my PC before saving on the company cloud (aka, server).

    7. Re: Well then. by Anonymous Coward · · Score: 0

      That is a stupid assumption. It's like if I said it was a millennial because they don't have the experience of foresight and do as they are programmed (trained). Where a veteran would understand things like projecting growth. No dumb is how 99% of developers don't realize that an index should be UNSIGNED because you get double the space and nobody need a negative index.

      Maybe they were an uncreative Trump supporter.

    8. Re:Well then. by arglebargle_xiv · · Score: 1

      Note that the WTF isn't the use of a 32-bit index, it's HowTF you can code a system that requires 4 billion rows in a database. Announcing they've fixed it by moving to a 64-bit row index is like announcing that you're fixed a problem with plugging a 100A device into a 10A circuit by replacing the fuse that keeps blowing with a piece of 00AWG wire current-welded across the terminals.

    9. Re: Well then. by Anonymous Coward · · Score: 0

      Aren't integers signed on Java? Surely you can use a custom signed integer datatype but just make it a signed 64bit integer if that's what you have.

    10. Re: Well then. by Anonymous Coward · · Score: 0

      4 billion rows of data isn't really that much, especially for something like this. I know someone who does independent headhunting and his database is a few hundred million rows.

    11. Re:Well then. by doccus · · Score: 1

      32 bits outa be enough for anyone... ;-)

  2. Using the cloud is so safe and secure... by QuietLagoon · · Score: 3, Insightful

    At least there was a back-up... Or not... Not even a 24-hour transaction log... Or not... Way to go code.org... set that example...

    1. Re:Using the cloud is so safe and secure... by halivar · · Score: 4, Informative

      How do you back up data that was never stored? Or logs for transactions that never completed? And how, even if you had those transactions, would you meaningfully restore them when the restoration process itself would simply repeat the result of overflowing the available indexes?

      This isn't a typical disaster recovery scenario. The architecture itself is at fault, and the data is lost.

    2. Re:Using the cloud is so safe and secure... by phantomfive · · Score: 1

      Uh, what kind of data are you talking about that was never stored?
      The obvious thing is to restore at the most recent backup. Some data will be lost of course, but that's better than losing all data, which apparently these people did.

      --
      "First they came for the slanderers and i said nothing."
    3. Re:Using the cloud is so safe and secure... by Anonymous Coward · · Score: 2, Informative

      They didn't lose all data. The lost every every insert into a table the occurred after its index reached it's maximum value. As the database insert was the method of storing the data, there's nothing to recover.

    4. Re: Using the cloud is so safe and secure... by Anonymous Coward · · Score: 2

      Shouldn't whatever interface these students were using have told them the save failed?

    5. Re: Using the cloud is so safe and secure... by Anonymous Coward · · Score: 0

      Shouldn't whatever interface these students were using have been able to handle time further in the future?

    6. Re:Using the cloud is so safe and secure... by wonkey_monkey · · Score: 1

      Some data will be lost of course, but that's better than losing all data, which apparently these people did.

      No they didn't.

      Any student progress from 9:19 to 10:33 a.m

      So a grand total of about 74 minutes' work was lost.

      --
      systemd is Roko's Basilisk.
    7. Re: Using the cloud is so safe and secure... by Anonymous Coward · · Score: 0

      The data might not be lost. It's probably in the cache files of the web browser. Sometimes you can fish stuff out of those directories like images, movies and the odd html page.

    8. Re:Using the cloud is so safe and secure... by quonset · · Score: 1

      So a grand total of about 74 minutes' work was lost.

      Which, from the way some programmers on here talk, could have been a whole three lines of code.

    9. Re:Using the cloud is so safe and secure... by fisted · · Score: 1

      So a grand total of about 74 minutes' work was lost.

      Times the number of kids working at that time.

    10. Re:Using the cloud is so safe and secure... by Anonymous Coward · · Score: 0

      Hey based on the prevalent slashdot groupthink that teaching kids to code is bad this should be seen as a good thing.

    11. Re: Using the cloud is so safe and secure... by Anonymous Coward · · Score: 1

      The prudent student stores the files locally, copies and pastes them into the browser then hits "send".

      I would love to be able to say I had not personally learned that lesson the hard way.

    12. Re:Using the cloud is so safe and secure... by phantomfive · · Score: 1

      ok, so apparently not all data was lost, I misread the info. Bad on me, I should have read more carefully, and my other comment should be modded down for being wrong.

      --
      "First they came for the slanderers and i said nothing."
    13. Re:Using the cloud is so safe and secure... by wonkey_monkey · · Score: 1

      Doesn't really matter. The loss could be more or less undone in 74 minutes. Doesn't matter whether it's ten kids or a billion kids.

      --
      systemd is Roko's Basilisk.
    14. Re: Using the cloud is so safe and secure... by Anonymous Coward · · Score: 0

      Yes - this is really the biggest failing. Failed to inform the user that a save error occured, probably wiped the user data on the attempt to save.

      Two failings - poor interface design, failed backend.

    15. Re:Using the cloud is so safe and secure... by CanadianMacFan · · Score: 0

      If you were to run the transactions again it would be against the new table which has the 64-bit value instead of the 32-bit value and they would succeed. Of course this would have all been avoided if the person who decided on the original data types had spent five minutes thinking in the first place.

    16. Re:Using the cloud is so safe and secure... by Anonymous Coward · · Score: 0

      The architecture itself is at fault, and the data is lost.

      Unlikely, the data creator still has it, unless they trusted a third party with something important without having any insight into how they operate or having any strings attached.
      If that is the case then it is likely that nothing of value was lost.

    17. Re: Using the cloud is so safe and secure... by tepples · · Score: 1

      The prudent student stores the files locally

      Provided said prudent student owns a device with a text editor capable of storing files locally. Does an old hand-me-down iPad with a Bluetooth keyboard count?

    18. Re:Using the cloud is so safe and secure... by ShanghaiBill · · Score: 1

      Or logs for transactions that never completed?

      You log the transaction just before you execute it. The point of the log is that you can re-roll it to reconstruct the database in the event of failure. That doesn't work if you only log things that didn't fail.

    19. Re:Using the cloud is so safe and secure... by rtb61 · · Score: 1

      Technically speaking a whole lot less than 74 minutes if they were coding properly and taking notes and keeping track of their work. So maybe 20 minutes and for some particular skilled coders maybe 10, depending how long it took them to figure out the original code structure.

      --
      Chaos - everything, everywhere, everywhen
    20. Re:Using the cloud is so safe and secure... by QuietLagoon · · Score: 1

      How do you back up data that was never stored? Or logs for transactions that never completed?...

      There's an input-logging capability that can be replayed in times like this. Since it is separate from the part that caused this problem, the data would be retrievable. Simple.

    21. Re:Using the cloud is so safe and secure... by gumbi+west · · Score: 1

      right, so there is a second bug that the interface didn't admit to the inability to save work.

    22. Re: Using the cloud is so safe and secure... by Dog-Cow · · Score: 1

      How many kids use a hand-me-down iPad and BT keyboard to submit work to code.org? And yes, the iPad has an app pre-installed which can save text files locally.

      You probably deserve to have the iPad shoved up your anus until it rips through your colon.

    23. Re:Using the cloud is so safe and secure... by Anonymous Coward · · Score: 0

      We need a transaction transaction log.

    24. Re:Using the cloud is so safe and secure... by strikethree · · Score: 1

      You are more correct than you realize about the architecture issue.

      The architecture should have been taking everything, dumping it to a "log" to be processed, and then processed. Once the processing is done, the "logs" could be deleted. If they had done this, recovery would have been easy.

      I mean really, "you" expect data to always be processed perfectly? Not a chance. There is always room for hiccups. Store the raw data until you can process it. Simple. Obvious. And clearly not done in this instance.

      Please note that the "you" in this sentence is not halivar but rather anyone writing an application to store data.

      --
      "Someone needs to talk to the tree of liberty about its ghoulish drinking problem." by ohnocitizen
    25. Re:Using the cloud is so safe and secure... by Anonymous Coward · · Score: 0

      But it would have been an amazingly beautiful, concise and groundbreaking three lines of code

    26. Re:Using the cloud is so safe and secure... by Holi · · Score: 1

      Why did the device report a successful save? I mean, if they need to tell you your files weren't saved then what kind of caching operation do they have that allows for over an hour of saves failing and no notification sent to the user?

      --
      Sorry, teleporters just kill you and then make a copy. A perfect, soul-less copy.
    27. Re:Using the cloud is so safe and secure... by halivar · · Score: 1

      It's probably something as simple and stupid as catchless try (which I have seen on DB ops more times than I care to think about) in misguided attempt at "graceful degradation."

    28. Re: Using the cloud is so safe and secure... by Anonymous Coward · · Score: 0

      Yeah. So somewhere in their code there could also be this classic handler:

      catch (all exceptions) { /* lol whatever */
      }

  3. And a valuable lesson learned: by aix+tom · · Score: 5, Insightful

    Don't trust the cloud as the only place you store your work.

    1. Re:And a valuable lesson learned: by Tablizer · · Score: 2

      Don't trust the cloud as the only place you store your work.

      A generalized version is don't trust any one system. Put copies on different servers/devices.

      Of course there's a break-even point where the labor to manage backups exceeds that lost on average to failures.

    2. Re:And a valuable lesson learned: by Anonymous Coward · · Score: 1

      Don't trust the cloud

      Full stop.

    3. Re: And a valuable lesson learned: by im_thatoneguy · · Score: 1

      Don't trust

      Fixed that for you.

    4. Re: And a valuable lesson learned: by Dog-Cow · · Score: 1

      Don't

    5. Re:And a valuable lesson learned: by Anonymous Coward · · Score: 0

      The best way to realize the limitations of the cloud is to always

      s/the cloud/someone else's computer

      Then see if it sounds like such a great idea.

    6. Re: And a valuable lesson learned: by Anonymous Coward · · Score: 0

      Do

  4. Don't look at it that way... by mmell · · Score: 5, Insightful

    Consider this a real-world lesson for our youth in the ways that design choices can have unanticipated effects on implementation, manageability and viability of software in the long haul. For extra credit, the kids that are affected should be encouraged to explore what they could have done to mitigate the risk caused by some grown-up's oversight.

    1. Re:Don't look at it that way... by Anonymous Coward · · Score: 0

      But is not the actual real-world lesson saying that you can make mistakes like this, without having to know better, and there will be no negative consequences to you for having messed up?

    2. Re:Don't look at it that way... by Anonymous Coward · · Score: 2

      The people that originally made the decision to go with a 32 bit table are probably long gone. The real lesson here is don't waste time worrying about things you won't be around to have to deal with.

    3. Re:Don't look at it that way... by Anonymous Coward · · Score: 0

      But is not the actual real-world lesson saying that you can make mistakes like this, without having to know better, and there will be no negative consequences to you for having messed up?

      No. There are negative consequences here, code.org made a mistake and they have admitted it and it has been publicized, what more do you want?

    4. Re:Don't look at it that way... by Anonymous Coward · · Score: 1

      Gladiators? Lions and tigers?

    5. Re: Don't look at it that way... by Anonymous Coward · · Score: 0

      Realistically, most apps won't ever reach that limit. I reached it one day on a web crawling system. I change the type to bigint and continued on. Probably they should have had some way to handle the exception better. I know it's not banking but a large scale app should be treated like it transactionally speaking. Even if they logged the data with the error in a recoverable mechanism ...

    6. Re:Don't look at it that way... by Anonymous Coward · · Score: 0

      We've made these mistakes before - the Y2K bug being a good example. That wasn't a bug introduced by a highschool kid either, the whole industry fell for it.

    7. Re:Don't look at it that way... by Dog-Cow · · Score: 3, Insightful

      Y2K wasn't a "bug". It was a reasonable design decision made when storage (both RAM and long-term) was expensive and scarce. Computer systems were new, and no one had any idea how long programs would be running.

      On the flip-side, 64 bit ints have been cheap for ages now. Code.org programmers were just lazy fucks.

    8. Re:Don't look at it that way... by Anonymous Coward · · Score: 0

      No they were young and don't remember when slashdot had the same problem. I remember and always do id's as 64bit ints for log-like tables. Sometimes I even don't include this id because it doesn't scale, so then it's id_device and creation timestamps.

    9. Re:Don't look at it that way... by TheRaven64 · · Score: 2

      For a lot of things, a 64-bit id is overkill, but if you do use a smaller int, then always set something up to notify you when any of the top few bits is set so that you have a nice long time to migrate the data.

      --
      I am TheRaven on Soylent News
    10. Re: Don't look at it that way... by reanjr · · Score: 3, Interesting

      For a lot of things, 32 bit is overkill, but you don't see people storing 24 bit numbers. This is a fundamental problem with premature optimization. You should always use the largest precise integer available unless you have a compelling, evidence-based reason not to. The onus should be on the 32bit users to demonstrate their choice is better.

    11. Re: Don't look at it that way... by doccus · · Score: 1

      Yup, but I recall people saying a few years ago the same thing as in... "realistically, most people will never use more than 4 gigs of RAM".. Never thought I would have to switch to a 64 bit OS for years yet.

    12. Re: Don't look at it that way... by TheRaven64 · · Score: 1

      If you're creating a database table, 64 bits doubles the size of the index column. If you're creating a database table in normal form, then you'll have a number of tables that are simply pairs of two indexes, so you will double the size of entire tables. That's going to have big cache and memory overheads and is definitely not a simple 'let's always do that' choice.

      --
      I am TheRaven on Soylent News
    13. Re: Don't look at it that way... by Bengie · · Score: 1

      Unless your table only has an index, doubling the size of the index is quite moot. IF you knew anything about data alignment, SQL data page layouts, or the slew of meta-data stored along with the data, you would realize it does not matter in nearly every case. It will matter if you're programming in a compile language that allows you to control structure layouts and you need to do a lot of CPU intensive work or need to work with SIMD, but outside of that, 64bit.

    14. Re: Don't look at it that way... by TheRaven64 · · Score: 1

      Any relational database in any normal form will include a lot of tables that just contain a pair of indexes. If your databases are not in a normal form, then your maintenance headaches are going to be far bigger than the size of index fields.

      --
      I am TheRaven on Soylent News
    15. Re:Don't look at it that way... by RockDoctor · · Score: 1

      Those of us who worked the overnight shift for the Millennium Bug remember it well. Shouldn't we be coming up to another rollover point some time soon? Unix Epoch hits 2^32 seconds, or something?

      --
      Birds are not dinosaur descendants;birds are dinosaurs, for all useful meanings of "birds", "are" and "dinosaurs"
    16. Re: Don't look at it that way... by Bengie · · Score: 1

      That only applies to many-to-many relations and overly-normalized is nearly as bad as under. Not including that if you have 2 tables with a 32bit int vs one table with a 64bit it, it's a wash. Even in these situations, if you're doing seeks of large many-to-many tables, the random access out-weighs the cost of the extra 4 bytes per field.

      I recently was doing performance testing of a tight loop and was comparing 32bit vs 64bit on a 32bit CPU, and the performance was within 10% of each-other. Even when having to do two register loads and combining the registers to emulate 64bit arithmetic, the CPU was able to OoO+pipeline most of the cost. In the end, I have had more situations where using 32bit ints was slower than 64bit.

    17. Re: Don't look at it that way... by Anonymous Coward · · Score: 0

      > You should always use the largest precise integer available unless you have a compelling, evidence-based reason not to.

      This dumb rule is premature optimization too. Optimization is not "make go faster!" It's "change input to get 'best' output by this criteria".

  5. We will never learn by Xarin · · Score: 5, Funny

    4 billion rows of coding activity is all we will ever need

    1. Re:We will never learn by Anonymous Coward · · Score: 0

      You only need a 24 bit dog to eat that much homework!

    2. Re:We will never learn by newcastlejon · · Score: 4, Insightful

      What sort of DBMS are they using that doesn't notify the admin when a table is nearly full? What sort of client are they using that doesn't tell the user when an attempt to write to a DB fails?

      --
      If God forks the Universe every time you roll a die, he'd better have a damned good memory.
    3. Re:We will never learn by dwywit · · Score: 1

      Maybe that's how they found out. Tech support tickets start flowing in a bit after 9:30 - "I can't insert my changes." They finally suspend activity and investigate after a few dozen tickets all show the same symptoms.

      There's no excuse for not notifying an Admin that a table is about to reach limit.

      --
      They sentenced me to twenty years of boredom
    4. Re:We will never learn by Mashiki · · Score: 2

      If you can't make it fit onto a 8-bit eeprom chip you're doing it wrong?

      --
      Om, nomnomnom...
    5. Re:We will never learn by __aaclcg7560 · · Score: 1

      Funny you should mentioned that. The college instructor for the Introduction to CIS class told us in the early 1990's that 4GB (32-bit) was all the memory anyone would ever need for a PC. For the most part, he was right. When I upgraded my PCs last year, I finally broke through the 4GB barrier. Not because 4GB wasn't enough. I had to get new memory modules and 8GB (two 4GB sticks) was on sale.

    6. Re:We will never learn by Anonymous Coward · · Score: 0

      What sort of DBMS are they using that doesn't notify the admin when a table is nearly full?

      The table wasn't "full" - this is a numeric overflow error, not an "out of disk space" error.

    7. Re:We will never learn by freeze128 · · Score: 1

      What sort of client are they using that doesn't tell the user when an attempt to write to a DB fails?

      The kind that is written by code.org developers.

    8. Re:We will never learn by Anonymous Coward · · Score: 0

      No, if they used an index it actually meant the table was full. If you index on a 1-bit Integer, you can only add 2 entries to the table until it is full (because the DBMS needs to guarantee that the index is unique).

    9. Re:We will never learn by Anonymous Coward · · Score: 0

      I did move to 8GB, because I looked for 4GB sticks of ddr2 on ebay and found out they were very cheap. Awesome. I spent the first few months or weeks running that on Linux 32bit and it does work - i686 CPUs can actually access 36 bits.
      Anyway, I later quickly found myself able to fill all RAM up with two 64bit browsers and a Windows 7 VM, so I've needed to change the motherboard for one with four working memory slots, haven't been willing yet.
      I also upgraded to a Radeon 5450 (just to have something working), yet installed Linux Mint 18 and so I get to use a slow, feature-lacking open source driver again.

    10. Re:We will never learn by AmiMoJo · · Score: 1

      Didn't Slashdot have a problem with 32 bit post IDs one time? I can't find the story now, but I could swear I remember a temporary fall back to static pages when the 32 bit counter overflowed many years ago.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    11. Re:We will never learn by Anonymous Coward · · Score: 0

      We use Oracle and have lots of notifications when a tablespace (i.e. disk space alotted for a subset of the db) is low. But a numeric overflow? One would have to write a custom alert for every single column that was based on a growing sequence number.

    12. Re:We will never learn by Anonymous Coward · · Score: 0

      I think it's just arguing about the semantics of the word "full", but in this assumptive scenario the table isn't constrained by the number of records or the amount of data, it's constrained by the data type of one of the columns. When you try to insert a numeric value that is larger than 32-bit, the DBMS rejects it because it does not conform to the table definition.

    13. Re:We will never learn by Anonymous Coward · · Score: 0

      What he probably didn't tell you is that even 32-bit cpus like i386 (launched in 1985) address 4GB of physical memory, but allow upto a total 48GB of linear adressing (eg. swap space). And adding external hardware paging mechanisms, as it was common in 8 and 16bit computers, isn't really that hard. So yeah, even for today standards, 4GB is still a lot.

  6. Platform skill matches student skill by gweihir · · Score: 1, Insightful

    It is no surprise to me that the ones creating and operating this platform are just as incompetent as the "graduates" they produce. Mediocrity breeds mediocrity...

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:Platform skill matches student skill by Anonymous Coward · · Score: 0

      Considering code.org is a Microsoft funded operation, this should come as no surprise.

    2. Re:Platform skill matches student skill by gweihir · · Score: 1

      Indeed.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  7. the people dont care. by nimbius · · Score: 4, Insightful

    "The way we store student coding activity is in a table that until today had a 32-bit index... The database table could only store 4 billion rows of coding activity information

    if it can only store four billion rows, it isnt "the cloud." its just a KVM instance running on a shared hosting facility then, isnt it.

    we didn't realize we were running up to the limit, and the table got full.

    so not only were you incapable of scaling your infrastructure or your program to handle four billion rows --something every sysadmin on the planet is capable of-- you weren't even competent enough to set up monitoring for it.

    We have now made a new student activity table that is storing progress by students.

    the ones that lost all their data dont care. the students will leave to try something else, the educators will fall back on lesson plans that werent written by a corporate think tank, and your 'hour of code' will remain just another hour of minecraft in a kids life.

    With the new table, we are switching to a 64-bit index which will hold up to 18 quintillion rows of information.

    you dont get it. no one fucking cares about your SQL table limits but you, and youre oblivious to the fact that a table with eighteen quintillion rows would never load. code.org will be no different than the spanish or french class in a kids life. a fractional percentage of them will actually go on to use it as a career.

    --
    Good people go to bed earlier.
    1. Re: the people dont care. by Anonymous Coward · · Score: 0

      Really? A 20 minute outage on a non-critical system or software component inspires you to go off the rails? Were you even impacted?

    2. Re: the people dont care. by Dracos · · Score: 4, Funny

      09:19 to 10:33 is 74 minutes, not 20. Did you learn arithmetic on code.org?

    3. Re:the people dont care. by wonkey_monkey · · Score: 1

      and youre oblivious to the fact that a table with eighteen quintillion rows would never load

      I think you're oblivious to the fact that no one person is going to fetch every single row. You do know how a database works, don't you?

      so not only were you incapable of scaling your infrastructure or your program to handle four billion rows --something every sysadmin on the planet is capable of-- you weren't even competent enough to set up monitoring for it.

      They were capable of the first part, and are now doing it. They just didn't realise it needed to be done.

      the ones that lost all their data dont care.

      No-one lost all their data. At most they lost 74 minutes' work.

      Read the whole thing next time, eh?

      --
      systemd is Roko's Basilisk.
    4. Re:the people dont care. by Morpeth · · Score: 0

      Wow, sorry someone pissed in your cornflakes.

      There's a lot of good people working on code.org (many volunteers), the whole concept is to teach kids about basic algorithms and logic, and get them excited about programming and tech in general. LOTS of schools and kids have benefited from their efforts.

      Yes, they had something unfortunate happen, they owned up to it, they fixed it, they moved on -- so should you...

      --

      'The unexamined life is not worth living' - Socrates
    5. Re:the people dont care. by exomondo · · Score: 0

      Way to fly off the handle. You see it doesn't matter if coding is a skill people rarely use in their careers, in fact most of the stuff they learn in school won't be part of their career. But if it helps them see that computers are more capable than what is presented in a stupdified GUI they will be able to automate tasks, not be afraid of the command line, etc. and that is a very good thing given the prevalence of computers in the workplace. Otherwise economies of scale favor the simplified "computers as devices" model and the only thing worth producing is ipad-like computers.

    6. Re:the people dont care. by Anonymous Coward · · Score: 0

      There's a lot of good people working on code.org (many volunteers), the whole concept is to teach kids about basic algorithms and logic, and get them excited about programming and tech in general. LOTS of schools and kids have benefited from their efforts.

      No no no, this is Facebook and Microsoft with a classic Embrace, Extend, Extinguish on the current situation of high developer salaries. They aim to teach kids to code in a big corporate conspiracy which will somehow mean that they can all displace software developers with kiddie coders which will drive down software developer salaries and put everybody out of work so the corporate fatcats can line their pockets with sweet sweet money.

      ...or so slashdot leads me to believe whenever anybody suggests teaching coding to kids is a good thing.

    7. Re: the people dont care. by Anonymous Coward · · Score: 0

      No, I am an engineer, so 20 minutes ~= 1 hour ~= 74 minutes.
      Thank you -seriously!- for observing that inacccuracy.

    8. Re:the people dont care. by thegarbz · · Score: 1

      you dont get it. no one fucking cares about your SQL table limits

      Okay okay, you're over stimulated. Have a beer and go back to bed.

    9. Re:the people dont care. by Anonymous Coward · · Score: 0

      the ones that lost all their data dont care. the students will leave to try something else, the educators will fall back on lesson plans that weren't written by a corporate think tank, and your 'hour of code' will remain just another hour of minecraft in a kids life.

      That's cute. You think students or teachers have a choice?

    10. Re: the people dont care. by Anonymous Coward · · Score: 0

      I am an engineer

      No, you're not.

    11. Re: the people dont care. by Anonymous Coward · · Score: 0

      He drives trains. Model trains. So yes, he is an engineer.

    12. Re:the people dont care. by Anonymous Coward · · Score: 0

      Congrats on having never made a mistake before (other than the social mistake of being a huge prick, obviously).

    13. Re:the people dont care. by Anonymous Coward · · Score: 0

      I see you've met our friend nimbius. This is his "normal." You should see him after he hits day four of snorting phat railz off his desk; it ain't pretty, friend. -PCP

    14. Re:the people dont care. by Dog-Cow · · Score: 1

      if it can only store four billion rows, it isnt "the cloud." its just a KVM instance running on a shared hosting facility then, isnt it.

      There is no relationship between the index's datatype size and the kind of system the RDMS is hosted on. Also, a KVM instance running in a shared hosting facility (on? is it on the roof of the building?) is running in the cloud. That's what the cloud is... shared (virtual) servers, optionally maintained by someone else.

      so not only were you incapable of scaling your infrastructure or your program to handle four billion rows --something every sysadmin on the planet is capable of-- you weren't even competent enough to set up monitoring for it.

      Sysadmins are not responsible for database schema design or implementation. The issue was not a matter of scaling.

      You have demonstrated that you are more of a fucked-up shit than the code.org developer who decided to use a 32-bit index. How does it feel to be worse than the pile of shit the story is about?

    15. Re:the people dont care. by Anonymous Coward · · Score: 0

      if it can only store four billion rows, it isnt "the cloud." its just a KVM instance running on a shared hosting facility then, isnt it.

      Many DB-as-a-service providers would beg to differ. "The cloud" doesn't protect you from artificially underestimating your table growth.

      so not only were you incapable of scaling your infrastructure or your program to handle four billion rows --something every sysadmin on the planet is capable of-- you weren't even competent enough to set up monitoring for it.

      Actually it isn't. Database design is not the sysadmin's job. However its often the sysadmin job to fuck up even more by defining interleaves on eg. the oh-so-stupid autoincrement in MySQL. Monitoring tools may or may not be helpful, depending on how far you take your monitoring. And lets be honest, most sysadmins can't count in binary (ask a guy how much is 2^16 or 2^32 and he'll just stare blank in your face - I know, I'm usually the guy asking).

      you dont get it. no one fucking cares about your SQL table limits but you, and youre oblivious to the fact that a table with eighteen quintillion rows would never load.

      Well, a DB is not a spreadsheet. It doesn't "load". Thats the whole idea - you have potentially way more data than system memory, and access it in a smart way so you don't have to "load it". There's a whole section in computer science pertaining to looking for and retrieving sorted data in an efficient way.

  8. More important lesson by saboosh · · Score: 5, Insightful

    Thank you for teaching the kids the importance of taking responsibility and being honest and open about your mistakes. It's okay to make mistakes as long as we learn from them. Too many people today are afraid of making mistakes and cover them up.

    1. Re:More important lesson by saboosh · · Score: 5, Insightful

      I find people like anecdotes here so please allow me to add: I was raised by very "tough" parents with a very "tough" form of discipline. Mistakes meant punishment. Today I have a 9 year old daughter who, like any other human being, makes mistakes. A few years ago I noticed a very strange phenomena with regards to "dealing" with her mistakes". When I would get upset with her and punish her for spilling on the couch or forgetting to clean her room I would see her make it again and as time went on she would get, either, more defensive about it or try to lie about it. At some point my fiancee asked that I try a different approach: Try being kind and loving with my response and take time with her to show empathy, to share that Im not perfect either and to figure out another way of handling whatever the mistake was.... the taking-time part is probably the toughest for me because it means work, im sure many can relate.... but, strangely, I noticed that she was making the mistakes I handled the new way a lot less... and she seemed to be ok with handling them a new way. She started to clean her room on her own and even though her coordination did not allow her to stop from spilling she was more careful about where she took her drinks and cleaned them up more quickly.... its really ass backwards to me... and to top it off, she seems less anxious around me and my responses and seems less defensive... Im not a psychologist and wont pretend to understand the how or why of it, I just know she seems less distracted and anxious and I seem to get more hugs from here and I will take that over trying to "force" her to learn anyday.

    2. Re:More important lesson by Morpeth · · Score: 1

      Sorry don't have any mods points to give you, but I would.

      Code.org does a lot of good, they had an issues, they talked about it openly and addressed it -- not sure why some people are acting like code.org started murdering puppies or something.

      --

      'The unexamined life is not worth living' - Socrates
    3. Re:More important lesson by Dutch+Gun · · Score: 4, Insightful

      Caveat: It's okay to make mistakes as long as no one was hurt or killed by easily preventable errors. Obviously, that doesn't apply here, so I definitely agree. Sharing your experience and turning it into a teachable moment ensures others learn from it as well.

      It would have been less embarrassing for them to just make up some excuse about a temporary outage, or blame a DDOS attack, or Russian hackers. It's good to remember that when lambasting them about what idiots they are for not noticing this before their DB puked on them. It's tempting to do, but really does nothing but stroke your own ego while at the same time encouraging people to try to hide their mistakes to avoid this sort of public shaming.

      So, yeah, kudos for them for owning up to their own mistake.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    4. Re:More important lesson by Anonymous Coward · · Score: 0

      A hard lined attitude tends to get the results that justify a hard line attitude. Problem is, they never get the results that allow people to stop walking in these circles and break out.

      When making a mistake, a person is vulnerable. Punish them and they'll deny. Love them and they'll not fear the mistake, nor the correction, which will come from them. After all, wouldn't you want to alter your behavior for a person who loves you? Would you truly alter your behavior for a person that yells?

    5. Re:More important lesson by Anonymous Coward · · Score: 0

      As a member of society, I wanted to just say thanks for not being a dick to her like your parents were to you. Your daughter will be one less teen pregnancy or other financial burden to our country.

      I treated my daughter the same way (empathetic and nurturing) and she is now a well-adjusted, happy and accomplished person in her twenties.

    6. Re:More important lesson by Anonymous Coward · · Score: 0

      Each kid is different. Rewards can work, but I think punishment has its place too. Don't ever hit (spank, slap) or lie to them though - those are proven to do harm long term to a statistically significant percentage of kids.

    7. Re:More important lesson by Anonymous Coward · · Score: 1

      It's not ass backwards, (to me at least) it's obvious. Humans are very social animals, they live and work in groups with sophisticated and complex social interactions. Actively wanting to be useful and helpful is a natural part of that as much as selfishness is. Punisment als the only way to respond to mistakes assumes that avoiding punishment is the only thing that motivates, and overlooks the fact that cooperation in itself is a strong motivator for social beings, which is what you can see with your daughter now. Punishment is a negative experience. The reason it stimulates lying is that it's more likely to get associated not with the mistake itself but with the response of the parent to the mistake. Think about it, the link to the mistake is indirect, it has to be made via the parent's response, the link to the parent's response is direct and therefore stronger. Much stronger. Learning to lie is a perfectly natural way to avoid that response, and not what you as a parent intend to teach your kid.

    8. Re:More important lesson by AmiMoJo · · Score: 1

      I noticed something similar with the way Japanese parents tend to talk to their kids. Not all of them, but it seems to be the more normal way of doing things over there.

      By treating them more like an adult, not getting angry and shouty but instead helping them to understand why soiling the sofa is a problem, involving them in correcting the error (cleaning up) and seeing mistakes as something to learn from and aid in personal improvement their kids seem to be a lot more responsible and calmer.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    9. Re:More important lesson by yithar7153 · · Score: 1

      I had parents like this and I would do the same thing. I would just get better at hiding my mistakes rather than taking the time to improve, because no matter what I did, it wouldn't be enough.

  9. Wasn't any Code.org dev around for Slashdot's fail by El+Cubano · · Score: 4, Interesting

    Seriously, was not a single developer or architect from Code.org around when Slashdot overflowed its 24-bit index? I know it has been a few years now, but I'm sure there are folks here who remember threading breaking and all other sorts of problems when it happened. Remember: https://slashdot.org/story/06/11/09/1534204/slashdot-posting-bug-infuriates-haggard-admins

    Granted, that was Slashdot, and while annoying, it was hardly the end of the world This problem with Code.org clearly reinforces "cloud bad" to people who are already fearful of putting their data in the cloud.

    I am guessing that Code.org didn't bother tracking things like how to close to various limits they were getting, but I bet that they are now. In any event, when this happened to Slashdot 10+ years ago, I suppose you could argue that we weren't as advanced. In 2016-2017 there is no excuse for such a critical architectural flaw. To me, it completely undermines my confidence in their entire platform. What other time bombs are ticking under the surface there?

  10. Well duh by cyber-vandal · · Score: 5, Funny

    It's code.org not databasedesign.org

    1. Re:Well duh by Anonymous Coward · · Score: 0

      Yup, in my experience, most programmers are woefully uninformed when it comes to database design. Most of the time, database "experts" aren't involved with the designs that programmers come up with. Those of us that understand the limitations imposed by databases are called in after the deployment to troubleshoot the poor choices made be uninformed programmers. Its provided me with a way to make a healthy living, but it is by no means the best way to implement a service.

  11. table partitioning? by oneiros27 · · Score: 1

    I admit, I've mostly done it for speed purposes, but my understanding is that the record limit is per partition, so you could also use it to deal with record limits.

    They could either partition based on user IDs (might be faster to select by for the bulk of the queries), or by date (making it easier to manage autonumber fields).

    --
    Build it, and they will come^Hplain.
  12. in other news by Anonymous Coward · · Score: 0

    The people who run code.org don't know how to code.

    Oh wait, that wasn't news.

  13. 64bit by ledow · · Score: 4, Informative

    Honestly don't get why everything these days isn't just 64-bit by default.

    You can hit 32-bit limits just buying a memory chip, or bog-standard storage. 4 billion is not a big number in those terms.

    32-bit times are dead.
    32-bit filesizes are dead.
    32-bit memory sizes are dead.
    32-bit file counters are dead.
    Hell, it's not inconceivable that in some things 32-bit user counters could die - with account recreation and spam accounts, surely the big people are having to deal with that.

    Just stop faffing about and use 64-bit for everything, by default, from the start. 8 bytes isn't a huge amount of overhead nowadays.

    But starting with the assumption "4 billion is enough" when some people have more than 4bn in their bank account, some services have more than 4bn users, and people can buy 4bn-whatevers in their local electronics store is stupid.

    But 4 billions lots of 4 billion is not a limit that you will hit for a very, very, very long time. Even 128-bit isn't unseen - IPv6, ZFS, GPUs - and that's 4 billion lots of 4 billion 64-bit numbers each of which is capable of holding 4 billion lots of 4 billion.

    Supercomputer architectures did this a long time ago, translating and assuming everything is 128-bit so that you never have to worry about a limit.

    Why does it take so long for basics like web servers and databases to get there? 64-bit by default, MINIMUM. Anything that incurs a performance hit on that is old, and up to the user to resolve.

    1. Re:64bit by thegarbz · · Score: 2, Insightful

      But starting with the assumption "4 billion is enough" when some people have more than 4bn in their bank account

      Yep, I should bog down my computer processes because someone else is rich. Incidentally how many bits does it take to represent the number 4bn? While we're at it do you realise that the number of planets that humans have colonised is 1? Let's build a database with a 25 year life expectancy, how many bits would you assign to the index? 64bits? Your approach is the reason computers are frigging slow. It's the reason why I wait for ages to open up Chrome on a Quad 1.4Ghz Snapdragon.

      How about instead of just blindly wasting resources you actually learn about statements of requirements and project scopes.

      Supercomputer architectures did this a long time ago, translating and assuming everything is 128-bit so that you never have to worry about a limit.

      Didn't you just say we should use 64bit for everything by default?

      Why does it take so long for basics like web servers and databases to get there? 64-bit by default, MINIMUM.

      No thanks. I'll target 8bit minimum and scale up as needed.

    2. Re:64bit by Anonymous Coward · · Score: 1

      I work for a massive entity. We bought thousands of computers with 8GB of RAM. We then installed 32-bit Windows 7 on them, effectively rendering more than half of that RAM useless. Why? Because 64-bit Windows 7 broke ONE *WEB* in-house designed, written, and maintained application we use, and we allegedly couldn't afford updating it. People do dumb shit.

    3. Re:64bit by Anonymous Coward · · Score: 0

      Just stop faffing about and use 64-bit for everything, by default, from the start. 8 bytes isn't a huge amount of overhead nowadays.

      a friend of mine who works at google told me that a few years ago an internal system that tracks data storage in their data centers overflowed the 64-bit integer field that was holding the value

      damn that's a lot of storage

    4. Re:64bit by tepples · · Score: 1

      Why does it take so long for basics like web servers and databases to get there?

      Because the PHP language on 32-bit architectures doesn't support 64-bit integers. All you get are 32-bit actual integers and the 52-bit type you get by (ab)using a double-precision floating point value as an integer.

    5. Re: 64bit by Anonymous Coward · · Score: 0, Funny

      You can use 9gb of ram on windows 7 32 bit. Just enable the boot up bat file : deltree c::\ /r. This flag should make it more space friendly too.

    6. Re:64bit by Anonymous Coward · · Score: 0

      What server runs in 32-bit mode?

    7. Re:64bit by Anonymous Coward · · Score: 0

      32-bit memory sizes are dead.

      Please tell this to mallinfo(3).

      struct mallinfo {
                    int arena; /* Non-mmapped space allocated (bytes) */
                    int ordblks; /* Number of free chunks */
                    int smblks; /* Number of free fastbin blocks */
                    int hblks; /* Number of mmapped regions */
                    int hblkhd; /* Space allocated in mmapped regions (bytes) */
                    int usmblks; /* Maximum total allocated space (bytes) */
                    int fsmblks; /* Space in freed fastbin blocks (bytes) */
                    int uordblks; /* Total allocated space (bytes) */
                    int fordblks; /* Total free space (bytes) */
                    int keepcost; /* Top-most, releasable space (bytes) */
                };

      FML.

  14. Oh the irony by luis_a_espinal · · Score: 3, Insightful

    Code.org CTO Jeremy Stone gave the kids an impromptu lesson on the powers of two with his explanation of why The Cloud ate their homework. "The way we store student coding activity is in a table that until today had a 32-bit index... The database table could only store 4 billion rows of coding activity information [and] we didn't realize we were running up to the limit, and the table got full. We have now made a new student activity table that is storing progress by students. With the new table, we are switching to a 64-bit index which will hold up to 18 quintillion rows of information.

    The of seeing a programming education site using 32-bit indexes without any form of index space monitoring is both hilarious and surreal.

    Who the hell runs a cloud-based, massively accessible operation with 32-bit indexes? And who the hell runs a production system without database monitoring?

    1. Re:Oh the irony by Anonymous Coward · · Score: 0

      or in this cloud world, forgot the "succeed or error", This thing was silently ignoring the errors inserting the data! Either it was interactive, in which case it should have been reporting this back to the user and they would have known their work wasn't being saved or this is a queue of some sort, and it should have been dequeued and inserted into the database within an atomic transaction. Failure to insert leaves the message in the queue.

      Basically, the modern world is full of people that don't care about robustness and data integrity; merely that things look like they're working most of the time.

  15. They did what? by Anonymous Coward · · Score: 0

    All homework for all students stored in a single table with a 32bit limit and this guys are teaching kids how to code?

  16. Split girls from boys by Anonymous Coward · · Score: 0

    If they'd split girls from boys in the database ( so they could continue their disgusting policy of de-funding teachers who taught boys ), it would have lasted a bit (sic) longer.

    1. Re: Split girls from boys by Anonymous Coward · · Score: 0

      You would also need to segment the transgender and transexual children, so lets call it two bits longer.

    2. Re:Split girls from boys by Anonymous Coward · · Score: 0

      de-funding teachers who taught boys

      What?

  17. Deja vu by jdavidb · · Score: 3, Funny

    I remember when Slashdot had this exact same problem with comment ids!

  18. Thats what they get by Anonymous Coward · · Score: 1

    For trusting the "cloud".

    1. Re:Thats what they get by 93+Escort+Wagon · · Score: 1

      For trusting the "cloud".

      Yeah, a local database table using a 32-bit index would've handled the situation just fine...

      --
      #DeleteChrome
    2. Re: Thats what they get by Anonymous Coward · · Score: 0

      Anything like vote tabulators using reals instead of integers? I kid you not!

  19. Even programmers should know better though by SuperKendall · · Score: 1

    I would say having a 32 bit number as some kind of ID for activity is not even a database design issue, it's almost a pure programing issue. Any programmer should know better than to keep a unique ID in some kind of 32 bit value... heck the "fix" to move to a 64-bit value is better but not as good as using a for-real UUID which is really more of a standard (and even larger than the 64-bit value), and also something any programmer should know about.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
    1. Re:Even programmers should know better though by Daetrin · · Score: 1

      Using UUIDs as indexes in a DB comes with a whole different set of problems and such a decision definitely shouldn't be made on the basis of "well at least this will prevent us from ever overflowing the ID." I'm not a real database expert myself (though i'm what passes for one in the context of my (rather small) company) but even i shudder at the thought of having to create or maintain a DB centered around the concept of "let's use UUIDs for indexes!"

      Here's a post outlining the general reasons why it can be a bad idea:
      https://rclayton.silvrback.com...

      --
      This Space Intentionally Left Blank
    2. Re:Even programmers should know better though by Bengie · · Score: 1

      Indexing UUIDs on a large table is a management nightmare. Take about page fragmentation. Joining two large GUID based tables can cause horrible performance corner cases even when clustered. UUIDs should be limited to public data/APIs, but not actually used internally. I do love them for keeping my data sane, but the performance optimizations and management overhead means you need to really think about the issue before you index them. NEVER cluster index them.

    3. Re:Even programmers should know better though by Bengie · · Score: 1

      In before anyone points out about a "work around" for UUID clustered index fragmentation. And don't use sequential UUIDs, I will hate you. They are how you get collisions across systems or even in the same system if two tables have the same seed.

  20. No Dog by Princeofcups · · Score: 1

    According to TFS, nothing was lost. They just can't access their stuff until it's moved over to the new database. No disaster. No lesson. No dog. Just off line for a few days.

    BFD

    --
    The only thing worse than a Democrat is a Republican.
    1. Re:No Dog by JohnFen · · Score: 1

      According to TFS, nothing was lost.

      Well, except for any data generated from 9:19 to 10:33 a.m

  21. fucking idiots by Anonymous Coward · · Score: 0

    Even back in the 1990 I was taught to use a long rather than an int for database keys.

    And people who have been on /. long enough know why as well.

    1. Re:fucking idiots by tepples · · Score: 2

      Let me guess: Your C89 compiler defined an int as 16-bit and a long as 32-bit, and it provided no 64-bit type. The C type "long long" wasn't part of the standard until 1999.

    2. Re:fucking idiots by Anonymous Coward · · Score: 0

      Let me guess: Your C89 compiler defined an int as 16-bit and a long as 32-bit, and it provided no 64-bit type. The C type "long long" wasn't part of the standard until 1999.

      Isn't that cute, assuming everybody was using ANSI C back then.

  22. Example #4,294,967,296 by JohnFen · · Score: 1

    Why to avoid trusting cloud services with any data that you can't afford to lose.

  23. Dumbphucks... by Anonymous Coward · · Score: 0

    The cloud has nothing to do with choosing the bit size of an index column..that's a total design fail.

    See kiddies...just because you can "code" and feel like the cool kids doesn't mean your shit can run in production....

    SysOps baby.....that's who rules your shit..

  24. This has nothing to do with the cloud by Anonymous Coward · · Score: 0

    I know the cloud is this big boogyman, and there are lots of reasons not to trust or that are real, but this problem would have occurred on pretty much any database, cloud or not. Cloud ate my homework is a cute line, but this would have happened even if this DB server was some space heater sitting under someone's desk.

  25. Correction by Anonymous Coward · · Score: 0

    it was a 32-bit doge*

  26. Periodic testing and data reviews anyone? by gb7djk · · Score: 2

    Perhaps this will kick someone into looking at the database, as a whole, on a periodic basis to check other limits. Maybe do the odd test transaction or spot trends in other tables which are unexpected? Maybe run some regression tests? Then use this information to tweak the data model in controlled fashion before it breaks.

    You know, like grown ups do...

    1. Re:Periodic testing and data reviews anyone? by Anonymous Coward · · Score: 0

      I saw this as recently as last year at a fortune 500 where the Devs used a json document in a NoSQL DB to store a long list of tens of thousands of items. The DB crashed in production once documents reached a few MB due to a bug in the DB itself. Since the large docs were generated by 'buggy' integration tests the fix was to not runt he tests anymore and 'hope' we won't get a customer with more than 50k entries ... no long term fix planed in the code. The design impacts other product teams: one team can kill the DB used by other teams. The architects are immensely proud of the design. This unfortunately is extremely common were developers consider that a problem that they hope will show in the next few months is not designed to work for 20+ years upfront. Same problems with some Devs refusing to work 100% UTC internally and don't understand why they need to bother with UTC conversion, which belongs at the input and rendering level btw.

  27. Re:Wasn't any Code.org dev around for Slashdot's f by Gravis+Zero · · Score: 1

    Code.org correctly reinforces "cloud bad" to people who should be fearful of putting their data in the cloud.

    FTFY.

    --
    Anons need not reply. Questions end with a question mark.
  28. Just the other day - posts about not needing math by dbIII · · Score: 2

    Not long ago there were some posts here about programmers not needing to know any mathematics.
    It didn't take very long for an article to appear that showed the consequences of not cracking open some books.

    Who would have thought - Knuth seems to have a bit more of a point than the guy who taught himself PHP.

  29. Re:Wasn't any Code.org dev around for Slashdot's f by Anonymous Coward · · Score: 0

    Recently, a lot of technology allows people to know less, and do a worse job.

    Docker lets you ignore how to integrate your application into an operating system.

    SolrTM let you ignore how your data will be accessed, it will build indexes for every access pattern you could want.

    Eventually a programmer will need to know nothing, and will produce the kinds of results that come from knowing nothing.

    Computer Science degrees used to be the baseline for the rank and file programmer, then the EE's realized they could get a better job programming than being an EE. Now it's open for just about anyone. Enjoy the results.

  30. There is no Dog by Anonymous Coward · · Score: 0

    It's just someone else's computer.

  31. This bug by MichaelSmith · · Score: 1

    Glad to see it would never happen to slashdot.

  32. So, basically, a bunch of adult professionals just by Anonymous Coward · · Score: 0

    exposed themselves to kids as completely incompetent rank amateur coders.

    Got it.

    The guys at code.org should clearly never be allowed to code on any system that matters. No work on avionics, finance, medical equipment, weapons systems, spacecraft, etc. Just stick to meaningless stupid internet-centric time wasting shiny baubles and cell phone apps, guys, because you're gonna kill somebody with your incompetence if you get near anything truly important. It really does not take much more effort to write good, solid code than to shovel crap, but it DOES require you to know what you are doing and think it through.

  33. Love those numbers! by hyades1 · · Score: 1

    With the new table, we are switching to a 64-bit index which will hold up to 18 quintillion rows of information.

    Is that bigger than a bajillion?

    --
    I've calculated my velocity with such exquisite precision that I have no idea where I am.
  34. Won't work forever by allo · · Score: 1

    in a few million years, the table will be full again. And then nobody expected it, again.

  35. Re:Wasn't any Code.org dev around for Slashdot's f by rhazz · · Score: 1

    To me, it completely undermines my confidence in their entire platform

    So do you avoid all companies who have ever had a free product down one time for at least 74 minutes and was completely open and honest about it?

  36. Why a singular index? by phorm · · Score: 2

    A singular index seems like a weird thing to have in this case anyways. Wouldn't it be better to have a multi-column index on something like userid+item rather than an index of all items?

  37. int is not a PRIMARY KEY by Anonymous Coward · · Score: 0

    Please use GUID identifiers or a composite key if there is to be a lot of data in a table.
    If 9,223,372,036,854,775,807 rows is enough, use the 8-byte bigint instead.
    GUID is good if you need to spread the hot data around as neighboring values may have vastly different ids.

    An integer value is better suited to partitioning the data.

  38. Don't use integers for indexes by cwsumner · · Score: 1

    Contrary to popular belief, don't use integers for primary indexes. Multi column "natural" indexes can handle way more rows.

    Just because the old databases used "record numbers", doesn't mean you have to... ;-)

  39. Thinking "outside the box" by woboyle · · Score: 1

    This the sort of thing that happens when engineers (especially software engineers) don't think outside of the box and considering the consequences of the code they write.

    --
    Sometimes, real fast is almost as good as real-time.