Archive for May, 2006

Recreate A Person’s Voice from Their Photograph

1

Apparently a Japanese acoustics expert is able to accurately construct a person’s voice by taking measurements of their face and hands, potentially from a photograph. He has reconstructed Mona Lisa and DaVinci’s voices here.

VMWare Ubuntu Image Root Password is “ubuntu”

4

It was surprisingly painful to find the root password for the Ubuntu image for vmware. It’s “ubuntu”. Note that Ubuntu linux doesn’t allow logging in as root, so you can’t “su”. Instead you do “sudo something”.

Simple Data Analysis with SQLite

0

Needed to do some very simple analysis, just beyond than what sed or awk would provide. Was about to break out python, but then I remembered the latest thing I’d installed, SQLite.

Installing SQLite is nice and easy. Download the dll and the executable (I’m using sqlitedll-3_3_4.zip and sqlite-3_3_4.zip). Create a directory (say sqlite3) and unzip the files in there. That’s it, now you have an sql database engine up and running.

To create your database instance:

sqlite3 test.sql3

where test.sql3 is the name of the database file you want to use or create. Note that you don’t have to do anything fancy to create the database, you can just start sqlite and it’s created for you. No user creation, permission setting, etc. It just works.

I had my input data as a text file. SQLite’s default field separator is “|”.

To import the data:

create table my_table (x string, y string);
.import test.txt my_table;

That’s it, now you have your data in your table and can query the data to your heart’s content via SQL. The rest was specific to what I needed to do, but you get the idea.

SQLite is quite nice for simple stuff like this where SQL is a convenient way of getting at the data. It’s nice to have a database that’s almost as easy to fire up as sed or awk. It implements most of SQL92 and has full APIs for a number of languages including Python, Perl, PHP, Tcl, and Ruby.

Update: Here’s how to import CSV into SQLite:

sqlite3.exe -separator , test.db

create table accounts ( accountid, nlistings );

.import ‘C:\path\to\the\csv\accounts.csv’ accounts

Appalling

0

This is appalling. Reportedly US marines shot 24 unarmed civilans including women and children over a period of 3 to 5 hours. From a 9 year old who lived throught it:

“I watched them shoot my grandfather, first in the chest and then in the head. Then they killed my granny.”

Then they shot her 9 year old brother and wounded her.

Best Chinese Food In Amsterdam: Si-Chuan

1

This place is on Warmoesstraat, near the red light district. We had dinner there twice. Both times excellent food, excellent service, very reasonable prices.
Si-Chuan Restaurant, Amsterdam

We tried the crisp chicken, schezuan beef, sweet and sour chicken, and a couple of other things and they were all good. Highly recommended.
Si-Chuan Chinese Restaurant, Amsterdam

Here’s the contact info:

Warmoesstraat 17, Dam, Amsterdam
Phone (020) 420 78 33

Iran World Cup Schedule

0

It’s almost here…. Iran’s World Cup schedule:

June 2006

Sun. 11 12:00 ET Mexico v Iran
Sat. 17 09:00 ET Portugal v Iran
Wed. 21 10:00 ET Iran v Angola

From ESPN.

Scaling Lessons From Amazon: SOA

0

Good read: ACM Queue’s interview with Werner Vogels, CTO of Amazon:

The first and foremost lesson is a meta-lesson: If applied, strict service orientation is an excellent technique to achieve isolation; you come to a level of ownership and control that was not seen before.

SOA, done correctly, means scale. People are always worried about latency (how long it takes to service a single request), but that can be managed. The ability to scale (how many requests can be handled at the same time) ends up being a huge win for SOA.

The development and operational process has greatly benefited from it as well. The services model has been a key enabler in creating teams that can innovate quickly with a strong customer focus. Each service has a team associated with it, and that team is completely responsible for the service—from scoping out the functionality, to architecting it, to building it, and operating it.

SOA also means wins in development. You establish agreement on interfaces and services and teams can develop independently, allowing you to divide-and-conquer to scale development.

Giving developers operational responsibilities has greatly enhanced the quality of the services, both from a customer and a technology point of view.

This is an interesting one. I don’t have first-hand experience with this in a large company (in a startup the developers are always operations and support anyway), but it sounds plausible.

Do we see that customers who develop applications using AWS care about REST or SOAP? Absolutely not! A small group of REST evangelists continue to use the Amazon Web Services numbers to drive that distinction, but we find that developers really just want to build their applications using the easiest toolkit they can find. They are not interested in what goes on the wire or how request URLs get constructed; they just want to build their applications.

Nice. I’ve used the Amazon REST vs. SOAP adoption numbers myself. I should probably stop doing that.

How do you test in an environment like Amazon? Do we build another Amazon.test somewhere, which has the same number of machines, the same number of data centers, the same number of customers, and the same data sets? … Testing in a very large-scale distributed setting is a major challenge.

Indeed. This is a tough problem. How do you test a very large system that’s essentially impossible to replicate?

Anyway, go read the whole thing, there are lots of lessons on building and running high scale applications in there.

XTech Observation: Entrepreneurism and Europe

0

Paul Graham’s keynote at XTech, How American Are Startups?, was an interesting take on a topic I hadn’t much thought about, namely how to replicate or improve on the silicon valley elsewhere.

He said some interesting and some controversial things. But he got me thinking about the differences between Europe and the US.

Here’s one that really stood out for me: when I was doing my own startup, I’d stake out the speakers from the larger companies and make sure I corner them and pitch them on what I’m up to. Now that I’m at Yahoo! I frequently get cornered and pitched. This is expected behavior, a good thing.

At XTech, nobody pursued or pitched me after my talk. Not a single person. And I’m at Yahoo.

Perhaps a reflection on the number of startups represented at XTech, or on the decorum and habits of European entrepreneurs. In any case, different.

Maybe I’ve lived in the US too long, but my advice is, pitch the speakers. Hell, pitch everybody. That’s one of the main reasons for going to a conference.

A Big Thanks to Yoono.com and Laurent Querel

0

I was in Amsterdam for XTech last week preparing for my talk when I realized I had left my laptop power adaptor in the US. Panic. A few hours left to the talk, lots of massaging of slides to do, and no power.

That’s when I ran into Laurent Querel, CTO of Yoono who happened to have the same laptop brand as me. He was kind enough to lend me his power adaptor for the whole day, despite not knowing anything about me other than my incoherent ramblings. He really saved me.

Laurent, much thanks for your kindness.

Off to XTech 2006 Tomorrow

0

I’m off to XTech 2006 tomorrow for my talk on Wednesday: XML, REST, and SOAP at Yahoo!. Hope to see you there.

AJAX Building Blocks: Yahoo UI Library

0

Yahoo has released an update of the Yahoo! UI Library. These are very nice widgets that you can assemble to build sophisticated AJAX sites.

The systematic approach and continued attention to these widgets is very interesting. Feels like the early days of the traditional (desktop) UI widget days. Fancy AJAX is going to become a lot simpler soon and having it will be default. I saw demos of two internal applications (limited audience) that had very nice AJAX interfaces in the past week.

I wonder what Web 2.0 will mean once everybody’s site is AJAX’d out.

Encouraging Inventor

1

Apparently I’m an encouraging inventor. I had always suspected as much…

Face Research: How to Prototype A Face

0

Take a look at Face research and their face prototyping methods. Very interesting, a way to average faces.

Here’s what the average professional rugby player looks like:

Prototype Professional Rugby Player

Via Rick Jelliffe.

Update: Did some more digging around, ran across some interesting sites. Check out Volker Blanz’s site, and take a look at his video. Looks like really fun stuff to play with research. Of course my graduate advisor was one of the original face recognition guys, so it’s hardly surprising I’m into this stuff.

What I Do For A Living

1

The New York Times has a writeup on the project I’ve been working on since I joined Yahoo. So does the Wall Street Journal. And let’s not forget MSNBC.

For everybody that keeps asking why I commute from San Diego to LA and San Jose instead of getting a job next to my house, here’s why: because it’s fun to compete with Google. And Microsoft. This is a fun space to be in right now.

Henke and Ku

FlickrDown: Download Flickr Photos to Your Site

2

Flickr is my site of choice for storing and presenting my photos on the Web. However, it’s blocked in several countries, including the one where my brother resides (UAE/Dubai), and some of my family reside (Iran). Hence, a little script to do a silly thing: download my flickr photos to my personal site so they can see them.

This is written in Python, makes use of the lovely flickr.py library, is basically a copy-paste of Uche’s excellent article, and is extremely simple and feature free. I’m making it available on the off-chance anyone else has a similar need. Here’s what the results look like.

Here is the script: flickrdown.py

Free Screencast Tool: Wink

2

Wink is a free tool for capturing screencasts. You fire it up, start recording, and it captures a movie of your desktop or window as you interact with it. It produces a flash file as output, making it very easy to share and publish on the web.

This is quite excellent, use it to capture tutorials and demos. I recommend it. Look at what a few screencasts did the for the Ruby On Rails folks ;-)