December 03, 2008
Robert Love
Whither an Automotive Industry
I have long argued, partly in jest, mostly serious, that America should just get out of the car industry altogether and focus our capital on things we are good at, such as the service sector, software, or torts. The cost issue was secondary, I would say, if the cars themselves aren't competitive. (Does everyone at GM have huge fingers? Why are the interiors filled with over-sized plastic buttons?)
My bafflement continues with this latest bailout—unlike the financial package, I am against bailing out the US auto industry—and these comments from Ford's chief on the necessity of action:
Ford said in its plan that it could survive through 2009 with its current cash levels and by tapping its credit line with private banks, and that it could return to profitability by 2011. Even though it is better prepared for the downturn, Ford said it wanted $9 billion in loans to draw upon if necessary.
Ford’s chief executive, Alan R. Mulally, said the prospect of a failure of G.M. would cascade through the entire domestic auto industry and put millions of jobs at risk.
"We are very, very concerned, and that’s why we went with G.M. and Chrysler to Congress even though we think we have sufficient liquidity," he said in an interview.
Mulally is saying Ford is financially secure and does not need the bailout to meet payments, but he is worried about the second stage effects from a GM or Chrysler failure.
That seems backwards to me. Ford—and every other car manufacturer—would assuredly benefit from two of its competitors going under. There would be a small drop in demand as supply falls and prices rises, but that drop would be significantly smaller than the decrease in supply. Moreover, the substitution from GM to other manufacturers would overly favor Ford, in contrast to Mulally's statements, as "buy American" types swap one Detroit icon for another. The converse has the government funding a broken GM, propping up supply to the detriment of Ford. I don't get it.
I suppose Mulally could be bluffing, hoping to look good in the eyes of Wall Street and Ford's creditors but still get government help—to have his cake and eat it too. But somehow I doubt his posturing is worth the risk.
by Robert Love (noreply@blogger.com) at December 03, 2008 10:56 AM
November 11, 2008
Kevin Kubasik
Moved Blog to WordPress.com
I know that my blog has been pretty quite the past few months (I’ve been super-busy!) but kubasik.net was never really meant to host the traffic this blog was generating, so to make things easier on all 6 of you who read it, I have moved the blog to WordPress.com. There are still redirects at [...]
November 08, 2008
Nat Friedman
Happy Saturday
Thursday night at dinner, one of Stephanie's colleagues gave me a puzzle to play with.

The idea is to twist and turn the little blocks until they form a 3×3x3 cube. This morning, after messing with it for a few minutes, I decided I didn't want to brute-force it manually. So I wrote a little script.

And that, my friends, is just about a perfect Saturday morning.

(The script is here.)
November 04, 2008
Robert Love
I love this city tonight, I love this city always
I will be live-twittering tonight's election results.

Boston, mid autumn
As I wrote four years ago: If you are informed and have an opinion, please vote. Laziness is not an excuse. Although voting for Ralph Nader is.
by Robert Love (noreply@blogger.com) at November 04, 2008 09:09 AM
October 31, 2008
Joe Shaw
i called it
I predict the rays-phillies world series to be the least watched since the invention of television.
It was the least-viewed Series by a significant amount.
I’ve said it before and I’ll say it again: they should not play summer or fall baseball in Florida.
October 30, 2008
Robert Love
The Economist Endorses Senator Obama
The Economist endorses Senator Obama for President.
The why is summed up in part by the endorsement—"if only the real John McCain had been running"—and in part by last week's Conservatives for Obama, so-called Obamacon:
The biggest brigade in the Obamacon army consists of libertarians, furious with Mr Bush’s big-government conservatism, worried about his commitment to an open-ended "war on terror," and disgusted by his cavalier way with civil rights.
Of course, the endorsement should be no surprise. The Economist has a history of endorsing the other party: Governor Reagan in 1980, Governor Clinton in 1992, Senator Dole in 1996, Governor Bush in 2000, and Senator Kerry in 2004.
With this heady endorsement, the Illinois senator might just win.
by Robert Love (noreply@blogger.com) at October 30, 2008 05:12 PM
October 28, 2008
Joe Shaw
welcome to hope springs
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:
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.
October 21, 2008
Robert Love
Android is Now Open Source
Via my coworkers at the Android Developers Blog: Android is now open source.
Android is the first free, open source, and fully customizable mobile platform. Android offers a full stack: an operating system, middleware, and key mobile applications. It also contains a rich set of APIs that allows third-party developers to develop great applications.
Across my career, I am most proud of Android—as a platform, as a family of phones, and as a catalyst for change in an otherwise closed industry. But the most exciting part is what's next. Download the SDK and start hacking.
by Robert Love (noreply@blogger.com) at October 21, 2008 12:31 PM
October 17, 2008
Nat Friedman
Geeks Fighting Corruption
One of the things I'm really hopeful about is technology that can improve the transparency of government. Money is a corrupting influence in politics, but websites that track every campaign contribution, contract bid, earmark author, and the passage of every bill through its development give corrupt politicians and self-interested lobbyists nowhere to hide. And that's a good thing. Sunlight, as Supreme Court Justice Louis Brandeis said, is the best disinfectant.
When Larry Lessig announced his campaign to end corruption in politics, he started encouraging hackers to attack this problem, to build websites and databases that lay bare the innerworkings of our politics. There are a few well-known projects in this area, like The Sunlight Foundation, Open Secrets, and followthemoney.org. There's also USASpending.gov, the website "where Americans can see where their money goes," the product of a law co-sponsored by Barack Obama.
Recently on twitter I learned that Charlottesville provocateur and long-time friend Waldo Jaquith created and runs Richmond Sunlight, a one-man sunlight site to track Virginia state politics. On it, you can track the progress of bills and the activities of the legislators in the Virginia state congress. The site has no ads and no for-pay section and Waldo runs it purely because he believes in what he's doing.
Running the site takes a huge amount of work, and a little money. One of Richmond Sunlight's most important features is the collection of videos of the Virginia General Assembly. To get these videos online, Waldo has to manually convert DVDs provided by the state into a format suitable for posting online. It's a lengthy process that involves OCRing parts of the video to extract bill numbers and legislator names to index and tag the videos properly. He's doing all this on his only computer — an aging Mac Mini. And unbelievably, Waldo actually has to purchase these videos from the General Assembly. And he has ambitious plans for the site. Last night Waldo posted an appeal for resources to help him grow the project:
While hundreds of thousands of people have found the site very useful, I look at it and see unfulfilled promise. I want to rewrite Richmond Sunlight and give it away to a nonpartisan political group in every state in the union. I want to complete the API so that anybody can write software to interact with the Capital Sunlight in their own state (and let even more newspapers integrate it into their own websites). I want a Facebook application, I want daily podcasts, I want people recording secret subcommittee votes, I want to mash up the daily floor calendar with campaign finance data with minutes with video and create the most radical transparency a state legislature has ever seen.
Waldo is doing exactly what Larry Lessig is encouraging us all to do. He's dreaming big about open government. But he needs help today to do the daily business of running Richmond Sunlight. So, what do you say we pitch in to help a corruption-fighting geek in need? If you'd like to help buy Waldo a new computer so that he can put these videos online faster without spending his whole weekend swapping discs and waiting for codecs to convert, visit his blog and drop him a line.
October 16, 2008
fix for pwnage “failed to enter dfu mode” error
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.
October 02, 2008
Robert Love
Android!
Download the Android SDK 1.0 release 1.
Walt Mossberg: "The first real competitor to the iPhone ... the software is slick ... the G1 is a powerful, versatile device."
But the sui generis: Android is open to developers, open to consumers, and open to handset manufacturers. Cannot wait to see what's next.
by Robert Love (noreply@blogger.com) at October 02, 2008 05:19 PM
September 29, 2008
Robert Love
Just Do Whatever Bernanke Says
The Journal has a great primer on this morning's compromise bailout bill.
Do read the article, but the gist is this: The Treasury will initially have $250b, and up to $700b, to buy either directly or via auction bad loans and assets from financial institutions, in return for warrants for equity. Compromise language includes disincentives for high CEO pay, additional congressional oversight, and a surprising requirement for the president "to submit a legislative proposal to seek reimbursement from the financial institutions that participated" if the value of the purchased assets yields a net loss.
The best analogy I can come up with to describe the crisis is the lemon problem, exasperated by mark to market accounting: Balance sheets are full of mortgage-backed or otherwise related assets, the popping of the housing bubble resulted in a revaluation of these assets, and capitalization requirements are driving banks to liquidate the assets. Enter the lemon market. Is the bank selling the assets because it needs cashflow, or because the assets are full of subprime contagion? Is this the firm's best or worst assets? The information asymmetry has snowballed to the point of credit market implosion. Thus the government's first solution, improving lending opportunities. When that was found insufficient, as the last few weeks have witnessed, we enter this second round, where the government actually buys the troubled assets.
It is hard to comprehend how dire this situation is as the economy still "feels" okay. Gas prices might be high, but unemployment is not at 30%. Yet while the societal ramifications are not as bad, the financial conditions are worse than those that kicked off The Great Depression.
by Robert Love (noreply@blogger.com) at September 29, 2008 01:16 PM
September 26, 2008
Joe Shaw
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)
September 16, 2008
Robert Love
Sur la Table
If you are not reading my food blog, Food Tastes Good, you are missing out on recipes such as …

Spaghetti alla Carbonara con Lobster Mushroom

Slow-Braised Carnitas

Pesto alla Genovese

Wild Mushroom Risotto with Green Peas

Red Wine Braised Beef Short Ribs
If not the actual dishes, at least the pictures are ambrosial.
by Robert Love (noreply@blogger.com) at September 16, 2008 10:00 AM
September 07, 2008
Nat Friedman
Love (and blogging)
It's been a while since I wrote regularly on this blog, and people have been asking, with decreasing regularity, why my blog posts sputtered out.
At first, I wanted to take a break to shake off the "I can't wait to blog about this" impulse that was starting to spring up in the middle of almost everything I was doing, and was threatening the in-the-moment joy of life's little adventures by making them into a kind of low-grade performance literature.
Then, in early 2007, I moved to Munich and got busy learning about another culture. Moving to a new place has a way of disrupting all your old habits, so I stopped going to yoga and I stopped posting here, but I started programming a lot again (yay!), and running a few times a week.
And then twitter erupted into my social group like an invasive species and I found that my public-writing energy nibbled away bit by bit, never building past whatever critical threshold is required for something to be (dare I say) bloggable.
And then, unexpectedly, at a conference in Paris, I met the most dazzling girl. Smart and kind-hearted, and with an incredible appetite for life, she lived in Munich. When I moved here, she helped me find an apartment and get settled. Somewhere in there, she completely stole my heart. And so, earlier this year, on a hill in San Francisco, I asked her to be my wife, and she said "why the hell not" (I'm paraphrasing here).

We both love to travel, and she's amused by my sense of whimsy. Over the last year we've had a lot of fun running around Europe. (More on that later.) And so I've found someone I want to share life's adventures with, and you guys have recently taken second priority. Sorry about that, but I'm sure you can understand :-).

We do plan to have an actual wedding sometime next year, though we're not sure exactly when or where. So, stay tuned for future episodes, now featuring Stephanie (introductory glam shot below).

September 03, 2008
Kevin Kubasik
Things About The Chrome Release That Annoy Me
Ok, I don’t want a long rant about this, but 2 things that bother me.
- We never care about EULA’s. Why care about this one? It’s an open source project so even the most absurd clause ever in the EULA is effectively unenforceable. Stop whining, let the lawyers tell us what it means and stop speculating when your an engineer or journalist and not a lawyer.
- It’s not ‘Apple’s Webkit’ I hate that a great open source project with a lot of companies and contributors behind it gets completely attributed to Apple. While I appreciate that not everyone is going to get credit in every sentence, can we offer some semblance of recognition that Apple is not the only organization working on the Webkit platform?
Ok, thats all, just wanted to get it out of my system.
August 27, 2008
Kevin Kubasik
Remember The Milk plugin for Mozilla Ubiquity
So I was experimenting with the new Ubiquity extension from Mozilla labs and fell immediatly in love. Needless to say, Twitter integration was great, but I needed Remember The Milk. So, Viola!
It’s pretty straightforward, the only command is ‘addtask’ and I think we can all guess its purpose. I’ll hopefully be making it more intelligent soon, its really just a ‘Hello World’ right now.
August 26, 2008
Kevin Kubasik
Photoblog Update
A Quick Photoblog Update! Time for real specifics later, but other news includes 2 awesome upcoming events!
- Utah Open Source Conference (if your in the Utah area, see you there!)
- Desktop Search Hackfest in Berlin! (I’ll be posing more on my goals for the Hackfest later!)
August 22, 2008
Robert Love
Some sort of Cat
The greatest Wondermark ever, if not the greatest thing, ever:
Slightly switching gears, David Leonhardt on Obamonics in the Times.
And, in case you missed it, we released version 0.9 of the Android SDK. Its dreamy.
by Robert Love (noreply@blogger.com) at August 22, 2008 03:14 PM
August 09, 2008
Robert Love
Broken Elevators
Via Google's Open Source Blog, this Google-sponsored project to study Linux I/O scheduler behavior is quite interesting, yielding unexpected results—for example, deadline is actually best for some workloads and CFS, while ideal for others, has awful worst-case performance.
Curious about I/O schedulers? Check out chapter 13 in my favorite kernel book. Want to optimize your code's file I/O and understand scheduling from the perspective of user-space? Read chapter 4 in my favorite system programming book.
by Robert Love (noreply@blogger.com) at August 09, 2008 11:31 AM
August 08, 2008
Robert Love
Hummers, Cristal, and Cambodian Children: Hello, Nouveau Riche!
Hat tip to loyal reader for making me a billionaire:

Expires six months after issue
Somewhat unrelated, Amazon is running a special this month wherein you can try Amazon Prime Free for One Month—in other words, get a month of gratis two-day shipping. US only, unfortunately.
by Robert Love (noreply@blogger.com) at August 08, 2008 11:13 AM
July 23, 2008
Debajyoti Bera
< Insert Your Favourite > Desktop Search Hackfest
Good news - a (read: the first ever) Desktop Search Hackfest is being
planned after the Maemo Summit, in Berlin.
http://wiki.maemo.org/Desktop_Search_Hackfest
Not so good news - I will not be able to attend. It's not easy to
sneak out as a grad student from an US university (bonus if you are an
_alien_). Joe is not going either. Our in-house Xesam guru is about a
join a real job, the money-paying kind. It might be hard for him to
attend either. I dearly wish Beagle could somehow benefit from this
meeting. Good luck to the other projects. Get some work done and make
the users happy. It is nice to see that Strigi/Nepomuk devs are
attending. And thanks to Nokia for making this happen.
On a side note, look at the number of participants from the Tracker
project ! Wow, they're booming. Double kudos to them.
July 19, 2008
Robert Love
There is always money in the banana stand
Zimbabwe introduces $100 billion banknotes, each valued at one US dollar.
In all seriousness, for posterity, I would love to get one or two of these new bills. If anyone can help, I will pay handsomely.
by Robert Love (noreply@blogger.com) at July 19, 2008 04:20 PM
July 17, 2008
Debajyoti Bera
Creating new backend - help wanted
Three years ago this month, the above was the subject of my first post to the
dashboard-hackers mailing list. I was writing a backend for Akregator. Its
immaterial what Akregator is; I was mostly pattern matching back then and
that is how I got familiar with C#.
I remember submitting a patch to beagle bugzilla a few days before that. It
was to filter JPEG JFIF comments because that is where digikam stored all the
descriptions. Now it uses IPTC tags. Does not really matter since beagle
indexes both.
Backtracking further, I got interested in beagle several months before that. I
had this incredible urge to add /author/, /title/, /subject/ tags to the PDF
research papers that I download and use beagle to search among them. The
first time I visited the beagle website and downloaded the tarball, the huge
list of dependencies really really scared me off. I used to allow more Gnome
on my desktop back then than I do now but nevertheless building beagle seemed
like a daunting task. I later freed beagle from many of its dependencies; I
feel that is my biggest contribution to this project.
I made a second attempt later; soon realized that even though I can get beagle
going, there was (is ?) no easy way to modify PDF document properties (in
linux). Then I switched my goal to index my pictures, which I have started
tagging and adding comments to, using my new found love digikam. Thankfully
the one-liner JFIF patch did not require much C# knowledge. It would not have
mattered anyway, C# is darn easy to pattern match.
After all these months, I still haven't managed to build my repository of well
tagged PDF papers (if I wait for several more months and stop wasting time
then the need would be gone forever). I do keep a static index for my
pictures but rarely search them. What a waste of time :-). Silly me!
As I am about to sign off this blog entry, I noticed that I was siging off
as "Bera" in my initial few emails. I wonder when did I switch to
my "signature sign" dBera.
Did I mention that beagle 0.3.8 was released some 48 hours ago. Go go get it.
July 13, 2008
Joe Shaw
talk about a “very narrow viewpoint”
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.
i’ve done my part — complaining — and it worked
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!
clearly nyt writers read my blog
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.
promotional consideration provided by
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.
i left the living room window open
The weather here this week has been awesome.
It’s too bad Jacob moved away just as it was getting good. :(
These kinds of storms remind me of my childhood. When I was six, I remember sitting on the front porch of my grandparents’ house with them and listening to a battery-powered radio. The power had gone out, and a tornado had touched down about halfway between where my parents and grandparents lived — about 30 miles apart. Good times.
July 11, 2008
Robert Love
EDGE puts me on Edge
The line of 3G-hopefuls outside of Boston's Apple Store:

The fervor Apple instills in their customers, particularly compared to their competitor, is impressive.
Incidentally, down the street, the line outside of the decidedly-less cool AT&T Store was only ten or so folks deep.
by Robert Love (noreply@blogger.com) at July 11, 2008 12:33 PM
July 07, 2008
Robert Love
The Business of Elections
To date, clearly poised to surpass $1 billion before the cycle is over, the campaigns have spent a whopping $900 million. The New York Times, again proving that their core competency is in producing remarkably-informative graphics, has this rad little interactive visualization:

$4.3m to Verizon for cell phones!
See also the related article, Cashing In on Obama and McCain .
by Robert Love (noreply@blogger.com) at July 07, 2008 02:33 PM
June 22, 2008
Robert Love
Martian Skies
Collected by the Boston Globe, these photos of Martian skies are without peer. There is a romance to exploring the unexplored, about going somewhere new simply because that's what's next.
It reminds me of President Reagan's speech, quoting from the poem High Flight, later cribbed by The West Wing, on the night of the "Challenger" disaster. Scheduled to give his state of the union, he spoke in lieu from the West Wing:
For the families of the seven, we cannot bear, as you do, the full impact of this tragedy. But we feel the loss, and we're thinking about you so very much. Your loved ones were daring and brave, and they had that special grace, that special spirit that says, "Give me a challenge and I'll meet it with joy." They had a hunger to explore the universe and discover its truths. They wished to serve, and they did. They served all of us.
And I want to say something to the school children of America who were watching the live coverage of the shuttle's takeoff. I know it is hard to understand, but sometimes painful things like this happen. It's all part of the process of exploration and discovery. It's all part of taking a chance and expanding man's horizons. The future doesn't belong to the fainthearted; it belongs to the brave. The Challenger crew was pulling us into the future, and we'll continue to follow them.
The crew of the space shuttle Challenger honored us by the manner in which they lived their lives. We will never forget them, nor the last time we saw them, this morning, as they prepared for their journey and waved good-bye and "slipped the surly bonds of earth" to "touch the face of God."
Slipped the surly bonds of earth to touch the face of God.
Anyhow, beautiful pictures.
by Robert Love (noreply@blogger.com) at June 22, 2008 01:00 PM
June 17, 2008
Robert Love
Food Blog
I am keeping a food blog, Food Tastes Good. It is mostly recipes, such as,
- Curried Split Pea Soup
- Gnocchi with Butternut Squash, Sage, and Browned Butter
- Strawberry Rhubarb Sauce
- Red Wine Sangria
Do check it out, if that sort of thing interests you.
by Robert Love (noreply@blogger.com) at June 17, 2008 11:21 AM
June 11, 2008
Joe Shaw
i would like to lick that sandwich
From the Tri-State Observer:
Our concern is not that we are using the remainder of our strategic grain reserves for humanitarian relief. AAM fully supports the action and all humanitarian food relief. Our concern is that the U.S. has nothing else in our emergency food pantry. There is no cheese, no butter, no dry milk powder, no grains or anything else left in reserve. The only thing left in the entire CCC inventory will be 2.7 million bushels of wheat, which is about enough wheat to make 1⁄2 of a loaf of bread for each of the 300 million people in America.
Wait. We had a strategic cheese reserve and nobody told me about this? Because my strategy is to eat as much cheese as I can when my wife is not around. I have a cheese-eating strategy.
On an unrelated note, congratulations to Bockover, Gabriel, and the rest of the Banshee team for their 1.0 release. These guys are amazing hackers, and Banshee has really matured into a fantastic piece of software. And having a new website up and packages for several distros available on release day? These guys have their shit together.
June 01, 2008
Robert Love
Growth, Inflation, Politics, and Mistakes
Mankiw on the corporate income tax:
The ultimate payers of the corporate tax are those individuals who have some stake in the company on which the tax is levied. If you own corporate equities, if you work for a corporation or if you buy goods and services from a corporation, you pay part of the corporate income tax. The corporate tax leads to lower returns on capital, lower wages or higher prices—and, most likely, a combination of all three.
Krugman on embedded versus non-embedded inflation:
Imagine that there are two entrepreneurs, Harry and Louise, both of whom change prices only at fairly long intervals—say, once a year. Other things equal, Harry want his average price over the next year to be about the same as Louise's; Louise wants her average price to be about the same as Harry's. But their price setting takes place on different dates. (This is a metaphor for the real economy, in which people setting prices have to think about the prices of many competitors and suppliers that will prevail until they revise the price again.) In this situation, inflation can feed on itself: Harry raises his price above Louise's, because he expects her to raise her price in the future, and she does the same thing when it's her turn.
Love on the 2008 US Presidential election:
Clinton, citing Puerto Rican victory, soldiers on ... PR cannot vote in general ... Obama 48 delegates shy of lock
Biz Stone on why the above is so damn slow:
We currently use one database for writes with multiple [sources say two] slaves for read queries. As many know, replication of MySQL is no easy task, so we've brought in MySQL experts to help us with that immediately. We've also ordered new machines and failover infrastructure to handle emergencies.
by Robert Love (noreply@blogger.com) at June 01, 2008 10:38 PM
May 27, 2008
Robert Love
I can't believe this is Massachusetts
Crane Beach, Ipswich, MA
by Robert Love (noreply@blogger.com) at May 27, 2008 03:36 PM
May 24, 2008
Joe Shaw
“darn”
Road rules: 1 in 6 drivers would flunk (CNN money)
About one in six U.S. drivers wouldn’t be able to pass a written driving test if they took it today, according to a new study.
Drivers in the Northeast continued to have the lowest scores and the highest failure rates, with New York, New Jersey, Massachusetts, and the District of Columbia maintaining their three-year streak in the bottom five rankings.
SUVs plunge toward ‘endangered’ list (CNN)
Jorge Fernandez makes his way through the car lot littered with unwanted SUVs. “I’ve never seen it this bad,” the auto dealer says. With gas prices at an all-time high, one expert says SUVs and trucks as personal cars may soon be an “endangered species.”
May 21, 2008
Kevin Kubasik
The Reality of Semantic Desktops: Death To Tags, Labels and Folders
So, I recently saw some more updates on the Gnome Live wiki regarding the evolution of a ‘Semantic Desktop’. I have some bad news people: Its not going to happen. Now before everyone spends 20 minutes explaining all the ways it could, let me clarify my point. It’s a largely unattainable goal, which if it ever were to complete, would be a horrible user experience. I think somewhere between RDF, FoaF, and ObjectRank we lost sight of the original goal of a Semantic Desktop. We wanted to organize, present and store data in a fashion more congruent with the human mind. The general effort behind the Semantic Web and Desktop movements was to reduce the ‘multiplier effect’ of communication. (Take for example one e-mail sent to a mailing list, the file and data is now duplicated a hundred times over, and each receiver must filer or classify the e-mail with relationship to themselves). On the scale that communication takes place over the web, this effort is still crucial, but in the desktop world, where we operate on a billionth of the scale, that problem is not nearly as pervasive. No doubt the advances made in understanding and structuring the mass hysteria of the web will benefit desktop users, but I think forcing that structure onto the desktop is not only impossible, but counter-productive.
In my opinion the options are clearly laid out before us:
1) Move the desktop into the structured realm of a million and one tags/categories/color filters/labels/folders
- Or -
2) Get rid of it all. And just know what the user wants. (Ok, not really all of it, but instead of adding more hierarchies, we add more in-place understanding)
I know, its a bold statement, but somewhere between my tags, stars, labels, folders and emblems I realized that all these efforts we were making towards ease of use and understanding are just obfuscating things even further. These elaborate systems that require users to squeeze into sub-par standards like iCal exacerbate the problem even more, and ignore the efficiency of simple systems, like a pad of paper. (Yes, props to Tomboy). The problem is, many times a blunt-simple interface requires significantly more work on the programmers side (to actually understand the data entered) than a more traditional tabs-and-forms approach. I think we are demanding too much from users, how many people actually keep their address book completely updated? Or tag all their photos, or keep every document in the right folder? Even those who are vigilant eventually fall behind, and that’s because users already know what the material they are filling is, but still have to spend time explaining to the computer which items are related and where they belong. Especially for users with large sets of desktop data (Few thousand docs,e-mails,photos, and songs) the time can add up. Instead of asking users to commit even more time for data integrity and organization with more tagging systems.
The way I see it, we can count on 2 skills from a Desktop user.
1) Searching ( ThankYou Google!! Most people are quite comfortable with search phrasing!) or more accurately, knowing what they are looking for
2) To use their computer even when they aren’t looking for something (ie content generation, surfing the web, chat etc.)
These are the common denominators that we should be reaching for. We shouldn’t be trying to make the user classify their relationship with each person in their address book, we should just always be there, identifying the relationship based upon their level of interaction. And on a higher level than traditional approaches have taken us. After working on the Beagle Project for some time, the incredible weight of maintaining the backends to communicate with each mail client, each rss reader and each chat client almost seems to drown out the gain from having the data in a central and unified place. I mean, each time it was just someone talking to someone else right? Why have we taken simple actions and tried to codify them, when the complexities of human behavior are so great any Psychologist would tell you its a guessing game anyways. I think we should start with the disorganized mess that is someones workday at a computer and ask for nothing else. Reverse the system, take all of our analytical energies and structure, and use it for ourselves, in the backend, and just have the users use computers.
The best example of this is the phenomenon of tagging. Basically associating like objects via keyword-phrases. The problem is tags restrict themselves, lets say I have created a blog post about web browsers, while the tags ‘html, web, mozilla, ie’ may indeed be the most accurate 4 words from my point of view, they in no way approach the whole set of meanings and connotations carried by all their synonyms, let alone the entire post. In the realm of multimedia, tags are more useful, as images and videos are harder to extract contextual value from, but there is a better way….
Lets be smart! Instead of trying to stem the tide of data to make it more manageable, we ride the wave! Data is very rarely stagnate on a machine, people send photos to friends, edit each others papers, and share music all the time, there is a wealth of information in the chat I have with a friend while he listens to the new song I sent him, we just need to grab it!
I have specifics and even a little bit of code for my next post, but until then, I want feedback, do people agree? I mean, yeah, a million and one more ways for me to catalog and store my data, but when I’m actually looking for something the tags never seem to help much. While tags and folders do help with the clutter problem, I want to propose the idea that we move completely beyond presenting the hierarchy to the user, and start determining how (from the most basic of usage data) we could better present/organize information. Is the ubiquitous search box the only UI system that fits? What about something like Dasher meets lowfat, powered by an incredible datastore, but for files?
May 20, 2008
Nat Friedman
We're Hiring

One of my most fun responsibilities at Novell is running the SUSE Incubation Team: a small team of developers focused on innovation, prototyping, and exploratory hacking. Our charter is to come up with disruptive ideas that take Novell's Linux business in exciting new directions.
The team is a diverse group, ranging from web developers who love working in Ruby on Rails to kernel hackers and virtualization experts, and it's a great privilege to work with them. We have an upbeat culture that's tolerant of experimentation, we're obsessive about delivering innovative and amazing experiences to our users, and we hold each other to high standards. Besides our exploratory development work, the team is also responsible for running the twice-a-year SUSE Hack Week.
As it happens, one of our projects — an innovative web application — is starting to look promising and so we're working on getting it ready for a limited public beta. And we're looking for a few talented, energetic developers to help us get there.
The job descriptions are below. Keep in mind that we're not looking for specialists: we're a small team, and we need people who are willing and happy to shift gears whenever necessary.
If any of these sound interesting to you, mail us your CV/resume.
We're open to hiring people in any location, but we have a slight preference for people who can work in Nürnberg, Germany, and a preference for people close to the UTC+1 timezone. We offer competitive salaries and benefits in a fun, tight-knit team.
Quality Engineer
If you believe that quality is priority one and that great QA also means writing code, then this could be the job for you. We are looking for a skilled programmer to help create and run a robust testing environment for an innovative new web service.
Your responsibilities will include building and maintaining a test harness and test environments; automating UI testing of our web application; monitoring and analyzing test results; helping to fill in unit and functional tests; creating test environments; and playing the role of bugmaster in our bugzilla.
The ideal person will be a strong programmer who can tell a good bug report from a bad one, will consider themself a whiz at scripting (shell, perl - whatever works for you), and will enjoy understanding the ins and outs of a sophisticated system.
Deployment and Release Engineer
Interested in designing and operating a streamlined deployment architecture for a cluster of several hundred cores? We are looking for an engineer to architect and manage the build, release and deployment infrastructure for our new web service.
Your responsibilities will include creating and maintaining deployment scripts; creating deployable packages and images; system administration of production machines; building RPM packages and virtual images to simplify deployment; and setting up and maintaining a cluster monitoring infrastructure.
Linux packaging and system administration skills, and experience deploying web applications are a must; experience with Ruby on Rails is a plus; solid programming skills and a strong focus on delivering a great user experience are required. Infrequent travel to our data center in Boston will also be required.
Developer
This position will be working today on the core of our web application, which is mostly written in Ruby on Rails, Perl and in C. Ideal candidates will be creative self-starters with a strong focus on user experience and performance, and will have good communication skills and experience working in teams.
Because of the nature of our team, we can't allow ourselves to be defined by the tools we happen to be using at any given time. Today you might be writing Ruby on Rails, but tomorrow you could find yourself knee-deep in C: whatever it takes to get the job done. Above all, we're looking for smart programmers who don't mind learning a new codebase or a new language overnight, and who are willing to hit a few dead ends before arriving at the perfect solution. We're also looking for people who are good writers, and with good design skills.
If you're applying for this position, please send us some code that you've written that you're particularly proud of.
May 19, 2008
Kevin Kubasik
Bazaar and its Rockage
So, I think most of the open source world has agreed that the DRCS model fits our working style better than the traditional model pushed by SVN and CVS etc. And in this DRCS world we have rallied around 3 main tools: Bzr, hg, and git. And in an even greater display of complacency we have given those 3 tools quick and general classifications that became obsolete almost a year ago. Bzr is user friendly but slow and technologically inferior, hg is the champion of the middle but with slow development and a lackluster community, git is wicked fast and ‘The Right Way’TM but a pain to use.
Really? Come on guys, those molds were cast almost a year and a half ago, isn’t it time we looked at things again? Git has an entirely new interface, hg has a slew of plugins/extensions, and bzr has a completely new repo format, and network protocol, resulting in a massive speedup. Now I’m not claiming to be some unbiased source, and comparing 3 incredibly robust tools is not my job, but given the amount of support that Git receives from its very vocal supporters makes me feel a need to give props to my favorite DRCS system: Bazaar.
That’s right, Bazaar (or bzr) is awesome. Sure, git is awesome too, and so is mercurial, but I have found myself loving bzr. I’m not going to attack other DRCS tools, I just want to extol the awesomeness that is bzr.
1) Bzr is Python-Tastic! - As a python hacker, being able to utilize a robust API and plugin system is a cool plus, this also generates lots of powerful and complete plugins, which leads me to the next point.
2) Bzr has a ton of plugins! - Plugins like bzr-avahi (allows the discovery of branches on a local network, great for sprints/hackfests), bzr-svn (makes working with upstream repositories easy as pie!), quilt and gtk tools.
3) Bzr works on Windows - Yeah, I’m not a huge fan of accommodating Windows users, but it makes collaboration easier, I don’t have to make my roommate boot into Ubuntu to lend a hand with some CSS bugs.
4) Bzr is easy to share - The ability to push branches to some central repo is a big component of distributed development. While patches work in some cases, most of the time, having access to a branch makes the whole system work better. Both Git and Hg require a bit of work to set up a new repo and push a branch, bzr supports a ton of protocols and can create the target directory/repo with one command. Sharing is easy!
5) Bzr is fast - Maybe others are faster, maybe it could be a million times faster, I dunno. What I do know is the only thing I seem to wait on is my net connection… I realize that many people need more than that. So here you go. http://bazaar-vcs.org/Benchmarks
6) Bzr is small - In my development model (a shared repo with branches inside of it) bzr is compact and aware of disk space, without repositories it might be huge, I dunno.
7) Bzr is clear about whats happening - I can follow what Bzr is trying to do with my code. A branch is a new directory, and I can always see my code. Not only is this comforting/reassuring, but I often utilize IDE’s like Wing, Eclipse, or Monodevelop when working on code, and while they can handle other systems, directories for branches translates to every editor and works well.
Bzr is reliable - A massive suite of unit-tests and a commitment to their excellence offers some comfort that I won’t be left holding half of my code in one hand and an ugly binary blob in the other.
9) Most of all, its a feeling. Its hard to explain, but I don’t notice bzr. Its just there, and I just have my code. I rarely take notice of it, and don’t focus on it. I spend 99% of my time coding and every 30 min I enter a terminal for a few seconds to do all my DRCS stuff. Maybe its why people who use Bzr aren’t very vocal about it. Its not a revolution in revision control, and I don’t do a million cool things in it. I just write code, and bzr is there, doing whatever it does.
May 09, 2008
Nat Friedman
Rack servers in Boston, make money
We're looking for a neat, meticulous person to help us rack and wire some servers next week, on Tuesday and Wednesday. The tasks are unboxing, carrying, mounting, screwing, wiring, and testing the servers. Pay is $20/hour, duration is until we're done, location is in Waltham (we'll pay for your transport).
If you're interested, send mail to pzb@novell.com and mention any relevant experience or skills.
May 08, 2008
Kevin Kubasik
Utah Python Users Group
If your in the greater Salt Lake area and love python swing by the meeting this evening! We’re doing a python editor head-to-head, should be fun!
Debajyoti Bera
One way to get things fixed in Ubuntu
Become famous and then blog about it. Its easy (the blogging part). And it
works [1a, 1b].
Now if only someone famous blogged about some other literal showstoppers in
beagle and KNetworkManager, some more Kubuntu users would be happy [2].
Beagle is second class citizen in Ubuntopia, but I thought KNetworkManager is
important.
One thing I noted though, since Beagle was moved to Universe from Main, it is
getting better treatment. Periodic sync from debian is actually happening
unlike when it was in main; the core Ubuntu developers rarely found time to
update the Beagle package. Kudos to Masters of the Universe!
[1a]
https://bugs.launchpad.net/ubuntu/+source/galago-sharp/+bug/186049/comments/9
[1b] http://arstechnica.com/reviews/os/hardy-heron-review.ars/3
[2] https://bugs.launchpad.net/ubuntu/+source/beagle/+bug/207157
May 07, 2008
Arun Raghavan
IITK Fascism Update
So we (some of us students) met and decided to do something about the sudden implementation of the Internet shutdown from 0000-0600. Some updates:
The intimation about doing this was sent at 2357 hours today (yesterday, to be precise) to all. The notification basically stated that because of “undesirable activities”, Internet will, with immediate effect, be disabled from 0000 to 0600 every day. And that’s it -- poof. The hostel network is disconnected from the rest of the Institute, thus making sure that nobody can access the Internet (or even the Institute’s own computing facilities). To compensate, the Computer Center (with a capacity of <200 computers) is to be kept open 24x7.
Of course, this was unacceptable, so a bunch of us decided that something needs to be done. There are 2 issues -- the decision, and how it was implemented. While the decision itself needs discussion (more about this later), the implementation is of immediate concern. People were not prepared, and work on several people's theses were affected. Plus, this has been done just a little after the end-semester exams, when most students are not on campus. This sort of fascism usually rears its head under precisely these circumstances. We decided that what needed to be addressed right now is the implementation -- the Internet has to be made available this night.
A couple of our student representatives spoke to the Dean of Student Affairs (the DoSA -- the official channel between the students and the administration). The DoSA basically said that they, the various Deans and the Director (and Deputy Director?) have made the decision at nothing would be done about it. More precisely, the Director, as the highest power in the Institute has taken the decision and that's that. Further discussion may be taken up with him.
About 60-70 of us went to the Director's house at about 2:30 (the entire process was peaceful -- there was not shouting or slogans). We met with the security, who called the Head of the Computer Center (CC) and the DoSA to the place after some attempted dodging.
The CC Head turned up first and started asking what our problem was. He offered such resources as a vehicle to transfer us from hostel to CC as well as as many pen-drives as we require to transfer data from our machines to the CC machines. The DoSA just said that we’ve given you 2 years to think about whether this should be implementing it, and now we will be implementing it, so there.
Our student representatives (who did a pretty good job), after some dialogue, got the connection reinstated for tonight. They will be further taking up the issue later today.
The decision itself is extremely foolish, of course. Moreover, the dictatorial way in which this is being done is just as shocking. Let’s see how things pan out in time. Perhaps sense and sanity will prevail.
May 06, 2008
Robert Love
A Beautiful Day

Spring arrives in Boston (cf. winter)
In yesterday's Financial Times, Larry Summers on tax competition and cooperation:
First, the US should take the lead in promoting global cooperation in the international tax arena. There has been a race to the bottom in the taxation of corporate income. Closely related is the problem of tax havens that seek to lure wealthy citizens with promises that they can avoid paying taxes altogether on large parts of their fortunes. It might be inevitable that globalization leads to some increases in inequality; it is not necessary that it also compromise the possibility of progressive taxation.
Agreeing or disagreeing with Secretary Summers' point is largely a question of the role of government as much as it is one of international economics. I generally view tax competition as a healthy restraint on the tax burden and thus a bridle on the size of the state. Here, Larry is taking the view that without cooperation, you will have nanny states without nannies and thus nothing to transfer.
by Robert Love (noreply@blogger.com) at May 06, 2008 10:58 AM
May 04, 2008
Robert Love
You're gonna be so proud. Proud? Proud.
From the make-Edward-Tufte-proud department, another stellar graphic in today's Sunday Times, this one visualizing the basket of goods making up the CPI and both the relative size of those goods within the consumption bundle and the year-on-year change in that size:

All of Inflation's Little Parts by Amanda Cox
You always glean points from a good visualization that you don't from the tabular data. For example, consumers spend the same amount (about 1% of total) on cable service as on doctor visits. The portion of consumer spending allotted to "computers" has declined 12% year-on-year. Rising import prices, particularly oil (which, although denominated in dollars, experiences the same exchange rate pressure as other world market goods), and growing food costs account for the bulk of inflationary pressures. I am happy to note if you rent your home, don't own a car, and spend most of your money on clothes and bacon, your purchasing power has actually increased year-over-year.
Note that, while a proxy, the change in spending on a category is not the same as inflation. For example, the share of spending on citrus dropped 9.5% year-over-year. That could be due to deflation, but the spending drop could also be caused by a decrease in demand—perhaps consumers are substituting oranges with apples, which grew 7.5% year-on-year. Alternatively, note that while the cost of most health-related expenses went up, so did the science advancing the field, ushering in new drugs and improved procedures. If you aren't comparing, say, apples to apples year-on-year, you are measuring more than monetary inflation. These are just two of a myriad of problems with computing inflation.
A page earlier, Alan Blinder argues for greater regulation of the financial industry. Unfortunately, Prof Blinder notes:
It will, for example, substantially reduce the profitability of investment houses and, therefore, reduce their scale. But that’s the price you pay for access to a publicly financed safety net.
No doubt increased regulation, particularly in the area of margin requirements curbing excess leverage, will lower short-term profits. But I don't see why the goal of any changes in regulation shouldn't include maintaining or even improving longer term profits. After all, you'd have to take substantial bites out of Goldman's earnings to equal the loss in a single implosion such as Bear's.
by Robert Love (noreply@blogger.com) at May 04, 2008 03:16 PM
May 03, 2008
Robert Love
Linux Journal Readers' Choice
Linux Journal unleashed their annual Readers' Choice Awards the other day, and I am proud to note that Linux System Programming—my recent work on system-level Linux hacking—received an honorable mention in the category of "Favorite Linux Book." Whether you live strictly at the lowest levels or only occasionally reach outside your cozy virtual machine; whether you code in C++ or Python; whether you are wolf or neophyte, the text is both an excellent guide to systems programming and a handy reference to Linux's sparsely-documented system call API.
Also, congratulations to GNOME for winning "Favorite Desktop Environment" and—natch—vi for winning "Favorite Text Editor."
Disclaimer: I am Contributing Editor at LJ, but I was wholly uninvolved in the Readers' Choice Awards. Hat tip to "loyal reader" for the link.
by Robert Love (noreply@blogger.com) at May 03, 2008 04:53 PM
May 01, 2008
Robert Love
Economists in Post on Gas Tax
Today's Post tackles yesterday's topic:
A growing chorus—including a top congressional Democrat—labeled Sen. Hillary Rodham Clinton's proposal for suspending the federal gasoline tax ineffective and shortsighted yesterday, even as she continued to paint Sen. Barack Obama as insensitive to drivers' woes for not endorsing the plan.
The initimble Prof Mankiw chimes in:
Harvard professor N. Gregory Mankiw, who has written a best-selling textbook on economics, said what he teaches is different from what Clinton and McCain are saying about gas taxes. "What you learn in Economics 101 is that if producers can't produce much more, when you cut the tax on that good the tax is kept by the suppliers and is not passed on to consumers," he said.
Over the short-run—and particularly over the summer, with refineries already at maximum capacity—the quantity supplied is fixed. Cutting the tax will cause consumers to simply bid the price back up to its original value, allowing demand to meet the fixed supply.
Here is a policy proposal: Ditch the gas tax and replace it with a broader tax on all carbon. Offset the carbon tax with a revenue-neutral reduction in marginal tax rates. Also—for good measure—abolish all farm subsidies.
by Robert Love (noreply@blogger.com) at May 01, 2008 11:32 AM
Kevin Kubasik
Mono GSOC Projects: Linq to SQLite
So I noticed that one of the accepted proposals for the Mono project is to create a LINQ provider for SQLite. Major props to this (its something I totally want to see!) and I’m glad to see that LINQ in Mono is going to be its own beast, I love it when the FOSS community just takes a technology and runs with it! Anyways, I wanted to try and get in touch with the mentor/student of this project and share my experience (as the author of the current LINQ to SQLite component ). But contact info seemed hard to come by, so I thought I would post what I had learned.
First, people really want this, and there are several half-complete implementations floating around, including mine (read only, no commit/update/delete support) and this one.
Second, support for just queries is quite easy. Support for complete CRUD, tedious but not to difficult (lots of examples already exist). Support for the generation/mapping/reflection of a database to real Linq objects, this is the tricky part (specifically the UI elements when unable to just piggyback the Visual Studio work).
Anyways, all the luck in the world to this GSOC project, I would really like to see a working implementation come from this!
April 30, 2008
Robert Love
A Gas Tax Holiday. Seriously?
Although neither are in office, Senators Clinton and McCain have both endorsed a gas tax holiday this summer, temporarily eliminating the 18¢ per gallon federal excise tax. To his credit, Senator Obama has denounced the holiday as not "an idea designed to get you through the summer" but one "designed to get through an election." It is also bad economics.
The price of fuel during the "holiday" will depend on gas's elasticities of supply and demand. As the short-run supply of gas is fairly constant—in the short-term, supply is fixed as factories (at least over the summer) already run at full capacity—the holiday price of gas will rise to meet the pre-holiday price.
Put another way, given the fixed supply, the price of gas will rise until the quantity demanded drops to meet the quantity supplied. Since the supply is invariant with respect to the tax, the price will not change.
Gas taxes, in the short-term anyhow, do not modify behavior—they just transfer payments from the supplier to the state. Thus, Clinton's version of the holiday, which replaces the gas tax with an offsetting tax on gas producers, asininely accomplishes nothing, but at least her plan is funded.
Let's assume fuel prices do drop. Over the course of the summer, this will save the average driver the cost of about a tank of gas (Obama says half a tank, but my calculation comes out a little higher). Now, if the price drops, the quantity demanded will increase and thus consumption increases (this will bid the price up, as we are now assuming supply is not inelastic, by some amount less than the full 18¢). What happened to yesterday's policy of the day, global warming? And what happened to last year's headliner, crumbling infrastructure, which the gas tax funds?
The proposal is just pandering, but if we really care about stimulating the economy by putting money in consumer's hands, there are better methods than targeted tax credits—for example, cutting marginal income tax rates.
by Robert Love (noreply@blogger.com) at April 30, 2008 07:14 PM
April 28, 2008
Debajyoti Bera
I knew searching would fail
There is a great report about a usability test on the web about a guy
giving some common computer tasks to his girlfriend on a fresh Hardy
Heron installation. I found it via Slashdot but since fewer and fewer
people are slashdotting these days, so here is a link [1].
The tasks are well chosen and the user is _not_ a first time
grandma-type-user and approaches each task in the obvious possible
way. "Obvious possible" - for people not used to a Linux distribution,
where "doing stuff my way" rules over "getting stuff done".
As I started reading it, I knew at some point the user was going to
"search for something". And I knew she was going to fail. Which she
did.
The problem with most (all?) of the linux desktop search applications
is that they are cut out for a particular task and are (hopefully)
pretty good at it. Indexing is the keyword there - how to index all
kinds of data in the best possible way and then allow users to search
the indexed data. And there are lots of sophistication there.
Unfortunately the common search tasks by an user is not quite that.
- Search for a file by name - most common
- Search for files of certain types
- Search for files in home directory containing some text - slightly
advanced usage
- Search among browsed websites etc.
- As a computer "user", it is not clear why I would search for
websites in the desktop search tool and not in the browser. Of course,
once I am told this can be done in the desktop search tool _too_, I
would be extremely glad and nod in appreciation.
It takes time to write a desktop indexing and searching system. I
didnt believe it when I first heard of it and my friends asked me what
is so difficult about it other than implementing inotify. For some
reason it is. So a lot of effort in invested behind that. But there
has been less effort in presenting a failsafe, minimum capability
search experience in that direction. What do I mean by failsafe and
minimum capability ?
- One obvious way to launch the search tool (there could be more, but
there should be one which may not be the best but works in the worst
case)
- The obvious tool should never fail on the basic searching - never,
never, never. By basic searching I mean searching for non-file content
information - name, size, type (what on earth is _mimetype_ to a
non-CS/IT person ? searching by extension is what I mean. broad
classification like music, picture helps).
- Repeat the above. Let me say it this way - if the user knows a file
exists, she should be able to find it by name. And matches by name
should come _first_. Same for search by types.
- Anything else is a bonus. When we have complete semantic desktops,
where a file is same as an email and same as an addressbook entry,
maybe then users would want to search for everything or specify what
exactly she wants. Not now.
So where does beagle fall behind (or some of the others tools, by
reading about them and looking at their screenshots).
- User want to use them to search for files. The tools return pretty
much everything.
- Give them an option on where to search. There is no need to
include an option for "application/rdf+xul" but list the common
options. A search service has to work for the minimum, a GUI has to
cater to the average. I would be sad if it didnt have ways to cater to
the advanced crowd too but I dont mind if that requires one extra
step.
- User wants to search everywhere (in the filesystem).
- Thats definitely not what beagle was designed for. A beagle search
tool is not expected to do that. But when it is presented as the
_main_ search tool to the users, it will be used to search everywhere.
And it will fail.
- I dont quite know how to design a failsafe GUI search tool but a
good start would be use the indexing service to home directory files
and brute-force 'find /usr/bin' for non-home directory partitions.
- Some users would never need to search by content.
- If searching content was cheap then it would not be a big deal if
searching by content is enabled. But content searching is expensive
from my experience. It would be better if users are allowed to opt-in
for content searching.
- Content searching is not supposed to be expensive. As far as
beagle is concerned, it is halfway on meeting this goal. It still
needs some fault-tolerance feature to detect problems before too much
damage has been done.
There are lots of other ways to make searching "just work". The user
does not even need to know there is any indexing in the background.
The sad part is a lot of what I suggested (or could have suggested) is
already possible with the current beagle infrastructure. What is
lacking is someone with a good GUI knowledge to work on improving the
search experience. I am defending the base by fixing the occassional
simple bugs but a real developer is needed. And needed urgently
otherwise yet another distributions will be released with a lacklustre
search experience.
http://contentconsumer.wordpress.com/2008/04/27/is-ubuntu-useable-enough-for-my-girlfriend/
April 27, 2008
Nat Friedman
More Tweetable Scripts
A few more tweetable commandlines have emerged since I posted the last round-up.
From pupitetris, this little work of art:
a=1;for i in {1..34};do printf %$[40-${#a}]s"$(eval $(echo $a*$a|bc|sed 's/$/0/;s/\([0-9]\)/tput setab \1; echo -n \\ ;/g'))"\\n;a=1$a;done
This Linux-specific commandline from Justin:
s=.o0O0o.o0O0o.o0O0o.o0O0o.o0O0o.o0O0o.o0;n(){ for x in `seq $1 $2 $3`;do notify-send ${s:0:x}; done };while :;do n 1 2 39;n 39 -2 1;done
And I wrote these two:
clear;for x in {0..150}; do y=`echo "12+6*s($x/6)"|bc -l|cut -d. -f 1`;echo -en \\e[$y\;"$(($x/2))"HX; sleep .1;done
s=`seq 9|shuf`;while :;do for((i=0;i<15;i+=2));do echo $s;a=${s:i:1};b=${s:i+2:1};[ $a -gt $b ]&&s=${s:0:i}$b\ $a${s:i+3};sleep .2;done;done
That last one is a bubble-sort implementation in 140 characters. Unfortunately, 140 characters is one character too many for a twitter post. Can you figure out how to shave off a character or two? (You'll need a recent version of coreutils for shuf).
Thanks to some helpful hints in the comments (abock, knipknap, Mitch) we're down to 137 chars:
s=`shuf -i1-9`;while i=;do for((;i<15;i+=2));do echo $s;a=${s:i:1};b=${s:i+2:1};[ $a \> $b ]&&s=${s:0:i}$b\ $a${s:i+3};sleep .2;done;done
I'll be posting more on twitter as people send them in.
April 25, 2008
Kevin Kubasik
Speaking at UT Code Camp
So, if you live in the greater Salt Lake City area, there’s a pretty cool low key (and free!) conference coming up, the Utah Code Camp. I’ll be doing a little talk on getting data out of HTML with Python (utilizing lxml and twill). If your interested, you can register here.
April 20, 2008
Debajyoti Bera
Takes Two to Release
The GMail backend I blogged about before is now available for mass abuse in Beagle 0.3.6(.1). We also tried to maintain our love of cutting edge technology by upgrading the Firefox extension to work with Firefox 3.0.
I noticed several forum posts where users wanted to use beagle like locate/find-grep. The desire was two pronged - no intention to run a daemon continuously and return files from everywhere doing basic searches in name and path. That is not how beagle is supposed to be used but users are the boss in a community project. So I added blocate, a wrapper to beagle-static-query. Currently it only matches the -d DBpath parameter of locate but works like a charm. Sample uses
$ blocate sondesh
$ blocate -d manpages locate
The other thing I added was a locate backend. I absolutely do not recommend using this one. Yet if you insist ... when enabled and used with the FileSystem backend, it will return search results from the locate program. Yes, results from eVeRyWhErE, as you wished.
You can use both the GMail and the locate backends in beagle-search as well. But both the new backends are rather primitive, so I have taken enough precautions againsts n00bs accidentally using them. So in summary, 0.3.6 is not going to do you any good. Oops... did I just say that ?!
The title is based on the empiricial count of the number of actual releases (including brown bag ones) needed for last few releases.
April 18, 2008
Robert Love
Linux System Programming, Nipponese
Linux システム プログラミング!
Just received my copy of the Japanese edition of Linux System Programming, which you can likewise own for a mere ¥ 3,780. I am told my unique brand of humor translates particularly well into the Japanese language.
Everyone, regardless of vernacular, ought to buy a copy. Reading it is nice, but not required.
Also available is the mother tongue version of LSP. Its like reading the Talmud in Aramaic. Or Shakespeare in retarded English.
by Robert Love (noreply@blogger.com) at April 18, 2008 02:39 PM
April 14, 2008
Robert Love
Linux System Programming, reviewed
En route back to Boston from LugRadio Live, caught a Slashdot review of Linux System Programming:
I have been looking for something that would take my K&R level of experience and bring it up to date with modern methods, hopefully letting me write more efficient and reliable programs. Linux System Programming is a volume that targets this need.
[Easy introductions of an advanced concept] are done in a nicely graded level for each topic. In "file access" to give an example, you are lead from simple read/write calls, through to what the C library can provide in buffering, to improved performance using mmap. The techniques continue with descriptions of I/O schedulers and how the kernel will order hardware disk access, scatter/gather, and ends up with how it is possible to order block reads/writes yourself bypassing any scheduler.
You are hardly aware of the progression, as the paci










