A few months ago I added a Chaos Game implementation to the site. It was pretty slow, partly by design and partly by happenstance. When Apple recently released a new version of Safari with some impressive performance claims, I decided to revisit the code and see what I could see.
The initial version I wrote capped the drawing speed at 100 points/second. That was mainly because I didn't want it to overwhelm an OLPC, because I liked the educational aspect. Of course, that also limited the performance on machines that are very much faster, too. What I did was go in and change the code so that the update interval lengthened for slower machines.
Now if you go in and test it, it should be blazingly fast on better hardware. After you hit Stop, it'll display just how fast it was if you hover over the drawing area. On my machine, I get around 4000 points/second using Firefox 3.0.11. Using Safari 4.0, it gets around 15000 points/second; nearly the 4x benchmark that Apple lists. The OLPC comes in at a fairly pokey 300 points/second, and isn't very responsive otherwise, the poor thing!
Earlier this week Apple announced MacBooks now came with an SD slot. They still did not announce any Blu-ray support, despite being a major Blu-ray Disc Association member. Just like when they standardized on USB or when they ditched the floppy, this is telling.
Whatever you think of Apple, as a system company they sure have a history of doing a good job building things people (will) want. SD cards have done a pretty good job of taking over the flash memory market, second only to thumb drives. The addition of slot on portables is a welcome start for Apple, and probably means similar support on other systems in the future.
So why is that a nail in the coffin of Blu-ray or, worse, all optical media? It's just Apple reading the writing on the wall. The reality is that optical media has not been keeping up with the rapid advances of other storage technology. Even if HVD were readily available today it would be lagging behind.
Let's put it into perspective using the Apple history timeline. The first Mac that shipped with a CD-ROM was the Performa 600. It also shipped with a whopping 80MB hard drive, making optical storage 7.5 times more dense than common magnetic technology of the time. By the time Apple was shipping Macs with DVD drives, hard drives were around 15GB, eroding optical to 1/3 the relative capacity. Today Apple ships iMacs with around 500GB hard drives, making Blu-ray (at best) only 1/10th the size. At $5 for a 25GB BD-R disc, you'll spend $100 on media alone if you wanted to back up that hard drive to Blu-ray, whereas a second 500MB hard drive would only cost you $60.
"But, Impossibly Stupid", you say, "isn't flash memory usually smaller and more expensive than Blu-ray?" Maybe. SD cards in the their sweet spot range (currently 8-16GB) are around $2/GB compared to just $0.2/GB for the BD-R media. While the SD card can be used over and over, though, the Blu-ray disc is write-once and the burn could fail. That's something that adds up at $5 a pop. You also have to factor in the price of the Blu-ray drive itself, which is going to add $100-200 as an optional offering. You'd come out ahead after you burn your first 100GB, but only if you never want to save that data ever again.
As you can see, optical is just getting squeezed too much to have a place on the desktop. For a large volume of data, hard drives have it beat in cost. For portability, flash memory is going to keep making gains. For even smaller amounts of data, the Internet has filled the role that DVDs and CDs used to take. Apple hasn't yet killed optical media like it killed the floppy, but they did fire a warning shot this week, and without some breakthrough technology that'll put 10TB on a disc for under $100 in the next 3 years, optical storage needs to die.
How does a CEO prove themselves so terminally clueless that investors should sphincter-pucker on all funding? We7's Steve Purdham has the answer for you:
Why do you actually need to have something downloaded on your PC? The streaming idea is really the future.
Everyone who didn't try to stop him from saying that needs to be fired. And not the small kind of fired, either, but the should-never-be-in-a-position-of-authority-ever-again-and-would-you-like-fries-with-that kind of fired. On the off chance you don't know why, allow me to spell it out.
It's not just downloading, it's requiring a download every time you want to play something. It's requiring sufficient bandwidth to download everything in real time. It's requiring a constant connection to download without error. All because you don't want to use pennies in disk space? A whole lot of people have to be a whole lot of ignorant about the state of technology if that's the corporate mindset surrounding these services.
As though saying this in any way explains my hiatus, blogs are impossibly stupid. People get into the habit of reading or writing something regularly, and then it seems like they become slaves to the demand of the technological ubiquity. They stop living life because they get caught up in documenting it instead. I used to think blogs were the height of self-indulgent shallowness, then Twitter came along and made blogs look downright respectable. Still, that doesn't mean I feel obliged to follow a regular schedule. Nobody's paying me for a weekly column, so you get what you get. Hopefully that means you get more than just another talking head that needs to fill 4 column inches with anything or the 30 minutes of nightly "news".
I'd have put this under No I Didn't if it didn't demonstrate a stupidity beyond politics. Linda Sánchez is the foul, disgusting, filthy, unprincipled, sordid author of the following in H. R. 1966:

Whoever transmits in interstate or foreign commerce any communication, with the intent to coerce, intimidate, harass, or cause substantial emotional distress to a person, using electronic means to support severe, repeated, and hostile behavior, shall be fined under this title or imprisoned not more than two years, or both.
I find it to be incredibly coercive, intimidating, harassing, and causing of substantial emotional distress for my First Amendment rights to be threatened by her using electronic means to repeatedly transmit this severely hostile legislation to citizens of the United States. If she really believes in this course of action, I expect her to volunteer to be the first person to serve 2 years for its violation.
Isn't it about time we got rid of ZIP codes, and all locally-designated postal codes in general? Some of the work I've been doing recently involves GIS data, and the uniformity has been amazingly useful. Further, given the ubiquity of GPS devices these days, I think that people are ready for something that is more directly tied to the real world. Let's explore how impossibly stupid this might be.
In the USA, we use a 5 digit number that often is extended by 4 more digits (aka, ZIP+4) for reasons only the USPS cares about. That makes for, at most, a billion unique territories. The amount of area represented by the initial 5 digits varies, but in my local metro they seem to be about the size of a square arc minute. In decimal degrees, that would require upwards of 14 characters (-YY.yy,-XXX.xx). Not a win length-wise, but in the balance we get uniform global coverage.
Let's say we don't care about global coverage. A smaller representation is possible if we note that the continental United States latitudinal span is within 26 degrees (50 to 24 N) and the longitudinal span is within 60 degrees (125 to 66 W). That means the degree values could be encoded as A-Z (base 26) for latitude and 0-9A-Za-z (base 62) for longitude. If we then use the same range for minutes that we do for longitude, that allows us to compact the location down to 4 characters (YyXx). A mixed representation (YXyx) might be even more interesting, since it allows the precision to be easily adjusted by simply appending pairs of digits.
That seems a pretty arbitrary encoding to use for just part of the United States, so lets try to apply the same idea of encoding to reduce the length of standard geographical coordinates. The entire degree-space that needs to be covered represents 180 x 360 = 64800 distinct values. To represent that in 2 characters, we'd need at least a base 255 encoding; easy for computers, but not for humans. Even the base 62 representation used in the last paragraph is pushing it, because humans aren't that particular about uppercase and lowercase differences, nor are they universally able to tell the difference between 1 and l and I when written down without context. Base 30 is about the highest you should expect out of people with the regular alphanumeric character set, and maybe throw in a few punctuation marks to get up to 32 if you want to make computers happier. Going to 3 characters only allows for base 41, but the step up to 4 characters gets us to base 16 without that much waste, which is all kinds of awesome for both people and computers.
Unfortunately, just another character gets us back to something that can be represented in base 10, and in all cases the mixing of latitude and longitude into a single value would make it harder to figure out what the neighboring areas are. Plus we still need 100x100 more resolution in order to get down to the same detail that the current system handles. We've outsmarted ourselves into a swamp; time to go back to stupid.
If we can't exploit a compressed encoding, lets see how far we can get by looking at symmetry. Since we want to keep latitude and longitude split, we're back to the original 180 x 360 space. Even that is commonly further split from 90N to 90S (or 90,-90) and 180W to 180E (or -180,180). If we take 90 degrees as the base unit of symmetry, we have 3 combinations of division (north/south, east/west, far/near) that represent the global octants, all of which can be represented by a single base 8 character (probably best not alphanumeric). Within that area, we still have to represent at least 9000 points (hundredths of a degree) of accuracy. That would be exceeded by 3 times using 3 characters if we use the aforementioned base 30 (as opposed to 5 characters for 90.00).
Whew! So where does that leave us? A 7 character long world-wide postal code that is tied to geographical position with sub-kilometer accuracy. Seems like a pretty good scheme for all concerns, even without going into how the position is ordered and encoded. For example, New York City (at 40.716667, -74) could be represented as DH5^R20. If you need to see it in action to make more sense of it, let me know and I can create a reference implementation in JavaScript.
Some work I've done on a project probably won't make it to the final version, so I'll drop it off here because it covers something I find impossibly stupid: image zoom/enlarge on the web. With high speed connections the norm, people think nothing of making larger images available, but they really should think more about how they make them available. Here are some things I find annoying about what sites commonly do (if I missed your own pet peeve, please add it to the comments).
So here is image zooming done impossibly stupid. A click swaps between a large and small picture bound to the same element. Mouse movement is followed so that the enlarged image tracks the small image proportionally. A click returns you to normal.
Using my half-beard image as an example also reminds me to remind you to vote in the beard poll! Time is running out! Only nearly four to eight years left!
April Fool's Day is impossibly stupid. Not simply because of its origins, but because it has become a global outpouring of lameness on the Internet. Since I'm big on inversions, though, I'm going to take this opportunity to reverse that trend and do something that doesn't suck today. I'm giving $14 to everyone who adds a comment to this post on 1-4-2009 (that's a proper ascending date, USA-type-people).
In that comment you must, of course, identify yourself in some way so that I can get you the money. I don't need identity-theft levels of personal information, either. Just enough details so that I can get you the money. That's probably going to be a street address, but it could just be a name if I know you. To avoid scams and spam comments, you'll also have to say something human to demonstrate that your submission wasn't auto-generated.
Payment will be in the form of 7 $2 bills. While $14 doesn't seem like a big prize, it is a believable amount. I mean, you do believe that I'm sincere in this offer, right? To dispel any doubts, here is me getting all "gangsta" with the cash:

xkcd is usually a pretty good comic, but not today:

I hope you see by my title why this is impossibly stupid. It's not a question of the orders of magnitude difference between million and billion. It's a question about the vector of the value. Since these jackasses weren't getting negative bonuses when they were making money, they shouldn't be getting positive bonuses when they're losing money. That would be the honest comparison.
Some people have a hard time grasping that disorder can yield order, or that an impossibly stupid approach can yield beautiful results. Those people have clearly never heard of the Chaos Game. I bet you knew my earlier talk of fractals would get us here eventually.
Or perhaps you have heard of the Chaos Game, but you're just disappointed by the 10 year old Java applets around the web. For your amusement, I present what looks to be the first decent JavaScript version. Click in the drawing area to set your points, pick your decimal fraction to move, and let it go! Suggestions for improvements and/or bug reports are appreciated.
Note: my code attempts to use the canvas element to draw the dots. For browsers that don't support that, the code uses 1 pixel div elements. Having thousands of elements in the document for longer plots can potentially suck up a lot of resources. If you're going to let it run for longer than around 30 seconds, you're probably best served by using a browser with canvas support.
Update: the code has been modified since original publication as explained here
Recent comments
10 weeks 2 days ago
12 weeks 1 day ago
15 weeks 2 days ago
15 weeks 3 days ago
22 weeks 5 days ago
22 weeks 6 days ago