Archive for February, 2006

Podbop: Find And Listen to Local Concerts

0

Chris was telling me about Mashup Camp and how I should go to the next one. I started poking around and ran into Podbop, the winner of the camp. This thing is actually useful. You type in your city and get a list of bands playing there. Nothing earth shattering so far. But on the results page, right there in the brower, are sample songs from each of the bands. So it’s as simple as searching and pressing play on the results to find a band you want to go and see.

This thing is quite simple but provides much more value than a simple search or list would do. Nice. If I actually ever went out to see concerts I’d definitely use this.

Sun Matters Again? Scoring a Niagara.

1

I kept seeing Tim Bray’s posts on how nice the the Niagara servers are and kept ignoring them. He does, after all, work for Sun, so he does have a built-in bias.

Today I was reading Jonathan Schwartz’s blog, who definitely has a very Sun’y view of the world, but makes some good points. The issue of space and power consumption is becoming more and more important as upfront cost of hardware goes down and cost of energy goes up. A very practical issue facing big web companies is colo space – you can buy lots of boxes, but do you have enough rack space and power to house them? Andreessen also makes some good points, although the calculations are a bit shady as pointed out in the comments.

The surprise in all this is that Sun seems to be making some headway in mattering again despite the onslaught of x86 linux boxes.

Anyway, I got to thinking about the Sun Niagara loaner program and how nice it would be to replace the old (very old) box I’m hosting this blog on. It turns out I know some people at Sun, and that I am an influencer (yeah baby), so I may be able to score one of these boxes.
If I do, I’ll let you know how it goes. Strangely, I’m quite excited about the prospect of getting one of these.

Speaking at XTech 2006, SDSIC

0

Got the news this morning that my talk, “XML, REST, and SOAP at Yahoo!” was accepted to XTech 2006, coming up on May 16th-19th in Amsterdam. Excellent, really looking forward to this. Drop a comment if you’re going.

I’m also speaking this coming Monday the 27th at SDSIC on How to build an SOA in a heterogeneous environment, with Alex. Should be fun.

I’m becoming known as “Mr. Extreme Position” at work for consistently taking the extreme position in discussions. I’ll try to contain myself at both of these talks ;-)

Find Your Family In The States (and Italy)

0

This is pretty neat. The GENS-US project lets you find which states people with your surname live in. Here are the Darugars:

Darugars By State

I know the people in California and Georgia. Who’s in Florida, Texas, and Illinois? We have family living in Chicago? If you’re a Darugar (and not my immediate family ;-) leave a comment here.

SOAP Interop and the First Class Document

0

From Dare Obasanjo, following up on Mark Baker:

The main problem with WS-* interop is that vendors decided to treat it as a distributed object programming technology but based it on a data typing language (i.e. XSD) which does not map at all well with traditional object oriented programming languages. On the other hand, if you look at other XML-Web-Services-as distributed-objects technology like XML-RPC, you don’t see as many issues. This is because XML-RPC was meant to map cleanly to traditional object oriented programming languages.

Unfortunately I don’t see the situation improving anytime soon unless something drastic is done.

I agree, but I’d put it differently. The problem is people continue to use the data representation of their native programming language as the first class citizen and the interface (eg. WSDL) and invocation (eg. SOAP) as second-class artifacts. If you’re going to publish a contract and expect documents as invocation mechanisms, then the contract and the document are the first class citizens and the mapping to the native language’s data representation is the second class citizen. The fact that something in the WSDL/SOAP doesn’t map well to a particular programming language’s data representation is simply a bug in the implementation of that particular service/client, not a SOAP problem.

We’re not going to have much luck as long as we expect the mapping between native representation and SOAP representation to be magic when our mapping language is so poorly suited and so poorly implemented for such a task. Assume what you’re getting is an XML document and figure out how to pull what you need out of it. My take is, write XPath statements. It’s not that scary, just use a tool to get the XPath statements that pull your desired data and put it into your favorite data structure. Skip the whole magic mapping thing, it won’t work for you for a long time to come.

Update: Here’s Steve talking about the same thing:

  1. The misguided attempt to seamlessly map XML documents into local structures and method calls
  2. The doomed attempt to seamlessly map from local structures and method calls into XML documents

Canoeing the Colorado River

1

Excellent canoeing trip on the Colorado river last weekend, paddling 22 miles to the Hoover Dam and back. Went with Aztec Adventures of SDSU. The two guides, Dave and Trevor, were not only excellent guides and amazing chefs, they’re also incredibly nice guys. Really couldn’t imagine better guides.

Lunch at camp.

You start down river and paddle up towards the dam. We actually made it to the intended camp, 8 miles upriver, on the first day. Quite a surprise. I’m convinced we did it only because we didn’t know what we were getting ourselves into. There was a fairly swift current against us (an 8 out of 10 in terms of how strong it ever gets). We barely made it to the camp – it was getting dark and the current was getting very strong, both of which can end your progress.

You really want to try to get to this camp because there’s an excellent hot spring here. First thing after getting settled was to hit the hot spring and recover from the day’s physical abuse. Paddling 8 miles against the current is a tremendous amount of work if you’re a group of out of shape thirty-somethings. Actually it’s a lot of work regardless. Most groups go down stream.

The guides made an amazing camp (turns out the bottom of a canoe is flat and can be used as a long table) and cooked vegetarian chicken pot pie. We sat on our behinds and told off color jokes while they made us apple crisps. These guys are great.

The hot tip is this: From Las Vegas, get on the 93 towards Hoover Dam. Cross the Dam, look for mile marker 4. Shortly after the marker there will be a rest area / view point where you can park your car on the right. From there you can hike down to the hotspring and camp. I don’t know exactly how the hike is – we got there from the river. The other alternative, if you’re too lazy to paddle upstream (most tour groups are), you can start at the Dam and paddle downstream. The campsite is close to mile marker 59 on the river.

Next day was paddling up river to the dam. Significantly shorter distance and hence less effort – about 4 miles. We gave the guides two firsts: they’d never lost a paddle in the water before (check), and they’d never had a canoe tip over (check). The latter was me and Javed attempting to take on a rapid between two rocks, getting sideways, and getting upside down. That is some cold water.

Hoover Dam
Falling into the river is actually not that bad once you get over the initial shock. Fortunately there was another hot spring right there, which I quickly made way to, while the dry members of the gang recovered our stuff from the river. Amazingly they saved everything.

On the way back you also want to hit the sauna cave. Apparently this was an exploratory hole they dug years ago to see where to build the dam. This particular spot hit hot steamy water and was abandoned, but now makes a great natural sauna.

We were treated to another excellent meal, chilli, and pineapple turn-over for desert. Next day was paddling 8 miles down-river, which we made in 2 hours and 40 minutes despite no current.

This trip is a lot of physical work and you’ll leave more exhausted than you ever knew you could get, but I highly recommend it. I recommend Aztec Adventures, and if you’re going to go with them, definitely ask for Dave and Trevor.

The Hotsprings

Pictures here: http://flickr.com/photos/darugar/sets/72057594067005572/

Yahoo! Releases AJAX Libraries

0

Bill Scott and company have been busy cooking away some AJAX goodness. Yahoo! is making two sets of resources available publicly under a BSD style license. The first is the Yahoo! User Interface Library, an Ajax/DHTML framework that has been in development since early in 2005. Bill says:

Core requirements for this library included excellent browser compatibility, industrial strength scalability and good documentation. The library is now available on the Yahoo! Developer Network under the BSD license! Its got all of the things you would expect (drag and drop, animation, event management, widgets, etc.)

I played around with this a bit. I’ve wanted a Tree View widget for a while now, so hopefully I’ll find some time to put it to use.

The second is the Yahoo! Design Pattern Library. From Bill:

Since 2004, Yahoo! has been collecting and cataloging interaction design patterns in our internal Yahoo! Design Pattern Library. We have presented about it at conferences and in articles. But now we have opened it up for the public. This first release is small (just 13 patterns) but we will be adding to it over the next few months to round out the offerings in there.

The design patterns are interesting, but they’re going to get a lot more interesting when they link up with the associated code libraries and samples so you can put them to work right away. This is in the works.
More about these at the Yahoo! User Interface Blog and Bill’s blog.

Being Poor

1

Yesterday morning I got up way too early and left the house unshaven, disheveled, and struck by an amazing bout of hunger. I’m pretty picky about breakfast, so I spent a good 15 minutes considering where I would eat as I drove, discarding one possibility after another as beneath my tastes.

About 25 minutes into the drive I realized I’d forgotten my wallet at home (it really was way too early). I stopped at a mini-mall in front of a Burger King to scrounge around for change in the car.

Quite an interesting experience. The lovely Burger King folk were thrilled to have me, unshaven in my dirty car, lounging in front of their bistro, scrounging around for change and cleaning junk out of my car. Anyway, I found $1.93 between the seats and under the mats. I should be able to get something for that, I figured.

Long story short, I spent the morning driving around between Walmart, Stater Brothers, and finally Albertson’s to find something to eat that I could afford. It was a strange case of momentary indigence, but very eye opening. Turns out it’s hard to find anything remotely healthy to eat with little money. A friend of mine pointed out that the US is one of the few countries where being poor is related to being over weight.

I ended up with chocolate milk and a dounut.

Bill de hOra: Down to 4 frameworks

0

Bill has an update to his last round of checking out Web frameworks, now cutting it down down to 4. The 4 are: Plone, Struts, Django, and Ruby on Rails.

This is very informative and has practical implications. I don’t know anything about Plone other than it uses Zope, which is enough to put it out of my radar screen. Struts is Java, which is just a silly language to use for most Web work. Ruby on Rails is very interesting, and I’ve messed around with it just very slightly, but I got turned off by all the magic keywords. I have almost no functional short or long term memory, which means I have no chance of remembering all the magic words, which is enough to intimidate me into putting Rails on the back burner.

Which leaves us with Django. Haven’t tried it, but it smells about right: Python based and in the mold of Rails. I’m mostly messing with CherryPy these days, which I like, but I’m not so married to it I can’t try something else. Probably will try Django on the next project and report on how it goes.

How Yahoo and Google Make Money

51

How do Yahoo and Google make money? This is a frequently asked question, so let me give a high level overview.

The short answer is targetted advertising. Why and how does it work?

What do you use Google for? Search. Let’s look at search. Say the user searches for “mountain bike San Diego”. Chances are he’s looking for a place to go mountain biking. Or, perhaps he’s looking to buy a mountain bike. Google will go and find the most relevant Web pages on that topic.

Now imagine you own a mountain bike store. If somebody told you they would let you show your advertisement to this specific user exactly at the moment he’s expressed interest in mountain bikes, while it’s foremost in his mind, would you be interested? Sure you would. That’s what Yahoo and Google do: not only do they find the most relevant Web pages, they also find the most relevant ads and show them to the user in the form of Sponsored Links.

The sponsored links are actually relevant, so some percentage of the people that see them click on them. Note that this is very different from Banner Ads – those are generic ads targetted at a demographic (or sometimes not targetted at all).

Each time a user clicks on your ad, Google or Yahoo has effectively sent you a lead, someone who’s likely to buy something from your mountain bike store.

This lead is valuable to you and you’re willing to pay for it. But how much?

Turns out you’re not the only mountain bike store in San Diego. I own a store too, and I want that same lead. I’m willing to pay for it too.

So how do we determine the price? Very approximately speaking, by bidding on it. It’s sort of an auction.

I want to advertise my mountain bikes. I go to Yahoo or Google and tell them: every time somebody searches on “mountain bike”, show my ad. I do this by specifying a bunch of terms related to mountain bikes, and I provide the text for my ad, and a link to my Web page. Something like:

keyword: mountain bike, offroad bike, offroad bicycle

advertisement: buy my wonderful mountain bikes, they’re the best

url: www.mywonderfulmountainbikes.com

You own a mountain bike store too, so you do a similar thing.

Along with my advertisement, I specify how much I’m willing to pay for each lead. What is a lead? It’s defined as a click on my ad. So my bid says I’m willing to pay X each time someone clicks on my ad.

Note that I pay for clicks, not for my ad being shown (aka impressions). It’s a good deal – I only pay if the user is interested enough in what I offer to click on it.

I specify a bid. You specify a bid too. Approximately speaking, the higher the bid, the more prominently/more frequently the ad is shown. Other factors go into picking the actual ordering of the ads, but bids play a big part.

So there you have it. Lots of advertisers bidding on many millions of keywords, and hundreds of millions of users doing billions of searches, a small charge each time somebody clicks on an ad, and you get a big business.

There are also contextual ads, the ads you see on blogs and other random web pages. Same idea, except instead of using the user’s search term to select the ads, the contents of the page you’re looking at is used. So if you’re looking at a page about mountain bikes, you’d see ads related to mountain bikes.

There’s more to it than this, but to a first order approximation, this is the core of the business.

Paypal Email Scam

0

First there was the Ebay Email Scam, and now we have the PayPal email scam. This one’s even better than the last one, quite convincing.

It’s official looking, uses company logos and company lingo, doesn’t contain spelling and grammatical errors, and generally does a good job. The website it takes you to, obviously, is not PayPal. It goes to:

http://3530955320/paypal.com/us/cgi-bin/index.php

Which is an invalid URL. Maybe Firefox or Yahoo! Mail is filtering some of it out?

Btw, Yahoo Mail correctly marked this as spam.

Here’s the email in text and image form for viewing pleasure.

Dear valued PayPal® member:

It has come to our attention that your PayPal®
account information needs to be updated as part of our continuing
commitment to protect your account and to reduce the instance of fraud
on our website.
If you could please take 5-10 minutes out of your online experience and update your personal records you will not run into any future problems with the online service.

However, failure to update your records will result in account suspension.

Once you have updated your account records, your PayPal® session will not be interrupted and will continue as normal.

To update your PayPal® records click on the following link:
http://www.paypal.com/cgi-bin/webscr?cmd=_login-run

Thank You.
PayPal® UPDATE TEAM

Accounts Management As outlined in our User Agreement, PayPal® will periodically send you information about site changes and enhancements.