Saturday, July 23, 2005

Not From California

Posted by Phil Aaronson at 10:16 AM

On my way home from a morning bike ride, I was rolling through downtown Palo Alto. There was a fair amount of traffic. Cars were vying for parking spaces to get to the farmers market. Up ahead of me was this little elderly lady riding a bike, wearing a big brimmed hat. Her bike's baskets were overflowing with produce. To me, she looked like a picture from France.

As I pulled even with her I wished her good morning. She reciprocated in a thick British accent. Ok, so not a picture from France. From England then. But I had to smile. The scene made sense at last. She wasn't from California after all.

Friday, July 22, 2005

Wedge No More

Posted by Phil Aaronson at 5:42 PM

Before landing my latest gig, I spent about nine months coding on my own. Occasionally I'd get together for design meetings with a buddy, but day to day it was me and the computer. When you're flying solo and you get wedged on a problem, it can take an amazingly long time to un-wedge yourself. Its just plain nice to have another coder on the other side of the cube wall sometimes. You one person software shops out there, you have my complete and absolute respect.

Our php guy wedged himself good this week on marshaling and unmarshaling XML. Not that he was stuck, but he knew he was spending way too much of his time dealing with it. I did a quick example of how he might use XML-RPC in php 4. I grabbed this library and a did a quick example. It didn't amount to much more than:
   print "\nConvert to XML-RPC...\n";
$tmp = XMLRPC_prepare($myarray);
$tmp = XML_serialize($tmp);
print $tmp;

print "\nConvert back ...\n";
$tmp = XML_unserialize($tmp);
$newmyarray = XMLRPC_adjustValue($tmp);
var_dump($newmyarray);
Dead simple, but that was the point, show options. Just toss it out there. Let him reject it. I was thinking I should do the equivalent with say NuSOAP when another team member trumped me by showing off all the neat XML features in php 5. SimpleXML, I've got to say, looks like da bomb. An upgrade to php 5 is in the works. Wedge no more.

My My Web

Posted by Phil Aaronson at 11:55 AM

My Web 2.0 Beta
Last week I sat in on a talk about some of the algorithms behind the new My Web Beta (since this blog has been taking a tech slant lately, I better come clean: I work for Yahoo! but was not involved with My Web). Neat stuff, but all the reliance on tagging and saving of searches makes me worry about the real utility of this release. I raised a question along these lines in the Q&A after the talk. Still, its such a neat idea, I'm glad its been tossed over the wall if for no other reason than to get some feedback.

But really I'd like to see less reliance on the act of tagging and saving of URLs to MyWeb. A nice alternative way to capture the same information would be with meta-data that can be posted. Most blog posts are really about something the author found or read online. So it follows that there should be a way to capture the story behind the post if you will. Perhaps a browser plug-in could package up what amounts to a chunk of the history file plus search query strings in an XML doc? OPML? Let me do a little editing, and attach it to my blog entry, with the hope that anyone could browse through it, and search engines could pick this up and attribute the sources accordingly.

Couple this with a nice way to upload a subscribed news feeds from NetNewsWire and you've all the elements pulled together, but in a more open way. Better page ranking, because you've got the ability to track conceptual links in addition to literal links. And trust lists, that are managed actively by the user already. Trust in this case taking on the meaning: rank the links from certain blogs (and the subsequent degrees of separation) more heavily than any others.

All that said, I've got to hand it to the My Web team for pulling together a nice beta with some really neat concepts under the covers. I hope we're just seeing the tip of the iceberg.

Monday, July 18, 2005

One Product = Billion Words?

Posted by Phil Aaronson at 10:32 PM

Had a funny conversation today that ran along the lines of,
1 product = 1,000 demos
1 demo = 1,000 pictures.
1 picture = 1,000 words.
and so it must follow ...
1 product = 1,000,000,000 words.

Saturday, July 16, 2005

Babies Come, When Babies Come

Posted by Phil Aaronson at 8:42 AM

Had a quick reminder yesterday, that babies come when they're darn well good and ready. My wife went through some pretty intense contractions every three minutes or so, before things slowed down again around 9:30pm. Ultimately she went off to sleep. Fortunately we're doing a home birth, so all this coming and going was just fine. We're not going anywhere.

So we'll see what today brings.

Friday, July 15, 2005

Its Called Leadership

Posted by Phil Aaronson at 8:48 AM

Wired article, NASA Veteran Weighs In on Launch:
I would say that where the (Columbia Accident Investigation Board) report wrote of a "culture" problem, I would change that word to say a "leadership" problem. - Gene Kranz.

Thursday, July 14, 2005

STREAM On

Posted by Phil Aaronson at 9:06 PM

Jennifer Widom, a Stanford computer science professor came by and gave a fun talk/demo on Monday about her work with the STREAM group. There were a couple interesting aspects to the talk, the first was some of the data stream extensions that they've added to SQL, dubbing it CQL. The biggest change was in the FROM list, instead of just specifying a data source, its a source + a window of time. So you might say,
...
FROM tablename [Range 1 Day]
...
in order to specify over how much to operate on. There were other constructs, like specifying inserts and deletes which I unfortunately didn't quite grasp their real usefulness.

The really sexy stuff was the second part of the talk. Remember this is about data stream processing. You don't run a query and have it finish. Instead you register a query with the system and get either periodic updates or continuous results depending on what you asked for. New queries are merged in with the existing query plan in an optimal way. So if two queries require a particular join, its only done once for both of them before splitting off to their respective operators.

Unfortunately, this being research, they've focused on the sexy stuff, and swept a lot of the details under the rug. There were a number of questions about the inevitable overload of data, which the system pretty much drops it on the floor for the moment. But all in all, some very neat technology. Worth a look.

Ant Crash Course

Posted by Phil Aaronson at 12:45 PM

I guess I've been living under a rock for the past couple of years. I hadn't played with Ant. Ant is billed as a Java build tool, but its more flexible, and is easily extended. Forgive me, I'm not a Java guy.

One of my coworkers (thanks Paul!) clued me in recently. Everything I wanted a component I had just finished spec'ing to do, Ant could do better. So a few days last week turned into an Ant crash course. I plowed through the online manual, and then Ant: The Definitive Guide one right after each other. Which made for some interesting reading. Its sort of funny to put the two side by side, here's a bit from the exec core task ...

Quote from the online manual:
By default the return code of a <exec> is ignored; when you set failonerror="true" then any return code signaling failure (OS specific) causes the build to fail. Alternatively, you can set resultproperty to the name of a property and have it assigned to the result code (barring immutability, of course).
Quote from Ant: The Definitive Guide (from the second Edition):
By default the return code of an exec is ignored. However, if you set failonerror to true, then any OS-specific return code that indicates failure means the build will fail. ... You can set the resultproperty to the name of a property that will be assigned the return code for testing.
So anyway, while Ant: The Definitive Guide didn't make my most favorite technical book list, it does have some nice examples. But like the above sort of indicates, it doesn't cover too much territory beyond where the online (free) manual goes. And both leave a lot left unsaid.

Our project is pulling together a series of web service calls, parsing the resulting XML and so on. Nothing too shocking, but we wanted to be robust about it. To make an HTTP request in Ant, there's a really nice core task called "get" (don't fall out of your chair now). But I couldn't find documention on when exactly this task tosses a build exception (signals an error which might stop the script). Is it when it gets a 404 (file not found) error? When it can't connect? When? Digging around in the source code, it turns out it only tosses an error when the web server returns a 403 (authorization failed) code. But you had to dig in the source. Which isn't so bad, I suppose, at least I had access.

[Update: July 22] Interestingly Slashdot posted a mostly positive review of Ant: The Definitive Guide. Shows you what I know.

Monday, July 11, 2005

The iTunes Party

Posted by Phil Aaronson at 11:20 PM

Dave Winer, in what I hope is a tongue-in-cheek request wants Apple to enable an element he can put in his RSS feed so it won't work with iTunes. As a longtime Scripting News reader and listener, I know Dave loves it when developers party with users. As a listener-user, I'm enjoying the iTunes party. So where's the line then? Do users trump format? Or does format trump users? Or am I missing something.

I do hope Apple and the podcasting community come to some understanding. But meanwhile I've found myself reading some funny links. This one featured yesterday off of Scripting News had this quote in the upper right:
"Never moan. Do not be a victim. Either raise hell and change the game or get out of there." - Jack Welch
Which made me chuckle as I read that post. Both because that particular post was moaning, and because Dave's raising hell. Again.

Thursday, July 07, 2005

iCal and Spotlight

Posted by Phil Aaronson at 10:54 AM

iCal
iCal and Snapshot seem to have this love-hate relationship. Periodically, when my wife would add a new item to a calendar on her little 600MHz G3, 384Mb of RAM iBook, it would start paging badly. So badly the GUI would become unresponsive for twenty minutes or so. I finally had to add her ~/Library/Calendar directory to the list of "private" folders that Snapshot will not index, and that seems to have solved the problem for the moment.

New mail, no problem for Spotlight on her box. New calendar item ... well that's a horse of a different color!

Saturday, July 02, 2005

Le Tour

Posted by Phil Aaronson at 1:11 PM

Woke up early this morning and watched a bit of the first stage individual time trial before the kids got up and made that all but impossible. The tape was running (yes I'm one of the few without TiVo), so I didn't mind too much, but American time trial champion David Zabriskie had a minute over the next rider in an incredible effort when I had to turn it off. But none of the big names had gone yet.

OLN's coverage is pretty bad, but its getting better, or maybe I'm getting used to it. Here's a funny link on their website. Uh guys, that's LAST YEAR's rider list.

On my wish list of this year's tour: the yellow jersey changes hands eight or nine times, Chris Horner and/or Fred Rodriguez win a stage and Levi Leipheimer gets on the podium. I've seen them race at the local yokel races, so I've got to root for them. Fred Rodriguez used to train down at Hellyer Vellodrome just before the Wednesday night racing. This was years ago. I'd stand there in awe watching him rip off lap after lap. And of course I'll be rooting for Discovery Channel, and Lance, but that's different.

Oh yeah, definitely what I love about July.

More On Whipsaw

Posted by Phil Aaronson at 11:46 AM

The Daring Fireball article I mentioned in my last post brought out a couple questions I should have asked a long time ago about Whipsaw and their design process. A good friend of mine, Gerson Goldberg works
at Whipsaw, so I posed these to him in an email.

Was there a conscious focus on quality and simplicity [with the Carbon]? And how much of it was driven by Rio, and how much was driven by Whipsaw. When I read the quote, I wondered how much design quality Whipsaw has to sneak in under product managers screaming about timelines and price because you have your design firm's reputation at stake.

The Carbon looks pretty similar to the iPod. I'm thinking of some of the nice design elements, the shiny metal back, the similar round layout to the controlls. But some of the design flaws, in my opinion, come across as well. In particular, I'm thinking of the lack of controls on the top of the player for use when its in a belt clip. How much is the space constrained by the features of the iPod do you think?


Gerson Goldberg: As for how much we get to drive the design quality...with Rio, they have a very opinionated marketing and product management staff - all the way to the top. They are extremely involved in deciding upon the design details.

The best way to describe carbon is that it was Whipsaw's chance to take another look at the Rio Nitrus - the predecessor to Carbon. If you look at Nitrus, it was the first player to use the microdrive/cornice style 4 GB drive. While Whipsaw was a major driver in the suggestion to make a player in this class, in hindsight it was obvious that others would be developing a similar platform (Ipod mini came out soon thereafter). The goal for Nitrus was to be somewhat anti-ipod. The only element that it shares is the chrome back. However, the wedge shape, small form factor, and joystick style navigator were all elements that were an attempt to make something that was anything but ipod - I even remember some discussions regarding ditching the chrome back. The point being, Nitrus was not another ipod - it was smaller, sportier, and somewhat in a class by itself - for awhile anyway.

Carbon was an evolutionary step from Nitrus. The form for nitrus, while sleek, was somewhat unrefined. Carbon really put the icing on the cake. I would say the form analogy to a car is a good one. The ipod, much like a Rolls Royce, draws elegance from its form and judicious use of materials. The Carbon, much like an Aston Martin sports car - sporty, very fine details that make the form beautiful. Finally, the nitrus is more like an American sports car (say Corvette) - a cool general form to grab your attention, but not that much more interesting when you get up close. As for the change in control, feedback from users was the nipple-like joystick was not as intuitive as a D-Pad. The Dpad on nitrus, however, is developed around an ergonomic aesthetic, not so much a visual one. The result is a smaller, more organic device.

In the design community, there is very little interest in becoming a me-too player to apple. This field is mainly left to the non-inventive ODM firms that tend to pump out things that resemble the latest craze - remember all of the imac translucent stuff.

You hit the nail on the head that our firm's reputation is at stake. Designing a me-too device can be a killer.

Now for the lack of controls on top - we have tried and tried to get Rio to integrate belt clip features (be it in a holster, clip, what have you). Of course, those items cost more money - both development and production costs. The argument is to leave that functionality up to aftermarket hardware developers (ala Ipod). Well those don't exist at quite the same level for Rio products. Nonetheless, when it's not part of the upfront design objective, those types of features fall off the list in the development. This is where going beyond the PRD will actually hurt you - if we were to present the client with a design that works great with a belt clip that they won't pay for - that's a flawed design. A challenge would be to integrate those features without costing extra or compromising the primary interface.

Looking back, in many ways, we were able to work alongside Rio in helping to create a new product category (one that in hindsight would have developed anyway - but it hadn't at the time). In other ways, we also have to fill the product offering with the features defined by the client's marketing gurus.

One thing I know for sure - if Dan Harden feels that a company is making a bad call, he will aggressively encourage them to take a different course, many times diplomatically telling a CEO that he/she is making a bad call. This I feel is a differentiator for Whipsaw - you're not hiring a "yes man".