Geotag Photos using Google Latitude

I have made a project which can geotag your photos with information from Google Latitude, if you have enabled Latitude to store your locations. It currently requires you to manually export the data from the Latitude website, but it should be possible to automate this tasks. It is written in python with PySide, a Qt corssplatform library, which means it should be able to run on Windows and Mac, though it is currently only tested on Linux. Read more about the project here.

Alternative Geocoders

I have lately been doing some research for alternative geocoderes to Google, Yahoo and Bings geocoders, as they do not allow storing the received data (we need to receive geocoordinates in a mobile app, to minimize the time and data spent). The addresses are in Denmark, so two of the three alternatives I found only support Danish addresses:

  • Nominatim — May not have complete data, but so far i have not encountered any addresses not supported. It takes about 3-13 seconds per request. It is the only geocoder of the three, that supports addresses outside Denmark. It is part of the OpenStreetMap project.
  • Adressewebservices — Is a SOAP webservice that is created by the Danish Enterprise and Construction Authority, it is, however, the slowest of the three (about a minute per request).
  • Vis Stedet — This service is developed by the Danish Ministry of the Environment. It is the fastest of the three geocoder. However, I am not quite sure about the terms of use, you may need a login to Kortforsyningen, even though it seems to be possible to use the geocoder without.

Some of these seems pretty slow, and user can not be expected to wait one minute for a geocoder to do its job, therefore it might be an advantage to use a cron-job or equivalent for this tasks, and collect the coordinates ones a day, or perhaps use the cron job in combination with the Nominatim service, which may be reasonably fast, and, if no result are found, use the cron job to find alternative coordinates later.

Twisted on Windows 64bit

I have just spend several hours getting twisted working with python 64 on my Windows 7 64 bit install so I could make a dummy test server. Basically it turned out that the 64 bit version of python posed the hindering, and i ended up installing the standard 32 bit version and using easy_install to install twisted which is now functioning.

My first thought was simply installing python and using twisted own windows install file, however this did not work at all (I have not tested this method with the 32 bit version of python, but I am guessing it would work as supposed).
Next I tried to use easy_install, but I could not install easy_install from setuptools, and got a warning about python 2.6 not being installed. But when I removed the 64 bit version and installed the 32 bit version it installed without any problems. So my advice is: Use the standard 32 bit version!

Hopefully this will be helpful to others in similar situations.

Online project management tools

During the last two semesters I have gained some experience with online tools for project management. There is a lot of tools out there, some are good some aren’t, here I want to share my experience with the two tools I found most useful, so far.

  • Banana Scrum
    As the name hints, this is a tool created for the SCRUM development method. It enables you to manage a backlog, add tasks to user stories, create sprints from the backlog and several graphical representations, e.g. burn down chart. It functions well, and several people can edited at the same time. Banana Scrum is free and functions very well.
    Update: bannascrum has just updated their plans, the free plan (click Free plan below the other plans) now only allows three users, one project and 300 MB of storage.
  • Viewpath
    Viewpath has a really nice tool, it has the basic Gantt features: resource assignment, graphing and time scheduling. It comes in two versions, a free limited version (ad free the first ten days) and payed version. I haven’t experienced any thing I really needed that wasn’t available in the free version. Like banana scrum, several users can be added and manage the schedule.

I hope you also find it useful and post you favorite project management tools below.

WordPress and special characters domains

I have recently switch to a domain with a special character (ø), which lead to not being able to use the pop-ups in WordPress editor (tinyMCE), firebug gave me this error

After a bit of googling it seemed to be a problem in the version (2.2.3) of tinyMCE included with WordPress version 2.7.1.

I manged to solve the problem by downloading the newest version of tinyMCE (at the time of writing that is 3.2.2.3) and replace tine_mce.js and tiny_mce_popup.js in /wp_includes/js/tinymce with the same files in the downloaded zip folder, located at /jscripts/tiny_mce — you might want to keep a copy of the old version, just in case you find a problem with this approach. If you find any problems with this approach please let me know.

pptp with NetworkManager

After using some time trying to get a pptp to a VPN server running Microsoft Windows 2003 R2 i finally found a solution. This article made me aware of a Network Manager pptp plugin, but it seems to have been changed a grate deal since the description in the article (I’m using Jaunty), so I had some problem connecting. In the end I made a connection with a windows computer and used the settings used there, here is the result.

Start by installing network-manager-pptp and restarting Network Manager (/etc/init.d/NetworkManager restart) now create a new VPN profile by left-clicking the Network Manager icon choosing “VPN connection” -> “configure VPN” -> “add” -> “Point-to-Point Tunneling Protocol (PPTP)” -> “create”.

Access point: the ip of the VPN server
User name: User name of the user you want to login with
Password: password of the user

Now (and this is what made the difference for me) choose “Advanced” and make sure only MSCHAPv2 is selected enable “Use Point-to-Point encryption (MPPE)” and choose “Security: 128-bit (most secure)”.

This worked for me, but keep in mind that your VPN server might be set up differently, if you have problems, try connecting from a windows computer (the setup is quite simple) and see the details about the connection and try to match them in NetworkManager.

cakePHP sessions

I have been working with the cakePHP framework for some time, and ben mostly happy with it, but I had some problems with loosing sessions, when the user clicks on links to fast, today I finally found the reason and solution. By googling around (and searching the cakePHP maillinglist) i found this blog post by Kester Dobson, which had a comment that pointed me in the right direction.

So the sort answer is: set Security.level to medium in /config/core.php, this ensures that CakePHP session IDs are not regenerated between requests.

This seems to effectively solve the problem.