|Ned Batchelder : Blog | Code | Text | Site|
» Home : Blog
I saw a new TV commercial for Mountain Dew a few weeks ago, and was flabbergasted: it was the old Mad magazine "Spy vs. Spy" cartoon, translated into 3D. Bob Congdon found online copies of the ads. I think they've done a stellar job of capturing the feel of the cartoon, both in terms of the elemental plotting and violence, and the stripped-down black and white look of the strip. One of the ads ends "to be continued". I hope there will be more...
A friend chided me for not putting the full text of my blog entries in my RSS feed. He made a number of good arguments, including showing me how my site looked on his phone (crappy). So now I am providing two RSS feeds. The classic feed, with the first paragraph of each entry, and a full text RSS feed with the entire text (and images if any) of the entire post. Enjoy.
The clever XSLT styling trick doesn't work right for the full feed in Firefox, though it does in IE. Oh well. And the feeds don't strictly validate, but I don't care. Maybe someday.
By the way: does anyone know of an emulator for the phone browsers? Another "some day" task: I might also try to make the site look better on those dinky screens.
I found an implementation of a random number generator today, and the comments said it was using the RC4 algorithm, not to encrypt, but just as a source of randomness. I was intrigued.
RC4 is a symmetric encryption algorithm developed by RSA Security. A key is used to initialize a random number generator. The output of the generator is XOR-ed with the cleartext to produce the cipher. The strength of the cipher is dependent on the "strength" of the randomness, that is, how hard it is to predict what the next random byte will be. (The name is because it was the fourth Rivest Cipher).
The analysis shows certain subtle weaknesses in RC4. Others have tried to create new similar algorithms without the same weaknesses. For example, Bob Jenkins created ISAAC. Until the mathematicians have spent a decade poring over ISAAC output, there's really no way to know if it has other unidentified weaknesses.
I only heard about this briefly, but it's more cool news from NASA: the Cassini mission is nearing Saturn, and getting lots of good photos of the many moons there. They'll be getting much more in the next weeks, I'll have to remember to go back to the Cassini photos to take a look. Here's Phoebe:
Today's word of the day is verruca:
I've long been a fan of the book Charlie and the Chocolate Factory, and this brings whole new nuances of meaning to the character Veruca Salt.
Joel mentioned General Interface in his links about web interfaces, so I gave it a look. I agree with Joel that it is disappointing that they rely on Internet Explorer, but it is even more disappointing that the sample interfaces seem wacky and uninspiring. To me, they felt like stupid web tricks, rather than a useful interface. Maybe they've got some great technology under there, I don't know. I didn't find the samples compelling.
I started reading "Life of Pi" back in May, and finished it a few weeks ago. I found it very interesting, on a number of levels. On its face, it is the story of a sixteen-year-old boy marooned in a life boat with a Bengal tiger. But there are other levels, though they are not apparent until the end of the book. It was a simple, if outlandish, adventure story, until it became a thought-provoking exploration of the nature of man and religion.
Here's chapter 22 from the book:
Bob Bemer died this week. I thought I had written about him before, but I haven't. As his home page explains, among his acheivements were the addition of the backslash to ASCII, and the creation of the escape character. These artifacts are so paleolithic, it's hard to remember that someone had to create them. He also explains where curly braces came from. Next time you type curly braces in your favorite programming language, or use the escape key to dismiss an annoying dialog, thank Bob.
I was sent this link by a number of people (you all think you have me pegged, don't you?): Cones, Curves, Shells, Towers: He Made Paper Jump to Life, about David Huffman, who studied the nature of paper with curved folds. I wanted to find some instructions for making his paper designs. I couldn't find any, but found a profile of Huffman at Paul Haeberli's ur-blog Grafica Obscura. And I didn't realize he was the guy behind Huffman codes until I read this Scientific American profile reprinted on Huffman's nephew Ken's site.
Mark Cuban writes up his #1 rule for success: Sweat equity is the best equity!.
By the way: Mark Cuban is the Mark Cuban, founder of Broadcast.com, and owner of the Dallas Mavericks. His blog has an awful lot of NBA stuff on it, but also entrepreneur viewpoints.
I stumbled upon the Digital Object Identifier system, and I feel like I've fallen down a rabbit hole into some sort of parallel universe. It's an elaborate scheme for "identifying and exchanging intellectual property in the digital environment". There are RFCs, an extensive handbook, and an active organization.
The idea seems to be a URN implementation. For example, the handbook is doi:10.1000/186, though browsers don't recognize the doi: URI scheme, so there's a web implementation: http://dx.doi.org/10.1000/186. It reminds me of tinyurl.com, though to solve a different problem.
Is this going to be a real thing to know about, or is it one of those Library Science specialties that doesn't much get out into the real world?
The Apple Collection is chock-full of what can only be described as Apple Cult Ephemera. I first landed at their paper eMac, but quickly found tons of other stuff, including tattoos, cakes, and aquariums. It's a wide world out there.
Bob Congdon found the (an?) origin of the phrase "boil the ocean":
I'm switching over to a new laptop (actually, the same old laptop, but with a new disk with new software installed to try to run away from the badness the old software had: a long story). It's a huge pain to re-install everything I had surrounded myself with. While a fresh start is appealing, I fear leaving something behind, or overlooking some crucial data or setting that will be difficult to recreate.
And of course, the new software will be the latest versions of everything, so there's the risk that something will break because of those upgrades. For example, the software that creates this web site is broken, I think because of an upgrade to Pyana 0.9.0. I'm creating this entry on the old laptop, running the risk of getting the two machines out-of-synch after copying my personal data.
Update: the problem was a difference in how Pyana deals with newlines after XML declarations in files, and my Python code assumed the declarations would be on their own line. The problem is fixed, and this site is now live from the new laptop!
I received a package the other day, a book from a used book store. They chose an unusual way to pay the postage — with decades-old stamps:
Another remarkable set of PhotoShop transformations: Fat Stars, celebrities made to look fat.
It's not often I find a web page that neatly combines two of the frequent but light-hearted topic from this blog. Paper Arcade does, a collection of paper models of vintage arcade video games.
Damien Katz is a good friend, and a hell of an engineer. He's looking for short-term contracting work. If you have a project that could use a kick-ass C++ developer, you're not going to find better. I've worked with him at Kubi Software, and at Iris, and would eagerly work with him again. He tackles the thorniest tasks with gusto. As an example, he completely rewrote the Notes formula engine for Notes R6, improving both its functionality and its performance while he was at it. Take a look at his resume, and give him a call.
I heard this on NPR a few weeks ago, and now Paul Ford has put the text on his site: Gallivespians
Glen Whitman has been compiling a list of The Two Things: pithy wisdom summing up the core of any subject in two items. Some are honest attempts at encapsulating a topic:
Some have a grain of truth but are mostly just funny:
I was browsing the web for used books today (Alibris is wonderful), and saw the condition of one book described as "slightly shaken". I'd never heard the term before, but found it in Carl Noe's Book Collector's Glossary:
I couldn't find any definition for another word: "shelfcock".
In Fredrik Lundh's breezy list of happenings at EuroPython I saw a reference to SilverCity. It's a Python module for lexing source code, making use of Scintilla. This is an odd inversion: I would have expected a syntax-coloring editor to make use of a lexer module, not the other way around, but so be it.
I hooked up SilverCity into my blog system, tagged my samples by language, and it works great. Now my code samples are all syntax colored automatically. And with the samples tagged, I can also compile a useless census of code samples by language:
Aside from all the code samples that were really just text files or console displays, the trickiest entry was the polyglot C and PostScript code, where syntax coloring for a single language would ruin the fun.
This blog runs on home-grown software, so it usually lags in technology behind the usual blog software. I've been pinging weblogs.com and blo.gs for a long time, and figured I could skip the other services because I didn't want to track down how to do each one.
Today I discovered Ping-o-Matic, which is a meta-pinging service: you ping it, and it pings everyone else. Handy. But it has an XML-RPC interface, and that's one of the things I had never spent the time to learn how to do. Well, it couldn't be easier. The Python xmlrpclib module makes the whole thing totally transparent:
So now I replaced two HTTP get pings with one XML-RPC ping, and I'm reaching more services. Sweet!
Just saw this on Insomniac with Dave Attell: ScooterMan is an outfit in London that drives home people too drunk to do it themselves. Unlike a taxi, though, they get your car home too. They arrive on a miniature folding scooter, which they collapse, bag, and put in the trunk of your car. Then they drive you home in the car. Then they leave on the scooter. Nice.
One of the mysteries of blogging is trying to figure out why some posts get noticed, and others do not. Last April, I wrote about why smoke tests are called smoke tests. It didn't seem to provoke any response, though I thought it would. So I'm bringing it to the top again, to see if it provokes any now: Smoke Test.
Joe Ely's Learning About Lean blog is interesting because for me, its content is an unusual mix of relevant and irrelevant. Joe is the directory of quality for a building company, and his blog is about Lean Manufacturing, which seems to be a movement about ultra-efficient manufacturing processes, at least in terms of supply chain dynamics, inventory, and so on. I really don't know anything about it.
But that's part of the interest: he talks about improving processes for a domain that is completely foreign to me, but it is all relevant to my work anyway. Depending on your appetite and capacity for business-speak about improving work habits, processes, and project techniques, you may find it interesting as well.
I received an email recently that had a text attachment with this XML stuff in it:
It didn't look familiar, so I did a few Google searches, and eventually found RFC 1896: The text/enriched MIME Content-type. It isn't XML: it's an SGML-influenced syntax for simple enrichments to plain text emails. Funny that it's been out there for so long and I'd never run across it before.
This feels like an abandoned line of development in the progress of technology, like gopher, Archie, and Veronica. They were good ideas, but something even better, and at first blush not even that different, came along and blew them away.
BTW: Zvon's great RFC Repository is still the best way I've found to read RFC's, but they seem to have sprouted an unusually diverse bunch of ad mushrooms. They seem to be sprinkled everywhere, in remarkable variety, and for some very spam-worthy products. Too bad, but necessary I suppose.
Playing With Time's gallery has dozens of QuickTime clips of elapsed-time movies. The time-scales vary widely, from a nerve cell in 20 microseconds to a woman aging over 69 years, to tectonic plates over 240 million years.
Meta-Efficient is a review site full of products and devices that are the most efficient of their kind.
On a web design note, they have an unusual styling trick for their links: when hovered over, an animated gif is set for the background image, making a line of moving arrows underline the link.
Every once in a while, when the Flash gamers don't want to make yet another clone of an old game, they come up with something new and interesting like Bubble Fun. It's simple and abstract and requires thought rather than reflexes. Excellent.
My high score is 23660. As the game progresses, the board becomes so volatile that it is nearly impossible to extend the game to get a higher score.
Tim Bray writes about his impressions of a gathering of very experienced techies:
This struck a chord in me, and made me think back on engineers I have worked with, the exceptional, the average, and the mediocre. I thought about their eyes. Interesting.
A co-worker had a little statuette of Quisp on her shelf. When I first saw it, I was really excited to see him and pointed him out to others. Being younger than me, they were baffled. Quisp? What's Quisp?
This is important stuff, so if you aren't familiar with Quisp, and especially his epic battle against his rival Quake, study up. Here are two good resources:
Bil Lewis has implemented an Omniscient Debugger for Java. It tracks the entire history of the execution of a program, allowing you to move backward and forward through time watching the state change. There's even a slider at the top to change the time. It sounds very cool, though I'm skeptical that it could be used practically on real programs (that is, large ones).
I'd like to take some XML data I have, and transform it into a graph diagram (not a quantitative chart, but a topological graph). SVG is an XML language for diagrams, but won't do graph layout for me. Graphviz does layout, but has an ad-hoc language. For some reason I'd rather it was XML input. Has anyone found anything useful along these lines?
Highlight is a tool to syntax-color source code. I haven't tried it, but it seems very impressive: it supports 100 source languages, and writes output in a bunch of formats (HTML, RTF, TeX, XSL-FO, for example).
Manhattan Timeformations is a visualization of the changes on Manhattan Island over the last 345 years, from Dutch settlement to skyscraper canyons. It's very well done, though too dark for my taste. I wish I could have layered interactive guides to large software projects. For example, start with the 1.0 code, then watch as new modules come and go, lines of code change, architectures shift, and so on.
People have tried this software visualization with some success. For example:
Seth Godin writes about how great and how horrible benchmarking is: The Curse of Great Expectations.
Being a quantitative person, I'm very susceptible to benchmarking. Technorati, for example provides all these amazing factoids about links to a blog, even helpfully providing a total count at the top of the page. Watching those numbers go up and down is very addictive, but to what end?
An ex-colleague is going through a sex change process. It's the kind of thing that is easy to make light of. There's plenty of nasty humor that comes bubbling up when hearing the news or gossiping about the details.
Personally, I can't imagine going through something like this, for two reasons. First, I have absolutely no interest in changing myself this drastically. I hesitate to change the style of my hair. Halley Suitt just wrote about gender identity: Feeling. I'm with her: the other half is fascinating, compelling and attractive, but utterly foreign.
Second, think of the sheer volume of friction you'd encounter trying to make something like this happen. He has (or had, I'm not sure) a wife and a family. He has an entire social network, including all of his co-workers. To take on changing something so fundamental about yourself, and to change it so drastically, is a Herculean task. There's got to be a huge amount of pressure to leave things be.
I imagine how I would feel dressing as a woman, trying to "be" a woman, and I know how awkward, wrong, and out of place I would feel. It would be an oppressive burden every moment I was attempting it. People say that they go through a sex change because that is how it felt to them to be in their birth gender. They say that they are willing to go through the enormous effort, cost, risk, and social back pressure, to get to a place that feels normal to them, regardless of how it looks to the rest of us.
As I say, I'll never know how these things feel, but I'm trying to understand the pain he must have been feeling to have undertaken such a thing. In commenting on the effect this will have on his family, I've heard that people have said, "He'd be better off dead." I can't imagine either needing to do something that would provoke that response, or actually doing it. It's an enormous change. I wish him/her good luck.