future memoirs

It was a strange time... Our access to information about ourselves had gotten ahead of our ability to deal with it... We had outgrown our cultural immune system temporarily, and so we were sneezing all the time. Everyone was afraid of pedophiles and terrorists. We had mostly shaken off the simplistic corporate parasites of the 20th century, but we were still stuck in the lifestyle they had created... It was an exciting time to be thinking about the basic questions of how to live.


This is the first thing I saw when I got out of the cab at the Red Lion in Seattle.
what can I say.

another domain name

ofourown.com is also available. Seems like a strong contender.

database design and game design?

It occurred to me today that one of the reasons I'm so indecisive when it comes to database design, is that my brain is used to a totally different set of problems.

In game design, interface, algorithm, and efficiency are first considerations, and data structure generally conforms to the solutions chosen to those problems. When I sit down and try to design a database, I fail, because designing a database answers none of the questions that my brain is asking.

From my perspective, databases only exist because we don't have enough RAM to store everything in memory. They are an artifact of way computers grew up: processing power is expensive, slow, massive storage is cheap. Databases exist to be robust and permanent houses for large volumes of data, their design philosophy presupposes that data in a computer is fragile and volatile (which it is.)

So when I'm thinking about a new app, maybe I don't need to nail down the database first. After all, a database is just a bit bucket. That's not to say database design is trivial or unimportant, it's just to say that it's secondary to application design, which is really what I'm interested in anyway.

So let's get to it then.

steepled roofs

I'm frustrated with modern house construction.

Modern American houses were effectively designed hundreds of years ago by people in other countries with different tools, different requirements, and different constraints.* Land was cheap, material was expensive, labor was cheap, and everything had to be made by hand.

Just by rethinking some of those basic assumptions, we can start to make much better use of the space we have.

Steepled roofs are good for shedding water and snowfall, but in Southern California these things are just not concerns. Why not have a gently sloped, accessible roof with space for a garden, sunbathing, barbecuing, or stargazing? Land in California is amazingly expensive, even in the housing crunch, but when will we start using the space we have?

*Also people were shorter. What is the deal with 8 foot ceilings and 6 foot beds?

zeitgeist - vertical farms and airships

A couple of my favorite ideas keep popping up. Do I love them because they are hip, or are they hip for the same reason that I love them?
Architects' renderings of vertical farms — hybrids of the Hanging Gardens of Babylon and Biosphere 2 with SimCity appeal — seem to be stirring interest.

(Article, via boing boing)

As the cost of fuel soars and the pressure mounts to reduce carbon dioxide emissions, several schemes for a new generation of airship are being considered by governments and private companies. "It’s a romantic project," said Mr. Massaud, 45, sitting amid furniture designs in his Paris studio, "but then look at Jules Verne."


On reflection, this is probably just what I get for reading boing boing. What is the deal with those guys.


Give your love freely;
take ownership;
don't be afraid to let go.

another code editor feature

As I try to avoid carpal tunnel, I'm using the mouse scroll wheel less, and the page up and page down keys more. But pages are not logical separators in code, so I'd rather that the page up and down keys paged to previous function and next function, instead.

Does any code editor do this?

Maybe it would get annoying if your function were more than a page long and you wanted to scroll within them, but really that should* be rare--your functions should almost always fit on a page.

*that's right, "should." As in, "the universe would be a better place if."

domain name


The idea is that each sub-project is a subdomain, so we have castle.ofbyandfor.us and moonrocket.ofbyandfor.us and manhattanbeachnaturetrail.ofbyandfor.us.

I'll start with basic membership, level progression, tasks, and claiming, and start to layer on more tools, including conflict resolution, project rules, voting, etc., as they become necessary.

The idea is not build a complete stand-alone social network, but rather just the tools that don't exist anywhere else, and that external tools like emails, forums and wikis will carry the brunt of the actual interaction and work, until it becomes clear that a tighter integration is required.

agile issue-specific citizen driven lobbying

I just got an email from democrats.com that goes like this:
Let's Escrow Our Money to Keep Obama Progressive

[...]we are asking you to use your money to ensure that Barack Obama lives up to his promise to deliver "change we can believe in. "

How? By creating a progressive "escrow" fund that you control.
This particular email is focusing on the FISA bill, and is trying to get Obama to put his weight on the telecom immunity issue. The idea is that sure, he's probably going to get our support anyway, but by tying a large amount of money up in escrow to a general behavior or a specific policy, diverse groups of citizens can have a big impact.

This is called lobbying, and it's generally associated with big organizations, trade groups, and corporations. Seeing it spread to the grassroots like this is illuminating, and it makes me hopeful that we're at the start of an era when concerned citizens can compete on an equal battlefield with concerned corporations.

Why not create an escrow fund for your issue, and allow any politician who champions your issue to earn those donations? It's all personal donations, under the cap, totally legal. Want to dismantle the DMCA or 100 year copyright? Start a fund, and the congresscritters who make it happen can claim the support of your grassroots group.

We spend a lot of time wishing politicians would ignore the money and follow their hearts and brains, but money will never leave politics, because getting elected is expensive. Maybe we just need to change the way it flows.

By the way, this is exactly the model of the NRA, and they have been enormously successful. The promise of the internet is that this model can be used instantly, on any issue that people care about, not just long-term cultural issues like guns and abortion.

...In the end, money is speech, and rich people have more access than poor people, but by leveraging superior numbers and distributed organization, poor people can have more of a voice now than they did before.

learning about plants

I keep learning things about growing things in the ground. Step One has been learning how much I don't know, which is practically everything. Basically, the crows eat my tomatoes, and the snails eat my sprouts. I can do better. I've started following this blog by an Angelino couple, which is a good way to get the flavor of insight I'm looking for.

Also, today's DrMcNinja is particularly choice: "You need me to tell you how to hack a Draculabot so that you can ride it safely to earth from the moon."

internet famous

Josh Marshall* cites me in a late update:
Late Update: TPM Readers NA and CS both note, very cleverly and aptly, that this is pretty much the plot line from The Producers.

*My journalism hero. Dude was featured in GQ.

thoughts and progress

Here are the ground rules for a system to build social capital by collectively generating and fulfilling tasks. Imagine that these tools exist in a web app, and are supplemented with comments, forums, news feeds, and customizable email notifications.

  • members have an xp count, which is 100 for new members, and 1000 for community founders
  • members have a level
  • members have membership information
  • members have a history of every xp event
  • maybe some stats that relate to the types of tasks claimed
  • members have a public message board that they control
  • members may have additional 'stats' specific to the community

  • tasks have names and descriptions
  • tasks can have deadlines(default is none)
  • tasks with deadlines can be urgent(default is no)
  • tasks have a quantity, and the quantity must be finite (default is 1)
  • tasks can be repeatable by a member, or not (default is yes)
  • tasks can request verifiable proof, or not (default is no)
  • tasks have owners and sponsers
  • tasks remember their histories
  • tasks may have associated stats
  • tasks can have comments

  • owners create tasks and edit them
  • any member with positive xp can create a task. That member becomes the owner of the task
  • sponsors invest xp to sponsor a task - invested xp temporarily lowers a players total
  • sponsors can alter their sponsorship amount at any time (before a claim)

  • tasks can be claimed by any member with non-negative xp
  • when a task is claimed
    • the reward is granted to the claimant
    • the sponsors are refunded 120%
    • claiming your own task fully refunds the debt, but only grants a percentage of the claim amount, this percent starts at 0 and increases to 20 over time. (the vesting time is longer for larger rewards (constant xp rate per time, up to 20%)
  • a task cannot be urgent with no deadline, but can have a deadline without being urgent
  • tasks that have a deadline and are urgent start off cheap and increase over time until claimed
    • the sooner it is claimed, the higher the kickback for the sponsors
  • a claim can have comments
  • a task can be un-claimed within 1 week of claim
    • re-activates it,
    • rescinds the refund to the sponsors (including additional award)
    • rescinds the award to the claimee

owners can deny claims within 1 week of claim
  • rescinds award from claimant
  • debits additional 50% of award as well.
  • rescinds refund from sponsors
  • temporarily destroys 50% of sponsored xp
  • task is re-activated
  • denial can be 'blessed' by members, each blessing restores sponsored xp to the task relative to the level of the member
  • there is a time frame, after which no further blessings may apply
  • (denying a claim is much more destructive than getting the claimant to un-claim it)
members can rebuke other members - committing 1 xp to destroy 1 xp
  • rebuking can drive a player into negative xp, at which point they are effectively suspended from posting or claiming tasks
  • a rebuke can be blessed similar to claim denials
  • there is a time frame, after which no further blessings may apply
members can squash tasks by spending 1 xp to destroy 1 xp
  • a squash can be blessed similar to claim denials
  • there is a time frame, after which no further blessings may apply

members can transfer xp to other members at a cost of 2 xp for every 1 xp granted.
  • xp spent in this way cannot be restored by the community

as members gain xp, they advance in levels
  • level progression requirements grow geometrically (or exponentially?)
stats improve independently as corresponding tasks are claimed
  • stats improve along a similar curve to levels.
the community can place stat requirements on level advancement

members vote with their levels, but have to choose where to commit their votes.

here is an example of a stats system that a community might implement:
  • Strength - physical tasks
  • Dexterity - personal development, training, skills, and certification
  • Constitution - dirty, boring, or unpleasant tasks
  • Intelligence - technical tasks
  • Wisdom - artistic tasks
  • Charisma - communication tasks

there are tools for scheduling many tasks
  • such as one task per day for "make dinner"
there are report pages to see interesting activity
there is maybe a web service to allow web tools to auto-claim certain tasks


The first thesis is that this set of capabilities can foster a community to build something big, for free.

Positive interactions quickly multiply the communal xp pool (claiming a task creates 120% of the invested amount of xp, for a total of 220%), negative interactions deplete it; the second thesis is that the total xp of the community is a good measure of the social capital of the group, and represents real-world value in itself.

...I still need a good name for this system.