Web Info & Tutorials

November 15th, 2006

ME.DIUM: BRINGING SOCIAL TO THE WEB

Me.dium Logo

We have heard that a major part of Web 2.0 is the ’social’ side of things. That being said, most of the time we are working on the web in solitary mode. There are the odd sharing applications such as sitting with a buddy in front of Google Spreadsheet, but in the most part you feel like being in an empty library.

Me.dium is a startup that is trying to change that. They are trying to add context to the online web browsing world. As they put it: If you in front of three restaurants in the real world; the fact that one is full, another is empty, and the last has three friends means something. It gives you valuable context.

Me.dium is a Firefox extension (soon to be IE7 Add-on and even more in the future) that let’s you visualize the world a little more. You can see your friends browsing, all with relevance letting you know who is doing similar things, and letting you chat with those people. Some get concerned that the tool is collecting your entire clickstream, but privacy is a major concern for me.dium so they make sure you know that:

  • Anonymity can be turned on at any time. It is so important that they add a button next to the URL that allows you to toggle screens up or down.
  • Secure side: https is automatically taken out of the loop
  • A quick email to deleteme@medium.com will remove the data that they have associated with your account
  • Their algorithm does not track every URL that you visit. It only captures data it needs to make smart recommendations, and a lot of data is stripped out.

We asked their tech team a few questions about the extension, as it is an interesting piece of work:

Can you tell us a little about the implementation?

The Firefox extension is as minimal as possible. It is an empty shell that includes the Ajax application from the web. This is different than a lot of Firefox extensions, that you see upgrading all the time. Since the shell will not have to change often, you will not see an update, yet the application will be constantly updating due to the fact that it is basically a web page. A smart pattern.

The core work is done with the Dojo Toolkit (recently upgraded to the 0.4 release). The main packages of use are the language helpers, widget structure, animation, and math. The remote communication is actually done through the Firefox extension mechanism for security.

Why Dojo?

It had the most advanced structure for building widgets, and we connected with the development philosophy and style. We have been nothing less than impressed. The application is really pushing the boundaries, and so far Dojo is coping very well indeed. It really is more than the sum of its parts.

Once you use me.dium, you see a lot of animation. How is that implemented?

We do not use the latest dojo.lfx package yet (as it is so new, and we don’t quite need the vector drawing yet). We do use the traditional dojo animation libraries for effects such as sliding and fading. We also have a particle physics engine that uses the math package.

Does the chat client use polling or comet?

We use a comet based approach for pushing all events to the client. This is currently implemented via the Jetty Asynchronous services available in the server.

What was one of the tough challenges?

Getting complex hierarchical widgets working. When we started Dojo didn’t allow sub widgets, so we had to hack it to work. The client itself is a root widget that has a large set of subwidgets below it. Getting the custom scrollbar that we have working with the layout container was also challenging.

The me.dium project is currently in an early stage. Although it is a private beta right now, Ajaxian has an exclusive signup code that will work for the first 500 people to signup (others will be put on the waiting list). The signup code is: AJX14N06

Be sure to watch out for future interesting updates, including a lot of Ajax functionality on the website as well as the extension.

And if you like what you see, me.dium is hiring ajax developers for their Boulder office.

Me.dium

November 15th, 2006

GEOJOEY: MASHING UP MAPS AND EXPERIENCES

One of the keys to mashing up maps is the fact that our species gets to annotate the web. GeoJoey is an application that is trying to make this happening by mashing up places with experiences.

Find experiences and places, and vote on them. The front page looks like Digg, Delicious, and Google Maps combined.

November 15th, 2006

JETTISON: JSON STAX PARSER

If you springy in the concern of Java, a newborn JSON parser has been dropped titled Jettison:

Jettison is a assemblage of StAX (streaming XML) parsers and writers which feature and indite JSON. This allows nearly straight enablement of JSON supported scheme services in services frameworks same CXF.

There are currently digit included conventions for function JSON to XML. The first, is BadgerFish which implements the flooded XML infoset in JSON using different techniques. The second, is titled the “mapped” convention. It allows you to manually transpose XML namespaces to JSON surroundings prefixes.

Using the mapped StAX implementation

import org.codehaus.jettison.mapped.MappedXMLInputFactory;
import org.codehaus.jettison.mapped.MappedXMLOutputFactory;

HashMap<string , String> nstojns = new HashMap</string><string ,String>();
nstojns.put(“http://acme.com”, “acme”);

MappedXMLInputFactory xif = new MappedXMLInputFactory(nstojns);
xif.createXMLStreamReader();

MappedXMLOutputFactory xof = new MappedXMLOutputFactory(nstojns);
xof.createXMLStreamWriter();