A God for Every Aspect
“Out of the vast mass of undifferentiated powers certain functional deities appear; and the Kami of Japan to-day who preside offer the gilds and crafts of industry and agriculture, over the trees and grasses of the field, the operations of the household, and even the kitchen-range, the saucepan, the rice-pot, the well, the garden, the scarecrow and the privy, have their counterparts in the lists of ancient Rome, the indigitamenta over whose contents Tertullian and Augustine made merry. The child was reared under the superintendence of Educa and Palina. Abeona and Adeona taught him to go out and in. Cuba guarded him when he was old enough to exchange a cradle for a bed. Ossipaga strengthened his bones; Levana helped him to get up, and Statina to stand. There were powers protecting the threshold, the door and the hinge: and the duties of the house, the farm, the mill, had each it’s appointed guardian” — Page 69, Volume XXIII, Eleventh Edition of The Encyclopaedia Britannica: A Dictionary of Arts, Sciences, Literature, and General Information
In Computer Science Abeona and Adeona go by the names Ping and Pong.
Adeona
This is fun. You install Adeona on a device; it then gleans information about the location of the device as best it can; and it streams that information into a distributed store. Later you or somebody you trust pulls those records from the store. Their example use case is recovery of a stolen laptop.
The paper is a fun read; since the system has a cascade of little tricks in it.
For example the reports streamed are encrypted so to frustrate observers.
They are asymmetrically encrypted so only if your have the appropriate secrets can you read the transcript, and in fact the it can’t even read them after it’s written them.
The event transcript accumulates continuously on the laptop. It is sent to the store when ever it can make contact. For example it can accumulate wifi hubs, bluetooth devices, images, and sounds the laptop observes even when it’s offline.
I particularly liked how they salt the encryption, changing over time, with from a random number generator. By assuring that can’t run the generator backward they assure that even if a bad actor gets control of the laptop you can’t decode the transcript. To replay the transcript you need to initial seed for the random number generator.
Using a distributed store eliminates the need for a central server. People distrust central servers. Instead, you need to trust the distributed store.
They use one of the existing distributed hash tables (OpenDHT) for their store. I’m not clear on why they used that instead of one of the really big ones, which are much less likely to disappear.
This approach has obvious uses in lots of applications. Event streams are everywhere. For example you could encrypt your server logs this way.
You can let multiple parties replay the transcripts; for example your mom, your friends, you co-conspirators.
You could build a fully distributed p2p twitter or atom feed like system along these lines; with each participant collaborating in the distributed store, and the secrets needed to read the transcript passed only to your followers. That wouldn’t eliminate the hotspot issues in such systems but I think we know how to do that from other work.
It was trivial to install on one of my macs; though it took me a while to puzzle out how to retrieve the logs (the key detail was /usr/local/adeona/adeona-retrieve.exe -h, i.e. no GUI and a somewhat odd install location).
I printed out the various keys needed to retrieve the logs and filed them away.
Kleptocracy
Having recovered the lamp the genie offers you a wish. Having rescued his daughter the king grants you a wish. Having suffered the tortures of the damn’d you can slip anything you want into the final draft of the industrial standard. What do you ask for? During his short time at Harvard I gather that Bill Gates mused that it would be nice to own the traffic lights. I call that owning a standard. We oft see patent trolls pop up after a standard builds it’s installed base claiming to own the right to tax the traffic. Gates built his monopoly the old fashion way. That is somewhat more ethical.
Patents are only one way that the king can grant his minion’s wishes. The crude example: no-bid contracts are good, and why bother to audit them? Clever wishing runs along the lines of Bill Gate’s thinking. Own a piece of the transaction flow. Find a place with a high traffic standard and get the option to take a piece of the action. And so I’m very impressed by what Eaton industries managed to pull off in the UK. They got proprietary ownership of a new light bulb socket, it’s written right into the building code. The socket’s aren’t that expensive, but the bulbs that go into them! Twenty dollars a bulb in excess profits! And you have to admire the crust of greenwash (the intent of the standard was to increase the use of high efficency bulbs).
Institutional failures like this should be fixed. There should be ways to taking the wish back. While we wait for that, daring individuals can hack their sockets.
Mushrooms
It’s been great weather for mushrooms lately. Dry the last few days, but yet we found all these on a short walk in our little wooded neighborhood park.
Thanks to my honey for here mosaic mojo!
Markup
There is a lesson here:
Abstract. Individuals who are unaware of the price do not derive more enjoyment from more expensive wine. In a sample of more than 6,000 blind tastings, we find that the correlation between price and overall rating is small and negative, suggesting that individuals on average enjoy more expensive wines slightly less. For individuals with wine training, however, we find indications of a positive relationship between price and enjoyment. Our results are robust to the inclusion of individual fixed effects, and are not driven by outliers: when omitting the top and bottom deciles of the price distribution, our qualitative results are strengthened, and the statistical significance is improved further. Our results indicate that both the prices of wines and wine recommendations by experts may be poor guides for non-expert wine consumers.recommendations by experts may be poor guides for non-expert wine consumers.
From: Do More Expensive Wines Taste Better? : Evidence from a Large Sample of Blind Tastings
You should pay me to buy your wine, scrap off the prices and replace them with tasty robust high price labels.
What you say?
I believe it was Ray Kurzweil, circa 1989, who advised encouraging a private jargon inside your new company. I remember because that was just about the time I was starting to think open would totally trump closed in our industry. The advise seemed to my ears a bit old fashion. But at the same time I suspected he meant that it was a good way to tighten the bonds inside the team. By then I knew enough about cults to recognise that’s common inside cults; it supports two of the keys to running a good cult – information control, and thought stopping processes.
But don’t take any of that too seriously. It is good advise none the less. I’ll admit to being a Whorfarian, the words you highlight effect your thinking.
These days I’d add to all that though. Language is the ultimate exchange standard. So when you decide to innovate a new private language your cutting your self off and creating friction or trade barriers with your outside partners. Importantly the advantage a new group has is that they can pick and choose what to emphasis. They can take a run at leveraging some particular competitive advantage. As Dave Winer says: You can’t win by zigging when he zigs. You have to zag to beat him. Ray’s advise can be viewed as a bit of implementation advise for that.
So it was with some interest that I saw Google revealing their in house standard for serailizing data. It’s not hard to see that Protocol Buffers are alternative to XML. And it is amusing to, at least to me, to think that they did this in the hope of reducing the frictions that occur when they must translate from their in house argot into the dialects used by the outside world. It’s fun to note that if your start up is as successful as Google you get to promulgate your private jargon. It is one of the spoils of war. You can push that friction into your compliments, make them pay the switching costs.
Protocol buffers aren’t anything special: messages are lists of key value pairs, keys can repeat, a small set of value types; including unicode strings and recursively other messages. They are very practical, close to the metal. Choices were made and they are what they are. They are quite dense, and easy to parse. Many messages can be serialized in one pass. In classic run length encoding style nested structures have their size mentioned in their header. That makes emitting one pass serialization hard.
Given an array of bytes it wouldn’t be child play to guess that your holding a protocol buffer, you could do it huristically but it would still be a guess. You need a protocol buffer’s declaration to parse it. For example you absent the declaration you can’t know if a you’ve got a sint32 or an int64, etc. All that disappointed me. It disapointed my inner archivist and the inner peeping tom (who has often debugged tough problems by watching the bytes fly by on the wire).
There is a nice detail that allows optional keys which in turn makes it somewhat easier to add new message variants. With luck the old message handlers can just ignore the additions. It made me smile to note that mechanism can be used to pad messages; which in turn makes it more likely that you can serialize in a single pass.
There is another nice detail that allows a key to appear more than once in spite of the metadata saying it is single valued. The last occurance wins. This lets you implement a kind of inheritance/defaulting. For example if your implementing CSS style sheets you read the default style message, and then read the variations from the default, and your ready to go. They call that merging.
Given the declarative information for a given protocol buffer it’s not hard to convert it to XML or what every else you like. The observers and archivists will just have to be careful to not loose that metadata; and some of them will no doubt build clever hueristic to cobble together substitute metadata. Interestingly, inspite of efforts to the contrary, you can’t really work with XML without additional metadata to help. And, that stuff is horribly complex.
As I like to emphasis what really matters with an exchange standard is how many transactions per second move over it. No doubt this one has critical mass at least inside the Google cloud. What matters here for how important this standard might be is how much adoption by non-Google actors. But, I suspect we will be speaking this dialect more often and for quite a while. Of course, the rudest way to say that is that we will be chasing their tail lights. But I don’t really feel that way since I’ve never particularly liked XML and I welcome a substitute.
Overdue Homework
We have known about these charts for a while now; i.e. there is a sharp difference between how the economy changes under Democratic v.s. Republican presidents. The economists have apparently made no real progress on explaining why.
Note how the cartoon Republican, i.e. the cigar smoking plutocrat, apparently votes against his interests.
The No Carrot, No Stick Zone
This talk by Clay Shirky is a basicly the first bit of his book performed live.
He cut from the book the suggestion that the phase transition we are going thru is going to lead to chaos.
I don’t recall hearing before the delightful idea that Institution rely of carrots and sticks, but that if you want to tap into the the long tail of one off contributors you can’t do that, making the long tail a no carrots, no stick zone. That is very line nice. While it’s probably not true, since systems that work by filtering value out of that thin soup of long tail contributors can to a lot to manage their incentive structures, it is a very good rough approximation of the right mindset.
Trash Picking Coupons
In service of one of my jobs I once attempted to draw a diagram showing how transactions unfold. It started out simple: the customer gives cash to the vendor and he hands over the goods. My goal was to illustrate how transactions acreet additional events. For example bills, rebates, warrenties, service contracts, coupons, trial periods, six month discounts, and recycling. Pretty soon I’d managed to clutter up an vast whiteboard and everybody cept me had lost interest. It’s was an essoteric interest probably shared only with the most fastidious of accountants, though the intent was to search for business oportunities.
I still find all this stuff far too interesting. Particularly the ways that vendors structure all these aspects of the transaction cycle to their benefit. For example this week Target is has some cell phone prepaid refill minutes on sale: two $25 cards for 42$. Which sounds like a deal. But it’s not since it’s really two 150 minute cards for 42$ and the $50 card gives your 460 minutes.
So given this essoteric interest I laughed outloud when I saw this business. RecycleBank‘s business model requires them to sell four players: the trash company, the town, the citizens, and finally advertisers. They use technology to measure how much each household is recycling. They do that with bar codes on the recycle bins and scanners on the trucks. Citizens, who sign up, are then “rewarded” with coupons from advertisers in proportion to how much they recycle.
I love how this glues a sales & marketing function onto the very tail end of the transaction cycle. I love how they glean (sic) exactly which customers are high volume consumers with a high preference for thrift – e.g. the perfect target for coupons. And I just roll my eyes at the gloss of green combined with the personal data collection. And finally, as I learned from the stamp script, coupons are all about increasing transaction velocity – and isn’t it wonderful how this injects the coupon at exactly the moment when there is space opening up inside the house?
Which makes me wonder, why I’ve never seen coupons on toilet paper?


