Motives

Lately I’ve been mentally summing up the healthcare argument like this:

“We have much to gain [from ensuring every person has health coverage]”

Versus:

“We have much to lose [from changing the status quo]”

Little Black Boxes

Recently I’ve been exploring my hypersensitivity to being controlled. I used feel guilty about it. When I examine the past, in situations where this has led to a negative outcome, that negative outcome has been the destruction or compromise of a relationship with the other person. The thing they were trying to force me to do was rarely, or poorly done if at all.

I was not able to satisfactorily articulate my considerable distaste for external control, and my preference for comprehension. I’ve been asking “why” my entire life, and have hit a wall many times because of people feeling threatened. It’s a challenge to ask people to reformulate their orders into an expression of needs.

My brain likes pattern matching, and is near-constantly trying to reconcile the multiple inputs it receives. For better or worse, I call it systemic algebra. When it receives new input that doesn’t match the pattern of the increasingly complex model of the world in my head, it adjusts the model.

In this sense, getting older has had an overarching theme of both increased comprehension and decreased comprehension. There are parts of the system which I will not understand, perhaps ever. Those black boxes are unpredictable, and that the only reasonable thing I can predict is that they’ll resolve with whatever needs to happen.

Or more concretely: I trust that people will do the right thing for them, given their worldview.

I think some people would argue with this idea, saying it leaves no room for altruism; that a martyr acts “selflessly” to further the needs of the community. I think motive is inherently selfish—not in a pejorative sense, but that needs are ultimately part of the individual. A person’s actions are a function of attempting to meet the need which is immediately strongest.

Fasting, asceticism, self-inflicted injury, suicide, workaholism or similar behavior are fulfilling an unmet need for control or power. I think prayer is probably the most simple behavior a human can engage in that fills a power need. The idea is seductive—that by talking (in your head) to someone or something that’s listening can have a material effect on the real world. This is incredibly powerful.

This is still a thought in progress.

Drink from Concrete & Glass

25togo Concrete Tumbler

Concrete + glass tumbler from 25togo. On sale at Charles & Marie.

CITY RAIN concrete glass is made of high water-absorption concrete with idea of wet street and glass window, the ingenious combination of two kinds of hard materials – glass and concrete with low contrast gray and simple lines presents a unique taste for the glass.

The process of making concrete product is a work needed a lot of patience and carefulness. It consumes time and energy to take care of products even when the products have already finished. From the beginning of making molds and accurately calculating the percentage of admixture, to the end of keeping the cement wet, the procedure is longer than a week and not to mention that all the processes are made by hand.

Hat tip @k.

City Museum

The St. Louis City Museum is a giant multi-story jungle gym for kids and adults with claustrophobic mazes, chutes and stairs, wire tunnels arching 50 feet off the ground, a ferris wheel and a school bus hanging off the roof of the building.

People are wed there, and people live there.

The space is constructed—perhaps grown—like a epiphyte on an old St. Louis building, entirely from reclaimed pieces of the city. It has an authenticity that transcends its entertainment value—I hope to visit every time I am in this city.

Big Words Indeed

Putting Big Words to work at Julie & Trammel’s:

Exporting a Vox Blog

Sunday project!

Export a Vox blog to MTIF (Movable Type Import Format), along with some CSS to style it.

Requires Python, httplib2, Feed Parser and Beautiful Soup.

Augmented Reality: NYC Subway

CSS Images, Sprites, and iPhone WebKit

A few months ago, I was helping a friend troubleshoot an odd iPhone-related visual error on Hunch. The right side of the buttons weren’t lining up vertically with the top or bottom of the rest of the button. Oddly, the problem only manifested itself when viewing the site at certain zoom levels (non-quantized, to be specific). Pinching in/out or zooming into specific parts of the page made the buttons render correctly.

We’d used a similar technique on Domainr, so were curious to see if there was a way to address it cleanly.

It appeared that WebKit for iPhone uses mipmaps to render minimized background images. This makes sense—it has fast texturemapping hardware, and OS X / Quartz has been using OpenGL to render 2D graphics for some time.

The combination of hardware texture filtering of mipmapped background images with (then) imprecise texture coordinates were causing the artifacts we’d been seeing (recent related changes in WebKit).

Domainr’s buttons are styled using a sliding-door technique with a single CSS sprite background image. By this time we were starting to test against Safari 4.0 and Firefox 3.5, which also demonstrated similar visual errors when using their full-page zoom features.

The solution ended up being simple:

Vertically align the left and right background images for the button in the sprite.

It’s a palliative fix, but works. We were able to keep the single sprite image, and not introduce iPhone-specific CSS or hack WebKit. In the end, there were other benefits to the fix. Despite redundant image data, aligning the background slices eased the process of updating the sprite image for new button variations.

Two Quotes

Two friends of mine, both engineers, in separate occasions in the past week:

@rk: “Software is a hypothesis.”

@nk: “The GPL dictated behavior, whereas the authors of the MIT license merely prescribed it, having faith it would succeed on its inherent benefits.”

OpenID, and making glue

This originally was a response to a message posted by Chris Messina to the OpenID mailing list.

Since the original conversation that spawned OpenID, I’ve observed the rise of real identity versus obscuring it behind a [nonsensical] username @ someservice.com.

The fact is, the OpenID non-pattern has overwhelmingly ignored in favor of standard email + password signup. Hearteningly, the user experience of registration has been largely normalized. There are observable and copyable best practices here, that require neither a spec nor educating the user.

Basically, OpenID—as it is now—is irrelevant.

There were major lessons learned, but they were social rather than technical. The original problem that OpenID was conceived to solve has been supplanted by services like Disqus, Intense Debate and TypePad Connect.

The non-problem that OpenID [2] was intended to solve was putting a user in charge of how (and if) their identity online was centralized.

I say non-problem because it was already solved. Most people overwhelmingly didn’t care, and the people who did—knew how to set up multiple email addresses or use different usernames/passwords.

If email was invented today, it’s not to hard to imagine that we’d grant permission for a service to send us email using a mechanism similar to OAuth. Communicating with someone (or thing) via their preferred channel is just another ACL.

So OpenID won—not because it was the solution, but because it helped us understand the fundamental interaction problems that previous auth systems failed to address.

We didn’t build a better horse, but we did make some good glue.