i called it

I predict the rays-phillies world series to be the least watched since the invention of television.

Me, on October 20.

It was the least-viewed Series by a significant amount.

NY Times, on October 30.

I’ve said it before and I’ll say it again: they should not play summer or fall baseball in Florida.

Karl,

There is no code for the Association Browser, unless that’s changed in the year since I’ve been gone. I remember the idea was first devised during a series of brainstorming meetings among the desktop hackers, probably in 2004, and Jimmac (I think? Maybe Garrett) created this first-pass mockup one day:

Association browser mockup

There may have been an internal wiki page about it, but certainly no code.

The idea with the association browser was that you’d have a “focal object” (in this case, “Brand Grub”) and you’d see items directly related to that object in a way that was appropriate for that data. This was somewhat similar to how Dashboard worked — each piece of data looked different and specific to its type: emails looked different than documents and addressbook contacts, for example. But unlike Dashboard, this would be a fully-fledged application you could use to navigate your data. If you wanted to shift your focal object, say from “Brand Grub” to “Bilbo Baggins”, you could do that easily… I think we called that “rotating”.

The purpose of showing this in my old GUADEC talk was to illustrate the kinds of interesting applications people could build on top of Beagle beyond the obvious and boring all-encompassing search tools. Unfortunately I don’t think that’s happened. From my perspective, both Beagle and Tracker ended up focusing way too much on the backend (storage and retrieval of metadata just aren’t that interesting to most people) and not enough on making users’ lives easier.

So there you have it. The “code” for the association browser. Next time, feel free to email me about it first.

Tags: , ,

separated at birth?

separated at birth?

Tags: , , ,

auuuuuuugh

As Putin rears his head and comes into the air space of the United States of America, where do they go? It’s Alaska. It’s just right over the border. It is from Alaska that we send those out to make sure that an eye is being kept on this very powerful nation, Russia, because they are right next to, they are right next to our state.

(CBS News)

Tags: , , ,

The Twittersphere is going crazy over the new iPhone Pwnage 2.0 tool and lots of people are getting the “Failed to enter DFU mode” error. The solution to this is to open a terminal and run:

mkdir ~/Library/iTunes/”Device Support”

And then Pwnage should run happily.

Tags: , , ,

I just came across this boneheaded blog post about Google’s newly open-sourced Protocol Buffers:

They claim they could not use XML because ‘it isn’t going to be efficient enough for this scale’. WTF??? If this statement came from someone else, I would understand, but these guys are supposed to KNOW markup.

Speed in a system in [sic] NOT just optimizing loops in code! It is the architecture: messaging, storage, and re-use. Yes, XML can be fat, but so can any other language. And if they took the time to improve the processing libraries instead of creating their own special methods, we would ALL benefit on projects that used XML, not just this so-called ‘protocol’.

And he had the audacity to title the post Google hates XML.

While the author is right that any attention paid to improving the performance of widespread XML libraries would be widely beneficial, he completely ignores protobuf’s strengths, aims, and specific use cases. I suspect he didn’t bother to read any of the documentation. After all, when you’re dealing with XML, everything looks like a nail. Or something like that.

Protobufs aren’t aimed at replacing the widespread utility of using XML for publishing data widely or providing human readable document formats. I don’t think anyone is suggesting that we replace HTML with this. They’re for (mostly) well-defined interfaces and serializing data in a compact and low-latency way. The author at one point suggests:

I bet I could make XML run circles around their system just by simplifying their schema. I once invented a technique called ‘XmlZip’ that would transform long element names and attributes to smaller symbols for faster transfer - why not try that?

But he obviously didn’t read the section on encoding:

Let’s say you have the following very simple message definition:

message Test1 {
  required int32 a = 1;
}

In an application, you create a Test1 message and set a to 150. You then serialize the message to an output stream. If you were able to examine the encoded message, you’d see three bytes:

08 96 01

Three bytes! You can’t do anything in XML in three bytes. The simplest XML document you can have, which conveys no information, is 4 bytes: <a/>. That same message definition would look something like this in XML:

<?xml version="1.0"?>
<Test1>
 <int32 value="150" />
</Test1>

That’s 61 bytes by my count, and even if you did condense it down to a tight, humanly-unreadable XML, you won’t get anywhere near 3 bytes. And if your messages really are that small, the gzip compression overhead is counterproductive and actually results in a bigger file. (82 bytes, from my testing.) If the messages were large enough that gzip compression did buy you size, you’d suffer additional latency because of the CPU time used to decompress.

When you’re talking about pushing huge amounts of data on a near-saturated gigabit ethernet link, an order of magnitude makes a big deal.

Protocol buffers aren’t going to replace XML — they’re not even really aimed at the same problem — but they are a better solution for certain use cases. Such a huge part of software development is using the right tool for the job, and just because XML can solve the problem doesn’t mean it should by default. Do the research and weigh the pros and cons. Otherwise, like using an O(n^2) sorting algorithm when there are vastly better alternatives, it’s just lazy programming.

Tags: , , , , ,

Toward the end of my time at Novell, I was looking into a browser sync system for the GNOME Online Desktop. As I am a lazy hacker, the ideal solution at the time for me would have been for Google to open source its nice browser sync extension and then adapt it to the online desktop myself. I tapped my contacts inside Google to see if open sourcing it was in the cards. It wasn’t.

When I saw that the extension was being discontinued (and slowly-but-surely being replaced by Mozilla Labs’ Weave) and that it wasn’t immediately open sourced, I was furious! I planned a blog entry raking them over the coals, how could they abandon a perfectly useful piece of code, blah blah blah. It never happened, because I suck at blogging (remember, me=lazy).

Imagine my pleasure today when I came across their announcement open sourcing the extension. I hope people can take the code — mainly the Mozilla folks for Weave and the GNOME folks for online desktop — and more quickly build a high quality system. I am still looking for a way to sync my extensions between browsers!

And because false hubris is a cornerstone of this blog in addition to self-deprecation, I’d just like to say that it’s wonderful to see that the “additional pressure” I alluded to in my email has finally succeeded in ending the 11 month closed-source tyranny that began when I first heard of this extension last July. While I can’t prove that I single-handedly open sourced the extension, I know it to be true deep down in my heart. Hooray!

Task #1 is to add some tabs to it.

Tags: , , , , , , , ,

Consumerist (a must-read blog) has a link today to a New York Times article about CSAs, which I mentioned a couple of weeks ago.

Tags: , ,

Tell my wife I love her.

Tags: , ,

Like Havoc, Brette and I are members of a CSA in which we pick up our veggies once a week from a truck in a parking lot in Central Square. I just picked up this weeks share, and we have some great beets, carrots, mustard greens, and the best strawberries I’ve ever had.

In addition to the veggie CSA, we’re also members of a meat CSA, Chestnut Farms. The meat is local — raised in western Massachusetts and slaughtered nearby — and I pick it up once a month. It comes frozen, but I think it’s done so quickly after slaughter that the meat is still incredibly fresh when thawed… it never tastes like a freezer, it never has freezer burn, and it’s never tough.

They offer different cuts of grass-fed beef, pork, lamb, and free range chicken every month and often have eggs for sale at an additional cost. We’re not big lamb eaters so we don’t get any, but the rest of the food is some of the best stuff I’ve ever tasted. The pork in particular has a much richer flavor than anything you can get in the store (including Whole Foods)… those factory farms just can’t make tasty pork.

We get 10 lbs every month for $70. A quick survey of the freezer shows me that have: ground beef, ground pork, country-style spare ribs, pork chops, pork tenderloin, pork breakfast sausage, chicken legs and thighs, chicken breast, smoked bacon, and beef round eye roast.

If you’re a meat lover and live in Massachusetts, I suggest signing up even though there’s now a waiting list. If you’re elsewhere, meat CSAs are becoming increasingly popular (Results 1 - 10 of about 643,000 for meat csa.) and well worth it.

Tags: , , ,

« Older entries