What are you giving up for Lent?

@Hugyrl17: 'thinking about my future wedding'
@scotteatsbread: 'unhealthy foods'
@antic: 'Facebook'
@trentgillaspie: 'swear words'
@tayobrien: 'onion bagels in the morning' THANK YOU Tay!
@pnuttro: 'Meat'
@cnirel: 'alcoholic beverages' BUT not alcoholic foods, whew.
@jessicaa: 'fast food'
@j3nn1e: 'Ben and Jerrys'
@kimberleedawgg: 'MySpace'
@newledge 'gettin' jiggy wit' it'
@Eukadanz: 'retweeting'
@do_art: 'coffee'
@marcusbaney: 'pants' AHHH.
@eBeth: 'starbucks'
@fivehundy: 'Catholicism'
@PeepGameBitches: 'sex'
@lyneka: 'the term "blogging"'
@itsmeamanda: 'my debit card'
@TajesMahoney: 'speaking'
@mauldwright: 'knitting'
@01casey: 'illegal downloading'
@beccybags: 'giving up'
@Politwitt: 'watching liberal news media'
@Pezdro 'murder'
@guruofnew: 'Social Media'
@snoutsparkle: 'carbon' COUGH, oh, the misinformed.
@ronbailey: 'my innocence'
@zhautelawx3: 'procrastinating'
@alchahest: 'taters'
@atxryan: 'shaving'
@EricaNurney: 'shopping'
@kinhart: 'the snooze button'

And @Patrick_Donohue 'my girlfriend convinced me to give up something else for Lent... welcome back twitter'

Password-Free Zone

While working on my hawt new web app, I was somewhat sidetracked by OpenID, the open authentication model. It allows applications to authenticate users through a side-channel. The web app redirects the user to the OpenID server to log in. Then the app will connect directly to the OpenID server which says 'Yes, this user is who they say they are'.

This is what allows you to log into blogs using, say, your Yahoo ID.

I spent a couple hours putting an OpenID server on But instead of hosting a standard username and password scheme, I set it up to use my phone to authenticate. When the web app connects to my OpenID server, the server sends a random hash to my Blackberry in a message saying Web app XYZ want to log you in. If this is what you want, simply reply. I reply to that message and the OpenID server verifies that my reply included the hash it sent. Then it responds to the web app, saying 'Yep, that's James.'

The net result is that now I can log into LiveJournal or a TypePad hosted blog without ever having a password. In the past, you could guess my password and break into my account, now you would need to steal my phone.

Insanely cool and this was only possible because OpenID is, well, open. Useful? Not in the slightest. There are very few sites that accept OpenID; even with the ones that take it, you can't link an existing account to OpenID. Really cool demo, though.


- Standard Bayway (not the Bayshore Byway) to Menlo Park
- Dumbarton Bridge
- L Thorten -> Paso Padre Parkway
(cross rail, 880)
- L Decoto
- R Niles Rd
(cross BART)
- L Niles Canyon Rd (to Sunol)
-> Paloma Rd
- 680 N, take first exit
- Vallecitos Rd to Livermore
-> Holmes St
- R 1st St (do not cross 580)
- R Las Positas Rd
- L South Vasco Rd
(cross 580)
-> Vasco Rd -> Walnut Blvd to Brentwood
- R Oak St
(cross railroad)
- L Brentwood to Antioch (Hwy 4)
-> Main St (Hwy 4)
- R Bridgehead
- L Wilbur
- R Hwy 160, Antioch Bridge
- Hwy 160 to Rio Vista
- L Hwy 12
(cross Sacramento River)
-> Hwy 12 to Suisun City
- L Marnia Blvd
- R Lotz Way
(at Amtrak Station)
- L Main St
- L Cordelia St
(cross rail juction)
(cross 680 at Cordelia)
- L Lopes Rd (immed after 680)
- R Fulton Dr
-> Watt Dr
- L N Brook / Red Top
- L McGary (do not cross 80)
- L American Canyon Rd / Hiddenbrook Pkwy
(cross 80)
(cross Newell / Flosden)
- L Broadway (do not cross 29, Napa Vallejo Hwy)
(cross 37)
- R Couch St
-> Mississippi St
- L Sacramento St
- R Tennessee
-> Mare Island Causeway
(cross Napa River)
- R Railroad Ave
- merge Hwy 37 West
- exit Hanna Ranch Rd (just before 101)
- L bike path (immed after rail)
(cross rail)
- Hamilton Dr (either dir)
- R Bel Marin Keys
- L Nave Dr (do not cross 101)
(cross 101)
- at Alameda del Prado U-turn onto bike path
(follow 101)
-> Miller Creek Rd
- L Las Gallinas Ave
-> Lincoln Ave
(cross 2nd St)
- L Irwin
- R Tiburon
-> Via la Cumbre
- L Eliseo
- L S.F Drake (almost u-turn)
- bike path on 101 onramp
-> Lucky Dr
- L Fifer Ave
- R Tamal Vista
-> Madera Blvd
(cross Tamalpais Dr)
-> Sanford
-L Meadowsweet
- at hairpin, bike path
- R Lomita Dr
- at turn, straight, bike path
- left onto Mill Valley Bike Expressway
- back to San Francisco

Generation WE by Eric Greenberg

This book is available as a free PDF download; that makes it cool right?

Greenberg was at Google SF (and I in MTV) today; so I thought I would at least look at his book.

I got to page 10 (after nine pages of pretty redwood trees and modern graphics) and choked on this gem illustrating how rough we have it these days: "At the time [1985] tuition at [UT Austin] was only 800 dollars per semester for a nonresident". Oh boy, somebody forgot their basic math. According to the inflation calculator, $800 1985 dollars are worth $1626 dollars today. Oh, and Greenburg appears to have pulled that $800 number out of, well I have no idea; but the nonresident tuition to UT Austin in 1985 was $1984 (or $4034 today) (ref) Granted, 2009 nonresident tuition at UT is ~$14000.

But, that sets the tone nicely for the rest of the book: made up numbers and bad stats. I am skipping the middle, it is just the summer's CNN transcript rehashed in the context of a voting bloc 95 million strong: y'know, oil at $200, environmental doom and gloom, foreclosures, and a healthy amount of Bush-bashing.

Near the end of the book, Greenberg gives a WE Agenda subtitled "Restoring the American Dream".

How do we restore this dream, you ask? Actually wrong question, but hey Greenberg has the answer:

ENERGY INDEPENDENCE! (where is my blink tag when I need it)

This book is mostly an advertising gimmick for "Project FREE" where Americans innovate their way off of foreign oil. By inventing new energy sources, the US gets millions of jobs, money for everybody, and cheap energy so Americans can, well, drive 50 miles to work everyday -- like now, but this time they can tell big bad [wait, the US gets oil from who again? Oh, they ARE scary] where they can put their oil.

And the rest:
- nutrition (remember this one), education and _basic_ health care for all.
- federal fiscal prudence and economic protectionism (We already established Greenberg slept through Ethics and Stats class, clearly he missed ECON as well)

Wade through the cutesy raw-raw "let's change the world by restoring America's greatness" (anything wrong with that picture?) and you'll get to the author's biography on the very last page: Greenberg isn't an impartial reporter after all; the whole book is one big sales pitch.

ABCs of the Google

Google Apps
Google Books
Google Calendar
Google Earth
Google Finance
Google Groups
Google Health
Google Images
Google Jobs
Google Knol
Google Local
Google Maps
Google News
Google Pack
Google Quality
Google Reader
Google Streetview
Google Talk
Google UK
Google Video
Google Webmaster Tools
Google XPrize
Google Zietgeist

The ABCs of the Web

John Lewis
Kelly Blue Book

Know them all? Disagree with any letter selections?


I've been Twittering for about a month now. Mundane updates are available at:

I classified the posts:

 cryptic comments about work  ***************************************
 food                         ***************
 books                        ***************
 random internet memes        *************
 biking                       **********
 genuine status updates       ********
 commuting                    *******
 hacking                      *****
 coffee                       ****  
 blogging                     **
 TV                           *
 home decorating              *
 emo                          *

As a plus, I was guilted by drheld to finally implement a procmail gateway to Twitter. Now I can post a status update from my Crackberry in under 10 seconds!

The Dawes

Last Christmas, sjwalters left me his bike. He had acquired a broken down 10-speed and was using it during his co-op term. It was in a sorry state. Walters still managed to haul it up Mount Madonna (and survived the descent with only half a brake).

He locked it to my back gate and when I got back to the city in January, I took it down to the Bike Kitchen and started work. After four months of spending a couple nights a week in the shop I had stripped the bike down and rebuilt it as a sweet city bike. I've ridden it to work once but made the mad dash down the Civic Center bus many times. It is fast and it has a personality.

From the original parts, I kept the frame, fork and handlebars, the saddle, the pedals and the brakes: all got a good scrubbing. I ripped off the entire drivetrain and replace the heavy heavy cranks and front chainrings with a single 52. I replaced the cassette with a lightly used 13-32 5-gear cassette from the Bike Kitchen's part room.

I repacked the bearing in the headset and both wheels. The chain, cables, tires, rim tape and bar tape are brand new.

I promised Walters I wouldn't repaint the frame, so it is still faded green and orange rattlecan. I did try the clean up the Dawes faceplate, but it is still tinted orange.

Next up, I would like to build a new set of wheels, but that might be a project for next winter (winter in San Francisco, ha!)

Solving SET

Does a given hand of cards in the game SET contain a set?

There are a few SET solvers available on the Internet. As far as I can tell, there are no papers that propose an algorithm.

Steve Nolte and Sam Liew both implement an O(n^3) brute force algorithm in bad JavaScript.

Meng Wong and Bryan Donovan used an O(n^2) algorithm which relies on the property of SET: for any two cards there is a third that will form a set.

Can we do better? Probably.

The Public Library

Among other, much more exciting things, I refilled my SFPL request queue over the weekend.

The first two books were available this morning, so I stopped by the library on the way to work and picked them up.

I finished the first one: 'The Millionaire Next Door' on the bus. Short synopsis: spend little, pick the right profession. Like most investment/life events books, it was targeted at aging baby-boomers who are concerned about retiring. The authors spend half the book making the point that cash handouts spoil adult children.

I was somewhat disgruntled by the assumption that everybody needs a house and car and the only investment goal is retirement (or maybe having an arbitrary number in your bank account). In general, I would not recommend the book.

But of course, the least popular books will be dequeued first; I have 252 people ahead of me for Unaccustomed Earth, so that better be good. To fill the queue, I am currently using the best sellers list from the New York Times, the San Francisco Chronicle, the Globe and Mail and the Sunday Times. From each list I take the top fiction book and the top two non-fiction books -- more if they look interesting. I am also working my way through a couple people's reading lists.

I am open to other book lists if anybody has any suggestions.