Monday, December 22, 2014
I used to be a huge fan of Microsoft in the late 90's(OK, I hated them the least) but since small form factor devices(mostly smart phones) have come on the scene Microsoft has fallen off a cliff. The only thing I have been hoping for is that they get off their butt and integrate the Kinect with the OS and eventually the Kinect with many other devices. At this point in time it is the only thing that looks promising to me. Microsoft keeps trying new things without focussing on what is clearly an untapped winner. They have included Kinect with the XBoxOne but haven't taken things any further. I have seen demonstrations of early hacks of the Kinect that showed so much potential. Google is trying to incorporate all the great concepts in Kinect into their devices now.
It seems every one BUT Microsoft is starting to use the Kinect in ways beyond gaming. Microsoft needs Bill in there to ask them WTF they are doing. Start selling products that sell and worry less about last years products. Trying to recapture a market that doesn't exist any more is useless.
Time for Microsoft to realize the desktop is dead, long live the entertainment workstation... The NEW desktop... Coming soon to your house ;)
Originally posted 2014-12-22
I have recently been looking into IndexDB which is available on most newer browsers. IndexDB is the only database that both Firefox and IE support for local/client database storage . Chrome supports both IndexDB and WebSQL. Firefox has sworn never to support WebSQL and WebSQL has been depreciated in standards groups.
At first I can tell you I thought IndexDB sucked. I am from old school and know SQL and relational databases. IndexDB doesn't have any of the relational structures that I am used too and it is missing all types of functions. Personally I thought it was a key/value/value design on steroids but not a database. I could not understand what the big deal was about and was quite upset that both IE and Firefox would choose this crap as their one and only local/client-side database.
IndexDB uses "new" terms for things(sort of)... Tables are Stores, Fields are Properties. However, Properties are Fields on steroids. This is where I saw the huge advantage. You can store arrays in a property. Even better, you can search arrays.
Look at how current relational databases handle fields that need arrays(multiple entries)... They create "related" tables. Here is a perfect example... Contacts. Often we create separate tables to track multiple occurrences of something(like phone numbers, addresses,etc). We then need the whole relationship deal happening. Not in IndexDB... We can store the phone numbers as a multidimensional array... All in the same store!!!! Who needs relations and their complexity? The very few exceptions are outweighed by the benefits under most situations. The ability to group all the related stuff together as an "object" is huge in my opinion.
Of course you know there had to be a down side... For some reason IE does not support storing arrays at this time? Go figure. It is part of the standard so I expect IE will support it soon. The other issues... very different from SQL design/code requires learning, the lack of built in functions that come with SQL, reports-unless object centric... When IE starts to support the ability to store arrays IndexDB is a clear winner... The speed benefits others talk about could be available if we didn't have to handle relationships. Until then be patient. You can use custom libraries like Dojo to simplify the process and add functionality missing in IndexDB but I try and avoid using these libraries personally. I find I only want to use 2 functions out of the 400 they provide so they create bloatware which hurts us all.
I am sure I will find other advantages/disadvantages in the future(like security) but that is a future update ;)
At this point start getting into it but I think it has a ways to go for most mainstream applications.