next stop: semantic metaverse

Avatar

random stuff about the semantic web, mobile technology and mapping

Tonchidot dissected

I was watching some of the TC50 presentations today, and one that stood out was the one from Tonchidot. Here’s a video showing it off:



Really cool stuff. Cool stuff I’ve been wanting to do for a while now. Cool stuff we’re trying to do with Brightkite (minus the cool interface). Cool stuff I didn’t think was technologically feasible on today’s devices yet. Did they figure it out somehow?

Since they gave out very little information, here’s what I think would be necessary, technology-wise, to make this happen, and also why I think that this demo wasn’t real.

Fairly accurate location of the device…less than a meter

If this was based on image recognition alone, it would be extremely difficult…there are just too many places in the world, and things look different when viewed from different angles, under different lighting conditions, etc. Furthermore, “Anshin does say that no image-recognition technology is being used”. So, location is key.

To get anywhere close to the location accuracy that they need to pull this off, they either need GPS or Wi-fi triangulation, and even then, I am not sure whether it would be accurate enough for some of the extreme cases (close-ups of phones on a shelf). Now, it seems that most of their stuff was demoed inside a mall. GPS works really poorly indoors, so I am fairly certain that they wouldn’t get an accurate enough location fix using that. Wi-Fi triangulation can get this accurate, but has really poor coverage…if that’s what they are using, expect this stuff to work well in very, very few places.

Good sense of direction, or viewing angle

Here, the accelerometer seems the obvious technology that’s being used. I’m not sure how accurate the results are, but I think this is feasible using a stock iPhone, once properly calibrated. Google showed off something similar on Android with their Street View demo.

Depth of field, or distance to object

In order to prevent stuff that is behind walls, etc. to show up, you’d need an idea of the depth of field, i.e. how far are you looking, and how far object are away from your position.

Usually, this sort of stuff is done using special sensors (most digital cameras have them), or using a laser rangefinder. Obviously, they iPhone has neither.

I believe that some of that can be done using image analysis (fellow Techstars team Occipital showed some really cool stuff a couple of weeks ago). No idea if it can be done with just one photo from one angle, but I’ll give them that one.

Crazy-fast connection…things were popping up really fast…or really good caching

In the demo, things were super-fluid…which either means they are loading data really fast of their servers (doubtful with the iPhone’s connectivity), or the stuff was cached. I’m assuming the latter, which wouldn’t be too difficult if you don’t have too much data in one spot. If you do, good luck :)

If all of those things were solved, there of course remain the obvious challenges of what happens when stuff moves, etc, but I’ll just leave those be for now because I think that the app can be cool without solving that problem.

All that being said, I really doubt that their demo was real. It is entirely possible to get an approximation of something like Tonchidot to function on an iPhone today (in fact, we are working on some stuff like that), BUT not at the accuracy that they were showing. I just don’t see any way, short of crazy image recognition (which they said they don’t use), to make this work with an iPhone. The demo is of course incredibly cool, and I really hope that I’m wrong and that we see their app in the store in the coming months, but I am extremely sceptical. If it does come out, I predict that it won’t work as shown in the demo.

I’d love to hear your thoughts and comments.

Google Social Graph API

Today, Google announced their Social Graph API. The scoop:


googsocialgraph.jpg

This is definitely a step in the right direction. I was playing around with FOAF back in college, about 4 years ago. I’m amazed that it took this long to gain adoption.

Now, on to the big issue that Google is not addressing (yet): I don’t want my social graph to be public! Please, somebody come out with a service that lets me:

  • import my social graph from sites like Twitter, Facebook, MySpace, etc.
  • de-dupe and match
  • share my social graph with select sites (like OpenID does for authentication)
  • manage my social graph in one place
  • sync my social graph across sites

Is anybody working on something like that? If not, who wants to help me build this?

TRE: Day 2

So, this is day 2 of The Rails Edge conference. Since my last post, there were sessions by Marcel Molina Jr on ActionPack, Justin Gehtland on AJAX, Mike Clark on whether Rails is the right tool for the job, and currently I’m listining to Marcel explain ActiveRecord. Very interesting and valuable sessions that go into a lot of detail.

I’m not going to go into a lot of detail on these sessions, suffice it to say that if you’re interested, I have a big binder with the slides of each presentation that I’d be happy to share (by letting you borrow the binder, of course…I don’t have a soft copy, and I’m sure that the speakers don’t want this posted).

Technorati Tags: ,

TRE: Design Patterns in Ruby

Jim Weirich’s talk was about design patterns in Ruby. Overall, it was an informative talk, but I felt that it didn’t add much to my knowledge of design patterns from the Java world. He covered some of the GoF design patterns, and listed their Ruby equivalents (in many cases the equivalent was part of the language itself, or extremely easy to add).

Nevertheless, I am certain that many people found the talk very valuable, because being aware of design patterns is one of the things that makes a good programmer.

Technorati Tags: ,

Universal Sitemaps Protocol

Google, Yahoo! and Microsoft have decided to standardize on the same protocol for the sitemap files that their crawlers use to navigate the sites they index. This is awesome, but it gets better: Google sitemaps are already compliant with the new standard, so if you already have such a sitemap, everything is dandy :)

Techcrunch has the scoop.

Technorati Tags: ,

TRE: Rails Reflection

Chad Fowler just finished his presentation on Rails Reflection, telling us how we can dynamically introspect and manipulate Rails objects and classes, such as ActiveRecord objects, routes, etc.

He also showed an app that Bruce and Chad and him developed, which basically allows them to build ActiveRecord models through a web interface (complete with on-the-fly database table generation). They ended up scrapping it because of certain problems with it (I’ll have to find out what those problems were).

One particularly interesting tip was using the Rails console for executing migration statements. It kinda goes likes this:

  1. Bring up the rails console
  2. Execute ‘irb ActiveRecord::Base.connection
  3. Now you can call migration statements as you would in the up or down methods of a migration

Another good tip was routes reflection by using this in the console:

puts ActionController::Routing::Routes.routes

Overall, a very interesting talk.

Technorati Tags: ,

TRE: Photos from the conference

There are several people here at the conference taking photos and posting them on flickr. Check them out here.

Technorati Tags: ,

TRE: Ruby Idioms for Rails

Stuart Halloway gave a talk on Ruby idioms for Rails. He started off his presentation by talking about implicit vs. explicit, and rewriting a Java Struts method to an equivalent RoR method. It was actually quite humorous, he was basically able to get rid of most of the statements in the Java method, and condense things down to just a few concise and easily understandable lines of code.

Bottom line: Rails has an implicit API, whereas Struts (for example) has an explicit API

He went on to discuss the dangers behind the immense power of Ruby, such as dynamically injecting new functionality to classes or aliasing methods. I wholeheartedly agree, as I’ve been bitten by things like that before, too.

Finally, he made a call for refactoring common Ruby/Rails idioms into more abstract ‘helper methods’ (not sure if that’s the right term), to improve readability, keep things DRY and make future changes easier.

Technorati Tags: ,

TRE: Metaprogramming Ruby

Dave Thomas’ presentation on metaprogramming Ruby was pretty interesting. He tried to explain what makes Ruby such a great language, and how it is different from less dynamic languages like Java. The 4 main features of Ruby that make it such a powerful metaprogramming language are:

  • Classes are open
  • Definitions are active
  • All methods have a receiver
  • Classes are object

Dave illustrated these concepts through a series of examples in Textmate, which were quite helpful. I had no trouble following his talk, but was impressed at how much detail he was covering. I would imagine that somebody who is new to Ruby might have found some of the concepts a bit daunting.

Technorati Tags: ,

TRE: The conference begins

Just got to the Marriot Denver Tech Center, where I’m attending The Rails Edge conference. The drive was much better than anticipated (I managed to avoid the parking lot on I-25), so now I’m sitting in a spacious conference room with about another 50 people, having breakfast and waiting for the conference to start.

IMG_1157.JPG

I’ll keep you updated.

Technorati Tags: ,

Next,

FOAF

Before you go

Going so soon? May these links be a guide to web enlightenment. Schwing!