Category Archives: General

Electric promises

Isn’t there is something unnatural about a venture capitalist who’s obviously a hard-core geek?

A long time back Tim Orton posted a list of links on systems that allow delegation of rights to other parties. I’ve been meaning to get around to writing about this kind of think because while lots of people tend to know about private/public key encryption and other approaches to the identity problem these methods seem to have been largely forgotten.

These are such a nostalgia trip for me. Back in the early mid 70s at CMU I had some light involvement in the development of a multiprocessor system known as C.mmp. One unique feature of the operating system of that toy was that it managed permissions using “capabilities” rather that “access control lists”. Capabilities are a much better design but nobody has ever really managed to make them very practical.

Access control lists, or ACL, protect things by marking objects with a list of who is allowed to access. For example if the question arises is Bob allowed to update the payroll data the ACL system works by checking a list associated with that data and then checking that the person about to make the change has proved he is Bob. ACL’s are like the guest list at an exclusive party, each time another guest shows up the doorman checks their ID against the guest list before letting them in. Maintaining the guest lists is a pain.

Capabilities allows Bob to delegate the task of updating the payroll to one of his acquaintances.

In a capability system Bob carries around a set of capabilities, think of them as like one of those huge key rings that building maintenance guys carry around. When Bob wants to modify the payroll data he pulls out the right key/capability presents it and the system checks it. If Bob want’s to delegate, he can hand the key to his assistant. Keeping all these keys under control is a pain.

Real world system work with a hybrid of keys and guest lists. In some situations you present an ID card (for example to withdraw books from the public library) and in other scenarios your provided with a key (for example when you rent a car).

One of the systems Tim points to is really just too cute: i.e. a programming language called E.

Most programming languages consist of a handful of tricks. For example one of Lisp’s trick is to bring the syntax and the parse tree so very close to each other so that at program build time you can do powerful transformations of your program. One of Python’s tricks is to leverage the source text’s indenting for syntax. One of Perl’s tricks is to weave a number of powerful micro-languages together into one dense rich stew. One of Erlang’s clever tricks is designing extremely light weight distributed tasks into the heart of the language.

E seems to have three key tricks. The most minor of these is that it stands on top of the Java VM. The second trick is to fold the idea of capabilities into the language. While in a traditional programming language you can manipulate an object if you can get a pointer to it in E you need to get the capability not the pointer. All kinds of clever cryptography is built in so that these capabilities enabling them to do clever things, like only work for an interval of time.

The last clever thing, the fun one, is an approach to multitasking based on “promises”. Rather than the usual collection of processes, micro-tasks, thread, locks, semaphores, queues, event handling, and messages that most languages cobble together in various combinations to create a multitasking system we get one construct; the promise.

Here is a very amusing description of why this might be “a better way(tm)”:

Let us look at a conventional human distributed computation. Alice, the CEO of Evernet Computing, needs a new version of the budget including R&D numbers from the VP of Engineering, Bob. Alice calls Bob: “Could you get me those numbers?”

Bob jots Alice’s request on his to-do list. “Sure thing, Alice, I promise I’ll get them for you after I solve this engineering problem.”

Bob has handed Alice a promise for the answer. He has not handed her the answer. But neither Bob nor Alice sits on their hands, blocked, waiting for the resolution.

Rather, Bob continues to work his current problem. And Alice goes to Carol, the CFO: “Carol, when Bob gets those numbers, plug ’em into the spreadsheet and give me the new budget,okay?”

Carol: “No problem.” Carol writes Alice’s request on her own to-do list, but does not put it either first or last in the list. Rather, she puts it in the conditional part of the list, to be done when the condition is met–in this case, when Bob fulfills his promise.

Conceptually, Alice has handed to Carol a copy of Bob’s promise for numbers, and Carol has handed to Alice a promise for a new integrated spreadsheet. Once again, no one waits around, blocked. Carol ambles down the hall for a contract negotiation, Alice goes back to preparing for the IPO.

When Bob finishes his calculations, he signals that his promise has been fulfilled; when Carol receives the signal, she uses Bob’s fulfilled promise to fulfill her own promise; when Carol fulfills her promise, Alice gets her spreadsheet. A sophisticated distributed computation has been completed so simply that no one realizes an advanced degree in computer science should have been required.

Very cute.

While I presume that Tim’s interest in all of this is so he can make, break, keep, and delegate responsiblity for promises with greatly increased efficency I suspect that it’s really just about money.

Splitting Community Property

Here’s a first draft for how to split up the super power.

Secession II

I suggest we allocate the 7.5 Trillion dollar deficit equitably (sic) using electoral votes (531). So, to take an example, Texas with 64 electoral votes gets 900 billion of the deficit. Of course a number like that is hard to think about so let’s get a bit more intimate.

There were 7.4 million households in Texas as of the 2000 census; to that’s $122 thousand dollars each. Median household income was about $40 thousand.

North Carolina? (15EV, 3.1MM households, median household income $40K) -> $68K/household.

Massachusetts? (12EV, 2.4MM households, median houshold income $50.5K) -> $70K/household.

Splitting community property in a divorce is always a messy proposition. Sooner rather than later would help. It’s not hard to find people who see the annual budget deficit quickly rising to 600 Billion a year. Very very roughly that’s like another $10K/year for those folks in Texas.

Mind in the Gutter

I once referred to it as the margin. Then for a while I called it the sidebar. Today? I call it the gutter. (reader: “What you talking about Ben?”) That area on the edges of webpages where folks pile up navigation, advertising, and other what nots.

My favorite bit of gutter trash has been my little link blog, based off of one of my categories in delicious.

Notice! New gutter trash.

The coolest new bit of trash is a tiny map of the world with dots all over it showing an estimate of where my readers dropped in from. It’s a way down toward the bottom. Too cool!

I just added some advertising for ApacheCon. ApacheCon is a delightful conference for real engineers who actually build stuff (example). None of that enterprise sales cruft; just real people who like to hack up solutions to problems. Good bunch of people! A great place to learn what new tools people are actually using versus who’s buying a lot of advertising.

The group of folks in Apache who organize this event do a great job. They are careful to keep the costs down. Las Vegas is cheap to fly to. The hotel is nice, affordable, and free of those damn machines that keep demanding that you pay attention to them and feed them money.

Register today, you won’t be sorry.

Hording and Exploiting

Tilly’s book “Durible Inequality” argues that the group forming emerges almost entirely because the creation of a group boundry helps to lower the transactions costs of inside the organizational activity.

It is easier on a moment to moment basis to use existing catagory boundaries to quickly solve organizational problems. For example answer the question “What search engine will I use to look up X.” with the reply “Google” than it is to pause and select from Google, AllTheWeb, A9, or Ebay. It is a time saver to join the Google club, to shun the other search engines. Club loyalty.

But wait. Tilly is writing a book about inequality. Casual use of category boundaries has another name – prejudice. He is interested in the cases where this process goes both bad and becomes rigid.

He states that groups capture two powers which may lead to abuse.

  • The ability to engage in Opportunity Hording.
  • The power to Exploit others.

Efficiency isn’t on that list. Efficiency isn’t about the abuses that may occur. The abuse doesn’t arise from one group out performing another.

Hording opportunities is a game all groups can and do play. Even very weak groups. One of his examples is immigrant cleaning ladies. When knowledge of job opportunities arise they tend to pass then along the social networks of their immigrant community. That alone, tends to lead to each city having one ethic group that is renown as having the knack for house cleaning. Polish ladies in Chicago; Brazilians in Boston.

Exploitation is the means of the powerful. The powerful can force it’s will on other (by definition subordinate) groups. Exploitation is not limited to opportunity hoarding. It is the use of force to actively deny the options to other groups. To force their choices.

Consider the classic scenario where 90% of a town’s business deals are made is the all while, all male, golf club. Is that opportunity hoarding or exploitation?

Fowler on Humor

I was pleased to rediscover this table today.

  Motive or Aim Province Method or Means Audience
humor
Discovery Human nature Observation The sympathetic
wit Throwing light Words and ideas Surprise The intelligent
satire Amendment Morals and manners Accentuation The self-satisfied
sarcasm Inflicting pain Faults and foibles Inversion Victim and bystander
invective Discredit Misconduct Direct statement The public
irony Exclusiveness Statement of facts Mystification An inner circle
cynicism Self-justification Morals Exposure of nakedness The respectable
the sardonic Self relief Adversity Pessimism Self

That’s lifted from the entry on humor found in Fowler’s Modern English Usage (1927). Now I need one for the various forms of physical and visual humor.

Homework: Print copies for all. Take to dinner with the day’s comics. Categorize.

Beautiful Evidence

Sparklines, Very Cool we are lucky to have Dr. Tufte. I did something similar once with histories of build failures. Good things happen when you take Tufte’s principle of minimal ink combined with large amounts of data. I really love the way he inlines these charts right into the formated text; encouraging faster left/right brain switch!

Wealth Trends

Scatter Plot of the Fortune 500

Two things got me interested in power-law distributions. The first was back in the early 1980s. I was involved in a big software engineering project and the system we had built was horribly slow. Collected lots of statistics about it’s behavior; calling patterns, data structure topology, paging behavior, etc. etc. These all came out power-law distributed and I became very disconcerted that I didn’t know anything about this distribution.

So some time later when people started pointing with alarm that the distribution of wealth was growing less and less equitable. Again the power-law distribution! Hm. The system designer in me found that fascinating. Could it be that my software systems shared something fundamental with the economic system?

I haven’t written about the distribution of wealth much recently. The Fortune 500 survey of wealthy dudes is out for 2004. We make scatter plot the 400 wealthly dudes. That’s the first chart. (There are gaps in the data shown because my scrapping script isn’t perfect and there is only so much time I’m willing to spend working on it.) That chart doesn’t do justice to the long tail, since it doesn’t show the other 300 million dudes in the country.

Rich dudes 1996 thru 2004
Weath Distribution Stats

We can plot that data on a log-log graph to show that it’s power-law. More fun is to plot all the data for the last few years and look for trends. The second chart does that; along with fitted lines for each of the years. Presuming that sampling the top of the curve is a good estimate for the rest of the wealth distribution you can calculate your rank by plugging you net worth as Y into the 2004 formula and solving for X. How far out on the tail are you?

The third chart show the trend. The number I label wealth is a measure of the size of the economic pie. You can see the pie swell up during the bubble, pop and then try vainly to recover. The number I labeled equality is a measure of the severity of the distribution of wealth.

Unemployement is great!

I really love being unemployed.

Yesterday was great.

I spent the morning with a geek friend. We talked about distributed build systems (like CPAN, or Freebsd’s ports – Where is the survey article on these?), the build recipes, the contracts for the ingredients, the naming of components. “Mix in one library of PNG kind conforming to API spec PNG std Foo minus these routines (which by the way nobody ever implements right) but with this variation (which by the way everybody does because, well it’s useless without that).” We talked about algorithms for finding clusters in graphs; marvelous computational intense algorithms. We talked about diffuse peer to peer networks for distributed assertions injected by anonymous untrusted agents around the perimeter. We talked about how Php makes it so easy to create your first web page and how Python makes it so hard. What fun!

Then it was off to a room at Harvard with expensive chairs, wood paneling, matures trees russled outside the windows to a “conversation” about (take a deep breath): “From Personal to Impersonal Trusted Exchange in Physical and Digital Domains An Evolutionary Perspective.”

There, Kevin McCabe, told three fun stories. Here’s the first one.

Experiment. Subjects are paired up, call them Alice and Bob to participate in a game, but they remain totally anonymous. Alice and Bob get 10$ for showing up for the experiment. Alice is offered an option. She can take portion of her 10$ and stuff it in an envelope to send to Bob. But wait! The amount she puts in the envelope will be tripled before it get’s to Bob. Alice is told one more thing. Bob will have the chance to send a portion of the money he receives back to her.

Later Bob gets an envelope from Alice, maybe with some money it it. He too is presented with an option; the option of what to put in the envelope that goes back to Alice. He keeps the rest.

One way to look at this experiment – what’s it cost the experimenter? The minimum cost to the experimenter is 20$ the maximum is 40$. After the experiment Alice and Bob have split the 20$ to 40$ dollars. Lots of words got thrown about: Alice is optimistic/pessimistic or trusts/distrusts Bob. Bob is rational. Bob reciprocates. Apparently if Bob is a graduate student in economics Alice is much more likely to get an empty envelope back. The rest of us are apparently more optimistic about our fellow man more likely reciprocate acts of trust.

There as a lot of discussion about eBay.

The sprit of the stairwell would like me to post these questions:

  • What is the comparative value of these various kinds of reputation: eBay – 1000 feedbacks 97.8% positive; Apache Software Foundation membership; tenure at Harvard.
  • Is reputation fungible?
  • Who owns reputation; the individual or the institution?
  • Can the institution sell it, i.e. can eBay sell my reputation data?
  • If economists know that trade barriers are bad should we strive to make reputation more fungible
  • Reputation exchange rates? Reputation Euro?

It’s fun being unemployed, but I doubt this is a sustainable business model.