Saturday, December 30, 2006

Movies, cell phones, and Linux...

I recently watched two rather amazing movies.. the first, via Netflix, was City of God. The second, in a theatre last night, was Children of Men. Children of Men may just be the most under-hyped movie of 2006. It was incredible, and while possibly hard to find (only in one theatre around here), I highly recommend checking it out.

A Russian web site has posted some information about new HTC phones coming in 2007. The Vox, and its successor, the Wings, both look pretty spiffy. I like the numeric keypad on the front for quick, easy dialing and texting, and the slideout keypad for sending longer messages or entering data that's hard to key in with t9. The new clamshell model also looks pretty slick. My first HTC phone was a Blue Angel, then a Tornado. I've been waiting for a new model with a slim form factor, 3G, and integrated GPS. 2007 just might be the year to upgrade.

This morning I came across an interview with the founder of Ubuntu Linux. A coworker of mine showed me a recent version of Ubunto on his laptop, and I was pretty amazed. It's come a long way since the early versions I played with a couple years back. It has some cool, original UI effects that I haven't seen in Windows nor OS X, and according to my coworker has had better plug and play support for some of his devices than Windows or OS X as well. That's quite an accomplishment for a Linux distribution.

Friday, December 29, 2006

A Winter Update

Having gone back to LA for a week over Thanksgiving just a month ago, I didn't really feel the need to take a vacation, and decided to stay here in Seattle over the holidays.

Seattle gets really quiet this time of year. It doesn't seem like very many people are actually from the city of Seattle. Most have moved here from other suburbs, cities, and states, and go back home over Christmas. Those of us that decided to stay banded together and hit local bars for a few drinks, and went out for Chinese dinner in the city's International District on Christmas.

Most of my coworkers took the two weeks around Christmas/New Years off. I didn't really feel like I needed time off, and am engaged in what I've been working on lately, and kept going in to work. My friends thought it was weird I went to work on Christmas day, but seeing as I don't celebrate Christmas, it was just another day to be productive for me, albeit a very quiet one at the office.

For Hanukkah, I got a Canon sd700 is digital camera to replace the sd400 I broke in a minor mountain biking accident. I also got Gears of War (an amazing game) and an external Maxtor disk drive for my new home media server.

I've been playing a lot of Xbox 360 lately. From 2001-2006, I more or less stopped playing video games altogether (the last game I was seriously hooked on prior to that was Warcraft 3). In fact, the Xbox 360 is the first game console I've personally owned since Super Nintendo. I'm seriously hooked on everything about it.

I've caught up on all my blogs, and all the mailing lists I follow at work (which amounts to skimming tens of thousands of emails). I've read a whole bunch of magazines, and am left only with the latest issues of Details, Wired, GQ, Business Week, and MSDN Magazine on my coffee table (the latter is a recent edition - I'm now officially a total nerd).

I've spent a whole lot of time playing with a whole bunch of new software and toys that won't be announced and/or released for another year. Some people appreciate the health plan, it's the toys that do it for me. This is one aspect of my employment with Microsoft that I will miss most when I move on in the future (this, and the ability to dig up internal code/specs or IM the developer who built something when I wanna understand the internals of how it works).

My relatively new job as a software design engineer is still enjoyable, educational, and challenging. I'm learning a lot more and feel a lot more intellectually stimulated than I did during much of the time I spent in my former role as a program manager. I've been spending a lot of time collaborating with a few young bright developers in India, which has certainly been an interesting experience with its own set of challenges and learning opportunities.

While I once again feel challenge and am again learning new things, I still feel a bit jaded about the whole work life balance culture I've written about before. Yesterday, my buddy and I worked all day in our empty building then went to grab dinner. After dinner, he asked "are you gonna go back?" I was like, "hmm, are you?" Then we both decided to head back to the office, where we stayed working across the hall from each other with our doors open listening to music past midnight. That's the sort of culture I love. The problem is, he's one of the very very few dudes I work with that operates the same way I do (also one of the few dudes I work with my age, no kids, etc). Most of the time, it's just me alone in the empty offices - and that's not good for someone whose job motivation is "to have fun" as opposed to "to feed my kids" or "to climb the corporate ladder".

But alas, I digress..

I'm again trying to convince my Dad to use technology to reach out to members of his temple and community. I recently helped him post a video of his High Holy Days sermon, which I'd highly recommend checking out.

I've been thinking quite often about the purpose and future of this blog. As I write this, I just realized I've been blogging for over 2 years now. I went back and re-read one of my first posts from the very beginning called Why Blog?. I suppose it still holds true, though since then I think I have become okay with using the blog to update people who care about what's going on in my life from time to time. I find myself interested in reading such updates in other peoples' blogs.

Well, that's about it for this semi-stream-of-conciousness post. It's rather quiet around here over the holidays, so if you're a friend and ar ereading this, drop me a comment/email/IM sometime and say hi. :)

Friday, December 22, 2006

COMCASTIC Price Reductions!

Today, my Comcast combined cable internet and television bill went from $122.18 to $136.69 when they raised their 2007 prices and when my "we know our prices are too high" promotion ran out.

What's a "we know our prices are too high" promotion? It's the promotion you get when you call Comcast and tell them their prices are too high. It lasts for 6 months, and you must call to renew it at the end of the 6 month period. The conversation goes something like this (minus a lot of smalltalk about Christmas):

Adam: Hello, I'm calling because I noticed the monthly amount on my bill for the upcoming billing period is increasing from $122 to $137, and I'd like to understand what's going on.

Comcast Rep 1: My guess is you had a promotion that expired.

Adam: Yeah, that sounds right. About half a year ago I called you guys because a previous promotion I had then had expired, and the price for your services were just too expensive. Your cable internet service before taxes is $46/month, but Qwest's DSL service is only $27/month. The person I spoke to then gave me another promotional discount to keep me from looking around at other services.

Comcast Rep 1: Oh but you're not seeing the big picture. DSL is barely faster than dialup, and there are outages all the time [Comcast never has outages]. A girl here used to work for Qwest, and she says Comcast is much better, and that you only get fast speeds if you're 500ft away because of all the noise.

Adam: (giggling) I see. Well, I sorta work with these technologies for a living, and that's just not the case. Qwest does have a 7mbps DSL service for $37/month, that's still $10/month less than you.

Comcast Rep 1: Well my son plays video games, and they really need the high speeds, if you do this for a living you probably know that already. We all have decisions to make, but you should really look at the big picture.

Adam: Look, the bottom line is that my bill went up from $122 to $137 for service that has stayed the same and is already overpriced. If you can get the price down, I'll say thank you, hang up the phone, and be happy. If you can't, just tell me, and I'll call up Qwest or any of the other dozens of ISPs and get a much cheaper new customer introductory offer from them instead.

Comcast Rep 1: Okay, just a minute and I'll get you over to the department that can help you out.

Comcast Rep 2: Hi, what can I do for you?

Adam: [I explain the situation again]

Comcast Rep 2: Well, I see here you did have a promotional offer and it just expired. I can apply that now for another 6 months for you.

Adam: That'd be great. Also, what's the difference between "Digital Classic" and "Digital Plus"?

Comcast Rep 2: Oh, Digital Plus has a lot more channels and only costs $4/month more.

Adam: Like what channels?

Comcast Rep 2: Toon Disney, The Military Channel, [...], the MTVs and VH1s.

Adam: Is that all of the MTVs and VH1s? Or just some extra ones?

Comcast Rep 2: It's MTV Hits, MTV Jams... just the extra ones...

Adam: I see. I'd like to change to Digital Classic as well.

Comcast Rep 2: Ok I can do that for you, and if you miss any channels you can just call us back.

Adam: Great.

Comcast Rep 2: Have a Merry Christmas!

Adam: You too!

In short, my bill is now over $15/month less, thanks to my brand spankin' new "we know our prices are too high" promotion. I don't have any of the following channels, but I don't think I'll miss them too much:

122 Toon Disney
127 Nick Too
139 LOGO
180 NFL Network
201 Discovery Home Channel
203 DIY
204 Fine Living
222 FIT TV
231 I-Life TV
271 Discovery Times
274 The Military Channel
275 The Biography Channel
276 History Channel International
471 CMT Pure Country
472 MTV Hits
475 MTV Jams
504 Lifetime Movie Network
505 Sundance Channel
513 IndiePLEX
514 RetroPLEX
516 Encore WAM!
519 Encore Love
521 Encore Mystery
523 Encore Westerns
527 Encore Drama
529 Encore Action
606 MTV Tr3s

So call 1-800-COMCAST today, and get your "we know our prices are too high" promotion! If you're feeling ballsy, you can even remind them how their $77/month cable TV compares to DirecTV's $40/month 12-month introductory offer ("oh but satellites have outages all the time")!

Wednesday, December 20, 2006

Windows, Xbox 360, and Windows Media Player in a DRM World

There's been a lot of buzz recently over Bill's harsh words towards current Digital Rights Management (DRM) technology...

(Google's top results for "bill gates drm")

After ripping my hair out spending hours trying to "enjoy everywhere" over the weekend, I definitely think we have a long way to go.

My goals were to...

1. Play music purchased from an online music store (URGE in this case) on my Xbox 360

2. Play music that is stored on my home server from other PCs on my home network

3. Play music that is stored on my home server from PCs and devices outside my home network (my work PC when I'm at work, my cell phone when I'm on the go)

4. Sync music that is stored on my home server to my iriver clix portable music player

5. Manage my library of music that is stored on my home server from other PCs on my home network (download songs, rate songs, etc)

Some Background

Over the weekend, I decided to retire my 5+ year old Windows XP desktop by sticking it behind my TV and turning it into a simple file server for music, pictures, and video. I wired it up to the same network used by my Xbox 360 and a few wireless laptops (mainly my home one which still runs XP, and my work one running Vista).

Immediately, I started running into problems enjoying my library of DRM'd music everywhere.

Playing on Xbox 360

The first problem I had was streaming DRM'd songs to my Xbox 360. While music I'd ripped from CDs played fine, songs I'd downloaded from URGE gave the following error:

Can't play this content because it may not be supported. For more info, go to Status code: 19-04-80004005

I scoured the web, and found the following in a Windows Media Connect FAQ:

5.3 Can devices that support Windows Media Connect play protected content on a computer?

A digital media receiver (DMR) must support Windows Media Digital Rights Management (DRM) 10 for Network Devices to play protected WMA and WMV files from online stores such as f.y.e. Download Zone, Napster, and Yahoo! Music.

Although a growing number of DMRs do support Windows Media DRM 10, not all device manufacturers have opted to support it yet. For information about devices that are capable of playing protected Windows Media files, see the PlaysForSure page.

Protected files are digital media files that are protected with a license to prevent unauthorized distribution or playback. The license specifies how you can use the file. For example, a license can specify whether you can play a file on your digital media receiver and for how long. The terms of the license are specified by the person or company that provided the file.

If you subscribe to a music subscription service, such as Napster To Go or Yahoo! Music Unlimited, and you share that content to your digital media receivers, you should periodically play the content on your computer.

Playing the files on your computer ensures that any expired licenses are downloaded again if necessary (subscription services typically issue licenses that are valid for about 30 days). If a license expires, you will not be able to play the file on your device.

This was good news and bad news. The good news was that it's supported and should work. The bad news was that once a month I would have to remotely log in to the computer with the music on it and open Windows Media Player in order to manually refresh my music's licenses. What a pain!

A few days and a few emails to the Windows Media Player team later, I was able to get the Xbox 360 streaming to work after upgrading my DLink DI-524's firmware from version 1.20 to 1.23. This is strange, since both the PC and the 360 were wired and on the same LAN, so I'm kind of curious what DLink was doing with my packets.

Playing on other PCs

The next challenge was to play music stored on my home server from other PCs on my home network. As with the Xbox 360, this proved to work without problems for music I had ripped from CDs. Unfortunately, it wasn't so simple for the DRM'd music I'd purchased from URGE.

When I tried to play songs by browsing to a file share and double-clicking on them, Windows Media Player gave me an error that I did not have rights to play the song. This was despite both Windows Media Player on both the home server and on my XP laptop being authenticated to URGE.

I knew iTunes has supported this for quite awhile via Apple's DAAP protocol, so I went searching on the web, and after a bit of digging found that this is possible using Windows Media Player on Windows Vista (only).

To be sure, I cracked open my Vista laptop, and it did indeed work like a charm. Not quite sure why Vista's required for this Windows Media Player feature to work, but I guess it gives me a good reason to upgrade my home laptop.

Playing music at work, on my cell phone

For music I ripped, I can just go download Orb for free.

I don't know of any way to do this with music I've purchased from URGE. My PC at work is authenticated to URGE (you can use it from 3 PCs), but this doesn't give me access to the same library of downloaded music I already have at home - I need to download songs again there. It certainly doesn't help with streaming music from a mobile device like my phone.

If anyone has any better ideas, please let me know. :-)

Syncing music to my mp3 player

This is probably going to by far be one of the biggest pains in the ass.

My home server sits behind my rear projection TV. I really don't want to crawl back there to plug in my clix, then use terminal services to log into it in order to sync my music (which I have to do at least once every 30 days or the music on the clix will expire).

With my ripped mp3s, I can just copy them from a file share (or even access them via my laptop's Windows Media Player library which is file share aware) and drop them on to my clix.

Again, advice is welcome (I already feel an onslaught of "ditch the drm" advice coming).

Managing my music library

The good news was with Vista, I could access my library from other PCs. The bad news was, I couldn't do something as simple as rate a song in it.

I would love to see a distributed library - with songs, playlists, and ratings persisted across my home server, my laptop, my work PC, etc. But, we're just not there yet.

In the meantime, I use terminal services to log into my home server (a Dell that's so old Ethernet wasn't an onboard option and it runs with 256MB of PC133 memory - barely enough to spin up Windows Media Player 11 in 60 seconds).


I love the URGE service, Windows Media Player, Windows Vista, and my Xbox 360... but DRM is making it incredibly difficult to fairly use and enjoy the music I've purchased.

Sunday, I was sitting around playing Gears of War with a buddy, and we were talking about how cool it'd be to listen to Nirvana's In Utero album as game background music. The idea of being able to instantly download the album from URGE and have it playing on my Xbox 360 is a nice thought, but with all the barriers hindering even the simplest end-to-end scenarios described above, it was easier for my buddy to walk into my roommate's room, grab the CD off my roommate's bookshelf, rip it on my laptop, copy it to our home server, and have it truly available whenever/wherever we wanted it in the future.

I love the URGE online music store because I love the ability to download as much new music as I want to all the time for a pretty reasonable flat monthly rate compared to buying even a fraction of the same music on CDs. But I'm starting to really question whether it's worth it without being able to enjoy that music everywhere I really want to.

Monday, December 18, 2006

Keyboard Shortcuts in Windows Vista

If you're a power user, you're probably used to using keyboard shortcuts. One of the quickest ways to learn keyboard shortcuts is from the helpful underlined characters in buttons, menu items, etc:

In the new Windows Vista, these are turned off by default (or at least they were in the Vista build on my laptop):

If you find yourself frustrated as I was, you can turn them back on by going to "Ease of Access" (the new fancy name for Accessibility options) in Control Panel:

Then go to "Change how your keyboard works" (I guess this was the best match even though your keyboard will still work the same):

Then click in the "Underline keyboard shortcuts and access keys" checkbox and click Save:

Now keyboard shortcuts will be shown in all UI controls.

Also, there's a great list of the various Windows Vista keyboard shortcuts you'll want to know about on the Shell Blog. Sadly, one of my most-used, alt-ctrl-del -> t for task manager, is now alt-ctrl-del -> alt-t. I liked the former because it was simple, yet more discoverable than alternatives like ctrl-shift-esc.

Wednesday, December 13, 2006

New Dodgeball Features

Google's Dodgeball service got some new features - a mobile interface (right), and a way to find other Dodgeball users in your Gmail contacts and request them to be your friends.

I played around with the mobile interface for a few minutes, but it couldn't find a bunch of popular bars around here, and the overall experience was pretty uninteresting..

The friend finder found 7 friends out of my 389 Gmail contacts, but Dodgeball has more or less come and gone around here, and these days most of us find it more annoying than cool, so I passed on adding them.

Hadn't seen this posted on any of the blogs I read.. maybe no one cares about Dodgeball anymore :(

Sunday, December 03, 2006

My experience watching a movie on my Xbox 360

Tonight I purchased, downloaded, and watched V for Vendetta on my Xbox 360 using Xbox Live's new movie rental service I blogged about a few weeks ago.

I purchased the high definition (720p) version of the film and wandered away for a few hours while the download started. A few hours later, I returned and started to watch as the movie continued to download (the HD version was over 6GB, so it took awhile even over my "12 mbps" Comcast cable modem connection).

The movie quality (and the movie itself) were awesome. There's limit-less room for innovation in this space, and I'm excited to see what Microsoft and its competitors bust out with next.

Unfortunately, at a whopping $6 for a 24 hour rental, I don't think I'll be watching any more movies on my Xbox 360 soon (the 720p version was 480 Microsoft points - $6; the lower quality 480p version was 320 Microsoft points - $4; the 'net is brewing with interesting opinions about Microsoft's points system).

Thursday, November 30, 2006

My favorite new toy -- and it's free!


Watch this video.

Then, go download:

Windows Live Search Beta for mobile

If you have a phone that supports it (and highspeed data is a bonus too), then you'll probably find this to be a killer app!

I love how easy it was to download/install right from my phone - without having to sync with my PC. Mike and the rest of the Windows Live Mobile team make me proud tonight. :-)

Tuesday, November 28, 2006

The things we take for granted...

5:26AM Some airport workers I tried to hitchhike with and their sign.Washington is snowed under, iced over.

Sometimes it's the little things in life we take for granted.. like catching a simple ride home from the airport.

Wednesday, November 15, 2006

New toy.

It's been a long time since I've been truly excited by new computer hardware.. but the latest introduction to the family of computers in my office changes all that:

TWO Dual Core Intel® Xeon® Processors 5160 3.00GHz, 4MB L2,1333

4GB, DDR2 SDRAM FBD Memory, 667MHz, ECC

256MB PCIe x16 nVidia Quadro FX 3500, Dual DVI or Dual VGA or DVI + VGA

160GB SATA, 10K RPM Hard Drive with 16MB DataBurst Cache™

Oh the things I'll miss if I ever decide to leave the empire.. ;-)

Sunday, November 12, 2006

Rantings of a boxed up software developer on a Sunday night

I vaguely remember waking up just 14 hours ago, and quickly realize I haven't left my home once all day.

In 14 hours, I've showered once, folded 2 loads of laundry, cooked 3 meals, drank 4 cups of tea, watched 2 episodes of House, and 2 episodes of CSI. I spent the rest of the day and night working - pouring through dozens of emails I had flagged for follow-up and skimming through thousands more, watching several pre-recorded internal presentations on new technology, contributing to a patent application, and doing a little "real" work.

On the flipside, I've not turned on my Xbox 360 once, nor have I read any blogs.

Well, actually, I did come across a new blog - a diamond in the rough among the thousands of emails earlier. In fact, it's what got me to sign into Blogger and share this... Minesweeper/Flower Garden:

shell: revealed is an awesome blog by a bunch of the people who work on the Windows shell. The diamond I came across was this post on the redesign of Minesweeper in Windows Vista. Reading it, I wasn't sure whether to laugh or cringe - and I'll just stop short of commenting further on the "Microsoft Tax" right now.

Another gem I found was this look into the feature design process in which the author posted a real live version of the Windows Vista Aero Wizard UI Spec.

I've seen a lot of specs across a lot of products at Microsoft - they range from scribbles on napkins to photos of whiteboards to highly structured documents like the one posted on shell: revealed. However, none of them resemble anything I learned to do in college. In order to graduate with a Computer Science degree from the University of Michigan, we had to take several Technical Communications courses. The processes these courses taught us to follow and the documents they taught us to write were a joke - relics from the height of professors' former careers in decades past - completely detached from current or best practices in software development (at Microsoft or otherwise).

And now, off to sleep. G'night.

Tuesday, November 07, 2006

New Stuff In MicrosoftLand

HD TV and movies on Xbox 360

The Xbox Team blog boasts that in 2 weeks, Xbox 360 owners will be able to download and watch HD TV and movies (before PS3, and without buying yet another box sometime next year).

Engadget has pics. More info on the official Xbox site, NY Times, and

In a less hyped move, the Xbox team also recently released an update to all Xbox 360s that lets them stream video from any PC (not just Media Center edition), supports 1080p, and a bunch of other cool stuff.

Do you need any more excuses to buy one? ;-)

Zune everywhere!

The official Zune site has launched.

I've gotta say this thing is beginning to grow on me. The way they've engaged the music-loving community has blown my mind.

Definitely making its way onto my holiday wishlist right after a new digital camera and this pair of hot snakeskin shoes.

Another new Windows Live Local feature

I'm not sure what this product is even called anymore (Virtual Earth? Windows Live Local?? Live Search???, but it now has some sort of new 3D rendering feature. I can't really appreciate it because it made my monitor at work go black, then gave me an error message. Above is a picture of the Space Needle in Seattle as captured on my Thinkpad here at home. Nifty.

Microsoft Virtual Earth/Windows Live Local powered by Virtual Earth Beta/Live Search happens to be one of the few Microsoft products I just can't bear to use. I've tried - over and over - but the multiple search boxes, the slow bulky constantly-loading UI, the insane number of overlayed windows, the unintuitive navigation paradigm, the clutter of ads and promotion of some baseball player's list of favorite places, and the number of steps it takes me to do something as simple as get driving directions to a restaurant - makes me go back to Google Maps every time.

What Else

This is the first time in a long time I've gone over 2 weeks straight without blogging. My new role at work has been incredibly challenging (in a good, but brain-draining way) and has been keeping me quite busy.

I recently picked up a copy of Phantasy Star Universe for my 360, and it rocks my socks. Highly recommended.

I've realized it takes about 1-2 hours on average each day to read through my blogs and other sources of information just to keep up - not including the stacks of magazines piling up on my coffee table, which will inevitably end up as airplane reading material later this month. Beyond work, a semi-deprived social life, exercise, and absorbing information through blogs, podcasts, etc, I'm left with less and less time and energy for pleasure reading or blogging. Still trying to figure out how to best manage/fix this. Any suggestions? :)

Tuesday, October 24, 2006

Putting a human face on Microsoft

In the past, I've written about Brand Harmony, the struggles customers of big corporations often endure, and how interactions (or "touch points") between companies and customers play a significant role in how companies are perceived and ultimately whether or not they are successful at what they do. If customers enjoy interacting with your company, your product, your services, they're likely to continue to remain your customers (and likely to tell their friends). If customers dread working with you, they're likely to bail at the first opportunity (and five times as likely to tell their friends).

Earlier today, I came across a blog where one of my team's early adopting customers, pws, blogged his experience at my product's Technology Adoption Program event. The posts are here, here, here, and here.

These were a few highlights, which made me really happy to read:

“But most of all I was impressed with the Microsoft staff. They genuinely cared about what we had to say, the needs we had to meet, and what we thought of their product. They took notes with eagerness, whether we said we loved a feature or thought something was stupid, or too complex, or not complex enough. They really took the time to make us feel like we had a say in where the product was going, both from a look and feel standpoint and from a roadmap overview.”

“Today was filled with more meetings, more debriefing, more hands on. I can't say enough about having the opportunity to sit side by side with Microsoft technical people while we go through the product, giving input and learning about why things were put together the way they were. Just having that input, being able to ask why this button is where it is, why this dialogue box is the way it is, has been the most rewarding part of the whole experience.”

“One of the things that impresses me about the Microsoft campus is the ethnic diversity. I don't know if it's a reflection of the area, of intentional Microsoft hiring practices, or perhaps a bit of everything. Perhaps most of all it's a reflection of my insular Midwest upbringing, where seeing families from other countries is unusual.”

“I've said it before, but it's worth repeating: The Microsoft employees were great. They were genuinely interested in what we had to say and took our criticisms and comments seriously. They certainly went out of their way to make us feel welcome and wanted. The specialist that was assigned to us even showed up at the hotel this morning, to make sure we did not want to go to the Microsoft Store like we had discussed previously.”

“The last day of the event happened to be the same day as the big Microsoft yearly meeting, so all of the employees involved with the TAP gave that up to get our input and finish out the week. Maybe they'd all seen Bill speak before.”

“The entire experience has energized my thoughts about the product we're looking at and where it could help take us. I must admit it has also softened me a bit to Mictosoft in general. I'll always bleed red, but I'm no longer baised against the blue just because it's blue.”

Truth be told, I was having a pretty stressful morning before I came across these comments. They instantly brightened up my day, and I forwarded them on to the rest of my team (then I went back to debugging pre-release code, but more intent than ever before on solving my problem).

When it comes to the customer, advertising dollars and cheesy 1-page magazine ads can't buy the impact an experience like this will have on an enterprise customer making big technology bets and purchasing decisions. And while we may not be able to reach every customer individually in this way, professionals talk and word of mouth is a powerful thing.

When it comes to the people pouring their lives into building the software, no paycheck, bonus, and certainly no off-site team-building morale event can muster up as much passion and motivation around building a high quality product as this kind of encouraging feedback from the human beings who use (or will use) what you are creating.

Sunday, October 22, 2006

For the computer nerd who has everything...

I'm in awe of this eStarling digital picture frame.

It supports POP3 and RSS, so you can email it your photos, or have it stream them from a photo site like Flickr.


A little bit of network television irony

NBC has caved to religious leaders and network affiliates and will be censoring an upcoming concert special which included scenes of Madonna on a cross.

It's a rather pathetic decision, given NBC's persistence in outbidding CBS in a near-record licensing fee to obtain the rights to Studio 60 on the Sunset Strip this season, a show which lambasts TV networks for caving to the pressure of the religious right. The show features "NBS", a TV network which institutes a policy of charging a 20% "cowardice fee" to advertisers who left under boycott pressure from the Christian right but then returned after the boycotted shows turned out to be successful (more on wikipedia).

I guess NBC is no NBS, and HBO will remain the place to be for content that may risk irking the Christian right.

And shame on Madonna for going along with the decision.. doesn't seem like something she would've done 15 years ago...

Saturday, October 21, 2006

A spectrum of complacency

I'm a little overwhelmed with my new job as a software development engineer. The project I'm working on is a huge platform in and of itself, and it can get really frustrating building a software platform and building software on the platform at the same time, because nothing will ever work right the first few tries.. and when changes are made to the platform, it causes a domino effect of other changes that must be made to accommodate.

Most of my software development experience isn't with Microsoft technologies (think C++, Perl, PHP, MySQL, bash/tcsh, Linux as opposed to C#, ASP, MS SQL, PowerShell, and Windows).

Most of my software development experience has also been working on smaller projects in college or small consulting/hobby gigs. Building scalable enterprise server software is certainly a different beast.

So, it's been overwhelming and brain-draining, but at the same time incredibly exciting and educational. Some days I think to myself, "What did I get myself into? Am I really good enough for this?" Then I look back at all the jobs I've ever had, and realize that every great one had me thinking that same exact thing for the entire first 4-6 weeks.

Great jobs take you out of the complacent end of the spectrum and drop you into the overwhelmed end. I suspect there's some ever-challenging, constantly-evolving job out there that keeps one from slipping too far into complacency, but I've yet to experience one myself. My observation is that as people get better at and more accustomed to what they do, it becomes less challenging, exciting, interesting, motivating, educational - until they switch or re-invent their role (or unless they are constantly re-inventing and truly on the lookout for challenge and change, which might require a truly special role and organization).

So for now, I find myself "drinking from the firehose" again (that's some official Microsoft HR lingo for ya).

Anyway, enough work talk. Here are some cool things I've clipped over the week and thought cool to share:

This Sony Bravia ad featuring massive paint explosions is awesome - taking a whopping 10 days and 250 people to film.

Apple shipped new iPods with a Windows virus. Instead of simply owning the mistake, they place blame on Microsoft and Apple's "contract manufacturers". This blew my mind. Even the Microsoft-hating Slashdot crowd saw through it in their comments.

Paul Graham has written a new essay entitled The 18 Mistakes That Kill Startups. It looks yummy, and I plan to read it this weekend.

I'm pondering buying this Day Of The Week clock for my office.

Have a great weekend!

Saturday, October 14, 2006

My MP3 Collection: Then and Now

I'm more or less a product of the digital revolution. I feel lame even using such a phrase today, but it was trendy during my tween years in the mid 90s (around the time Wired magazine launched), so let's just go with it. Back then, digitizing music was all the rage. I remember ripping my cds and burning mixes onto thick gold/green CDs after buying a 1x Smart and Friendly CD recorder. I remember crossing my fingers while burning discs hoping that the CDR buffer wouldn't fill up, requiring me to start all over again with a new $1 CD. I remember how the CDs wouldn't play in my car, or most other audio CD players.. but I didn't really care because burning my own CDs was just so damn cool.

Around the same time, I began growing my digital music collection. Local bulletin board systems, and later the web, ftp sites, irc, Napster, and other channels provided an unlimited amount of music, available for download for free. After amassing tens of gigabytes of MP3s, and later hundreds of gigabytes of MP3s (I stopped before it became terabytes of MP3s), I'd take my hard drive, or sometimes my entire computer, over to a friend's place or to a LAN party, and we'd swap.. doubling, or sometimes tripling or quadrupling our music collections.

The amount of music you had on your computer equated to how hardcore you were in most geek circles. But at the end of the day, it was a bit silly, because I never really listened to most of the music I had on my computers. And when I did, it was a really bad experience, because there were tens of thousands of songs, and they were never quite organized. This got a little better with the introduction of MP3 ID tags, which allowed each file to be tagged with some metadata such as the artist, album, song name, etc. But of course, these were never correct or consistent across tens of thousands of songs. People would use (and still do use) tools to try to fix the tags in bulk, and in the process would often screw them up further. It'd be impossible to queue up all of my Alanis Morissette songs, because the artist tag for each song would spell Alanis and Morissette differently.

But, we all still put up with this, and most people I've talked to from my generation still put up with it. Why? Because having amassed so much music is just so damn cool, and because it was all free (nevermind the time and stress required to organize or build playlists when listening to it)!

But in the last few months, the way I listen to music and manage my music collection has completely changed. I signed up for an URGE subscription, and after realizing I could now download and stream unlimited music, at home or at work, and listen to it on my iriver clix whenever I want wherever I go, I decided to delete the tens of thousands of songs I had amassed over the years off my computers.

The new way I manage my music goes something like this...

When I hear about some cool new artist or band (from a friend, a magazine, a web site, URGE recommendations, etc), I go check them out on URGE, and stream one of their highest rated songs (URGE has community ratings). If I like it, I just download 2-3 songs (or if I REALLY love it, I download all of their albums). I do this a couple times a week, and then sync up my iriver clix. I then take my clix with me in the car and to the gym, and listen to a hodgepodge of the music - sometimes by album, artist, genre, etc. When I really like a song, I rate it on my clix. When I sync back up my clix next time, the ratings make it back to my computer.

Every now and then, when I'm bored, I'll look at all the stuff I've rated really highly, and go download more songs from the same artists (or even the same record labels for indie and foreign music!), or I'll delete the stuff I've rated really lowly. Sometimes I'll use Windows Media Player or my clix to just play an ad-hoc playlist of my highest rated songs.

I've found since doing this, my music collection is fresher, more fun to listen to, and easier to manage and just generally enjoy. And, it takes up less space!

Most people I've talked to my age who grew up ripping and trading music are reluctant to subscribe to a service for $10-$15/month and get unlimited music because they can only play the music for as long as they subscribe. But $10-$15/month is less than the price of 1 CD, and I download 10-20 CDs of new music a month now (something I never did before, or thought I'd even be interested in doing). The biggest complaint among my friends who use services like the iTunes music store is that they've sunk huge amounts of money into buying songs that they can only pay in iTunes and on their iPods. So they continue to sink more and more money into it, which seems counter-intuitive, but I suppose is actually right in-line with human nature (like gamblers who keep sinking more money as their losses grow). With services like URGE, you can walk away and try a new service any time. I might buy a Zune when they come out, and if I decide to stop using my clix and URGE in favor of my Zune and the Zune Marketplace, I won't feel too bad cancelling a subscription versus not being able to play hundreds or thousands of sunk dollars of iTunes or PlaysForSure downloaded music on it.

Wrapping up my thoughts... it's no longer about how much music one has amassed (in fact, I long ago threw out all the CD cases I used to display prominently on bookshelves). It's about having fresh, personalized, and easily- and well-organized music at your fingertips whenever/wherever you want it, and not being locked in to any service or medium.

There's also still a ways to go in this area. I'd love for the personalization of my music (explicit and implicit ratings, recommendations, etc) to be available everywhere/anytime too via server-side storage and APIs so I could post lists on my blog. I'd love to be able to note down a band on the fly (say, using my Smartphone), and then be reminded to check out their music next time I was online at home or at work. I'd love to be able to instantly share a song I love with a friend so they can check it out (Zune is banking on this feature). I'd love to be able to play my URGE subscription music in my living room on my Xbox 360.

Have you found creative ways to explore and manage music? I'm interested in hearing about them.. Are you still stuck in the "I've got a terabyte of MP3s on my raid array" mentality? Why?

Monday, October 02, 2006

On Fasting...

One of the most intriguing things I've come across in my diverse work environment is the practice of fasting. Sometimes, I'll stop by someone's office and ask him or her if they want to grab some lunch, and they'll be like, "i can't eat today", or "sorry, it's Monday".

At first this perplexed me, but by now I've just gotten used to it. It turns out that a lot of people fast for a lot of reasons. We don't see it in our everday lives here very often, but it goes on.. and it's quite interesting.

Today is Yom Kippur, the holiest day of the year for Jews. I decided to fast - for a few reasons - but partly because it's been a long time since I've experienced 25 hours without food or water, and it was something I wanted to experience again.

Anyhow, while I don't quite feel like digging into all of the places my mind has taken me throughout my fast right here on my blog, I do suggest you try fasting too. It's quite interesting and important to experience what it feels like to be hungry, and it brings a clarity of mind that I don't remember being able to regularly achieve.

Tuesday, September 26, 2006

Byebye PM, Hello Dev!

A couple of months ago, I was driving home from the office on a Saturday afternoon, when I realized it was time to make a change at work. I've been lucky to work on a great product with a great team. People will often say that before they leave a product and team, but I really mean it. And so, I knew it wasn't the product or team that had to change, but rather my role working on that product with that team.

In short, I was beginning to become complacent. I felt my job was important, and that I was doing well with it (though by no means have I learned all there is to learn about it nor would I claim to be the best at it!), but the passion and the challenge were beginning to fade. The first half of my almost year and a half as a Program Manager was spent planning and designing software features. The second half was spent leading feature teams to deliver software features and working closely with customers and partners.

But the one thing I found myself missing... the thing I went to school to learn and did in small doses all through college... and regularly did at night while spending the day as a PM... was actually developing the software - creating something out of nothing.. creating software in Visual Studio, not software specifications in Microsoft Word. The more I began to realize I was missing it, the more I began to resent every moment I spent working on an Excel spreadsheet or a Powerpoint presentation. To test the waters, I began to write code here and there, providing tools to fill gaps in the early pre-Beta versions of the product I've been working on. Suddenly, I remembered what it felt like to look at the clock after 5pm and think to myself "gee, where did the day go?".

Eventually, I discussed these feelings with the management on my team, and they were incredibly supportive. Just several weeks later... it's official that I'll be resigning my Program Manager hat and replacing it with a shiny new Software Development Engineer one (at least, it looks shiny from here).

A whole bunch of thoughts have been going through my head lately. I've formed some strong opinions about the Program Management role, having worked with several hundred PMs in my time thus far. I'm a little bit nervous about my new role, though I've always felt that if one doesn't think to himself "Oh f***, I'm in way over my head" after the first week at a new job, it's probably not a challenging enough job. I think there's a steep learning curve ahead of me, and I hope that once I conquer it, I'll still feel as passionate, challenged, and engaged as ever.


(Oh, and as a quick aside.. because I can't resist throwing this in here.. I got my hands on a Zune for the first time today, and it's REALLY REALLY SEXY. I don't think I'll be able to resist buying one of these babies..)

Wednesday, September 20, 2006

White & Nerdy

The new Wierd Al song/video White & Nerdy is awesome.

Unfortunately, its leakage to YouTube ruined Weird Al's exclusive world premiere on AOL.

It seems for every copy that gets taken down, 30 new ones are posted to YouTube (some of these are spoofs).

Given the reality of the fact that far more people (like me - and probably now you) will have ended up seeing this video on YouTube than on some exclusive AOL premeiere, it's lame that artists and labels are still sicking the RIAA on sites like YouTube rather than embracing them and figuring out how to adapt their business models to best leverage them.

Tuesday, September 19, 2006

Recommendations: Stocks/Finance/Investment tracking sites

Can anyone recommend a web site I can use to track both investments I've made and investments I may be interested in making?

I don't have a long list of requirements, but supporting individual stocks on foreign exchanges is key (i.e. Lenovo: 0992.HK, HTC: 2498.TW). This requirement alone seems to rule out SocialPicks, Google Finance, and MSN Money (Google will show the stock info but not support adding it to a portfolio).

Yahoo Finance is the only one I've found that supports adding such stocks to a portfolio for tracking, but the design is rather stale, boring, and just not fun to use.

I'm not looking for a brokerage site, paid service, rich client software, or a sidebar/dashboard/portal gadget/widget (unless it's so cool I can't afford to not check it out).

Any recommendations? :-)

Sunday, September 17, 2006

Sexy Cingular 3125 In Stores Now!

The HTC Star Trek is now available from Cingular as the Cingular 3125 for $150.

Here are some videos. It looks like Cingular chose battery life over slimness. Not sure yet whether I'm a fan of that decision because I haven't seen the Cingular version in person. Still looks cool in the video next to the RAZR though.

Saturday, September 16, 2006


Lately, I've noticed a lot more buzz than ever before around location based services. The term seems to have been coined, and patents started flying heavily, sometime between 1995 and 2001. But at the time, the web, the phones, and the operator infrastructures just weren't where they needed to be to bring most of these services to life.

It looks like that is starting to change. The broad umbrella of "location based services" has been re-invented (aka web 2.0ified) as "location aware software", "mobile social software", etc.

The latest promising addition to the scene is Loopt, a service available to boost mobile subscribers (sidenote, has anyone ever actually met a boost mobile subscriber??).

Loopt is the first service I've seen that brings a lot of what a few friends and I explored and prototyped in college (and a mobile application of the same technology shortly thereafter) to life as a commercially available offering.

It looks pretty neat. Some features include:

- Show yourself and your friends on a map
- Get alerts when friends are nearby
- Send messages to friends and groups of friends
- Manage your profile and upload pictures from your phone
- Tag places and create events

From the Loopt "about" page:

Loopt was founded in June 2005 by friends from Stanford and MIT. The friends, all computer science majors in college, needed a better way to manage their devastating social lives. As such, the team used emerging mobile and web technologies to develop a new way to connect to the friends, events and places around them.

Loopt has outgrown its dorm room beginnings and now resides in its very own building in sunny Palo Alto, CA. Backed by Sequoia Capital and New Enterprise Associates, Loopt aims to improve the way friends communicate and connect with each other and the world around them.

Very cool.

I'm still not certain the mobile landscape is where it needs to be in order to propel an application like this into the mainstream. In fact, you would be hard pressed to find any succesful mobile application or service, relative to their non-mobile equivalents.

But, that's certain to change, and I wish Loopt the best of luck.

How to Achieve Preferred Employer Status

A checklist from Jack and Suzy Welch:

1. Preferred employers demonstrate a real commitment to continuous learning. No lip service. These companies invest in the development of their people through classes, training programs, and off-site experiences, all sending the message that the organization is eager to facilitate a steady path to personal growth.

2. Preferred employers are meritocracies. Pay and promotions are tightly linked to performance, and rigorous appraisal systems consistently make people aware of where they stand. As at every company, the people you know and the school you went to might help get you in the door. But after that, it's all about results. Now, why does all this make a company a preferred employer? Very simply, because people with brains, self-confidence, and competitive spirit are always attracted to such environments.

3. Preferred employers not only allow people to take risks but also celebrate those who do. And they don't shoot those who try but fail. As with meritocracies, a culture of risk-taking attracts exactly the kind of creative, bold employees companies want and need in a global marketplace where innovation is the single best defense against unrelenting cost competition.

4. Preferred employers understand that what is good for society is also good for business. Gender, race, and nationality are never limitations; everyone's ideas matter. Preferred employers are diverse and global in their outlook and environmentally sensitive in their practices. They offer flexibility in work schedules to those who earn it with performance. In a word, preferred companies are enlightened.

5. Preferred employers keep their hiring standards tight. They make candidates work hard to join the ranks by meeting strict criteria that center around intelligence and previous experience and by undergoing an arduous interview process. Admittedly, this factor is somewhat of a catch-22 since it's difficult to be picky before you become an employer of choice. But it's worth the effort. Talent has an uncanny way of attracting other talent.

6. Preferred companies are profitable and growing. A rising stock price is a hiring and retention magnet. But beyond that, only thriving companies can promise you a future with career mobility and the potential of increased financial rewards. Indeed, one of the most intoxicating things a company can say to a potential employee is: "Join us for the ride of your life."

How does the company you work for measure up?

Tuesday, September 12, 2006

Headed Towards Burnout

For about a week I've been working 12-14 hour days, eating poorly, not going to the gym or practicing yoga, and with the exception of jetting down to LA for a hectic weekend of sister wedding activities, certainly not doing anything social.

My DVR is filled up with TV shows I don't have time to watch, and the pile of half-read books on my desk is slowly growing to human height level. I've got 500 megabytes of wedding photos sitting on my cell phone waiting to be uploaded, and starred Gmail messages numbering in the double-digits from friends and family awaiting replies (not to mention over 350 blog posts I've yet to read and several thousand work emails to browse).

I guess I'm experiencing what Paul Graham calls Good Procrastination.

(As a sidenote, I printed out and read through about half of Graham's essays on my flight back to Seattle, and I must say I'm thoroughly impressed.)

I can feel the burnout coming on, and I'm not really sure why I'm doing it to myself. There is a big milestone coming up at work, but I think beyond that I've just felt a need lately to get back in touch with my inner computer nerd. Perhaps this is a precursor to more significant things to come.

Saturday, September 02, 2006

43 Places, Things, People, and more...

I've spent the last 4 hours playing with 43 Places, 43 Things, 43 People, All Consuming, and Lists of Bests, and I'm thoroughly impressed!

On the right side of my blog's homepage, I keep big lists of stuff I read/watch/listen to/take pics of. It's a real pain to maintain, and so I love the idea of easily managing a whole bunch of information in a structured way, and interacting with it in a bunch of different ways and in different contexts for a bunch of different purposes.

Today, I keep information all over the place. I keep a few dozen books I'm planning to read in my wishlist (and those I've already read on my bookshelf, which get limited exposure). I've rated hundreds of movies in my Netflix account, which only my 2 Netflix friends see.

And then of course there are a whole bunch of places like restaurants I've loved or hated stored away somewhere in the back of my mind (of course, I can't ever seem to think of any when looking for that perfect place to make some dinner reservations).

These are just the tip of the scenario icebergs being nailed by The Robot Co-op (the ~7 guys down the street from me who run the sites, with funding from

Anyway, as I visit more cool places and do cool things, I plan on using these sites to track them (as well as places and things I haven't, but want to do!). Check my 43 People page or RSS feed if you want to keep up.

As for All Consuming and Lists of Bests, I love the concept, but they're new, and I couldn't get them to do everything I needed just yet. So, not quite ready to move over my book, movie, and other lists. But hopefully soon (this subject probably deserves a more thought-out post of its own).

As a sidenote, it's a rare occurrence lately that I find something so profound/original/promising (albeit not new) that I spend 4 hours playing with it on a Saturday night (and countless more hours thinking about it over the next weeks no doubt). Because there's no killer app or integration deals here yet, these sites are way under-hyped, leaving a lot of room to throw new ideas against the wall and see what sticks.

That's all for now. I'm completely scatterbrained, in part because I seem to have forgotten to eat since breakfast 10 hours ago. Oops.

Wednesday, August 30, 2006

XNA: The Best Microsoft TLA Yet...

As of today, you can download XNA and build your own Xbox games.

Only the Xbox team would have the balls to give their public development framework such a cool name (XNA is a recursive acronym for XNA's Not Acronymed).

Down with TLAs!!

Tuesday, August 29, 2006

Morgan Spurlock's 30 Days On FX

I love Morgan Spurlock's new show 30 Days on FX.

The show takes people outside of their comfort zones and follows their experiences over the course of 30 days.

So far this season:

- A staunch anti-illegal immigration Minutemen volunteer lives with a family who migrated to the US illegally

- An ex-Morgan Stanley computer programmer who was forced to train Indians to do his job and was then fired when his position was outsourced to India lives in Bangalore with a family who works in a telemarketing call center.

- A feminist and staunchly pro-choice woman who works at an abortion clinic lives in a Christian, pro-life maternity home.

The series is from the same writer/director/actor as the awesome movie Super Size Me. I highly recommend checking it out.

Wednesday, August 16, 2006

Math is hard.

Today, my coworkers and I were talking about math, physics, chemistry, and the science of food over lunch.

These images my coworker passed along made me bust out laughing...

I promise, no more "stuff adam thinks is funny" posts for awhile...

OMFG: Philips Bodygroom

This interactive Philips Bodygroom ad is the most hilarious and shocking thing I've seen on the web in a long time.

It's even funnier than those tv shows about racy foreign commercials.

Go Philips and Norelco!

(Thanks Liu Shinshun for the link!)

Saturday, August 12, 2006

The Construction Worker and The Architect

I just began reading Programming Pearls, a book I bought almost 2 years ago after seeing it on a recommended reading list Microsoft sent me after I'd accepted their job offer.

I've been reading and working through the problems in one chapter every day. It's incredibly engaging and fun - a cross between my old computer science exams in college and a more challenging version of those puzzle books I used to pick up at airport news stands as a kid (ok, I admit.. I still pick them up sometimes).

I feel that I'm at the tail end of a generation of computer programmers who were able to witness a paradigm shift in software programming. The first programming languages I learned were gwbasic/qbasic/Batch programming (cool! I can make a computer do stuff!), followed by Pascal and C (needed to mod my bbs!), C++ (high school AP and college classes), Perl/PHP/bash/tcsh (cool! I can make computers do even more stuff super-quickly and build web-apps!) and finally C# (project work during senior year of college, and Microsoft-land).

The paradigm shift I'm referring to though is mainly tied to the decrease in the amount of knowledge required to make a computer "do stuff". With the introduction of simpler languages like Visual Basic, and frameworks like .NET, 80% of the programming ability that was once required to build and end-to-end solution is no longer necessary (I've used Microsoft-centric examples here, but this is undoubtedly a platform-independent phenomenon that pre-dates both VB and .NET).

Even the most complex of operations continue to become simpler. Let's look at 2 examples I stumbled upon recently...

Example 1: Sorting an Array of User Defined Objects

Let's say you have an array containing username strings. Once upon a time, you, the programmer, would write your own sorting function if you wanted to order these strings. Modern programming frameworks have built-in functions to sort arrays of strings, and you don't need to know a single thing about sorting algorithms.

Okay, so now let's say you've created an object (i.e. a struct, class) to represent a "user". It contains a username string, and a whole bunch of other information like a full name and email address. In the not so distant past, you, the programmer, would write your own sorting function if you wanted to order these user-defined user objects (because the programming framework did not know how to sort your object (should they be sorted by username, by full name, by email address?). Modern programming frameworks allow you to implement a comparison function (i.e. IComparable.CompareTo(), which will be used by the framework's built-in sorting functions to sort your user-defined object.

Example 2: Multithreaded Windows Forms Programming

It used to be the case that if you wanted to build even the simplest Windows Forms application that did something time-consuming in the background without locking up your UI, you needed to master the art syntax of making asynchronous calls with delegates and callbacks. With the introduction of the new BackgroundWorker component in .NET 2.0, it's pretty easy to build simple multi-threaded WinForms applications.

So, getting back to my point here, 80% of what once required significant programming ability (i.e. ability to devise a sorting algorithm), now requires significant programming framework domain knowledge instead - something which, in my opinion, is much easier to teach and learn (and it is now probably most of what is taught and learned at trade schools and training classes).

So what about the other 20%?

I believe that this is where the true value of a software engineer still lies - along the lines of the Pareto principle - where 80% of value is brought by 20% of resources. Lots of people out there have the knowledge and tools to be a construction worker, but how many can architect a skyscraper?

At The University of Michigan, I spent 4 years studying Computer Science, and learned nothing about Visual Studio, C#, .NET, or many other skills required to function as a Windows software developer today. In their place, I learned about propositional and predicate logic, set theory, function and relations, growth of functions and asymptotic notation, combinatorics and graph theory, discrete probability theory, techniques and algorithm development and effective programming, top-down analysis, structured programming, testing, program correctness, program language syntax and static and runtime semantics, scope, procedure instantiation, recursion, abstract data types, parameter passing methods, structured data types, pointers, linked data structures, stacks, queues, arrays, records, trees, algorithm analysis and O-notation, priority queues, hash tables, binary trees, search trees, balanced trees and graphs, searching and sorting algorithms, recursive algorithms, basic graph algorithms, greedy algorithms, divide and conquer strategy, instructions executed by a processor and how to use these instructions in simple assembly-language programs, stored-program concept, datapath and control for multiple implementations of a processor, performance evaluation, pipelining, caches, virtual memory, input/output, finite automata, regular languages, pushdown automata, context-free languages, Turing machines, recursive languages and functions, computational complexity, database design, integrity, normalization, access methods, query optimization, transaction management and concurrency control and recovery, and much much more.

Getting back to the paradigm shift... I think the short of it is that abstracting out most of the underlying knowledge and ability to engineer great software is a great thing - especially for professionals who view "software engineering" as a means to an end, rather than the end itself.

But for those out there who are looking to engineer truly original, scalable, and otherwise high quality software, Programming Pearls is reminding me so far that a great set of tools, and knowledge about those tools, can't replace an underlying depth and breadth of knowledge and ability of a true computer scientist.

I'd highly recommend every software developer reading this blog check out the book...

The Design of Everyday Things

Let it be known that I am a very gentle book critic. I'm humbled by the wealth of information out there. I expect that I still have a lot to learn from a lot of people on a lot of subjects, and if I can pick up a book and learn even just a few new things, I'm satisfied. If the book is engaging, if I learn many new things, well, that's all bonus. You can see a list of books I've liked on the right-hand side of my blog - most of which I've given positive reviews at some point on this blog.

As gentle of a critic as I generally am, I must say that The Design of Everyday Things (I won't even link to this book's page) was a huge disappointment.

Originally entitled "The Psychology of Everyday Things", it was later renamed to sell more copies. Since the time I picked it up at the book store about a month ago, it also seems to have gotten a Web 2.0-ified new cover...

Old cover

New cover

Author, and "expert" on all things "design"

The way this book read was as follows.. the author seemed to have a huge pet peeve, bordering on obsession, with everyday things that were not designed with their intuitive factor trumping all other factors (physical appeal, price, etc). The chapters are a succession of rants, calling out widely-known problems (VCRs are hard to work, rows of light switches are confusing), and providing less-than-creative-or-optimal solutions (add an on-screen display for the VCR, mount a custom-made switchbox on the wall that looks like the map of a room - right - elegant).

The author rants about a panel of flush cabinets (which, let's say one would open by pushing to pop out or by grasping the bottom and pulling) because there is no visual indicator (i.e. a big bulky handle!) as to how to open them.

I completely agree that things should be intuitive to use. I shouldn't have to learn how to open a cabinet. That said, intuitive shouldn't necessarily trump beauty, cost, or any other factor. I don't mind taking a second to think about how to open my kitchen cabinets for the first time if they are beautiful kitchen cabinets.

Rarely is a good solution "either intuitive or elegant | simple | beautiful | inexpensive".

Unfortunately, I didn't learn anything useful from The Design of Everyday Things. I didn't learn how to design things better - just that "things should be intuitive to use" - duh. I hardly enjoyed reading several hundred pages of rants on the subject. I think the book is marketed extremely well, and that the name is quite deceiving. Most namely, while there is a science to design, the act of designing great things also involves some level of creativity and ingenuity - something I felt was passed over by this book.

Before wrapping up this rant, I'd like to provide an example of an elegant everyday-thing design - the Trofé mug from IKEA (by way of Apartment Therapy LA):

I own 4 of these 50 cent mugs. The small notch at the base allows the water to escape while drying upside down in my dishwasher.

Simple, elegant everyday-thing - one you won't learn how to design by reading a book (or not this book, at least).

Saturday, August 05, 2006

A Gray Twilight

A quote I came across at the beginning of the 5th chapter of Built to Last...

Far better to dare mighty things, to win glorious triumphs, even though checkered by failure, than to take rank with those poor spirits who neither enjoy much nor suffer much, because they live in the gray twilight that knows not victory, nor defeat.

Theodore Roosevelt, 1899

When you read this quote, how does it resonate with you?

Have you dared mighty things? Experienced glorious triumphs? Are your winnings checkered by failure? Or... are you living in the gray twilight?

The biggest risk I've taken in my professional life was dropping out after 1 year of college at age 19 to work at a startup in Silicon Valley in 2000 (and in the process, turning down a comparable offer from rising dot com star Excite@Home, which tanked shortly thereafter). The second biggest risk I've taken was later walking away from that job (and my 21-year-old $82,500 salary) to go back and finish school (the startup tanked shortly thereafter).

I went to work on this beautiful Saturday morning. The hallways were silent and dark - far different than the overcrowded EECS computer labs in college or the large, open engineering workspace at the Valley startup. I looked around for someone to get lunch with, and quickly realized it wasn't gonna happen. So I went to the Teriyaki restaurant around the corner, next to the big company that employees 30,000+ locally, and sat in the empty restaurant, eating alone.

The biggest risk I've taken in the last 15 months has been deciding in which funds to invest my 401K. How about you?

Saturday, July 29, 2006

Next Generation Travel Tools

A few relatively recent discoveries in the travel department...

Farecast is a site that predicts future trends in airfare prices. So, let's say for example you know you're flying to Los Angeles in early September for your sister's wedding. Do you buy your ticket now, or do you wait a week or two to see if prices drop? But what if they rise?

Enter Farecast, which will tell you whether to buy or wait based on predictive models. This falls right in line with my thoughts on the power of research noted in my previous blog post - Farecast was pioneered by a professor at the University of Washington, and is clearly the product of significant research efforts. Oh, and before I forget, they have a blog too.

Kayak is another travel site worth a look. They provide a quite simple yet robust interface for searching for flights, and pull their data from a large number of other travel sites. Great one-stop shop for finding great deals.

Perhaps the coolest feature of Kayak is Kayak Buzz, which lets you search by region, month, and price (and a whole lot more), rather than the traditional search by destination city. For example, here are flights in December 2006 to Asia for under $1500. I'm definitely going to use this when planning my next vacation!

People talk about how the web revolutionized certain industries - Orbitz, for example, is notable for revolutionizing the travel industry by elinating most needs for brick and mortal travel agents. It's interesting to see how these next-gen sites are busting out and revolutionizing their predecessors like Orbitz.

Thursday, July 27, 2006


Haven't been engaged in blogging much lately.. not sure whether it's just a lack of interest, or work exhaustion, or my newfound addiction to Call of Duty 2 capture the flag on Xbox Live.

I've realized lately that my COD 2 games have become quite a bit more fun. Somehow, I've been getting matched up with much better players that are at or around my skill level.

When you play in ranked COD 2 games on Xbox Live, there's a short blurb in the game about playing in ranked matches improving your "TrueSkill" score. Never having heard of it, I did a quick web search, and found a Microsoft Research project page! says it best:

Half the fun is the game you play.
The other half is who you play with.

Totally 100% true.

I've come to realize that Microsoft Research (MSR) is in many ways one of Microsoft's greatest secret weapons. Trails of their work are found throughout Microsoft products everywhere - from Xbox to Office.

Recently, I've begun chatting with folks over there about incorporating some of their bleeding edge technology into the product I'm working on -- how many companies have such a resource at their disposal? A huge amount of their work is also published publicly on the web. If you've never browsed the MSR site, I'd definitely recommend checking it out - there are thousands and thousands of projects and papers posted just like the TrueSkill one above!

Sunday, July 23, 2006

Another New Experience

Over the weekend I flew up to Orcas Island in a 1981 Cessna Skyhawk with a pilot friend.

I took lots of pictures from the air.

I also took a video of our first take-off, and uploaded it to Google Video:


MySpace is down, play pacman instead...

I went to myspace to read a new message someone sent me.. but it's down..

I think their chill attitude rocks.. "hopefully we'll be back online within the hour. its 6:40pm PST now. wanna place a bet? -Tom"..

Well, it's 9:40pm.. I guess Tom loses.. but at least they let me play pacman while I wait.

Myspace is the most viewed site on the Internet - above Yahoo, Google, and MSN. A whopping 4.46% of all US Internet visits during the first week of this month were to Myspace (according to Hitwise).

And despite that.. they still front the chill attitude - "hey bro, power's out.. play some pacman while we get it working aiiight?"

Wednesday, July 19, 2006

HTC Star Trek Lands

It's been a long time coming... but I'm just finally beginning to see HTC Star Trek phones appearing in coworkers hands and work.

I'd say this is officially the coolest phone to have today in Redmond, WA.

You can read a review here.

It'll still be a little while before the US mobile operators pick these babies up, but if you're itching to be on the cutting edge, you can pick an unlocked Qtek-branded model up here.

Sunday, July 16, 2006

Photo Highlights From Israel - July 2006

Funny billboard ad in New York City


Microsoft building in Herzliya


Projector in a fancy restaurant usually for projecting artistic images - but tonight world cup soccer


Israeli Navy graduation ceremony




Saint John's church


Starting young


Dome of the Rock


Western Wall


Inside the Church of the Holy Sepulchre


The hike down from Masada


Atop Masada


Floating in the Dead Sea


McDonalds at an Oasis in the middle of the desert


Jeep excursion


Israel/Jordan border crossing


Hanging new pictures of the King


The ancient city of Petra


Camel drinking Coca Cola and water







Why aren't we smart enough to do this in the US