Yahoo Fire Eagle Now Public

Yahoo Fire Eagle has come out of private beta, and it’s now open to everyone. Fire Eagle provides a unified way for applications and web sites to share location data tied to specific users.

For your average web surfer or mobile device user, this means a single, unified way for sharing your location across all of the sites and applications you use (that are on Fire Eagle). When you update your location in one application, other applications get updated as well. Privacy controls let you decide exactly how that sharing should work.

So imagine you are using an application on your phone that works with Fire Eagle. Let’s say that app uses your GPS location to find restaurants near you. When it does so, it notifies Fire Eagle where you are. Now suppose a completely different web site exists that lets people tell their friends where they are. If it works with Fire Eagle, then it’ll see the update from the restaurant finder on your phone.

As a developer, this opens up a whole new range of possibilities, and it also increases the amount of data you could observe.

This is relevant to one of my previous posts on location tracking, and it’s an area I’m really interested in. Will developers embrace it? Will users fear the privacy implications? We’ll see.

Comments

Languages and Their Library Cultures

I saw an interesting blog post today titled Why I stick with Perl. In short, the author’s reason for sticking with Perl was that he believes it to have the best “library culture.” A strong library culture is more important to him than the language itself.

What does “library culture” even mean? I would define it as the practices, beliefs, and institutions regarding the sharing of modular code. In other words, it refers to the systems for sharing code and the practices of developers concerning those systems.

Perl certainly has a very strong library culture. CPAN is one of the most extensive library repositories out there. In my experiences with the Perl community, the use of CPAN has always been encouraged, and I’ve generally been pleased with code quality and documentation.

Besides Perl, this made me think about other library cultures. I never realized how drastically different some of them are. Here are my thoughts on a few of the more interesting cases.

Ruby on Rails

Ruby on Rails is very much so a cut and paste world. Despite the existence of RubyForge, I still find myself grabbing code from blogs, wikis, or some random guy’s self-hosted repository way too often. It’s always a little unsettling. The library culture of Ruby on Rails lacks a certain level of professionalism.

For example, a typical plugin hunt involves going to the Rails wiki, grabbing the plugin from a random guy’s subversion repo, making the changes suggested on the Rails wiki, then going to a forum or blog and copy-pasting the changes suggested there. After all this work, you later find out that some other guy did all this and checked it into GitHub in a new repo. Now whose changes do I follow, the original random guy’s repo or the new repo from a new random guy? And who are these people anyway? It all feels very questionable.

PHP

PHP provides so much in the core extensions that I rarely need to look outside of what’s already there. Whenever I do need something, PEAR or a professional framework like Zend Framework often has it. I can’t think of a single time I ever needed code from a sketchy guy’s repo. Perl might be slightly better about libraries, but PHP still has a strong library culture. In terms of professionalism, both Perl and PHP destroy Rails.

C# and .NET

.NET is a monstrous library which has everything under the sun. Microsoft also provides great documentation. Due to these two factors, C# doesn’t even really need a strong library culture, it already has a behemoth with a ton of money taking care of it.

Microsoft can’t cover everything, though, so they’ll always be the need for other libraries. Unfortunately, the third-party library culture isn’t as open as it is in languages like Perl. The Microsoft world encourages licensing libraries instead of collaborative repositories.

Comments (3)

Cuil is Uncool

For anyone who missed the flurry of news over the startup Cuil, I think it’s an interesting look at what’s wrong (at times) with Silicon Valley. Despite being full of ex-Google employees and $30+ million in funding, all they have is a crappy search engine that sucks. It might be because they were too busy eating muffins and strawberries.

It’ll be interesting to see where Cuil goes. The search relevance is so bad that some people speculate it isn’t about search, it’s about flipping their indexing algorithms. Considering the high amount of funding, I have a hard time believing anyone will pay for this.

Quite possibly one of the funniest things to come out of this was the jab from Yahoo. Using their BOSS API, Yahoo created a search mashup called Yuil. Yahoo has since taken down Yuil, but it was a funny shot at Cuil while it lasted.

Despite how much the product sucks, I do have to hand it to Cuil or whoever did their marketing/PR/advertising. They were all over the blogosphere and major new sites. I haven’t seen a launch blitz like this in a long time. Hell, they got me to say something.

Comments (3)

We’re Getting Close to Photo-realism in Games

Check out this screenshot from Crysis Warhead, and this one, too. Now if only the colors could be a little less brown and gritty, and maybe go a little less on the bloom.

Comments

The State of the Web Illustration - Summer 2008

I liked this illustration of 2008 Internet and tech trends by Matt Inman. He did one back in 2007, too. It’s not particularly comprehensive, I just think he’s a good illustrator. His portfolio is creative and vibrant. Now that I’m working on my own web projects, I’m starting to appreciate good, original design work.

Comments

Mobile Web Panelist Discussion

Just yesterday I attended a panelist discussion about mobile web browsing organized by Mobile Monday Boston. I did a write-up of the event here.

This is a good opportunity to plug my new blog, Boston Startups (where the write-up exists).  The purpose of this new blog is to more properly separate my coverage of Boston area startups from my personal blog, as well as to provide a voice for the Boston startup community. I welcome guest posts and coverage of events.

Regarding the event, I enjoyed it. Turn out was somewhere between 50 and 100 people. At an after party, I learned about some companies relevant to one of my current projects: Admob and Quattro Wireless. Both deal in mobile advertising, and Quattro is local to Waltham, MA.

Comments

Location Tracking and Heat Maps

citysense-smallCitysense by Sense Networks launched two days ago. Since the cat’s pretty much out of the bag, I might as well talk about this. Quote:

What if you could look at your cell phone and see a heat map of where everybody in the city was at that very moment? The more people at any given location, the redder it would appear on the map. That’s what Citysense does. It is a mobile application that is supposed to help you figure out where the hottest clubs and night spots are so you can go there (or avoid them, depending on your preference).

The reason why I find this so curious (and why this post has any mention of cats escaping bags) is that this is an idea Henry and I were strongly considering about two months ago. We wanted to use heat maps of cell phone activity to plot the hottest places. Since it would be done in near real-time, the theory was that it could help people find popular nightlife or help businesses find ideal retail locations.

We were so intrigued by the idea that we used it on our application for Y-Combinator’s summer round of funding. I even spent two weeks making a heat map demo that could render thousands of data points.

What happened? Y-Combinator didn’t invite us for an interview. We got a form letter back saying the equivalent of “better luck next time.” It was no surprise; they got enough applications to bring down their server right before the deadline. Our application probably just got lost in the shuffle.

After the Y-Combinator application was over and we got our response, we promptly dropped the concept. There were some problems with the idea (which I’ll get into), and we had other, related ideas to investigate. It’s funny how when you run your own company and can do anything, a lot of ideas come and go.

Now it’s two months later, and Sense Networks, maker of Citysense, is rolling out location tracking analytics and heat maps in a big way. They have an impressive set of executives, too. Of interest to me are the two guys with ties to the MIT Media Lab, Alex Pentland and Tony Jebara. I’ve probably seen some of their work before, especially Pentland and his Reality Mining.

In a way, this launch confirms that we were on to something, and it makes me wonder why we dropped the idea. However, the idea did have some drawbacks which we realized at the time.

The largest problem was data. How do you get enough data to actually have realistic and useful statistics? You could start from the ground up with each individual cell phone user, asking them to install an application that tracks them. From the user’s perspective, there are two main problems with this method:

  1. Any rational person will have huge concerns about the privacy implications of installing the tracking application on their cell phone.
  2. The user needs to perceive some benefit from the application, otherwise they won’t want it.

An application like Citysense is a great way to overcome these two problems. It aggregates anonymous data, and it’s branded as a fun way to find active nightlife. This was the same solution we came up with to solve the need for data.

That said, I’ve ignored the elephant in the room. No one will want to use the nightlife application if no one else is using it. For the first few users, there will be nothing to look at. You need thousands of people for the data to be any good.

How does one overcome this? Well there are other sources of data. You could go to cell phone companies and ask for access to their data. That would surely get you lots of information, but I’m sure the cost would be astronomical. Plus, cell phone companies aren’t know for being open with their data.

That’s where Sense Networks has an edge. They have prominent executives, namely guys like Pentland, who have long standing research relationships with major cellular companies. For us, location tracking and heat maps was an idea we had two months ago. For Pentland, it’s been a core focus of his research for years, and this is at MIT, a place known for having great connections.

Taking all of this into account, we are still interested in this area, and the launch of Sense Networks won’t stop us. There are massive opportunities waiting in mobile devices, and we are just beginning to see them bloom.

Aggregating, analyzing, and acting on the behavioral data that mobile devices generate will be one particularly hot area. It will enable contextual applications, and it will change the game similarly to how Google changed online advertising with contextual ads. I won’t say exactly what we’re doing yet, but we have a pipeline of products lined up to get involved in this particular opportunity.

Comments (2)

More on Maglev

After a little more searching around, I found some good pieces which bring back to reality the performance claims of Maglev and potential problems with object oriented databases. Let’s not forget that Maglev isn’t even out yet, and we have no idea if it’ll be what it claims to be. In the mean time, there are other well known Ruby intrepreters and VMs, such as Ruby MRI, JRuby and YARV.

Check out these in depth looks at Maglev:

This is by Charles Nutter, contributor to a popular Ruby intrepreter written in Java called JRuby. In it, he calls Maglev vaporware, thus Gemstone’s Maglev performance claims don’t mean much at this point. The key to his point is that we have no idea if Maglev is fully Ruby compliant, and to prove his point, he shows us actual numbers for performance gains that can be achieved in JRuby by removing some compliance features.

Sho Fukamachi questions the Maglev performance claims and the usefulness of OODBs.

My Thoughts

My point in the last post was that mapping from OO languages to relational DBs can get ugly. Naturally then, I’m curious about other ways of looking at the problem, but other solutions could have problems, too.

Design patterns such as Ruby’s ActiveRecord have popped up to abstract relational systems to an OO style. However, abstracting relational DBs to an OO model can often result in more DB queries, and it’s easy for inexperienced programmers to write bad, query heavy code. They just see everything as objects, and they don’t understand the consequences of their manipulations.

For this reason, it’s no mystery to me why people often complain about Ruby’s scalability. It isn’t necessarily Ruby that’s the problem. It might be the programmers. Perhaps an OODB is the solution since it would remove the need to map and reduce the aforementioned consequences, but I really don’t know.

Comments

On Database Abstraction, PHP, and Ruby

It took me a couple days on my current PHP/MySQL project to get the DB abstraction with proper error handling, input validation, and relational support coded to the point where I’m happy with the model. This was after trying Zend_Db, Doctrine, and Propel, which are all good libraries, but I hit points where the work of getting it to do what I wanted efficiently just wasn’t worth it. I decided it would be faster to just roll my own slim library.

I’m always mystified at why DB models are such a hassle to code, so I spent a little time reading. I think I get it now. It has to do with the mapping problem between relational systems and object oriented systems.

Ted Neward, writer of several books on C# and Java, calls this “The Vietnam of Computer Science“. What he’s saying is that object-relational mapping (ORM) quickly reaches a point of diminishing returns. The problem stems from the conceptual disconnect between the language and the data store.

Hoping to shed additional light on the subject, I went looking for alternative perspectives to my PHP/MySQL solution. Since it’s all the rage for ease of use, I was mostly curious about Ruby, the Rails framework, and object oriented databases.

Ruby is certainly different, but after some reading, I’m starting to understand why the language lends itself better to the OO style of DB abstraction. On top of that, Rails has powerful scaffolding that lets you flesh out pieces very fast without the code getting ugly. With ActiveRecord in mind from the ground up, things can be pretty elegant some times.

I also found some really cool systems for bridging the gap between languages and data stores. For instance, check out MagLev for Smalltalk/Ruby. Imagine using an OO DB so you don’t have to do the relational mapping, doing it in a distributed fashion, and using things like shared memory more efficiently as an object staging area between your running site scripts and the DB. That’s kind of MagLev.

All of this is interesting, but for the current project I’m sticking with PHP. However, on the next project I might try Ruby on Rails. I want to see first hand if and how it overcomes some of the challenges.

On a slightly tangential subject, a part of me really dislikes the weak typing of both Ruby and PHP. The net effect in PHP is that you pretty much end up using arrays for everything, making it hard to keep track of structure. Ruby on Rails does get around some of the weak typing issues with some better built-in validation, scaffolding, and member attributes (I’m not sure if that’s what they call them). Sometimes I’d rather be doing C#.

Comments (3)

Barcamp Boston 3 Recap

Barcamp Boston 3 Cafeteria

I spent this last weekend attending Barcamp Boston 3, a two day grassroots technology event on Saturday and Sunday, as well as the Barcamp pre-event party at Betahouse. I put some pictures from Barcamp up on Flickr, and here are pictures from everyone.

Barcamp is best described by the following snippet on their web site:

BarCamp is an unConference, organized on the fly by attendees, for attendees.

There is no registration fee, but you don’t just attend a BarCamp — you can participate in discussions, demo your projects, or join into another cooperative event.

Topics may include, but are not limited to: open source software, startups, UI design, entrepreneurship, AJAX, hardware hacking, robotics, mobile computing, bioinformatics, RSS, Social Software, programming languages, and the future of technology.

Barcamp Boston is just one instance of Barcamp - there are other Barcamps all over the world. You can find them on the main Barcamp web site.

(For those of you who aren’t programmers, “Bar” in Barcamp doesn’t refer to a place where alcoholic beverages are served. It comes from Foobar, a common placeholder name in programming.)

For a list of sessions, I took pictures of the Saturday and Sunday session boards from both days. Flickr displays them out of order, so I marked them with numbers.

Barcamp Boston 3 - Google App Engine PresentationSessions I attended:

  • Saturday
    • Visualization at an Internet Scale by Matt McKeon from IBM’s Many Eyes project
    • Distributed Twitter by Joe Cascio
    • Git as a subversion replacement by Josh Nichols
    • Google App Engine by Shimon Rura and Brian Olson (shown in picture)
    • iPhone Development by Dan Grover
    • Viral Marketing by Matt Peters from Pandemic Labs
    • Open Source Backup and Recovery Discussion led by Joe Slag
  • Sunday
    • Code Secrets
    • Build your own wireless router
    • Ubuntu Discussion
    • PHP Development Discussion led by me

Here are some links to products and web sites I learned about:

  • Career Numbers - career analytics currently in stealth mode
  • Wonder Warp - iPhone and Mac applications from Dan Grover. He did a talk on iPhone development.
  • Draconis Software - web application development
  • Diet.com - nutrition information with access to info over SMS
  • My Punchbowl - party planning and invitations, fairly well known and funded. He hosted a discussion on hiring people in tech.
  • Gigafloat - social messaging, link sharing, etc.
  • Babbledog - social bookmarking and news.
  • Many Eyes - data visualization research from IBM

This is just a small sample. The Barcamp Boston 3 wiki has a much more comprehensive list of attendees with links to their sites.

I enjoyed the event, met a lot of great people, and received many clever suggestions for my company.

Some events on the horizon include:

Comments

Close
E-mail It