Interesting Tidbits

It's been a while since I had a post to talk about some of the new(er) technology I'm just hearing about. Here are three things that got me excited recently.

First person user interfaces
I came across this article on First person UIs. Basically it works like this: you have a location aware device like a smart phone with GPS and a camera. You're walking around and you see a historical building, business, or other point of interest (POI). You point the device's camera at the object and WHAMO - you instantly get a bunch on info about the object. This can include the name of the POI, how far it is away, a phone number to call, a history, and a bunch of other interesting tidbits. It will be like having a virtual tour guide in your pocket. This is very cool! This concept is also called "augmented reality".

Google App Engine, Big Table, and more on the Cloud
I recently watched this talk on Google App Engine. I've been watching Amazon's EC2 for some time and it was nice to get an overview of Google's cloud service.

Martin Fowler's overview of BigTable was also very helpful. I didn't really understand this data structure beforehand, but his description of it as a nested hash table really gave me a better idea of what it is - and it's usefulness. Lately I've been creating some in memory representations of data structures like this. It's nice to know there's a ready made pattern out there for persisting it should I need to.

Erlang & CouchDB
This week's StackOverflow podcast included an interview with Damien Katz. Damien created CouchDB and wrote it in Erlang. Now, I've heard of both of these items (separately) before, but I knew virtually nothing substantial about these technologies before the podcast.

I'll probably get this all wrong, but Erlang is basically a language for writing distributed, multi-threaded systems. CouchDB uses Erlang to allow a distributed way for users to store "documents" - where a document is some piece of data with a varying set of attributes. From what I can gather, it's sort of organized like BigTable. Two things really got me to thinking during this interview.
  1. Erlang seems like a natural fit for building multi-threaded and distributed systems. It's becoming more important for application developers to learn to code these types of systems as even entry-level computers have multiple cores now. A language like Erlang seems like it may be a good fit to help take advantage of these additional resources.
  2. Toward the end of the podcast, they discussed a StackOverflow question dealing with transactions and locks in CouchDB. Basically, these two mechanisms don't exist in CouchDB - they don't have to. It's automatically handled by the framework. This is so cool! Removing this complexity from my code and allows me (as an application developer) to focus solely on the business logic. That very nice! Thank you very much!

PS
Check out this great presentation from Damien about his passion for what he does. It's pretty powerful and inspiring!

Comments

Popular posts from this blog

I Believe...

FRail :include

Performance Tuning JCAPS - Part 2