We had a screening of the new Joss Whedon movie Serenity in our screening room at Pixar. I have been awaiting the movie ever since I first heard of it, and was not disappointed. This movie is great, with superb performances, acting, dialogue, plot and action. I'm not going to spoil a minute of the movie by describing the plot, but if you are a fan of the original television show or not, go to see this movie. It's great stuff.
Twice in one day...
Scoble responds to lots of criciticism that he's evangelizing a crappy format, and really misses the forest for the trees. Actually, he misses the trees too. Earlier today I recorded this podcast, which I wasn't going to post, but if Scoble's going to go on, I think it actually merits it.
See, as a user, I really don't care about the spec. I can't read them. I don't appreciate them. And, all they seem to do is lead to religious arguments one way or another.
I'm a user. Shoot me.
But what Dave did was give me an application. It works. And, as a user, I wonder "if the format is so crappy, how did Dave get it to work in his own application?"
And, as a user, I wonder "why can't the developers just get their OPML to work with Dave's application?"
The reason that developer's just can't get their OPML to work with Dave's application is because the specification sucks. There is simply no way for anyone to tell if the OPML file generated by their application is really compliant with what Dave's editor implements, or only just happens to never tickle a bug or an ambinguity which wasn't specified.
It's really not that hard to write an application: the trick comes from interoperability. To be useful, these files must be able to be routinely exchanged between applications written by different people, and that simply isn't feasible without a clear, complete specification of what the format actually entails.
The crappy format is good enough until someone comes up with something better. And that's what you're all missing.
What Scoble is missing is that currently he's in a position to help dictate what gets adopted and what users are going to be seeing for the next five, ten, or even more years, and if he had any concern for those users, he'd work to ensure that the technology underlying that growth is as robust and reasonable as possible. OPML doesn't qualify. RSS doesn't even qualify. Did we learn nothing from the whole HTML standards process?
Today's Gutenberg Gem is a neat little astronomy book, published in 1873 by Richard A. Proctor. It lists a number of half hour tours of the sky, each highlighting either a set of constellations or planets. It's pretty brief, and certainly better modern guides exist, but it's still a neat little thing to peruse through, for perspective if nothing else.
James Robertson doesn't much like OPML or RSS as file formats, and tells us why:
Ye gods, it's time someone came out and said something. OPML is a really, really crappy format. Really crappy. I had massive headaches implementing OPML support for import/export in BottomFeeder. Why? Because there's no real specification. Like everything Dave Winer has ever been involved with, the specs are all in his head, and it's up to the rest of us to figure out wtf he actually meant. Here's the "spec" - and look at all the meaningless crap in it (windowRight? Why is there something specifying the number of pixels for the margin?).
I had to add tons of hacks to the OPML support in order to support the export formats of various tools. The problem? Everyone implemented it a little differently, because the spec is incredibly unspecific - about just about everything.
I couldn't agree more. Take for example Mark Pilgrim's comments:
I just tested the 59 RSS feeds I subscribe to in my news aggregator; 5 were not well-formed XML. 2 of these were due to unescaped ampersands; 2 were illegal high-bit characters; and then there's The Register (RSS), which publishes a feed with such a wide variety of problems that it's typically well-formed only two days each month. (I actually tracked it for a month once to test this. 28 days off; 2 days on.) I also just tested the 100 most recently updated RSS feeds listed on blo.gs (a weblog tracking site); 14 were not well-formed XML.
The reason just isn't that programmers are lazy (we are, but we also like stuff to work). The fact is that the specification itself is ambiguous and weak enough that nobody really knows what it means. As a result, there are all sorts of flavors of RSS out there, and parsing them is a big hassle.
The promise of XML was that you could ignore the format and manipulate data using standard off-the-shelf-tools. But that promise is largely negated by the ambiguity in the specification, which results in ill-formed RSS feeds, which cannot be parsed by standard XML feeds. Since Dave Winer himself managed to get it wrong as late as the date of the above article (probably due to an error that I myself have done, cutting and pasting unsafe text into WordPress) we really can't say that it's because people don't understand the specification unless we are willing to state that Dave himself doesn't understand the specification.
Here is another small example: there is genuine confusion to this day about the support for the
enclosure tag. Are you allowed to have more than one per
item or not? People do generate them. By default, WordPress creates enlosure links for every mp3 that you link to in a post. It's probably wrong, but lots of things like it just fine. Occasionally someone complains and asks for clarification, but no one ever really reaches a definitive answer.
Scoble likes to champion first RSS and now OPML under the claim that they are good for users. What would be good for users is for the deficiencies of these formats to be absent, or at least invisible. They are not. They manifest themselves in all sorts of edge cases which prevent interoperability. I've spent a great deal of time reading RFCs for various networking protocols and formats, and by comparison the RSS and OPML "specifications" are scribbles on napkins.
Scoble's attitude reflects what I think of as the Microsoft way: it doesn't matter what's underneath as long as what's on top looks shiny. Sure, it will belch smoke, require servicing by a third party every three thousand miles and occasionally make strange sounds that will puzzle and worry the owner, but look how shiny it is.
I use RSS every day. It does fulfill a need. But it does suck, and we would be better off if we all recognized that and worked to something better.
I've been interested in the world of pseudo-science for a long time, ever since reading Chariots of the Gods as a young boy, and then realizing what a load of bullocks the whole thing was. What's amazing to me is that by age twelve or so, I managed to figure it out, but that some people never outgrow this childish view of the world. It even continues on in the public discourse as such absurd notions as creationism and intelligent design.
So recently, I've added a few blogs to my bloglines subscription, and it is paying off nicely. Witness this terrific article about "Fossil-Fossils" found in De-Naz-In Wilderness in New Mexico. It's a very informal but interesting view into the fossils that simply are weathering out in the Bisti Badlands, which include fossils which have in some sense been fossilized twice: creatures that have died are fossilized, then weather out millions of years later, only to be re-fossilized in a different strata layer. It's kind of hard to keep a straight face while trying to believe that all fossils are the result of Noah's flood six thousand years ago, but it's doubly hard to do so when you see this fossils.
That is, if you understand what they are.
Which kind of leaves creationists out in the cold.
A great blog, really.
Well, today is one of those rare days when I miss two days of work: I'm home sick with body aches, a headache, stuffed head, and a bit of a fever. I was also a bit hungry, so I decided to dig through the fridge, freezer and pantry to see what I could make. I found most of the ingredients for some kind of navy bean soup, so that's what I'm making, in my pressure cooker.
Want the "recipe"?
1 onion, diced
2 carrots, peeled and chopped into slices
2 stalks of celery, diced
Sweat these in some olive oil. You aren't looking to brown them, just get them going. I seasoned them after they were translucent with a bit of fresh ground black pepper, some kosher salt, and a couple sprigs of fresh rosemary (I'll fish the twigs out when its done).
1 bag of navy beans. I sorted out one or two of the worst looking ones, but just dump them in, no need to soak them because we are gonna use the pressure cooker.
1 big can chicken broth. Dump it in.
Bring to a boil, cap with the pressure cooker lid, and let it go for 45 minutes on setting 2 (my pressure cooker has two settings).
If I had some ham, bacon, or a hock, I would have added some of that in, but those aren't frequently found in my cupboards since I'm trying to lose weight.
Some recipes I've seen also add diced canned tomatos. If I don't like the flavor when this comes out, I might add those in too.
Anyway, that's about it.
I'm also trying a bit of an experiment: I don't much like my pressure cooker because it has a nasty tendency to get a hot spot in the middle of the pan, burning whatever is in contact with it. To help alleviate this, I placed the pressure cooker in my heavy cast iron skillet, and placed that on top of the burner. Hopefully the heavy mass of the skillet will even out the temperature and prevent scorching.
Stay tuned for the results. I'm gonna go rest now.
Update: Soups on! I cracked the pressure cooker after 45 minutes, and while edible, I didn't the beans had reached their sufficiently soft stage, so I went ahead and added the diced tomatoes that I mentioned above, and let it go for another 30 minutes in the pressure cooker. The resulting soup, while not amazingly sophisticated in flavor, was hearty and delicious. I think the large can of diced tomatoes gave it a bit too much of tomato flavor, next time I'll only use one of the small cans. Still...
Oh, and the experiment with using the cast iron frying pan as a heat diffuser seemed to work admirably! No hot spots. And it probably helped season my pan some more. I merely rinsed it out again and applied some vegetable oil. Looks great.
You might know him as the giant squid, and Japanese researchers Kubodera and Mori caught him on film when he attacked a bait trap 900m below the surface of the North Pacific off of the Ogasawara Islands. Size: about 8 meters. That's a lot of calamari. Link via the Panda's Thumb.
My Cyborg Name:
Make your own. Thanks Carmen for pointing this one out.
Windows isn't what whas broken. Windows DEVELOPMENT PROCESSES were what was broken.
The two are intimately related. Can you honestly say that you have an example of a program which worked well, despite the development process being completely broken? It just doesn't happen. The article that Scoble quoted quoted Microsoft VP Jim Allchin:
"It's not going to work," he told Gates in the chairman's office mid-2004, the paper reports. "[Longhorn] is so complex its writers will never be able to make it run properly. "
That is a broken development process, producing broken software, and only a little over a year ago. We are in the third quarter of 2005 now, and only now are we hearing of the sweeping changes that Microsoft thinks are necessary to become innovative.
It is absolutely startling to me that a multi-zillion dollar mega-empire like Microsoft only recognized last year that perhaps they should work toward "developing a solid core for Windows".
Longhorn/Vista was broken. Clearly. Whether it is still broken when it ships remains to be seen, but it seems like in a few years, someone is going to have enough material to write a suitable sequel to an old software engineering standby.
Well, in this edition of my podcast, I lament the end of baseball season for the Oakland Athletics, talk about the modifications I'm making to my Linksys NSLU2, and then talk about the predicted death of the PC as a platform for innovation.
Links from the show:
The Intelligent Designer's Prayer, courtesy of the Panda's Thumb.
Our Intelligent Designer,
Who art in the unspecified-good-place,
Unknown be Thy name.
Thy flagella spin, Thy mousetraps snap,
On Earth, as it is in the
Give us each day our unchecked apologetic.
And forgive us our invidious comparisons,
As we smite those iniquitous Darwinists
And lead us not into encounters with people
Who ask us to state our theory,
But deliver us from biologists
Who know what we're up to.
For Thine is the irreducible complexity,
And the wiggly parts of bacterial bottoms,
And the inapplicable theorems,
Now and forever.
Also check out the comments for a similar prayer to the Noodly One.
In a previous weblog posting, I mentioned that I had bought a Linksys NSLU2 NAS (networked attached storage) device that I was hacking away on. I recently dusted it off and started playing with it again, after installing the unslung firmware that lets you run linux on it. What was curious was that I had mentioned previously that the slug (as they are affectionately called) was a 266mhz ARM processor. But I found out recently that Linksys included jumpers to effectively run the processor at half speed.
But you can fix that by snipping out a surface mount resistor (I just cut it out with an exacto knife). Total mod time: approximately two minutes (once I read the page on how to open the case). Net result: double speed NSLU2.
The Nintendo DS is kind of a cute little gadget, and what's cool is that someone is already doing all the heavy lifting of getting TCP/IP to work on its wireless. This uses Adam Dunkel's lwip implementation. Not quite done yet, but interesting!
I have a special treat in today's podcast: my wife makes an appearance. We chat about our experience at Friday's Oakland A's game which the A's lost (boo!) but which had great fireworks (yay!), as well as a couple of other geeky topics like Jeri Ellsworth's hackable gadget, the C64 Direct To TV. The Slashdot thread about her that I mentioned can be found here. The wikipedia page has links to all the hacking sites that I've found.
Well, above is a screendump of my latest computer acquisition: a Microvax 3800 which I installed NetBSD on. Wackiness!
What's even more wacky is that it didn't cost me a cent. Well, maybe that isn't so wacky, after all, would you pay money for a Microvax? 🙂
Basically, I've been on a bit of a retro kick lately, what with the Atari 2600 programming and all. While goofing around, I noted that you could run the latest NetBSD 2.0 release on simulated Vax hardware. So I compiled the simulator port, downloaded the vaxcd.iso file, and did it.
Et voila! It works.
Probably even runs faster in emulation on my lowly 1ghz Via C3 box than the real thing. 🙂
I know, this is one of the more useless things I've ever done, I just had to share.