Renewal of the blog

Hello, world

I am currently a high school math teacher at Cass Technical High School. I am teaching Geometry and IB Math Studies SL.

I am going to use this blog to reflect on lessons that I have given, lessons that I would like to give, and just general thoughts.

This week is the Hour of Code, which DPSCD (Detroit’s district of public schools), and I used the Khan Academy Hour of Code to introduce my IB Math Studies students to Javascript. I wish I could take my Geometry students but the class has about ten more students than computers available. I’m not sure how fruitful of an endeavor Javascript is in real coding, but it does allow them to practice their ()s and their ;s.

I also emphasized commenting on their code, and gave them the reference to what happened to Microsoft’s Pinball game after XP came out.

Raymond Chen, a software engineer whose job was to port code from 32-bit Windows XP to 64-bit, explained what happened:

One of the things I did in Windows XP was port several millions of lines of code from 32-bit to 64-bit Windows so that we could ship Windows XP 64-bit Edition. But one of the programs that ran into trouble was Pinball. The 64-bit version of Pinball had a pretty nasty bug where the ball would simply pass through other objects like a ghost. In particular, when you started the game, the ball would be delivered to the launcher, and then it would slowly fall towards the bottom of the screen, through the plunger, and out the bottom of the table.

Games tended to be really short.

Two of us tried to debug the program to figure out what was going on, but given that this was code written several years earlier by an outside company, and that nobody at Microsoft ever understood how the code worked (much less still understood it), and that most of the code was completely uncommented, we simply couldn’t figure out why the collision detector was not working. Heck, we couldn’t even find the collision detector!

We had several million lines of code still to port, so we couldn’t afford to spend days studying the code trying to figure out what obscure floating point rounding error was causing collision detection to fail. We just made the executive decision right there to drop Pinball from the product.

So one tiny error could not be found in the Pinball code, and they had to scrap the entire program as a default because they couldn’t update it!

They ran into that problem too when they were trying to adjust parts of their diagrams and each time had to run a trial-and-error to find which part they wanted to change, so they got the idea quickly.

I’d like to spend more time on coding, but I have to get back to the regularly scheduled programming soon!


Comments

Leave a comment