iPhoneDevCamp, iPhone, Safari and Microformats

I wish I could attend iPhoneDevCamp but unfortunately I won’t be in the area (or in the right country for that matter ;-) ).

I just read Chris’ post about iPhoneDevCamp and I think these are the right reasons to make the iPhoneDevCamp.

There are a few facts that support Chris’ view:

  • In the first week Apple sold 700,000 units
  • The iPhone is closed for outside application, but not for web applications
  • Having a couple of million units out (after it is also sold in Europe and Asia) means there are a couple of million users using Safari on their iPhone and want to get the right experience in all/most sites.

The day I heard that the iPhone will be closed to 3rd party apps but will use web applications as its main extension approach I thought one thing. Apple should make Safari (or at least just Safari on the iPhone) Microformats aware.

Since the main interaction of users with 3rd party application on the iPhone is through web sites, extracting as much meaning as possible from such a web site will give iPhone users the best experience. For example, if I had an hCalendar someone in a site, or an hCard, if Safari on the iPhone (or Safari in general) would have Microformats support I could quickly add the meeting or contact information to my iPhone with one click (arrr, is it click or touch?)

If Apple will do that at some point in the future, it means that the Microformats community will gain a couple of million users which might in turn convince web site designers to support Microformats.

Microformats are exactly the small and right amount of standardization that can make the web a better place for both users and developers.

It seems that Microformats becomes more important in smaller devices where the ability to extend their applications and the devices itself is usually limited and input is measured as the smallest and shortest action one should take to make something happen.

Facebook hCard Microformat Application

Being a big fan of Microformats as well as a relatively new Facebook user, I find it odd that Facebook has no Microformats support (at least non that I know of).

I’ve decided to remedy the situation a bit and created a small Facebook application which adds hCard support to your profile as a profile box. It is called the hCard application.

It features your Contact information (as much of it as it can) which include:

  • You profile photo (thumb version)
  • Your full name
  • Link to your Facebook profile
  • City, state and country (any combination of these 3)

Up until now (~8am Israel time) there are 38 users (and only 6 of them are my friends, so it’s quite nice ;-) ).

As far as I could see from my friends’ profile, most of them didn’t add much information, and Facebook are doing a good job saving the privacy of their users by not exposing too much information. This means that the information exposes using the hCard only shows their profile photo and name. In some cases it shows their country and/or state.

All in all, its a good experiment so far, but you can make it better by adding it to your profile and invite your friends to add it as well :-)

If you have suggestion, comments or anything else about the application feel free to drop me something on my contact page here on this blog, or comment in the application’s discussion board on Facebook.

Yahoo Pipes, Microformats and Extendability

I think Yahoo Pipes is really cool. The main attraction is its slick user interface and ease of use.

I just created a pipe of all of the Recent Questions of Yedda translated using Babelfish to French and it took less than 5 minutes.

I do have a couple of ideas that I think will make Yahoo Pipes into something very interesting:

  • Accept Regular HTML pages
  • Have a built-in Microformats parser
  • Support for a more complex piping scripting (perhaps in the form of a JavaScript script)
  • Support for state saving (or at least a limited way such as the ability to compare the previous version of the page/feed you are piping)

Accept Regular HTML pages
Currently, Yahoo Pipes (at least as far as I’ve figured it out) accept only feeds (Atom, RDF, RSS, etc). The other building blocks that works with Yahoo Search, Google Base and Flickr eventually output a feed to Yahoo Pipes. Having the ability to retrieve a page instead of a feed and manipulate it will make things a lot more interesting and will allow VERY interesting meshups and ideas

Built-In Microformats parser
If Yahoo Pipes will accept regular pages, having a built-in Microformats parser will allow people to extract various types of structured information stored in the Microformats on the pages, thus, creating a reacher and more interesting abilities with Yahoo pipes.

Pipes Scripting
Having custom scripting abilities to Yahoo Pipes will make it really great and will allow a burst of innovation and interesting things composed with Yahoo Pipes. Of course, this feature is the most complex one from both development and security since having 3rd party code run on your servers is always a problematic thing. But, I’m sure the fine people at Yahoo can limit that.

One idea that comes into mind is writing such scripts in JavaScript, thus the whole running of the scripts on top of a page will be contained into a JavaScript environment and can only work on the input of the file being parsed.

State Saving
State saving will allow users to create a more complex pipe that can be aware of changes. The simplest one is to compare to the previous version of the page/feed, thus allow the pipe writer to figure out what to output.

An interesting pipe example that uses some of the things I’ve talked about above would be to have a pipe that listen to a certain drivers vendor’s driver page (most of the drivers vendors don’t have a feed that I can subscribe to and know when there are newer versions of a driver and things like that). The pipe would extract the current version and date from the page and compare it to the previous version stored at Yahoo of that page. If it has changed, it will add an item to the feed’s pipe saying that a new version exists, etc.

What do you think? Will this work? Would you be interested in such things?