Feb 23, 2007

Music over which the RIAA can't sue you for downloading..

Just thought I could share with the 3 or 4 people who actually visit this blog. It took me a year to finally get the pieces put together so I could actually burn it to CD or rip it to mp3's. A really fabulous drummer named Kenny Pardo laid down the groove on about 30 songs with me when I was still living in San Jose. He's from San Francisco and is just a monster drummer. I play all the rest of the instruments on this including the voice box.

So I just found a place to host it. You can download Afraid to Fall and tell me what you think.

Feb 15, 2007

Maps are Complicated

I am very dis-satisfied with the state of map services on the Internet. So much so that I've quite my job to write a better service. Yes, this might qualify for an insanity award, but it is my life and I am so far happy with my decisions and illusions.

After playing with some of the MAP API's offered by Google, Yahoo and Mapquest I've come to the conclusion that Mapping software is really complicated. (A collective "Duh" is heard and acknowledged).

One of the gaping holes I've discovered has to do with the standardization of intersection names. Namely, there is no such standardization. Try the following in a few map service providers.

TX-71 (W) & I-35 (N), Austin, TX
If you haven't guessed, I want the spot where 71 (Ben White) crosses the north bound lanes of IH 35 in south Austin. This string will work for Google, but not Mapquest or Yahoo. I guess that would be bad since they're all about search technology and need to retain some sort of identity apart from one another. But for the end user it really is bad because if you want to get directions to an intersection or pick an intersection as your starting point, there is no reliable way to select an intersection and then tailor your directions from that spot. Yes, you can use an address and pass through the intersection but hitting that spot is the challenge. I stumbled upon this when testing out a trick little jsp tag library for Google Maps.

bv

With everything moving to geocodes, this problem is exacerbated because you have to be accurate when specifying an intersection in order to get the geocodes returned to your app. The tag library above actually uses Yahoo's geocode API to return lat/lon values from address values you provide, so that you can add custom markers on maps you create via the tag library.

Some of the private map software providers provide complicated aliasing schemes where the user actually provides the aliases but has to create a reference to the actual geocode. Starting to see the circular logic problem involved here?

Also, notice the example I provided above isn't even consistent on Google. If I derive a pattern from the above example, I should be able to use something similar to find the spot where I-10 crosses I-45 in Houston. Using the "get directions" link on google maps, enter in your data like this:

From: TX-71 (W) & I-35 (N), Austin, TX To: I-45 (S), I-10 (E), Houston, TX
You get the following:
We could not understand the location I-45 (S), I-10 (E), Houston, TX

Eh? Why not? Now modify this a bit and just replace the destination to "I-45 Houston TX". And Voila! Directions to Houston but going North on I-45! You can't specify that you want to go south unless you make your destination some location south of Houston.

Boo!

I'm not sure that this is Google's "fault", it's a historical thing. The alias information for most of the map data available regarding intersections is derived and people have never been consistent by default. Think about it, address incormation is consistent (within a country anyway). But no such standardization has been devised for intersections.

A standardized intersection naming convention for at least the major and minor freeways and highways would surely be a wonderful thing even if a daunting task.

How much would it be worth to have every intersection abstracted such that you could enter in a string matching a standard pattern and return reliable coordinates? I'd certainly pay for it.