20080516.1620 Honkytonk Persistence Mechanism
They say that politics are show business for ugly people. They say that country music is rock & roll for people with no talent. They might say that - but if so - then I'm going to call Databases the Country Music of the Computer Industry.
The idea that if all you have is a hammer then the world is full of nails is off the scale at Oracle. Much as how in Microsoft-land everything centers around the OS - in Oracle-land everything is intrinsically entwined with the database. Meta-data of every flavor forces a full-round trip to the back-end every time the wind blows.
What is with Extents? Is it too much to ask to have tables that can dynamically use available disk space without needing me to wipe it's nose too?
Why then, in direct contrast, are materialized views not more intelligent by default and also programmable in terms of caching policies?
I've heard Oracle employees slip & say that they didn't use their own applications in-house until The Larry mandated it. They didn't want to. The same person slipped that Oracle University changes their exams to remove high-miss-rate questions - thereby pumping out 'certified' Oracle professionals by the metric-buttload. ( And then bonks them for re-certification after every major version release a la MCSE & Novell before them. )
For over a decade, every time I profiled any Java application - I have had to filter out java.sql.* because it always is the slowest part of the application waiting for the database to return.
Schema designs are brittle and highly-resistant to change. As a result, Developers shun DBA's out of the pain they have to endure to make what appears to be a very simple change. This makes integration of database development with Agile processes a brutal & painful social experience.
Care & feeding of a database environment seems to require 3x the amount of staff that UNIX or Mainframe environments require - and the amount of busy work that DBA's generate is staggering.
File systems are an order of magnitude faster than databases. RAM is an order of magnitude faster than that. But developers the world over dump their data onto this flypaper without giving it another thought. I've read WTF articles that flame anyone who doesn't use a database - without even considering performance.
While I'm not the only person who thinks so - it certainly seems that I'm in the minority. Mind you - I still use them - but I am careful to write as bland a flavor of SQL as I possibly can to persue vendor neutrality - and I do everything I can not to execute logic in the persistence mechanism. That's what the application server is FOR - executing logic.
And that's probably the #1 thing I hate about databases - Stored Procedures. Deliberately pushing logic to the persistence layer for the sake of performance. (Without, I might add, a significant improvement thereof) Shouldn't you rather take the hint that your data persistence mechanism is slow, cumbersome, and a huge money sink? Then maybe fix it, rather than bending the rest of the universe around it's weaknesses, hmm?
Here's another one - in a ever-more-global market place. Ever try to implement internationalization with a database? Go ahead, have a go at it, I double dog dare you. Then get back to me about a debate...
And then of course the main complaint about Oracle in general is their newly found buy it or bash it attitude. They suffer from Not Invented Here syndrome right up until they buy the company out & make their products ONLY work with Oracle Database as the back-end. (TopLink, BerkeleyDB, TimesTen, PeopleSoft & now BEA anyone?)
20080513.0913 iPhone go POOF
So I managed to lose ALL of my personal data from my phone yesterday. I am not pleased, to say the least. I will take responsibility for it and call it a learning experience, but I have to be honest & say that I fell as though The Steve just ran over my dog with a hybrid vehicle.
Here's how it went - so that others might learn from my mistakes: First of all, I had about 3,000 photos on the phone. The performance of the camera became extremely sluggish and it took >4 seconds to prep the unit to take a picture. So when I got back from my last trip I attached it to my Windows-based work computer & used the Windows camera utility to dump all the photos to the hard disk & then set it to erase them all when it was done.
This had the effect of breaking my camera. What would happen was that I would take a picture & the software was extremely responsive - too responsive - as in it wasn't saving the photos. I could switch to the album view & I would see blank white thumbnails. If I clicked on one, the application would crash & I went to the main menu screen again.
This was perfectly annoying and I knew that I needed to do a Restore function. I left it for a couple of days until one morning the audio stopped playing through the headphones - only the speaker worked. That was yesterday. The usefulness of the phone rapidly diminishing I set out to do that Restore operation.
The aforementioned Windows system has flaky USB drivers. I did my Restore in iTunes & pressed the Backup button - all should have been well. It stripped & rebuild the software handily & then started into the Restore - I chose the correct User from the list & started it.
Then halfway through the USB port flaked out & I lost connection. I got error messages on the phone & the system but that was it - I was hosed. There is no way to purposely backup your iPhone or to randomly restorestore to it from a backup. This is because such a feature might be abused to copy music...
So - to underline this - Apple won't let you back up your personal data on your iPhone because they assume that you are a copyright thief and want to treat you like one. You have to SYNC your personal data to Outlook on Windows or Address Book & iCal on OS/X.
Of course, WHAT ABOUT MY NOTES!?
What bothers me most is that I never hacked my phone. I didn't jailbreak it, nor did I access the storage system directly, ever. My one infringement was making my own ringtone - something that I've mentioned before. Had I taken the time to get at the innards of my phone sooner, I'd likely still have my data today.
So the bottom line is - TouchCopy, don't iPhone without it.
Do not trust Apple with your personal data. DRM is more important to them than the details of your life.
Hack your phone and CYA. No more Mr. Nice-License.
20080506.1009 AIM for the Sky
This morning I fired up Trillian and noticed a warning message that told me that since I have >200 people in my AIM buddy list the server won't send me status updates until I 'clean up' my list.
Apparently I'm not allowed to track the status of 201+ people at once. OK so 200 is the limit. Why not have it drop the least-used or longest-unused connections from the list instead of hassling you about it?
So I set about 'cleaning up' my list. What I noticed was that the bulk of them were actually people I never talk to - specifically they're SPIMmers that I have blocked. Apparently blocking someone eats up a 'buddy' slot just like someone you actually want to talk to ever again.
I find it interesting that in the age of Social Networking, AOL is apparently imposing a limit to the number of humans you may forge any kind of relationship with via their network. Oh you can do it - but long term users are punished because their solution doesn't scale properly. (see iTunes and iPhoto for similar scaling issues for Power Users)