A Message From Your Future Leaders
I was saddened to read that Proposition 8 passed in California, invalidating gay marriage in the state.
As a member of the younger folk of America, which is to say, the people who will be running the country in a few years, I'd like to offer a message to those rejoicing in this result:
We are coming; Our arrival in power is inevitable. When we arrive, we will legalize gay marriage, because none of us understand what your problem with gay men and women is. Gay people are our friends and colleagues. We see no reason not to honor their commitment.
It is not a Democrat thing or a liberal thing. It is a generational thing. You have issues, we don't.
Frankly, we don't understand why you don't have better things to worry about.
So please enjoy your narrow win while it lasts. We will not let it stand for long. Do consider finding something better to spend your energy on, for this is a battle you will not win. We are determined, time is on our side, and now you have pissed us off.
Are You Making Progress?
A thought for the day: "The steps and actions I am currently taking are moving me closer to my big life goals."
Agree or disagree?
The Apple Difference
I bought an iPhone 3G tonight, and no I'm not going to review it. You already know everything you want to know.
I did want to highlight one small detail of the purchasing experience. After waiting about an hour in a line, I was personally serviced by an Apple salesperson who handled the entire process.
There is one part of the Apple mobile phone purchase experience that stands out from the norm. Typically, once you have selected your phone, a store drone runs off, fetches the phone, opens it, and sets it up.
In an Apple store, the assistant helpfully opens the saran wrap, then hands you the box, so that you may open the box yourself, remove the plastic cover, and touch your new phone. And when the salesperson offers you the box, he does so in a voice that implies he knows you want to, and is almost as happy to see you doing it as you are to be doing it.
To some, this may seem a silly detail. But the sort of person who would wait for an hour to get a specific phone (in other words, my sort) is the sort of person who absolutely loves unboxing their new devices. We make videos of this process. So Apple made damn sure the customer opens the box, and fiddles with the device before anything else happens.
Of course, the assistant then retrieves the phone, and sets it up until it's ready for a test call. I appreciated the smooth-as-silk process, even amid the amazing ruckus of the 5th Avenue store. And I appreciated buying from a company that pauses a moment to let me enjoy my new purchase.
It would be so easy not to do this. It's inefficient, an unabashed waste of time. More people would get through faster if the drones worked as fast as they could. It would be faster, but it wouldn't be as fun, and it wouldn't be Apple.
With this small action, Apple lets me know they understand that in my mind, the phone is mine. Phone companies view phones as a tool to access their networks. Apple treats a phone as a treasured object, and respects, nay cultivates that feeling. Laugh if you must, but it's such a treat, in this world of cutting corners, to patronize a company that acts like it respects me.
An old Apple junky like me is used to it, but you can bet new customers will be left with a very strong impression.
That's money in the bank, and that's why I love Apple products.
On Google Chrome
I don't want to throw too much more wood onto what has been an exhaustive internet bonfire of excitement about Google's new browser, Chrome. What I will say is that, for javascript developers like me, Chrome is a big, big deal.
Features and interface questions aside, what Google has produced is a browser that works the right way. Tabs are separate processes and can neither access nor crash each other. Security is ironclad. And the javascript compiles to machine code. (!!)
This sort of bullet-proof environment is the sort we expect for our "regular" apps, and now it is available to our web apps. Google needed this change, because they make some of the world's most advanced web apps. Their users need Google Docs not to crash, so Google needs that, too.
The beautiful thing is, there are no secrets here. The code is open source. Anyone can take these ideas and apply them. If they do, it's no sweat for Google. It just means more users will get a proper environment for running Google web apps.
Contrary to conspiracy theorists, Google does not need a world of Chrome users. What Google needs is a world of Chrome-like browsers. Who makes the browser is largely immaterial. If lots of people use Chrome, hey great, but I think the game is already won for Google, because they've just pushed the entire game toward their way of seeing the world.
Even if Chrome isn't your flavor of whiskey, it's still going to make your life better. You can bet your ass Apple, Mozilla, and Microsoft are paying very close attention to what has just happened, and you can bet your ass they will respond in kind. Apps will start running better in all browsers, which means we all win.
So yeah, this is a very big deal, and all I can say is: Thanks, Google. And: Hurry up and make a Mac version already. Yeesh.
Happiness Terrains
Anyone with even a passing interest in computer video games from a few years back likely remembers the smash hit "The Sims". Players were offered the chance to build miniature houses, and then micromanage the lives of the inhabitants. The object of the game was to keep ones sims happy; failure to do so could result in sickness and even death. Keeping sims happy involved maintaining a clean home, buying nice things, and socializing with other sims in the neighborhood.
While you could exercise considerable control over your sims' behavior, it would be tedious to go full manual, particularly with several in your house. So the game provided means for the characters to take initiative. How did the underlying code handle the task?
Your first guess might be to program complex decision processes into the characters themselves, but this becomes rather difficult to implement. Instead, the developers attached happiness values to the various objects and rooms in the house.
Thus a nice lamp or sofa had a high happiness value, while the dreaded clown painting had a very low value. These values morphed an invisible terrain, much like planets and stars warp space and time. Characters approach a very happy object, and fall into it's warped field of happiness.
Pac-Man used a similar scheme, one of "Pac-Man here-ness" that ghosts used to figure out where Pac-Man was so as to eat him.
All of this makes for fun computer programming trivia, or so it would have, were I not in the process of reading Jane Jacobs' remarkable The Death and Life of Great American Cities. In it, Jacobs details what causes city neighborhoods to thrive or fail. Almost without exception, the causes are minute design details. Cities, it seems, have a happiness terrain.
For instance, the quality of a city neighborhood can depend heavily on such seemingly quotidian issues as the width of sidewalks, the number of restaurants, the length of blocks, and the density of buildings. Put a park in the wrong place, and you can turn a neighborhood into a slum.
The key to the whole system is casual interaction, that is, the ability to be around people you don't know, or kind of know, so as to watch. From such materials, public security, child safety, and enjoyable life can be wrought, without much direct interference by authority figures. Anything that encourages the casual mixture of people thus encourages city stability.
With all this in mind, I find myself wondering how often we ascribe responsibility to individuals, when at least some of the blame can be placed on the environment. It's dangerous to absolve a person's bad behavior for environmental concerns, but so often we look at a situation, blame someone, and move on, which fixes nothing. If it's possible to prevent trouble simply by tweaking an environment, then yeesh, why the heck not?
Returning to software and its creation, I find myself pondering my current work environment, and the effect that details of my office have on our work flows.
Why wouldn't shared offices vs. private offices vs. cubicles be an important decision? Why wouldn't light levels matter a lot? And not just on a minor level, but on system-shaping levels, levels that affect the whole company? Is the bathroom in a corner or in the middle? Where do people go to meet? We spend endless hours wondering about our machines and people, but often less time looking at how objects shape the system.
If we do think about objects, it is matters such as whether the chairs are comfortable. Rare, in my experience, is the deep soul searching inquiry: Does this arrangement make us productive?
With Jacobs on my mind, I'm increasingly wondering if neglecting those kinds of questions is not only a lost opportunity, but perhaps a terrible, terrible mistake.