Archive for February 2007

MSG, widgets & OpenID

Been thinking about creating a netvibes widget for MSG, once the Netvibes widget API is released (announcement), might be good thing to do, especially since we’ve already got a an API for MSG – so ought to be straightforward enough to fix up. Then we can automatically have a widget for a plethora of platforms/applications with very little effort! Would be especially good when Netvibes supports OpenID and if we can allow people to log in to MSG using their OpenID account. Would be very nice if the OU became an OpenID identity provider …

Future of Web Apps 07

Had fun last couple of days at the Future of Web Apps conference, heard some very interesting talks. All the presentations are going to be available as podcasts, so I guess they should be up soon and I’ll post a link. The most interesting aspect for me was collecting plenty of web app urls to try out in the next few days, e.g. openid (single sign on), twingly.se (visual representation of blogosphere), soocial (contacts management), mybloglog (getting connected with people who read your blog), spinvox (voicemail to text), thinkfree viewer (for publishing MS office files online). When I had chance to have a play with some of these I’ll post up my experiences and thoughts on them.

The application I’m most interesting in finding more about is OpenID, as seems to be an innovative way to solve the single sign on problem. Really interesting to hear about the experiences from founders and developers from last.fm and digg. The OU got a positive mention from Werner Vogels (Amazon CTO) šŸ˜‰

Maps… sneak preview…

Here’s a screenshot of where I’ve got to with the maps….

You can see the green and grey markers on the map, signifying where users are on or offline. The balloon shows all the users located at one of the markers, and gives a link to chat to those who are online.

Groups on Maps

Now that I’ve fixed the problem with the rounding and precision of users lat/lng coordinates, I’ve been able to get back to what I was actually trying to do, and that is allow users to select which groups of contacts are shown on the map. By default when you visit the map all your contacts (who we have location data for) will be shown on the map, there is then an option to tick/untick each group of contacts and the map is dynamically updated with these changes.

I feel like we’re getting very close to having the maps deployed onto a a ‘useable’ server – rather than just running on my desktop machine!

Over the last few days we’ve also been running a few presentations and workshops about the LabSpace tools, for the Widening Participation Fair (held at the OU on Tuesday) and hosting a vist from the Sussex Learning Network (SLN) – as we’re heading down to sunny Sussex to do a few workshops for them later this month and again in May. All the feedback we’ve had from the workshops has been very positive and people seem keen to find out more and test out the tools we’ve developed.

I also gave a quick demo yesterday of MSG at the mLearnĀ  (Mobile Learner Support Project)

Follow up to “Floats, numerics, java, mysql, precision and roundingā€¦”

Have updated to use double rather than float and that appears to give me the precision I now need and it’s done the trick – found I had one or two other little bugs too that needed fixed so has taken me longer to get this sorted than I would’ve liked.

Also, now that it’s done there appears to be some slight anomalies when the clustering is viewed on Google maps, though this is actually just to do with where the grid boundaries are and the concentration of points around intersections of the grid lines. Take the image below as an example:

The lines are the grid squares, the black dots represent the actual locations and the red dots where the points have been clustered for a given square. If the above was represented on Google maps, then there would be 4 markers relatively close together (possibly overlapping), whereas you would probably expect the points to be clustered to a single point, some where in the middle of the image.

Anyway, this only seems to be cropping up on certain zoom levels (to do with where the divisions of the squares occur) and in certain areas and I don’t think there’s much I can do about it unless I implemented a ‘proper’ clustering algorithm – as opposed to an approximation to one.

Floats, numerics, java, mysql, precision and rounding…

Spent the last couple of days trying to figure out why my clustering algorithm in Java wasn’t working properly – was working for some grids, but was totally messed up on others. I think I’ve tracked down why… the problem I think is to do with the precision of the datatypes I’m using in Java and MySQL. In Java I’m using the float type to store a latitude or longitude, then in the MySQL database I’m using decimal(15,12).

There appears to be a bit of a rounding problem somewhere along the line which I need to figure out. For some reason if I try and send a latitude of 52.2 from Java to be stored in the database, it gets stored as something like 52.2000007623. This means when I try and find all the points with latitude 52.2 it doesn’t pick up the record I’ve just inserted/updated.

I’ve not had much experience using this amount of decimal precision before, so the problems are probably due to my lack of understanding of the precision/accuracy of the various data types.

I think the way around this is to change my Java floats to be doubles for more precision and hopefully the problem won’t then occurĀ  – not totally sure what to try if that doesn’t work, so please let me know if you have any suggestions šŸ™‚

MSG CVS launched

Spent most of this week getting the MSG CVS server sorted out and getting the documentation written up, so you can now find all the details under the developer section of the MSG website. Very pleased to finally have this done and ‘out there’, especially as we’ve been promising people it will be done ‘soon’ for the last few months!

Have also been spending some time getting the maps work ported from PHP over to Java, all seems to be going fairly well with this and hope to get it into a basic working state in the next week or so, will still be some more work to do after that, especially with testing, but it’s getting closer!

Finally, I’ve also made some changes to the MSG client to improve accessibility, for example checking all the alt/title tags and tab/keyboard access to all the functions. It’s not yet on the live server (or on the LabSpace server) but once we’ve had the changes checked over we should be able to release these – also new accessibility page on MSG site.