Archive for December, 2005

How big?

Sunday, December 11th, 2005

This morning a oil terminal outside of London blew up. The paper says the terminal handles “2.37 million metric tonnes of petrol and other oil products a year”.

How much is that? It’s about 19 million bbl/year (if I assume 8 barrels/ton (see here). or 51 thousand bbl/day. For comparison the Gulf of Mexico has about 500,000 barrels a day shutin right now. So it’s about a tenth the impact of that. That sounds big.

Let’s try another approach. The bottom of this page it says that on average a thousand people consume 31 barrels of oil/day, but scanning the table suggests that Britain probably consumes something more like 35 or 40. So, using the 31 bbl/day, that terminal handled the oil for 1.4 million people. London’s population is 7.4 million, England and Wales is 54 million.

I gather that this terminal had a pipeline to Heathrow airport, but I haven’t found how much fuel the airport consumes per day.

The Epicurean Life

Saturday, December 10th, 2005

In general you can’t buy liquor in grocery stores in Massachusetts. But today I wandered into one of the few that have managed to figure out how to get the licenses setup just right. I was amused to discover that all the wines at this place had unit pricing, so a $6 bottle of wine is a $30 a gallon. Using that information I now know that the ‘two buck chuck’ at Trader Joe’s is $15 a gallon. Wandering around the store I discovered this wine in a box for $5.99 a gallon. So I bought some.

This stuff! Grape juice with a head ache. Wow.

delicious + yahoo

Saturday, December 10th, 2005

Among Yahoo’s properties the one that most impresses me is Yahoo groups. In part because of my long standing fascination with things that enable the generation of vast numbers of small groups. Businesses, assuming there are any of this kind, have the possibility of tapping into Reed’s law. Which in turn makes the more vital that even the ones tapping into network effects.

You can see similar patterns of vigor group forming in Flickr.

Delicious on the other had is been, inspite of years of mumbling, entirely about one group - the global tagging group. Of course groups have such a compelling need to from that if you look you can find groups forming at delicious. Many people who use it talk about being aware of one or more groups there that they are affiliated with. But that’s happening inspite of the software - much like prisoners tapping messages out to each other thru the walls.

So, of course, I find it interesting that the delicious blog mentions social when talking about their acquisition.

These business models that tap into network effects and their friends are subtle. I like the phrase “monitize lightly” here. But what it implies takes a bunch of work to think thru.

I have a friend with a topic specific blog. Their site is very very highly ranked in Yahoo search, but hardly visible in Googles. I’m reasonably confident I know why. Their site’s if often referenced in yahoo groups associated with that topic. Interesting complementary effect there.

While that speaks to the question of how one might monitize some of the value in socialization hubs it also speaks to another hard question that floats around in these network businesses. Which complements must the hub own. For example I think it’s absolutely necessary for a operating system hub/monopoly like Microsoft to own those complements which are used by more than 80-90% of their users, if those complements have strong enough network effects that they tend to condense into practically one vendor. They need to own the word processor because if they don’t the word processor vendor becomes so powerful a complement that it can force them to negotiate by threatening to enable users to switch to competing operating systems.

The delicious acquisition just reminds me that we don’t know which complements the search engine hubs are going to have to own.

defun-with-cache

Friday, December 9th, 2005

I don’t often have this kind of fun.

(defmacro defun-with-cache (name args &body body)
  (multiple-value-bind (binding call apply?)
      (rip-apart-arglist args)
    `(let ((#1=#:cache (make-hash-table :test #'equal)))
      (setf (cache-of-function ',name) #1#)
      (defun ,name ,args
	(flet ((,name ,args ,@body))
	  (let ((#2=#:key (list ,@binding)))
	    (values-list
	     (or (gethash #2# #1#)
		 (setf (gethash #2# #1#)
		       (multiple-value-list
			   ,@(if apply?
				 `((apply #',name ,@call))
				 `((,name ,@call)))))))))))))

As I like to say: “Lisp has plenty of syntax, it just spends it’s syntax dollars to buy different things.”

Just look at the nesting: defmacro, multiple-value-bind, let, setf, defun, flet, let, values-list, or, multiple-value-list, if, and apply; it’s like the parade of the wild and crazy programming constructs. Then you have the the fun going on with punctuation characters: #=:,@’ … and people complain about Perl.

Update:

Ah, the power of many eyes. It’s got a bug. Lambda lists in Common Lisp include the not unusual feature that you can write something like this pattern (x y &optional z) and then the caller can do (f 1 2) or (f 1 2 3). And of course you can specify an default value for the optional arguements i.e. (x y &optional (z -1)). There is an unusual feature in this vicinity though; you can write (x y &optional (z -1 z-provided?)) and then your function will actually have four arguments. The fourth one, z-provided? is bound by the language as a flag telling you if z was defaulted or not.

I like that the code above used an flet to create a version of the function which as it would have been without the caching wrapped around it. But I don’t see a straight forward way to do that if I’m going to handle things like z-provided?. So I got rid of the flet.

(defmacro defun-with-cache (name args &body body)
  "Like defun, but this memoizes the function into a cache that maybe
   latter cleared."
  (multiple-value-bind (binding call)
      (rip-apart-lambda-list args)
    `(let ((#1=#:cache (make-hash-table :test #'equal)))
      (setf (cache-of-function ',name) #1#)
      (defun ,name ,args
	(let ((#2=#:key (list ,@binding)))
	  (values-list
	   (or (gethash #2# #1#)
	       (setf (gethash #2# #1#)
		     (multiple-value-list
			 (progn
			   ,@body))))))))))

That I can’t use an flet in a straight forward way is an unusual breakdown of language symmetry. The need for the apply? flag in the original is analogous, but different.

Moneyball -> Football?

Monday, December 5th, 2005

Moneyball, a book that appears to be about baseball, can be read as a book about how disruption can sweep thru an established industry. In that case the story is about using statistics to pick good players and plays while backing off traditional metrics of what makes for a good player.

It’s neat to see that the author, Michael Lewis, looks like he found another story to tell. This time about football.

Here some pull quotes from his article in the New York Times.

Possibly most interesting is how unlike the coach in Moneyball this coach has no serious credentials with the games classic hierarchy.

“How does a coach who never played a down of football have the best offense in the game?”

This coach’s core mood is totally different than the tightly intensity of the one in Moneyball.

The Texas Tech offense is not just an offense; it’s a mood: optimism. It is designed to maximize the possibility of something good happening rather than to minimize the possibility of something bad happening. But then something bad happened. (”It always does,” Leach says.

Unlike the coach in Moneyball this one is obviously a hedgehog.

Each off-season, Leach picks something he is curious about and learns as much as he can about it: Geronimo, Daniel Boone, whales, chimpanzees, grizzly bears, Jackson Pollock.

“To Mike, everything he does makes sense,” Wylie says. “It just takes a while to see how it all fits together. But if you were a fly on his shoulder for six months, you’d laugh your eyeballs out.”

But of course somethings never change, the establishment is closing ranks and fearing displacement.

“…Dismissive is the word. They dismiss him out of hand. And you know why? Because he’s not doing things because that’s the way they’ve always been done. It’s like he’s been given this chessboard, and all the pieces but none of the rules, and he’s trying to figure out where all the chess pieces should go. From scratch!”

But then, that’s just a required part of the David innovator v.s. Goliath story.