So the rumor is that Yahoo! is working on a Technorati killer (via Scoble). This was mentioned by JeremY! at Open Tech 2005. With Ice Rocket searching feeds with support for tags things are really getting busy in the feed search (tag:feedsearch [Technorati, Ice Rocket]) field. With Yahoo! getting in the feed search game it seems like Google and Microsoft will be pulled in eventually. Perhaps one of them will buy Technorati?
Came across an interesting idea on filtering data in PHP the other day. While I think the details of this approach aren’t the way to go, the concept seems like a good one. As comment #7 points out, converting the PHP Superglobals to objects probably isn’t a good idea because it is close enough to the Superglobal arrays to confuse others looking at the code. So perhaps the better approach is to make it more obvious what is going on.
Create a new array of objects, call it something like $_DATA and using it to grab data in your scripts. As an example, GET data could be accessed in your script via something like this:
$first_name = $_DATA["GET"]->getFilteredValue("first_name");
The same sort of thing could be done to access post and cookie data. If you needed the original raw value you could easily come up with a method like:
$raw_first_name = $_DATA["GET"]->getRawValue("first_name");
Another advantage that this approach has is the ability to quickly determine if code is using unfiltered data. Run grep looking for uses of $_GET, $_POST, $_COOKIE or getRawValue and you’ll be able to quickly spot code that isn’t using the filtered data. Since we aren’t changing the original data in $_GET, $_POST and $_COOKIE other bits of code like HTML_QuickForm will still be able to do their job.
The other big news today is that Yahoo! bought Konfabulator. Part of the deal is that Konfabulator will now be free, with refunds for those who paid the $19.95 registration fee in the last few months. The idea behind this seems to be that Yahoo! has lots of content available and this is another way that they can expose users/customers/clients to that content. I won’t be surprised then if Konfabulator finds its way onto the SBC/Yahoo! DSL install CD. It may even become an install option on the Yahoo! toolbar.
In the long term I’m not really sure where this will go. Mac OS X already has a similar feature with Dashboard (at least for 10.4.x). There is certainly still plenty of time for Microsoft at the same thing to Windows
Longhorn Vista before it gets released. I suspect that if Konfabulator becomes any sort of success for Yahoo! on the Windows desktop then Microsoft will squish if for no other reason than it can and in the process instantly convert people from reading Yahoo! content to MSN content.
Let others create the market and train users, just to have Microsoft come in and squish the competition like a bug. Sound familiar?
Since its release Google Maps more or less instantly topped everyone else. Now MSN has jumped into the game with Virtual Earth. Superficially it is closer to Google Maps than the previous generation of map websites. I was going to give them a bit of grief over their shaky support of Safari, but Google Maps didn’t support Safari at all when it was first released (although it does a nice job now). Just like Google Maps it picks the wrong house when I put in my addresses, as a matter of fact they both pick the same wrong house.
The aerial/satellite maps seems to be better under Virtual Earth than Google Maps, at least when they show up. On Virtual Earth I’m getting about 30% broken images on the maps. There are also some developer resources at Via Virtual Earth showing you how to use Virtual Earth on your own website.
The better images are a big pull for Virtual Earth, but the UI isn’t as nice as Google Maps. For now I’ll likely continue to use Google Maps over the others unless I’m specifically looking for image quality on the map.
If you’ve read Scobleizer you know he works for and pushes Microsoft pretty much every chance he gets. Recently he’s been on a kick talking about buzz around the web, citing things like the announcement of Google Moon recently. He also compared Microsoft and Apple in blog buzz and a few wider market counts. His reference to Howard Dean seems on when it comes to blog buzz, it doesn’t necessarily correlate to popularity in the general population. Despite that Scoble still seems to have a touch jealousy about not getting more blog love buzz for Microsoft.
So today he tried to go on the offensive by responding to a MacDailyNews post. Scoble managed to not learn his own lesson here, and most folks will likely call him on it. First off the MacDailyNews article is nothing but name calling (think 2nd grade here), even those who use Apple products (of which I am one) recognize this and quickly move on or completely ignore in the first place. He would have been much better if he’d just left this alone or focused purely on features, not trying to return fire.
But since he did lets take a look at his response:
- Tablet PC: I haven’t seen anyone use a tablet system, and I see a fair number of notebook systems in use by people through out the year. Perhaps it is because I work at a university and that market isn’t interested in tablet systems. Perhaps I’m missing the boat here, but I don’t see this as being a big deal. Having said that though, he is correct on this point, Apple does not offer a tablet system. Neither does Microsoft, they only sell the OS. If I install FreeBSD or Linux on said tablet system then Microsoft is out of the picture. I also couldn’t find anywhere on Microsoft’s website where I could actually purchase a tablet system.
- Media Center: Again, I couldn’t find anywhere on Microsoft’s website to purchase such a thing. They sell an OS for such a thing, but then again I could also use MythTV and get the same thing. He is right on some level though, Apple doesn’t sell a system with Tivo features. Neither does Microsoft.
- Mobile Phone: Still couldn’t find any place on Microsoft’s website where I can buy said Windows phone. They make software for mobile devices, but so do other vendors.
- Mac on Intel: And I can’t get Windows for my PowerPC system. There is a developer system from Apple running on Intel hardware, but that doesn’t really meet the term shipping in this sense. So he does have a small point here, but again if I install FreeBSD/Linux on my Intel box Microsoft is out of the picture. And just like before, I couldn’t find such hardware offered for sale from Microsoft either.
- Integration with XBox: It isn’t clear exactly what he means by this, but if it is simply the ability to have your computer talk to your XBox then he is right Apple doesn’t sell such a thing. I don’t see what this has to do with releasing a new operating system.
- MSN Watches: I have to admit that I’ve never even heard of such a thing. I don’t suppose that it uses any sort of open or published standard so that other vendors can make use of it also? If not how is this Apple’s fault?
The constant theme here is that none of the issues that he brought up has to do with operating systems, specifically Mac OS X Tiger and Windows Vista (or XP for that matter). No where does Scoble actually address the issue of feature comparison between two operation systems. He completely dodged the question entirely, perhaps he should go into politics?
Scoble will likely see his post succeed on one point though, it will probably generate some blog buzz in response. Unfortunately I suspect that most of it will be negative.
Just to be clear, I deal with Windows (2000, XP and 2003), Mac OS X (10.3 and 10.4) and FreeBSD (4.x and 5.x) systems on pretty much a daily basis. Each has strong and weak points and I generally try to do my best to only use each one where their strong points shine and avoid each one where their weak points are most exposed.
UPDATE 23 Jul 2005 1:15pm: After seeing his initial response, I have to wonder if this goal was just to get people talking about Microsoft and Windows. What is that saying about and publicity is good publicity, as long as they spell your name right?
It seems that most people (myself included) who have dealt with database design long enough learn to become good friends with the concept of sequences. For a brief review take a look at the PostgreSQL docs for CREATE SEQUENCE and sequence functions. This concept is implemented in different ways (MySQL: AUTO_INCREMENT, MS SQL Server: Identity, DB2: Identity and Sequence and Oracle: Sequence), but supports the same general concept: automatically generate a series of numbers, usually for one specific field in one specific table in on specific database. This sort of thing is very handy and is often used as a primary key because it is guaranteed to be unique (at least for the table that it is being used in).
Being able to generate unique numbers (generally sequential, but that isn’t guaranteed to be the case by any means) also has other uses. I’ve seen it in used in some cases for order and invoice numbers. When a new order is created you need some way to uniquely identify in the database, often times a sequence works just fine. Since the database is using it in this way you may as well provide it to your customer so that if they call back later they have a way to quickly reference their previous order. The same idea goes for pretty much anything that you want to go back and uniquely identify later.
But life in sequence land isn’t perfect. Database replication often runs into complications when making use of sequences. Depending on the replication scheme this can vary in severity. Another issue is uniqueness across something broader than a single database. If you have satellite databases that sync up to one master database each night then you have to avoid collisions between all of the satellites. There are ways of solving that problem and still using sequences, but part of the reason for using sequences in the first place is their simplicity and ease of use.
With all of this in mind some have recommended using Universally Unique Identifiers (UUID) instead of sequences. Instead of an integer, a UUID is a 37 character string and is suppose to be unique for everyone for anything. An example of a UUID is: 118edde0-fb3e-11d9-8cd6-0800200c9a66. There are different versions of UUID based on how the UUID is generated, using such things as the MAC address, time stamp, random seed, name, name space, MD5 and SHA-1.
So having a universally unique identifier gets around the collision issues for things like syncing and replication, but it doesn’t really work that well for the other examples. Could you imagine having to provide a 37 character string as an order number to a customer? And you thought tracking numbers for UPS, FedEx and DHL were bad. This isn’t so bad for things like entries in the del.icio.us database and other identifiers that you don’t expect to be written down though.
On a more theoretical note I’ve wondered if there any performance difference in replacing the use of sequences (integers) with UUIDs (char(37)). This may likely vary between database implementations, or even indexing methods. One these days I may devise a few tests of this on PostgreSQL and MySQL.
As I wrote this in a rather brain dump sort of format another thought occurred to me, sequences are database generated data. This makes it different from pretty much all other data (except maybe default values). Maybe that is the pattern that I should be focused on here, data should be generated from outside sources and not the database itself.
On the drive in to work this morning I was listening NPRs story on Paul Anka. I learned that he wrote My Way for Frank Sinatra. He also has a new album out, Rock Swings. Ordinarily I wouldn’t find this very noteworthy, but this CD is a bit different.
All of the tracks on Rock Swings are swing arrangements of 80s songs. The tracks are available on iTunes so go listen to the 30 second samples. It’s fun to listen to these familiar songs done in a completely different way. Some of the songs are harder to recognize than others, so you may want to check out the iTunes iMix with the new and original tracks, for easy comparison.