Thursday, January 31, 2008

memo to the president elect

Just finished Madeleine Albright's new book, "Memo to the President Elect," which I purchased after hearing her speak to the Commonwealth Club a couple of weeks ago. I've had the pleasure of meeting Secretary Albright twice at Aspen Institute events, and have been impressed. She isn't always on -- I once heard her give a speech where she did a bad job synopsizing "Madame Secretary" -- but when she's on her game she 's both a fabulously gifted speaker and insightful thinker. So, I found "Memo" to an interesting and troubling read.

Per the title, "Memo" runs with the idea of leaving a memo for the President elect that attempts to explain two broad topics: how the White House foreign policy apparatus operates and what foreign policy challenges await the next President. The chapters describing how power and responsibilities are balanced -- and fought over -- between the Secretary of State, Secretary of Defense, and National Security Adviser are a fascinating blend of history and Secretary Albright's personal experiences. It also provides a perfect opportunity to show off her sense of humor:

Al Haig, Reagan's first Secretary of State, drafted a twenty-one-page memo designating himself "vicar" of U.S. foreign policy. The memo, which was promptly leaked by the White House, soon disappeared -- as did Haig.
In her speech to the Commonwealth Club, Albright reiterated her support for Hilary Clinton's candidacy. What I found interesting was that she wrapped part of her support in the argument that the next President will face so many critical challenges -- more on those in a moment -- that a President who can hit the ground running -- who knows where the levers and dials are to run the White House and West Wing -- will be an asset to recovering the United States' position in the world. After reading her book, I can see her point -- even if I don't believe that positive is enough to overcome some negative policy choices of Senator Clinton's. The history of the Byzantine and bizarre interactions of various Presidents' most senior advisers makes for sobering reading.

It is especially sobering given the very real threats of the next few decades. Albright lists the following:
  1. Terrorism
  2. Nuclear proliferation
  3. Doubts about the value of diplomacy
  4. Fear of globilzation
  5. Climate change
She gives primacy to the first four threats, with climate change and energy a fairly distant fifth. Each threat receives at least a chapter's worth of attention, followed by sections that pull together multiple threads that blend issues -- Lebanon and Palestine, for example. These sections are well written and provide concrete suggestions for making progress:
The moment has come to remind ourselves who "we" are and what Europeans and Americans can accomplish together. The quartet of Euro-Atlantic leaders -- Merkel, Brown, Sarkozy, and you -- can create a new foundation for global progress through the restoration of mutual trust and implementation of cooperative projects. For inspiration, I encourage you to cite the Berlin airlift -- because I fear that tale has been forgotten and because it, too, will have a sixtieth anniversary during your first year.
Unfortunately, what worries me about Albright's book is how little attention it pays to technology, particularly to communications technology. The last decade has provided numerous examples of how to effectively leverage the Net and virtual worlds in:
  • Education, training, and learning
  • Cultural sharing and immersion
  • Creation of markets and opportunities
  • Roll playing of useful real-world skills
  • Community formation and awareness
  • Peer production and crowd sourcing
Each of these could be brought to bear on Albright's list. Doing so could provide some of the most cost effective and rapid opportunities to foster collaboration and understanding between diverse communities available. Moreover, as more of the world economy shifts into mass customization, hyperlocal, and information, connecting distant cultures becomes a business opportunity, worth investing in and supporting.

More importantly, nations -- leaders of nations -- must practice in order to build expertise wielding national power through modern tools because extremists of all types have demonstrated that they will. For the United States, with our image more tarnished than at any point in history, technology must be part of the strategy for responding to extremism, strengthening our alliances, and rebuilding our connections to the rest of the world.

Wednesday, January 30, 2008

demo 2002

The Demo conference is going on right now and the blogosphere is abuzz. Certainly, Demo doesn't have the same glow that it did during the dotcom bubble, but I'm hearing more about it this year than I have for a while. This got me thinking about Demo 2002, when LindenWorld was first showed to the public.

I don't recall why we picked Demo 2002 as the venue for our launch but we started pushing in January -- Demo that year was in February. A lot of the pieces of what would be Second Life were in place. Primitar had finally been replaced with human avatars. Those humans even had some rudimentary customizations, mainly around t-shirts. Using LSL1 we had built a small city with operating doors, an elevator, a slide, and music mix table. As the planning came together, we spent a lot of time debating exactly how to use our 6 minutes. If you aren't familiar with Demo,you have 6 minutes on stage, with a big timer. They give you the hook when it gets to 6:00.

Someone had uploaded scans of US coins and we realized that a very cool effect was to alt-zoom onto a coin on the ground then back the camera up into the sky, past the clouds and the space station, before zooming in rapidly. We decided to have the coin on the floor of a copy of the hotel Demo was being held at, so we all scoured the Web looking for source images. Soon, a rough approximation of the grand ballroom appeared, with lighting keyed to switches and huge sliding back doors to fly out.

Meanwhile, Philip was writing out his speech. It was -- and as far as I know still is -- the only speech he ever wrote out and practiced. It evoked Legos and Tinker Toys before switching to a rolling description that I would fly to. Philip would say "So, let's turn on the lights, open the doors, and fly out into the world!" and I would click on the scripted objects before flying out the back of the room, over the hills and onto a platform where I road an elevator down to the town's main street -- with Philip joking about the "elevator pitch" -- before a quick walk through some LindenWorld tutorials, a trip to a dance club, and then fireworks. We practiced this demo dozens -- hundreds -- of times, until we had it down.

But, there were problems. We had no idea what kind of net connection was waiting for us in Phoenix, so we packed extra computers to run a local grid. Worse, no laptops in early 2002 could run LindenWorld at all well, so we shipped high end Dells and carried out top-of-the-line nVidia cards. James Cook became the master organizer, taking over several desks in the office to collect everything we needed. He tested and packed spares of everything. Mice, graphics cards, network cables, switches, power cords. He figured out how to spread items between different boxes so if shipments were lost we'd never be SOL. We didn't trust Dell to deliver working computers, so James and I would went to Phoenix early to test the network, pick up the machines, and solve any problems.

We got to the hotel and after wandering into a lot of random rooms, stumbled into Chris Shipley and the Demo team. We found our computers and their networking gang. They were just getting the network up and initial results looked bad -- incredibly high ping times. However, the route settled out during the day and soon we were happily running LindenWorld from the show floor. Sweet! We went to the airport to meet Philip and Hunter Walk before having dinner with Mitch. We were able to do a run through in the demonstration area and it went smoothly. Everything seemed to be going well.

We were the first demo of the conference, so I was up early the next morning and wandered over to the ballroom. Small problem -- no network! I woke James up and he and I started thinking through how to run a local grid when the Demo network team found their problem and got their network up and running again. Everybody started getting tense as time ticked down to the start of the conference.

I went into the bathroom and all you could hear were nervous geeks vomiting into toilets. You could smell the fear and tension. Remember, this was February, 2002. We were deep in the crash, 9/11 had seemingly just happened, nobody was getting funding for anything. A Demo performance could be make-or-break for dozens of companies.

Philip and I went backstage and waited. Chris gave her opening speech and then it was us. There were three steps up onto the stage and Philip clipped his toe and nearly wiped out. But, he recovered and launched into his talk. The demo computer was working fine -- did I mention that we crashed the demo about 1 in 10 run throughts? -- and I zoomed the camera in -- "Philip joking about the 30,000' view" -- trying to sync with Philip. I flew out, avoided biffing the landing at the elevator, and watched the time. We were dead on. Linden employees in San Francisco were logged in, too, so we walked past them at the demo area, and headed for the dance club. I tossed grenades and shattered a box textures with a horrible Power Point slide -- no Power Point at Demo! -- which was especially cool as this was when we briefly had real-time vertex shadows on the terrain, so the tumbling pieces cast shadows. The I hit the Windows key and dumping out of full screen mode.

Yes, after practicing a billion times, I hit the fucking Windows key. I had a moment of panic before maximizing the app and continuing. Unfortunately, the transition from full screen to windowed caused my avatar to stop rendering, so I flipped into first person, hit the dance club, spun some tunes, before going outside, rezzing some fireworks, and launching them as the clock hit 6:00.

We had done it! To thunderous applause, we left the stage and high-fived. Philip was laughing about almost tripping and hadn't noticed my Windows key snafu. James came back stage and said we had rocked and that the stage dress had hidden the almost trip. We watched the rest of the demos before heading for the show floor to do demos and talk to people for two days, laying groundwork for our private Alpha and some of the mainstream interest that would follow.

In hindsight, we spent a lot of time kicking ourselves for not just showing a movie. Sure, Demo is all about the ballsy, high wire, live demo, but the reality is some people play it safe. We were watching one of the broadband wireless demos -- supposedly live -- when James noticed the he and I were in the background of a "live" shot outside. Either we had mastered the art of bilocation or those guys were faking it. Different strokes for different folks.

For Linden Lab, it was a huge turning point. We had met an external deadline, had proved that people not at 333 Linden Street would find the idea interested, and had the pieces in place to open for Alpha. All-in-all, Demo 2002 was a pretty important moment in Linden history.

And, from then on, whenever I have used a Windows PC, I've ripped the Windows key off the keyboard.

handling crushing email loads

One unanticipated benefit of leaving Linden has been the elimination of nearly all of my email load. As the primary connector at Linden -- plus the most broadly aware of where the various technical pieces were at any given moment -- I tended to have around 200 emails a day that got past my various filters, of which 50 to 100 required at least some kind of answer. So, how to manage that kind of flow without spending all my time reading email?

Through lots of experiments and conversations with Ian Wilkes, Mark Ferlatte, Mark Lentczner, and others, I came to a solution that worked for me. It might not work for you. However, many people I've told about it ended up copying it, so I thought I'd share.

Mail configuration:

  1. All mailing lists and generated email filtered into folders
  2. All mail that escapes these filters copied into an archive folder, but original left unread in Inbox
  3. Ensure default client display shows sender and full subject line
How I read email:
  1. Block select all new mail
  2. De-select email where subject line/sender are insufficient to know that email need not be read
  3. Delete all email still selected, noting that it is still in the archive folder and can be read or searched later
  4. Read remaining new mail, responding to any emails that are either routing requests ("Who is the best dev to ask about bug foo?") or quick responses ("Can we meet to talk about how manage person bar?"), deleting email after response, again noting it is still in the archive
  5. Leave email that requires more time unread, respond when possible
For me, the big time savings were not having to copy email to the bulk folder by hand, since even keyboard shortcuts for copying email tended to be more work than just deleting it, as well as the bulk select method of initial triage. Now that I'm using Gmail all the time, this system works quite well, although my email load is still small enough that I've gotten lazy about not keeping my Inbox empty. This also works well with the manually configured IMAP Gmail on iPhone, since I can delete off the iPhone without actually deleting. Note that this is not the behavior you get if you use the Gmail automated setup on iPhone, you need to follow the manual IMAP directions.

apoc week 3

This was an exciting week at USC for two reasons. I held my first faculty seminar and our class had two great guests. The faculty seminar was Annenberg Dean Ernest Wilson's idea. Since I was going to be down at Annenberg anyway, why not pull together a group of faculty and grad students to dig into where virtual worlds are, identity areas that need further research, explore how the lessons from Second Life could be applied to Annenberg, and generally bounce ideas between a pack of smart, opinionated people. I gave the first talk yesterday and I've posted my slides here on Slide Share.

It was a successful kick-off meeting and it clarified logical topics for the next several sessions, with full days needed on:
  • Usage and behavior in virtual worlds/mmos
  • Legal and regulatory issues for virtual worlds
  • Education
  • National security and public diplomacy
  • Connections between virtual worlds, games, and social networks
Giving the talk was also a turning point for me, as it was the first speech I've given not as a Linden Lab employee. Fortunately, other than the occasional pronoun confusion -- must remember to substitute "Linden" and "them" for "we" -- it went well.

For the class, we were joined by Sue Cross and Sarah Nordgren from the Associated Press. Sue is their VP Online and is responsible for all the online services for the AP, including the many news sites that publish AP stories. It was a lively and candid discussion that focused on the impact of citizen journalism, the general painful trends impacted the newspaper business, and in particular how those trends have impacted the AP. I think the AP is in a very interesting position. While newspapers have been diving for the hyperlocal markets in an attempt to be more relevant than broader online sources -- more on that in a moment -- AP attempts to provide a worldwide news bureau that is able to source stories for any paper in the world. Imagine trying to write stories about Iraq that both the Washington Post and Washington Times would publish? And they do this with a relatively small staff. They've also seen an increasing demand for their international coverage as even major papers have continued to cut their newsrooms.

The hyperlocal focus of papers is going to be tough as the web really gears up in this area. Yelp is already well established with leveraging its brand as well. In addition, one of the students pointed out Everyblock, which is neat. How cool was it to see the health inspection report of my favorite restaurant in San Francisco? However, while attempting to find the listing again, now I can't find it. So negative points for missing obvious search options.

The students also spent time examining three small sites/communities, Kingdom of Loathing, xkcd, and magnatune. All three demonstrate that you don't need to start big to create a thriving and interesting place on the web, although there were nits. This week, students will be looking into virtual worlds and games. Any bets on which worlds and games get the most time? Which ones install correctly for the most students? Generate the most comments in their reflection papers?

how to compress keynote presentations

When I give talks, I tend to use tons of pictures and screenshots combined with very little text. It works well with my style but has the downside of generating humongous Mac Keynote and pdf files. Sharing 100MB files is a pain.

Fortunately, thanks to the Unofficial Apple Weblog, I now have a simple solution.

  1. Export the Keynote presentation as a pdf.
  2. Open in Mac's Preview application.
  3. Choose "Save As..." and select "Reduce File Size" from the Quartz filter.
  4. There is no step 4!
There is a noticeable drop in image quality -- and shame on Apple for not allowing the user to control the amount of compression -- but it dropped my project from 70MB to 3MB, so I'm happy!

Tuesday, January 29, 2008

the dnc should stop huffing glue

The Democratic National Committee seems determined to make the 2008 Presidential election as close as possible. That is rather sporting of them and the Republican candidates must be pleased. US voters had already sent an amazingly clear message to Washington about their preferences in the 2006 mid-term elections. The Democratic Congressional leadership ignored that message, but despite that, a strong set of Democratic candidates seem well positioned to win the Presidency this fall. To do that -- if the past few elections are any indication -- two critical states will be Michigan and Florida. Two states where Democratic candidates will use the primaries to get their messages out to independent and moderate voters.

Wait a minute.

The DNC stripped both Florida and Michigan of their electoral delegates because they moved their primaries up. As a result, the Democratic candidates chose not to campaign in Michigan and Florida. For the last several months, independent and moderate Republican voters received a barrage of advertising from the Republican candidates without the normal simultaneous info spam form the Democrats. Staff on the ground will not have been actively running a campaign, building the expertise and toughness needed for the general election.

I wonder what impact on opinions that will have. Whether appeasing Iowa and New Hampshire will have been worth it.


I was getting ready to do a post about Qtrax, a new p2p music service. They seemed about half smart, using peer-to-peer to reduce their bandwidth requirements, but still stupidly DRMing the content. In theory, they do this to allow download tracking, but it's still stupid. You don't need DRM to track downloads, since you can just as easily generated a hash from non-DRMed content, and by DRMing they lost the iPod market -- in a similar way to how Netflix is currently not supporting Mac with their streaming service. So, half smart.

Except, it turns out Qtrax may still be all the way stupid. They claimed to have all the major labels on board, but today the majors denied having deals with Qtrax. Oops.

Saturday, January 26, 2008

how have i not seen indexed?

Viral propagation is a funny thing. If you've been infected, odds are you got it from a friend, so most of the people you know also know about the meme/blog/trend you just learned about. If you haven't been infected, there's every possibility none of your friends have either. This is why I'm not surprised when I meet people who haven't heard of Second Life. Sure 12 million people have signed up and it has had a ton of media attention, but ultimately most of its spread is viral. With over 1.25 billion web users, the vast majority still haven't heard of it.

But, I'm still a little surprised that I hadn't seen "Indexed" before this. It hits the same geek insight chord that xkcd does -- although I've not read enough of indexed to know whether a 2001 meets Portal mashup is likely. If you know me or are reading this blog, you'll be happy I've infected you.

Thursday, January 24, 2008

rock stars and business models, the excellent online music site recently acquired by CBS, made just announced that they were going to allow full track streaming from their web page. This is very cool, as has one of the best search and recommendation engines around. I met their cofounder and CEO Felix Miller in Japan a year ago -- we were on Joi Ito's BlogTV together -- and thought he was a very thoughtful individual. Now that they have CBS' backing, it is exciting to see them expanding how they bring music to their members. 3.5 million tracks are now available for listening and you can hear them three times before you are prompted to buy them from iTunes or Amazon. I think this is a fantastic move, since -- much like my discussion on movies -- the content is already out on the web, only now you can offer listeners an easy way to pay for the music they like. Now, they're still paying for bandwidth -- although music is two orders of magnitude less data than video -- and I suspect the Rhapsody model of a flat subscription eliminates the hassles around per track purchases, but it is still a very good step toward doing what consumers want: make it easy for us to get -- and pay for -- content! Not all tracks by an artist are available, but enough are to give you a good flavor of a particular act. For example, my friend Salman Ahmad has a lot of his music available to stream or download.

However, what made my morning was the discovery that I could listen to Ryan Downe's music. Ryan runs the program management team at Linden Lab and I was lucky to work with him for over five years. However, I had foolishly never listened to his music until this morning when I was surfing Holy crap is it good! So, if you are fan of 80's prog rock, you should take advantage of and give it a listen now!

Wednesday, January 23, 2008

apoc week 2

Last night was the second meeting of our APOC class at USC. We're still tinkering with the format of the class, but a major component is a review of news from the previous week. Appropriately enough, last week we had raised Scrabulous as an online community and business to watch - both because of the clear legal risks and the superb design and execution.
Lo and behold, a week later, Scrabulous is all over the news and we're all on the edge of our seats to see how it plays out.

Part of the homework for week one was to explore various wikis and blogs in order to select the best options for their own blogs and the class wiki. On the wiki side, the usual suspects were explored but two -- wetpaint and pbwiki -- were nearly uniformly selected. Why?

Video tutorials. "When I use it, I don't feel stupid."

How obvious is that? Well, probably not obvious enough to tech geeks, but obvious to everyone else. How much more conversion would difficult products -- like virtual worlds -- get if their front pages had a friendly human showing them how to use them?

Much of the class' work is also moving its way online. Check them out. You'll learn about wikis, a review of the Aspen Institute's report on "Next Generation Media," an overview of tech blogs, and an argument for why Scrabulous should be saved.

I can't wait to hear what the class has to say about virtual worlds and games.

stumped by blogger

Well, I was going to post a bit of JavaScript but I have been defeated by Blogger. Since it seemed tricky, I was playing around with rendering in js and wrote a nifty little Mandelbrot rendered. Both it and the drawing code are in relatively clean objects, so I was going to dump it into Blogger's "HTML/Javascript" page element.

Alas, some part of the upload process mangles some js. There are a few mentions I discovered via Google, but not enough info to quickly determine a workaround, nor is it important enough to dive into the Blogger support queue. I'm working on a project that I'll need to host, so I'll just wait until then. If anyone knows the right incantation to get Blogger to behave, let me know.

Tuesday, January 22, 2008

metaverse memory: lsl1

I just had a chance to read James Au's new book, "The Making of Second Life." It was a fun read, but like any collection of memories, it captures only a tiny slice of the events that went into making Second Life. So, I think it would be fun to make a semi-regular part of this site different moments from my memories of the first 7 years of Second Life.

So, my first metaverse memory:

Around August of 2001, back when Second Life was called Linden World (note 1), there was no scripting language in SL. Primitar was about to replace the spaceships and floating eyeballs that were the original avatars and James was doing the first major UI revamp so that we could add to the world without shooting. The entire team had been debating how to add behavior into the system for months, with Philip arguing that we should just use physics. Philip had some really good points, because if we were able to use Havok for all of our behaviors, residents would be able to gauge the complexity of an object by just looking at it -- like mechanical systems in the real world -- and we wouldn't have to divert scarce resources into a project that could take significant time and effort. Mitch was also an advocate of visual complexity representing behavioral complexity, and I think there was something to that idea.

Unfortunately, Havok running on Pentium 4 servers was nowhere near powerful enough to represent complex systems in a general way. We had built some simple slides and teeter-totters, and while these were good geek fun, they didn't extend to create the kind of behaviors we all knew the world needed. But, I also believed that Philip was right. We just didn't have the development resources to divert a large number of people to build a scripting language.

So, I decided to crank one out in a night. Andrew and I both did semi-regular all nighters during those early Linden days -- including a memorable night when Andrew managed to lock me out of the room my keys were in and set the alarm, but that's another story. I am a huge believer is limiting developers to 40-50 hour weeks in order to maintain long-term productivity, but it is fun to occasionally proving you can still create something in a night. A simple language seemed like a perfect fit.

LSL (or, what became LSL1 when I wrote LSL2 to replace it) looked a lot like assembly, because this allowed the least amount of work to go into the parser and compiler. It had some of the functionality of the LSL2 -- for example, it could detect if you clicked on an object or a collision -- and had functions. It also was already event driven, an approach central to LSL2. Most importantly, it was working just in time for a Friday "Show and Tell"! I built a simple garage door, where a box would move from open to closed when you clicked on it, as well as some rotating objects, and demonstrated it.

Everybody was jazzed and after some discussion, we agreed that it should get rolled into the code. Philip immediately combined LSL1 with the physics engine to build the wind chimes that graced the original starting area. It would be about 8 months before I found time to revisit it and build LSL2 (note 2), the scripting language used in SL today. Finding time to build LSL2 became critical because our Alpha residents were building content so quickly in LSL1 and we knew that we couldn't support LSL1 going forward.

But that is a story for another day.

(1) There have been various reports of where the name Linden World came from. Sadly, that name was my fault. When I gave my signed offer letter to Philip, we met down at Accel's office in Palo Alto. One of the best parts of the early Linden offer letters is that Philip wrote them in a relatively informal style that perfectly captured his excitement about Linden. If I recall correctly, it had a wonderful phrase about how happy he was to be hiring me and that we were going to change the world. I was excited and worried, since I was walking away from what I knew -- game development -- and trying something quite new, and a bit intimidated by the whole Accel VC vibe. Philip set me at ease and introduced me to several of the Accel partners, including Jim Breyer. I handed him the paperwork that would put me on a new path and he shook my hand, saying how much fun we were going to have building this new world. I responded with "Yes, building Linden World is going to a blast." I paused. "But, let's never call it that!" Unfortunately, the name stuck in early discussions with Andrew and Frank -- and was cemented thanks to Frank's "Welcome to Linden World!" audio sample -- despite all of us agreeing that it was a horrible name. It wasn't until after Demo, the hiring of Hunter and Robin, and the move to 2nd Street that we were able to really revisit the name.

(2) LSL2 was designed and built over the course of about a week in early 2002. I had done some general Lex-Yacc homework before that, as it had been years since I had used them, and we did one meeting where we brainstormed what the structure of LSL2 should be. The initial LSL2 implementation didn't have lists. An extremely broken list implementation was added a few months later and then debugged for months. LSL2 will soon be running on the Mono open source CLI engine, which will make it much faster. For all of its challenges -- nobody is harder on LSL2 than I am -- it is still satisfying to know that over a million people have collectively written over 2.5 billion lines of code with LSL2.

Monday, January 21, 2008

hbo joins the list of bad ways to do internet video

HBO is going to let subscribers in Green Bay download videos via the tubes (this is well timed, as a steady supply of Entourage may be the only way for them to cope with the Packers strange play calling in the NFC championship game). This announcement comes in the wake of iTune's, NBC's, Amazon,'s and Netflix's similarly misguided attempts.

Don't get me wrong, I'm thrilled to see video-over-net approaches, but let's think about this for a moment. What are the common problems with these systems? They're paying big money to host and serve content that is already on the web. Worse, they're putting on the web in formats less useful than the content that is already there, ignoring platforms, and generally being less useful than the problems they're trying to combat.

Which makes you wonder, if HBO really wanted to either a) give people additional reasons to subscribe to HBO or b) get people to pay them more, why not just offer a BitTorrent "Get Out of Jail for Free" plan? If you are an HBO customer -- or pay them extra -- they grant you permission to download and seed HBO content. How cool would that be? They get some of us to pay for bits already hosted on the web. They don't have to build fancy players and search engines, although they could leverage some of the cool ones that have been built. Even better, they would spur development in legal file sharing, meaning more people would have the chance to pay them for bits they don't have to host or deliver.

And, they'd be able to do all of this without changing their legal options towards those who aren't HBO customers. Remember, the data is already out there. This would allow them to monetize some of it, rather than none of it. Plus, they open up a legal, cross platform way to access their content, including people all over the world who otherwise wouldn't be able to subscribe to HBO. Seems obvious, and I've long used HBO as the exemplar of a company that could make this move.

Pity they chose the expensive route.

xkcd ftw

is brilliant. I hope they make this one into a t-shirt. If you haven't read xkcd before, you might also enjoy this, this, this, and this.

Thursday, January 17, 2008

"JavaScript".replace(/Java/, "c");

So, here's the thing. If you go into working with JavaScript thinking "wow, it will be like Java, only scripty" you are in for a world of disappointment. I think this is the reason people's immediate reaction to the comment "I'm learning JavaScript" is to shake their head sadly and respond with "I'm sorry. Broken language."

This is a mistake. First off, I know broken languages. Hell, I've invented one. JavaScript, has its problems, but the largest one is due to the rocket scientists who decided to name it, well, JavaScript. It was, of course, originally known as LiveScript, but for marketing reasons the name was changed.

And hilarity ensued.

Instead, try this mental shift: think of the language as cScript. You know, c, only scripty. I know, you're thinking this is crazy, but work with me for a moment.

The syntax is very c-like, down to the ?: ternary operator, braces, and naming conventions. Now, unlike c, it isn't typed, but that's what makes it scripty. Plus, everything we do to work around c's typed nature -- void *, memcpy, function pointers, etc - just causes memory leaks, architecture dependence, and pain, so isn't it nice to have a language that does that for you? Even the method of extending JavaScript objects -- by creating functions and adding parameters in -- looks a lot like what happens when you apply OOP principles to c.

Now, it is dog slow -- hello, why the hell isn't it JIT-ed? -- and shows quirks from having evolved amidst the browser wars. But with the canvas tag and other sexiness looming on the horizon -- not to mention the uber-fast ActionScript engine in Flash -- I'm having a blast. This weekend I get to start working on my first test app, which will be fun.

For JavaScript, I worked through O'Reilly's "Learning JavaScript." The reviews are correct -- there are a lot of typos -- but thanks to Firebug I turned most of those into learning experiences. I also am most of the way through "Learning PHP and MySQL." Same problem -- lots of typos -- but I thought it did a pretty good job of filling in gaps. However, in comparing how it used PHP to the "Head Rush Ajax," I thought the Head Rush book's approach of writing simple HTML, using AJAX to fill in the dynamic data, and applying PHP as the server language to generate JSON and XML data fits my brain better than the Learning PHP book, which is all about using PHP to generate HTML directly. That way seemed really awkward, required Smarty templates, and just looked like a lot of work.

Current plan of record, for those following at home, is to do first pass of test app in PHP, then recreate it in Rails. I figure the compare and contrast should be enjoyable.

Wednesday, January 16, 2008

how many points for infringe?

Well, it looks like Hasbro has finally noticed Scrabulous. For those who don't already play Scrabulous, it is a wonderful Facebook App that allows you to play Scrabble against your friends. Very well designed and easy to use -- an excellent example of building an app well. If Hasbro is smart, they'll just buy Scrabulous. After all, it has an audience of players, is already written, and will only get more use if it actually is Scrabble. What is more likely to happen is that Hasbro will engage in a protracted legal battle, Scrabulous will be forced to shut down, and Hasbro will replace it with a horribly broken "official" Scrabble app that won't be nearly as well built or easy to use. That will be a shame for the 2.5 million current players.

Tuesday, January 15, 2008

i <3 my class

Last night was the first meeting of Cmgt 534: Introduction to Online Communities. My co-teachers, Professor Karen North and Clint Schaff, got to meet our students for the first time. What an amazing group! I had been generally excited about the idea of teaching but was completely unprepared for the diversity of expertise present in this group. From the Second Life CSI:NY project at CBS to the Institute for the Triple Helix, from a mystery author -- who's book looks very cool -- to Gone Gitmo, this APOC cohort is definitely going to teach me as much as I teach them.

I think the real challenge will be not grabbing them for startup ideas :-)!

myspace and age verification

MySpace announced yesterday that they were working with attorney generals from 49 states in a "landmark partnership" to "protect children , purge predators and expunge inappropriate content including pornography." The New York Times story I linked to points out the obvious flaws in this approach, including the ease with which people can get new email addresses, etc.

Connecticut’s attorney general, Richard Blumenthal, seems to be generating most of the quotes. A bit of Googling also reveals that he has been attempting to get similar concepts put into legislation. I wonder who his technical advisers are, because they could be leading him astray. After all, what happens when MySpace still has problems despite Bluementhal's statements?

The next question is how other online services will respond. Will they implement similar approaches? MySpace is going to hire a contractor to scan their content, which could be an incredibly expensive proposition.

Sunday, January 13, 2008

interesting comments from the taxpayer advocate

Linden Lab's recent announcement about banking is making the virtual world blog rounds and soaking up the policy discussions. However, while listening to NPR, I heard some interesting elements in the recently released National Taxpayer Advocate's 2007 Report to Congress. The first piece revisits the oft-discussed taxation issue. In the "Measures to Address Noncompliance in the Cash Economy" section, there is a section about reporting using online auctions as an example. From that section:

Historically, only large established merchants accepted payment cards (e.g., credit, debit, gift, and prepaid cards). Today, many small businesses take them. Cash and checks accounted for only 45 percent of payments in 2005, down from 57 percent in 2001. Payment cards handled purchases of $2.6 trillion in 2005, with the total expected to rise to over $4.7 trillion in 2010. Credit and debit cards also account for 80 percent of Internet payments, with an additional 9 percent from related services such as PayPal. Internet business activity, which is one of the fastest growing modes of commerce, is typically conducted using payment cards.
The report suggests that if the payment vendors were required to report these payments, taxpayers would be more likely to report their earnings:
Although gift cards and cash back transactions might make it difficult for the IRS to
reliably match payment card data against amounts reported on returns, the IRS could use payment card information to identify returns with a greater risk of noncompliance. In addition, research suggests that the knowledge that the IRS receives payment information significantly improves reporting compliance even for taxpayers who are not audited.
I think this is a great news for Linden Lab, eBay, and other businesses that leverage large numbers of user-to-user transactions. Rather than putting the reporting burden on the world operators, it places it on the payment vendors, who likely already have the necessary accounting and documentation processes in place.

The second interesting idea is a customer service concept. Apparently, several tax bureaus from other countries have the idea of paying the customer if the tax bureau makes a mistake.
[A] fair and just tax system should acknowledge IRS mistakes and delays in taxpayer issue resolution, and where such situations cause excessive expense or undue burden on the taxpayer, make a de minimis “apology” payment.
The IRS apologizing? What an interesting change. Maybe this is why the IRS is no longer the most hated US government department.

It makes me wonder, as online reputation and social systems become increasingly central to how we do business, communicate, and play, whether including the ability to apologize is as important as being able to say thank you. Linden Lab's "Love Machine," which I had originally conceived of as a way to tip or thank people for going above and beyond, is a positive-sum method of saying thanks. The idea has since popped up at other companies and as a Facebook app. But it didn't provide the complementary idea of a "mea culpa" machine. We often joked about it creating a "Hate Machine", but that isn't quite what you want. Instead, you'd want a way to capture what you did wrong and who your mistake impacted.

But I had never thought about an apology payment. Must do more research on that.

Friday, January 11, 2008

adding an emmy to the list

The rest of the Second Life blogosphere already got this, but Second Life just won an Emmy! More specifically, the award for "Outstanding Achievement in Advanced Media Technology for Best Use of Commercial Advertising on Stand-Alone Broadband Devices (Personal Computers)" went to the L Word in Second Life, which was created by the Electric Sheep Company.

I am particularly thrilled to see this because I introduced Sibley to Second Life at the 2004 Accelerating Change conference, where I also met Jerry Paffendorf, Randal Moss, Jeremy Bailenson, and John Smart, all names familiar to those playing in and studying virtual worlds. Back then, Sibley was attacking a Holy Grail computer science problem -- video search -- at StreamSage, but being a bright fellow, he was already looking around for his next project. We kept talking and meeting until the timing was right for Electric Sheep to launch. I'm thrilled I was able to play a part in bringing Sibley into this space!

Reading the rest of the press release, it appears Second Life received a second Emmy, for "User Generated Content -- Game Modification"! Congrats, Linden!

2 down, n - 2 to go

Just finished "Head Rush Ajax." It didn't feel as polished as the HTML book. The final example in the Ajax book doesn't work, but the helpful forums did have the answer. As I mentioned, some of the coding examples are really painful, although I don't yet know if that is because the authors don't want to teach JavaScript or because JavaScript is teh suck. "Learning JavaScript" is next, so I'll let you know then. Question for readers out there: should I do LAMP next -- that is to say, run through "Learning MySQL and PHP" -- or jump straight to Rails? My instinct is to blast through the LAMP book -- despite the reviews that indicate a lot of errata -- since I'd like to understand the server side concepts before hitting all the Rails shortcuts.

Thursday, January 10, 2008

glossy poster goodness

On Tuesday, I challenged Ian's claim that he could generate poster-sized images form classic game scenes. Of course, it ain't braggin' if you can do it, so Ian responded by creating the Atari Adventure Easter Egg Poster! Very cool. Now I just need a real job so that I can have a wall to hang one of these on.

In separate news, Ian just posted about the impending release of Fatworld, a game about the politics of obesity by Persuasive Games.

beating blogger into submission

Blogger really isn't setup to give you a multipage blog, nor does it make sharing widgets easy. However, collapsing geography is now broken up a bit more. Once I get through the next two O'Reilly books, will definitely have to muck around more.

Almost done with the "Head Rush Ajax" book. It's a good thing that I didn't review it early in the process, because the annoyance around getting the examples to run was higher than expected since they require PHP. Fortunately, MAMP solved that problem and I've been having a blast with the book. Some of the javascript examples are really painful because the authors are trying hard not to teach js, so if you're a programmer, you'll immediately want to improve the script as you go. Other than those two quirks, I've been enjoying my homework quite a bit.

Tuesday, January 08, 2008

raster vector raster vector

Just had the best IM conversation with Ian -- thank you Google for integrating AIM in gmail, which means now I actually monitor my AIM account. He's in the midst of a book about the Atari 2600, which pretty much defines cool in my mind. However, it gets even cooler. Ian decided that rather than just doing screen shots of old games, he'd pull them into Adobe Illustrator to create vector versions of the images, allowing him far more control of the presentation. (He claims to have a poster-sized print of the Atari Adventure Easter Egg, but the only way he'll be able to prove that is to send me one.) We'll have to wait for the book to see them all, but his process resulted in a hilarious moment when he got Cinematronics' Star Castle.

ibogost: I'm running Cinematronics' coin-op Star Castle in an emulator, which is emulating its vector display for my raster display, so that I can take a screenshot of that raster display in order to re-vectorize it in Illustrator for use as a figure in a book
So, vector (original game) as raster (emulated) to vector (Illustrator). What really got us laughing was to keep going, since the Illustrator image will be printed (raster, I think), read by humans (raster, with errors due to Nyquist), and be represented in our brains (vector).

So, to go from Ian's desired shot to the readers' brains, we get: vector->raster->vector->raster->raster->vector

OK, so we thought it was funny.

Ironically, one of the screenshots was being used to demonstrate how the 2600 did hardware collision detection. In our modern, tri-linear, multi-buzworded, hardware accelerated game world, we still tend to use some truly horrible approximations for collision detection. Bounding boxes, spheres, and even polygon-polygon collision detection tend to trade off accuracy for performance, since most cd is done in software on the CPU.

But back in the day, we had glorious, perfect per pixel collision detection done by the hardware! Hell, the Atari computers gave us two players and two missiles worth of hardware cd. Of course, with 2 or 4k of ROM on the cartridge, developers had to take what they could get.

OK, back to my Ajax homework. I'll have words for the "Head Rush" book tomorrow.


It has already been documented -- via a screen shot in Ian's excellent discussion of Facebook -- that I am zombie app user. After all, how else could I utter the true statement "Marc Andreesen is in my zombie army"? For those lucky enough not to know what the zombie app is, Rolf has a pretty good description in his recent post about the moral, ethical, and emotional issues involved with receiving a zombie "invitation."

More specifically, receiving a zombie invitation from me.

The zombie app, looked at seriously, is spam. I don't send many invites out anymore because of this and have generally ignored the many copies of it, including vampires, werewolves, slayers, pirates vs. ninjas, and others too numerous to count. I have kept an eye on my zombie, however, mostly because the minor multi-level marketing piece of it and the combat component ensure that it continues to slowly increase in level. Occasionally, I do send out invitations to someone who I think will either find the app funny or not be particularly offended or bothered by it if they don't.

Like Ian, Rolf took a somewhat more nuanced -- and more tongue-in-cheek -- look at the invite and came to the conclusion that the motivation for accepting or declining springs from mammalian dominance behavior.

(Declining, in his case, and thereby ensuring that his promising career will come to an abrupt and messy end at the hands of my zombie hordes -- most likely in a school or shopping center -- but that's another post.)

That motivation is, of course, just one component of the app's virality. Worse, it's probably a neutral or net negative contributor if you consider average power relationships between friends. It is interesting to consider how much more viral an altruistic or positive sum app might be instead. Perhaps this would be the app equivalent of Jane's "pronoia" idea.

Monday, January 07, 2008

first real week

Having survived the holidays, it's time to get rolling. I view this week as the first week of whatever I am going to do next. Jed Smith, one of Linden Lab's early investors via Catamount Ventures, is letting me gaffle some space, so I'm currently hanging out in their downstairs office. It's quiet and perfect for blasting through the various O'Reilly books on my reading list.

The holiday book was "Head First HTML with CSS & XHTML," which served as a nice, broad primer for building modern web pages. Remember, the last time I looked at the Web in any serious way was Mosaic on Sun computers at Sanders in 1995. Since then, I've written embedded code for custom hardware while building arcade games, embedded code for several consoles, and finally lots of C++ for Second Life. In the meantime, the Web has come an awfully long way. Rather than building off of my pockets of web knowledge, I think this is a good time to do a bit of a mental reboot, so I'm starting at the beginning. Today I'll crack "Head Rush Ajax."

The Head First and Head Rush books are fun, quick reads. I've read plenty of O'Reilly books over the years -- and consider the llama book the best language book I've ever read -- but my initial reaction to the Head books is positive. Obviously, they aren't reference guides so Tim's evil plot is clearly to get you buy extra books, but as a first pass on a topic that you can plow through in a day or two, they seem quite good. The examples hit the questions I wanted answered and the writing style isn't so glib as to annoy. Amusingly, a friend still at Linden who has done a fair amount of Web site coding but who hadn't caught up to current standards also settled on the Head First book as a starting point, so we'll compare notes later.

Beyond that, this week I'll be working with my co-teachers on the curriculum for APOC, so more to come on that as it falls into place. With APOC's ambitious goals for a one year program, the difficult part will be figuring out what to cut out of the schedule. I've also been asked to help pull together a faculty seminar at Annenberg on new technology in the social/virtual/game space, but fortunately I have a couple of weeks before that kicks off.

My schedule is filling up surprisingly quickly!

Thursday, January 03, 2008


No, not World of Warcraft. Wow. As in "Wow! Barack Obama won the Iowa caucuses!" Now, before we get overly giddy, the 340,000 people who caucused represented less than 12% of the population of Iowa and Iowa represents less than 1% of the US population. So 0.1% of the US population has driven Brian Williams of NBC News to say "Iowa has changed the course of American politics in ways we're just now coming to grips with." Please.

The biggest problem with this hyperkinetic spin is that it makes it easy to lose sight of some very real events. Obama won! I haven't met him, but I have met many of his advisers and they are some very smart, very dedicated people.

People I'd want to hire. Yeah, that good. A bit of giddiness is warranted!

Have you read his technology document? I was planning to sign onto to it, but unfortunately events outside my control hit just when they announced it. Better late than never, so let me state here that his tech position is the best I've seen out of any of the candidates.

Is it perfect? No, as others have pointed out. I have particular concerns about proper balance of a CTO versus the mostly unfunded Office of Technology Assessment, balance of inward and outward focus, and insufficient focus on the connections between learning and innovation.

But these are quibbles. The other guy who won in Iowa doesn't believe in evolution.

I'll take the slightly flawed technology plan, please.

We -- as a community, a nation, a species -- exist in a world of accelerating technological and scientific progress. The rest of the world is moving ahead along the exponential curves defined by productivity and per capita GDP growth. Curves defined by innovation. By knowledge.

By science.

Curves that leave you very far behind if you don't keep up. 25 years ago, South Korea's per capita GDP was less than 2/3 of Mexico's. Just two decades of compounded growth later, Korea is over twice Mexico's. And pulling away.

We've had 8 years of political meddling in science and technology. I'm thrilled that a few Iowans decided it has to stop. Let's see what New Hampshire does.

predictions for 2008

It's tough to make predictions, especially about the future
- Yogi Berra
Once again, it is time for me to put a stake in the ground, to fearlessly predict what is going to happen over the course of 2008. As the great philosopher-poet Yogi points out, this ain't easy.
The best way to predict the future is to invent it
- Alan Kay
What makes this harder is that for the first time in this millennium, I'm not actively building the future. I expect that I will again soon, but for now I have many pieces of technology and knowledge to catch up on. So, I'm shooting in the dark more than normal. No more stalling, on to the predictions.

  1. The teams I built at Linden Lab will do amazing things this year (duh!)
  2. Social search engines -- such as Foxmarks, Wikia Search, and others -- will generate initial results that are strong enough for Google to release a Google Social Search Beta to great fanfare and limited use
  3. The breakthrough feature on the '08 iPhone will be video capture, editing, and video blogging more than 3G
  4. In Europe, virtual world content will increasingly fall under country of origin rules, greatly simplifying the European Union regulatory requirements
  5. Games and virtual worlds will once again be vilified in the name of "family values" during the 2008 Presidential election
  6. Despite number 5, games and virtual worlds will be the cornerstone of at least one nation's effort to reform their education system
  7. Despite additional packet tampering and shaping by broadband providers, no effective network neutrality legislation will be passed
  8. Between AIR, Gears, GWT, Silverlight, and Weave, some technology will nail a user experience that smoothly supports both Web and offline usage via a browser
  9. As the actors join the writers, more AAA content will be developed for machinima, virtual worlds, and the web as a way to give audiences fresh material without crossing picket lines
  10. By the end of 2008 I will be building or working on something as challenging and interesting as Second Life
Obviously, that last one is the one that matters the most to me.

So, what do you think will happen in 2008?

getting rolling

It is awfully strange to be sitting in San Francisco but not in the Linden offices. I'll get to my 2008 predictions later today, but thought it worth noting what technology I've started using to craft my new, post-Linden identity and work flow. The most obvious piece is this blog, which a few people seem to be reading already. I'm used to writing longer form works -- and regularly blogged internally at Linden -- but I expect it will take a while to find the right voice, frequency, and topics for this. There are enough other places to read virtual world and technology news, so I'll try not to just echo what you are already RSS-ing elsewhere.

The next pieces are communication. My Yahoo Mail account gathered dust during my time at Linden, so rather than resurrecting it, I moved to Gmail. So far, I've been quite happy with it, especially with its new support for IMAP and helpful advice on how to properly configure it. The new Google apps for iPhone also work well for me, so I am also using Google Calendar and Reader on both my desktop and phone.

For a computer, I grabbed a MacBook -- although it the rumored thinner versions appear next week I will upgrade -- since the lighter weight and incredible battery life was more important to me than the horsepower of the Pro. Great little machine so far, plus I think a pretty good development platform for various experiments -- if something runs nicely on a MacBook today, it should run on most computers a year from now. I let iCal pull from Google Calendar so my phone is mostly up-to-date, but have not bothered with more complicated solutions to try and sync between iCal and Google Calendar yet.

I'm currently bouncing between Google Docs, iWork, and soon plan to experiment with Scrivener as writing and brainstorming tools. The Google Docs to Blogger posting almost works, but I haven't found how to have it automagically set the title, which is a shame, since the Docs editor handles Mac short cuts far better than the Blogger one.

So that's it for initial technology. Having built Ubuntu laptops for testing SL, I considered going that route, but being a Mac household -- more on my cloud of Mac Minis for television viewing in a later post -- I decided it was easier to stay with Mac.