I wrote a few times before about this topic and this week there was a great example that can be used to illustrate the problem.
First of all, if you are ever attacked publicly in a blog, forum, website, wiki or whatever, you must respond! You must respond in as many always as you can, as fast as you can and make sure that every single word you write reflects the facts of the situation.
Case in point, Sam Sethi and Michael Arrington spat. This is a long thing so I won't go in detail, but you can read Sam attacking Michael and Michael's response.
It's a bit clear that Sam is a problematic person (just being politically correct here). You might think that for a case like this you just ignore and let it die, after all, what's the value of a wacko saying bad things about you? No much, right? Wrong.
Most people on the Internet, when they are looking up for stuff about you, will not do background check on every person that said something about you. If you don't react to something like this, you are letting just one voice be heard. So, speak up and tell your side of the story. Just be as fact-based as possible, because everything, I mean *everything* you write on a blog post will *never* be erased from the Internet. Search Engines and Blog Search Engines will cache it and you don't have control over it.
And the right way of responding is to write your own blog post on your own blog, so nobody can remove it, and, also leave a comment on the original blog post attacking you. Odds are that comment will be deleted, but if it's not, better for you.
Amazon Web Services just released their new service: SimpleDB. This is a pretty brilliant idea and peoplearetakingnotice.
But there are two pieces that bloggers are not paying attention to, or they didn't realize (after all, most of them are not developers)
I felt the service was so interesting I checked the API and how it works and bam! I was hit in the head.
Did anyone say X.500?
My first realization is that it's not a Database, it's a Directory Service!
Ok, most people (even developers) would not know what a Directory Service is even if you hit them with an Active Directory book on the head. Anyway, if I remember correctly of my years on Exchange Server (98-99) while working on the Active Directory integration, a Directory Service had a few peculiarities that differentiated it from a traditional database.
First of, each object (this is what a "record" is called on a Directory Service) can contain different attributes and the schema can be changed on the fly (a bit more complicated than that).
The next interesting aspect is that a single attribute (field) can have multiple values, just like the Amazon SimpleDB! This means if I define attribute "UsedBy" I can set the values to "Realtors" and "Brokers". On traditional relational databases you'd need 3 tables to do something like this.
Finally, a Directory Service allows a hierarchy of objects, meaning instead of Tables you have nodes (which are container objects) and objects hang out of those nodes. Oh oh, SimpleDB doesn't have that, so all my theory goes down the drain.... Not really, they provide a thing called "Domain" which, if you want to (but you don't), can be used as a hierarchy.
And the best application for SimpleDB will be...
Calling SimpleDB a database or a directory service doesn't change what it can do or what people can do with it, it's just a convention. What matters are the nice products that will come out of that, and IMHO, one of the most interesting one will be...
A search engine!
What? Somebody will built a search engine on top of SimpleDB to compete with Google? Nah! Somebody -- lots of body, actually -- will be able to built their own site search service on top of SimpleDB.
Imagine that Redfin is not a gazillion-dollar VC-backed startup. They are just getting started and want to index all listings from MLS to do a kind of search that you cannot do directly to the MLS database. They can put all that data into SimpleDB (the flexible schema is a huge plus) and not have to worry about having Terabytes of data on their own database. Do you know how much it costs in time and money to maintain a Terabyte database? A lot. There is backup, there is perf issues, there is hardware redundancy, etc.
The only thing missing from the SimpleDB API to provide some serious "site search" capability is a way to rank attributes when doing a query.