Saturday, 24 October 2009

Are you learning to Program Matter yet?

Share

This future looks fun...The future of programming is about to take a quantum leap forward. 

Remember the T-1000 'Mimetic PolyAlloy' terminator from 'Terminator 2'?  He was the metallic assassin who could morph before our eyes.  This villain turned to liquid before assuming new forms capable of squeezing through narrow openings and transforming its arms into bladed weapons and solid metal tools.  Its about to become a reality and it will require a whole new set of programming skills.

Mitchell R. Zakin, program manager for DARPA's Programmable Matter division, said he's convinced the concept depicted for decades in blockbuster movies and comic books has real-life applications.

He's leading up the effort to develop "programmable matter," which he calls "the ultimate adaptable material."  It will be capable of changing size and shape and taking on new properties for one use, he explained, then adapting to a whole different form for another use.

DARPA hopes that same kind of technology will support the good guys: warfighters on the battlefield.  They don't want to change warfighters themselves, just the equipment they use, the clothing they wear and the loads they carry.

The possibilities with this material are boundless.  Some of the more forward thinking among us could imagine this material as mash-upable.  In other words we might start combining this tech with other fields like medicine or even organo-metallic programmable matter to facilitate human cellular interface.

Of course this assumes that no one sets off an EMP device which to my thinking would cause the particles to lose connectivity thru electrical decohesion. 

Can't wait to see the programming specs on this one...

also check out:  Defense Sciences Office - Programmable Matter

 

Technorati Tags:

Posted by cfalchemist at 7:45 PM in The Future of Programming

Sunday, 31 May 2009

Databases in the Cloud

Share

Why People Who Work With Computers Have A Lot Of TimeOf late, I've been trying to wrap my head around "Cloud Computing" as I'm sure it's the next big thing coming down the itube.  In fact it's already here as evidenced by the number of big players offering cloud services.  Just when I think it can't get better in steps Jim Starkey, the guy who created InterBase which would become a part of Borland's Product line and from there would eventually become FireBird RDMS.  He also developed Interbase to be the first relational database to support multi-versioning, the blob column type (see The true story of BLOBs), type event alerts, arrays and triggers.  So when Mr. Starkey talks we should listen.

Starkey started a new company with the express purpose of creating a database that will run in this above referenced cloud.  What this essentially means is that the database and the underlying tables of data will reside in RAM!  This is an old concept (remember loading programs into memory on the old IBM PC's to enhance performance?) retooled for the big itube in the sky.  It makes perfect sense to go this route when one considers the amount of data accumulating on the internet in the last 5 years.  Consider that in 2002, 532,897 terabytes of new data flowed across the Internet, in 2009 its at least double that.

Recently, Starkey's unique and excellent insight into this was revealed in a great article over on the highscalability.com website.  The article discusses Cloud Based Memory Architectures where they envision the building out of architecture within the cloud, this treating it as a platform itself.  Starkey's contribution to this is in his newest creation, NimbusDB, a relational database designed to reside in the cloud.  Interestingly enough FireBird acquired NimbusDB in April 2009 and is planning to leverage this great idea to make FireBird database a leader in web developments.

So, what will all of this give us simple web programmers?

  • Make a scalable relational database in the cloud where you can use normal everyday SQL to perform summary functions, define referential integrity, and all that other good stuff.
  • Transactions scale using a distributed version of MVCC, which I do not believe has been done before. This is the key part of the plan and a lot depends on it working.
  • The database is stored primarily in RAM which makes cloud level scaling of an RDBMS possible.
  • The database will handle all the details of scaling in the cloud. To the developer it will look like just a very large highly available database.
I'm not sure if NimbusDB will support a compute grid and map-reduce type functionality. The low latency argument for data and code collocation is a good one, so I hope it integrates some sort of extension mechanism.

Why might NimbusDB be a good idea?

  • Keeps simple things simple. Web scale databases like BigTable and SimpleDB make simple things difficult. They are full of quotas, limits, and restrictions because by their very nature they are just a key-value layer on top of a distributed file system. The database knows as little about the data as possible. If you want to build a sequence number for a comment system, for example, it takes complicated sharding logic to remove write contention. Developers are used to SQL and are comfortable working within the transaction model, so the transition to cloud computing would be that much easier. Now, to be fair, who knows if NimbusDB will be able to scale under high load either, but we need to make simple things simple again.
  • Language independence. Notice the that IDMG products are all language specific. They support some combination of .Net/Java/C/C++. This is because they need low level object knowledge to transparently implement their magic. This isn't bad, but it does mean if you use Python, Erlang, Ruby, or any other unsupported language then you are out of luck. As many problems as SQL has, one of its great gifts is programmatic universal access.
  • Separates data from code. Data is forever, code changes all the time. That's one of the common reasons for preferring a database instead of an objectbase. This also dovetails with the language independence issue. Any application can access data from any language and any platform from now and into the future. That's a good quality to have.

The smart money has been that cloud level scaling requires abandoning relational databases and distributed transactions. That's why we've seen an epidemic of key-value databases and eventually consistent semantics. It will be fascinating to see if Jim's combination of Cloud + Memory + MVCC can prove the insiders wrong.

The fact that FireBird exposes JDBC drivers bodes well for NimbusDB as this will give us ColdFusion hackers a new avenue for data development in the coming cloud architecture. 

 

Technorati Tags:

Posted by cfalchemist at 9:06 PM in The Future of Programming

Friday, 13 March 2009

Human Portable Information Availability will double in 2009

Share

Keanu Reeves in Johnny MnemonicSaw this very cool talk on TED given by Pattie Maes & Pranav Mistry: Unveiling the "Sixth Sense", game-changing wearable tech.  The concept is from Minority Report, where Tom Cruise was able to manipulate computer information floating in the air in front of him.  Minority Report was not the first to introduce this concept however, can anyone remember the Keanu Reeves talkie action vehicle that was years ahead in technological vision?

I'm really geeked about this technology, just a few minutes of cursory thinking about this really opens up so many realms of possibility.  Consider what it could do for the programming community.  If we had a repository of code we could have this interface watching our coding efforts and recommend code fragments instantly with instantaneous copy and paste right into the project.  We could also use this to immediately project the project in front of us in a demo mode, sort of like a heads up display.  And this is just programming!

Geeked I tell ya!

Technorati Tags:

Posted by CFAlchemist at 3:32 PM in The Future of Programming