Saturday, December 15, 2007

Javapolis 2007 roundup

I'm back from the Javapolis 2007 conference. I had a great time over there in Antwerp. I have attended many interesting talks about Java, JSRs, GWT, Scala, methodology, testing and many more Java related topics. The Java Puzzlers by Neal Gafter and Joshua Bloch was the best (fun, interactive and informative) talk in my opinion. During and between the talks there were many discussions about different JSRs and the future of Java in general. To listen and talk to some of the greatest minds in the Java world was really enlightening. Another highlight was the Java Posse Live session, if you don't yet now the Javaposse podcast you have to check it out!

I have also met some people from the GWT community. Maarten Volders (Thanx for lunch!), Luc Claes and the two speaker of the Google Web Toolkit talk Didier Girard and Dick Wall.

I really hope I can be there in 2008!

Thursday, November 22, 2007

Experiences with Chronoscope

The Chronoscope online documentation is a bit thin at the moment. I am sure the guys over at Timepedia are working on the documentation, so this is likely to be improved quite soon. Here is a list of things that stroked my attention while using Chronoscope, things that are not documented but one should be aware of. Note that the Traceurl Google Gadget is a plain JSP and I have not been using the GWT or JavaScript but the Microformats version of Chronoscope instead.

  • Apparently the missing IE support is issue number one. On the Chronoscope Group Ray Cromwell said that they are 'targeting IE support in the next month or so.'

  • Traceurl.com supports two languages (English and German) and the Traceurl Google Gadget even three languages (English, German and French), thus a proper solution for internationalization is very important for me. At the moment Chronoscope's I18N/L10N support is weak, respectively close to non existent. Ray Cromwell comment about I18N was 'We plan to support it. [..] I view I18N/L10N very important, and we will most likely be using GWT's builtin L10N features to do this efficiently.'.

  • Related to the currently missing internationalization support is the problem that the axis identifiers are not interpreted correctly. Using microformats the first row of the THEAD element specifies the axis labels. The label for the value label is set correctly, but the name of time axis is ignored. Setting the German word 'Zeit' instead of 'Time' the chart is still displaying 'Time.'

  • In the first attempt I used a HashMap to keep track of the number of accesses per day. With the effect that the generated TBODY element contained unsorted rows. That does not work, Chronoscope needs its input to be sorted by time.

  • The second thing I realized is that the input should not have gaps. The time line has to contain all dates, setting the value of the dates without accesses to zero. Otherwise Chronoscope kind of interpolates the missing values, which is obviously wrong for my accesses per day use case. For example, say we have the date 06/09/07 with 12 accesses and the date 06/11/07 with 6 accesses to a traceable URL, not setting the 10th to 0 will result in a wrong graph with an interpolated value of 9 accesses for the date 06/10/07. That is not necessarily an error, but just the way Chronoscope handles its input and something the developer needs to be aware of.


The latest release is a beta version and I am sure things will be improved with upcoming versions. The above list is not meant as criticism, but as assistance to people who want to get their hands dirty with the beta release. I am a programmer myself, so I am well aware of the tremendous amount of work that went into Chronoscope. Chronoscope rocks and I am going to use it further on. In one of the next post I will give you some insight into my implementation. A short cook-book style abstract to get you (in case you are a developer) up and running with your own Chronoscope time series chart.

Wednesday, November 21, 2007

Time series visualization in Google Gadget

I included the access time series visualization into the Traceurl Google Gadget. There is a new icon chart.gif right next to the Google Map operation in the Traceurl Google Gadget. Click on the new icon and a new window with a time series chart for the respective traceable URL is displayed.

As mentioned in the previous post the Chronoscope platform does not yet support Internet Explorer, using IE you are getting a blank page. For this reason I'm not going to add the time series functionality to the Traceurl.com main application for now. I'll keep you up to date about future progress.

Tuesday, November 20, 2007

Time series chart

Okay, I finally got some new functionality up and running. It is not yet fully featured, because it relies on a beta version framework. The point of the new functionality is to visualize the accesses to a traceable URL on a time series chart. This is done with the help of the Chronoscope platform. Timepedia announce the first beta release of Chronoscope a couple of days ago and I have been playing around with it over the last weekend. The first shot of an access time series looks like this:



One of the coolest feature of Chronoscope can not be seen on the screenshot, it is the possibility to zoom and pan within the chart. Have a look at the demo page to see a live version, is really impressive! Chronoscope currently lacks IE support, thus the charts only work on Firefox, Safari and Opera. I hope they can fix that soon, because that is kind of a show-stopper :-(

Wednesday, October 3, 2007

Javapolis 2007

To the Java developers out there, I am going to attend the Javapolis in Antwerp, Belgium this December. I'll be visiting the main conference from Tuesday 11th December till Friday 14th December 2007. In case somebody wants to meet there, leave a comment or drop me an email.

Javapolis is a large independent Java conference held in Antwerp and organized by members of the Belgium Java User Group. They expect around 3000 delegates attending from over 50 countries. The conference is located in a Business Centre/Multiplex cinema called Metropolis. Many well known speakers from Sun Microsystems, IBM, JBoss, Google etc. will be holding key notes about bleeding edge Java topics.

Tuesday, October 2, 2007

Newscast

I'd like to apologize, there has not been much news about Traceurl.com lately. I am porting the code to the all new GWT 1.4 release and implementing some new features. This is going to take some more weeks.

Anyways, Traceurl.com runs quite well currently tracing 500 to 1000 accesses a day.

Thursday, July 5, 2007

Improved IP localization

We are constantly improving the traceurl.com service. Up to now the ratio of locatable IPs was not satisfying. Only about 70% of the accesses were resolved to a location. This was mainly because the hostip.info project does not yet have full coverage. The hostip.info project is a great idea and will certainly evolve over time. At the moment quality and coverage is just not where we would like it to be, so traceurl.com was looking for a solution.

We found an acceptable solution in still using the hostip.info database as the primary lookup source. In case an IP can not be found in the hostip.info database traceurl.com performs a second lookup against the geoiptool.com website. That way the coverage and quality of the two services are aggregated. With this solution traceurl.com reaches a ratio of locatable IP way above 90%!

Wednesday, June 27, 2007

HTTP referer

Traceurl users have been asking for more details on the clicked links. Well, this is not an easy task. All we do is evaluating the HTTP header. So there is only limited data about the visitor and her/his computer.

Actually there would be ways to get more information about the visitors computer. For instance by injection some JavaScript code. But I fear fiddling around with the redirected page, injecting code and things the like is neither modest nor legal and could pretty quick become a copyright or privacy issue.

None the less there are still unevaluated information in the HTTP header. One of them information is the HTTP referer. The so-called HTTP referer represents the adress of the website the visitor came from. Depending on the User Agent the referrer can be hidden and in case of a direct access the referrer information is also be missing. If available the referrer will now be shown in a new column in the table on the My URLs tab. In case a traceable URL has been published on multiple websites this is a very useful information.

Of course we try to improve the Traceurl service and will think of other ways to provide additional and useful data in the future.

Monday, June 25, 2007

Publications

The Traceurl.com website is listed on the programmableweb.com dashboard. And the Traceurl Google Gadget made it into the snipperoo.com directory. Feel free to have a look at the respective article and vote for Traceurl.com. I shall be delighted.

Thursday, June 14, 2007

Traceurl Google Gadget Update

A new Traceurl Google Gadget is online. By now the Gadget shows some more information and one can open a dialog displaying all access origins on a wold map (Google Map) from within the Gadget.

trace.png

Click here to add the Traceurl Google Gadget to your iGoogle page.

Wednesday, June 13, 2007

Continuous zoom

In the previous post I have been talking about this continuous zoom function of the Google Map API. I did not find a lot of information about animated/continuous zoom, thus I decided to share the code I wrote.

First of all, this seems to look best in IE. In IE the animation looks very smooth, other i browser tend to flicker while zooming in. Anyways this is a quite new feature and I assume it will be improved in the future.

A good resource to start with things is the Class Reference and an insider tip it this Unofficial Reference. I assume you already know how to get started, otherwise this tutorial can help. I omit the code around and just post my essential function:

function load() {

if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(37.4419, -122.1419), 1);
map.setMapType(G_NORMAL_MAP);
map.enableDoubleClickZoom();
map.enableContinuousZoom();

var point = new GLatLng(47.5,8.75);
var marker1 = new GMarker(point);

map.addOverlay(marker1);

window.setTimeout(function() {
map.panTo(new GLatLng(47.5,8.75));
}, 1000);

for (var i = 1500; i < 4500; i = i + 500) {
window.setTimeout(function() {
map.zoomIn(new GLatLng(47.5,8.75), false, true);
}, i);
}

}
}

The map.enableDoubleClickZoom(); is very important, otherwise the zooming won't be smooth at all. The call to map.zoomIn(...) triggers a one step zoom and the loop around it is where the real magic happens. With the 500ms delay between the calls we can fake some kind of continuous animated zoom in. I am not sure about the 500ms, you may want to play around with this value. Please post a comment in case you figure out a more adequate setting.

Google Map integration

I have just installed a new version of traceurl.com. The major new feature is the Google Map integration.

The origin of several accesses can now be displayed (watch out for the map.gif icon) on a world map. An access is shown as a mm_20_red.png marker on the map, accesses that have the same origin are combined into one marker. Click on a marker to get more information (IP, access time...).

The hostip.info applet has also been repaced with a Google Map. The familiar functionality of the applet is mimiced with the Google Map's continuous zoom capacity.

This is the way the map used to look using the hostip.info applet. An here you can see the new traceurl.com Google Maps integration.

Friday, June 8, 2007

GWT Demystified

People that want to know more about the insides of the Google Web Toolkit should read Ray Cromwell's GWT Demystified Triology. Ray Cromwell promises to digg deep into some of the more esoteric functionality of the Google Web Toolkit. His tutorials and essays are an interesting read for every advanced (or enroute to become advanced) GWT developer.

Tuesday, June 5, 2007

Google Gadget

Check out the all new Traceurl Google Gadget. With this gadget a Traceurl.com user can keep an eye on its traceable URLs through the iGoogle website.


At the beginning I expected a lot of try and error and tons of JavaScript hacks. But the Google Gadget API is comprehensible and well documented, hence getting started was quite easy. Many examples can be found in the introduction and the Developer Gadget makes testing pretty painless.


Click here to add the Traceurl Google Gadget to your iGoogle page.

Monday, June 4, 2007

Top Free URL Shorteners

I just stumbled over a Lens about URL Shorteners at Squidoo.com. Feel free to vote for Traceurl.com ;-)


Screenshots

Here we have some screenshots of Traceurl.com.

The analyse-widget:

Analyze

The map displaying where a certain access came from:

Analyze

Friday, June 1, 2007

GWT 1.4 RC is out

As aforementioned Traceurl is built with the Google Web Toolkit. Since yesterday the Google Web Toolkit (GWT) 1.4 Release Candidate is available for download. This is the biggest GWT release yet. In addition to bugfixes, GWT 1.4 RC includes a ton of new features, improvements and optimizations.

Google Web Toolkit 1.4 Release Candidate

Wednesday, May 30, 2007

More about the idea

True to the motto 'user generated content' everybody in the 'word wide web' acts as an active editor. Either by having an own webpage or blog, by sharing bookmarks and joining chatrooms or forums. All the more it becomes interesting what happens to the content we make available in the internet. Don't you ever wonder how often and from where your contributions are accessed?

Traceurl.com resolves this concern. Once an URL is registered at Traceurl.com it is on a watch. This means that you can monitor whether an URL you have sent by email or posted to a form is accessed or not. The recorded access data allows analysis about the when and from where the accesses have taken place. Thereby one can estimate how interesting an URL is to the users and whether the URL has been forwarded.

Tuesday, May 29, 2007

Hello world

A couple of months ago I decided to have a look at the Google Web Toolkit. GWT claims to be an framework that makes writing AJAX applications easy. In this blog I am going to tell the reader about my experiences with GWT and about the progress of my project.

To create another YouTube imitation is no fun. So I was in need of an idea. I maintain a website for a club with a list of events and appointments. Every once in a while I sent an email to all members of the club containing a link to this list. Alas I never know whether the recipients click on the link and access the updated list. There are some statistics on the webserver, but these are global data. I want some specific information about the URL I used in my email. I know about some redirection services, e.g. Tinyurl.com, but non of them can do that. Bingo, there is the idea I have been looking for...

In the last weeks I have been writting a lot of code, obtained a domain name and unsealed my creation.