Yearly Archives: 2010

Synching Thunderbird/Lightning or Windows Calendar with Nokia PC Suite in Windows 7

Guest blog post from my buddy Frank Smyth

Nokia only plays nice with Microsoft products.

That didn’t bother me for years because I used Outlook for email and calendar and Nokia PC Suite got along fine. Then one day I decided to migrate my email to IMAP and the problems began. The first problem was that Outlook handles IMAP very poorly. You can’t get rid of your “personal folder” that you don’t use, and everything that you delete has to go into your local deleted items rather than your IMAP one (I could go on). So I moved to Thunderbird which is much more friendly towards IMAP and installed its Lighning calendar plugin. So far so good.

Then I discovered that Nokia PC Suite doesn’t play ball with Thunderbird/Lightning. I was running Vista at the time and found a surprisingly elegant solution to this problem…..Windows calendar. PC Suite recognises and plays nicely with it and because both lightning and windows calendar use the .ics format you can tell lightning to use your Windows Calendar file (stored under Users->AppData->Local->Windows Calendar I think). So Windows Calendar acts as an unwitting middle man between PC Suite and Lightning and you never have to think about it. It works a treat.

So you will understand my dismay when I discovered that Windows Calendar has been removed from Windows 7. This is all part of the shift towards “the cloud”. Microsoft now offers the calendar within their Live suite and everything is stored online. (Incidently, Nokia are also trialling a similar idea with Ovi Calendar which is in Beta at the moment.) So I was back to square one, with no way to sync my Nokia to my Thunderbird calendar.

The solution is a bit of a hack to make PC Suite think it is working with Vista (and hence Windows Calendar) when actually it is working with Lightning and Windows 7.

These are the steps I took. It’s likely that not all steps are required.

1.     Get Windows Calendar working on Windows 7.

This is very straightforward. Follow the link below. Run it once to generate the .ics file (http://www.addictivetips.com/windows-tips/install-windows-calendar-in-windows-7/)

2.     Tell Lightning to use Windows Calendar’s .ics file

In Thunderbird, go to calendar view, right click on calendar listed on the left hand side and select properties….change its default file to point to your Windows Calendar File (C:\Users\name\AppData\Local\Microsoft\Windows Calendar\Calendars\Your Calendar.ics)

3.     Uninstall software that may complicate things

If they are installed, uninstall Nokia PC Suite, Nokia Ovi Suite and Microsoft Outlook.

4.     Make the following registry changes (messing with the registry can wreck your operating system. Don’t do it unless you know what you’re doing. I take no responsibility etc etc etc)

Thanks to “Classic” on this german forum (and Google Translate) for this bit

http://www.winfuture-forum.de/index.php?showtopic=174635

Open regedit.exe, navigate to Hkey Local Machine -> Software and add a new key called Windows Calendar. In that key add the following string values:

http://www.winfuture-forum.de/index.php?s=c1afe7229fa2613d26a1b82c604c879a&act=attach&type=post&id=34809

Reboot

5.     Install PC Suite (compatibility mode may help, I tried it a few different ways but in the end I don’t think it matters)

6.     Tell PCSuite that its running on Vista

 Go back into the registry

Navigate to HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Nokia.PCSync.Windows7PIM.ISynchAppU

Create an exact replica of this key (including its contents) but call it HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Nokia.PCSync.VISTAPIM.ISynchAppU

(It’s likely that you could just rename Windows7PIM to VISTAPIM but I created the replica key)

That’s it. You should now be able to sync your Nokia phone calendar with Thunderbird/Lightning (or Windows Calendar if you prefer) within Windows 7.

11 years Nokia and you nearly lost me…shape up.

Run-A-Muck Challenge … awesome fun

After being coaxed into it by a mate on the football team I partook in the inaugural Run-A-Muck Challenge in Clonkeeran House, Co. Kildare. It was probably the most fun race I have ever “competed” in. It was just like when myself and my brother went mountain running in Norway except there was a shit loads more mud and 748 more people!

It was a 9km race around fields through ditches, swamps, under bridges, woods and over purpose built obstacles. I got in a awful state running around but managed to come in 6th position which is my highest race position to date.

RunAMuck

RunAMuck

RunAMuck

There are some more photos @ actionphotography.ie and on flickr too. A very well organised event – I’ll definitely be doing it again.

Spotify Singles Chart playlists

I’ve been using Spotify premium for a few months and I’ve been loving it. There are tons of sites with Spotify playlists but none for listing the current UK or US charts. I decided to write a playlist generator which parsed RSS feeds of the singles chart and then created a Spotify playlist based on them. The script also queries Spotify’s Metadata API to make sure the track exists (queries based on song name on chart list so it’s not 100% yet). Currently I am using Billboard.com feeds for the US and UK charts, the official UK Top 40 Chart – see Billboard Hot 100, Billboard United Kingdom Songs Chart and Official UK Top 40 Singles Chart. I also plan to use spotify-api to create an actual playlist based on the tracks found.

I’ll be uploading the source soon once I have some encoding issues sorted. If you know of any RSS feeds with any song charts – let me know and I’ll generate a playlist for them.

Update –

Further Update -integration with spotify-api now working so full Spotify playlists are now generated

Simple Django install on Amazon EC2

I set up an amazon ec2 instance this weekend and as I knew I’d bedoing it again I noted the steps performed. Hopefully they’ll be of use to someone.

Firstly you need to set up an EC2 account. I’d also recommend downloading ElasticFox(XPIinstaller) which makes it easier to manages instances, volumes andelastic IPs. Also install the EC2API command line tools so you can start and stop instances etc.

The following guide is what I did to set up an Ubuntu 9.10 instance with EBS volume attached and a basic django install running. Bear the following in mind when reading the guide:

  • References to 79.125.24.49 are to my elastic IP address that I set up using Elasticfox so it will be different for you.
  • “philroche” is the username I use so I’d hope you’d be changing that.
  • pk-XXXXXXXXXX.pem is the private key from the x509 certificate that was generated when creating my account
  • cert-XXXXXXXXXX.pem is the certificate file from the x509certificate that was generated when creating my account
  • i-d820f7af is the instance ID assigned to my instance – this will be different for you
  • ec2-79-125-24-49.eu-west-1.compute.amazonaws.com is the public DNS for the instance I created. This will also be different for you.
  • philrocheEC2Europe.pem is the private key for the generated key pair which was generated during account set up
  • The AMI I used (ami-97e4cfe3) has a user “ubuntu” already created that is used for initial login
  • djangoreporting (http://code.google.com/p/django-reporting/)is a simple django app that I used to test the set up.

Seting up Ubuntu 9.10 django install on EC2

  • AMI id = ami-97e4cfe3
  • instance id = i-d820f7af
  • ip address = 79.125.24.49 – I created an elastic IP and assigned it to my instance
  • public dns name =ec2-79-125-24-49.eu-west-1.compute.amazonaws.com
  • login = ssh -i philrocheEC2Europe.pem ubuntu@79.125.24.49 (philrocheEC2Europe.pem is private key generated key pair)
  • enable root user = sudo passwd root
  • change to root user = su
  • add new user = adduser philroche
  • add philroche to sudoers list = visudo
  • add the following to file = philroche ALL=(ALL) NOPASSWD:ALLcheck
  • Disable Password-based Login = nano /etc/ssh/sshd_config
    • check for PasswordAuthentication no
  • check root login is disabled
    • PermitRootLogin no
    • AllowUsers philroche ubuntu
  • restart sshd to take affect = /etc/init.d/ssh restart
  • create .ssh directory for philroche user to store public key =mkdir /home/philroche/.ssh
  • generate key pair LOCALLY in your users’ .ssh directory = ssh-keygen -b 1024 -f philroche -t dsa
  • make temp directory to upload public key = mkdir /home/philroche/tmp
    • chmod 777 /home/philroche/tmp
  • upload public key from LOCAL .ssh directory = scp -i philrocheEC2Europe.pem /home/philroche/.ssh/philroche.pub ubuntu@79.125.24.49:/home/philroche/tmp
  • login again and authorize this key = ssh -i philrocheEC2Europe.pem ubuntu@79.125.24.49
  • authorize the philroche user with uploaded public key = cat/home/philroche/tmp/philroche.pub >> /home/philroche/.ssh/authorized_keys
    • chown philroche:philroche /home/philroche/.ssh
    • chmod 700 /home/philroche/.ssh
    • chown philroche:philroche /home/philroche/.ssh/authorized_keys
    • chmod 600 /home/philroche/.ssh/authorized_keys
  • Delete the tmp directory = rm -rf /home/philroche/tmp
  • Now login as new user (philroche) = ssh philroche@79.125.24.49
  • Install require software = su
    • apt-get update
    • apt-get install apache2 python2.5 mysql-server mysql-client libapache2-mod-wsgi python-mysqldb python-setuptools subversion
    • NOTE – You will be prompted for mysql root password
  • enable the modules
    • a2enmod rewrite
    • a2enmod wsgi
  • make sure wsgi is using python2.5
    • rm /usr/lib/apache2/modules/mod_wsgi.so
    • ln -s /usr/lib/apache2/modules/mod_wsgi.so-2.5 /usr/lib/apache2/modules/mod_wsgi.so
  • add virtual hosts by name support to apache
    • nano /etc/apache2/apache2.conf
    • make sure ‘NameVirtualHost *’ is present
  • install django = easy_install-2.5 django
  • Setting up sample app
    • nano /etc/apache2/sites-available/djangoreporting
    • a2ensite djangoreporting
    • mv /home/philroche/Sites/djangoreporting/reporting /usr/lib/python2.5/site-packages
    • echo ‘/home/philroche/Sites/djangoreporting’ >> /usr/lib/python2.5/site-packages/people_example.pth
    • mysql –user=”root” –password=”%Your root password%”
      • create database djangoreporting;
      • CREATE USER ‘djangoreporting’@’localhost’ IDENTIFIED BY ‘djangoreporting’;
      • GRANT ALL ON djangoreporting.* TO ‘djangoreporting’@’localhost’;
      • exit
  • LOCALLY nano /etc/hosts – add 79.125.24.49 djangoreporting
  • /etc/init.d/apache2 restart python2.5 manage.py syncdb –noinput
  • To manage your instance
    • export EC2_HOME=$HOME/Applications/ec2-api-tools-1.3-46266/
    • export PATH=$PATH:$EC2_HOME/bin
    • export JAVA_HOME=/usr/lib/jvm/java-6-sun-1.6.0.15/
    • exportEC2_PRIVATE_KEY=/home/philroche/EC2InstanceSetUp/pk-XXXXXXXXXX.pem
    • exportEC2_CERT=/home/philroche/EC2InstanceSetUp/cert-XXXXXXXXXX.pem
    • sh ec2-describe-instances –region eu-west-1
    • sh ec2-stop-instances –region eu-west-1 i-d820f7af
    • sh ec2-start-instances –region eu-west-1 i-d820f7af
    • NOTE – when stoppped and restarted you have to re-associate the IP address

Mapping “djangoreporting” to 79.125.24.49 in my hosts file lets methe test the server by accessing http://djangoreporting/

Links of interest:

Dublin- Clare in just over 2 hours

The new motorway between Dublin and Galway is now complete and open all the way down now. Because of this I managed to get down from Dublin to my Dad’s place near Ballyvaughan in just over two hours. Only a few years ago the journey used to take over 4 hours. For once I saw the justification of my road tax.

Gleninagh Quay

Django project dependency management and deployment

I’m not our server admin here at Ticket-Text but the whole issue of project dependency management and deployment does interest me. As such I’ve been looking at ways to help and have compiled the following list of what I have found most useful. I admit I have not read all of these yet but Fabric and virtualenv do definitely seem to be standard now for any django project and they could save alot of work. I’ll let you know how we get on.

Some Djangocon 2009 videos that might be of interest (I have the videos in mp3 format if anybody wants them). The slides are also available @ http://djangocon.pbworks.com/Slides.

If you’re looking for a simpler way to deploy SVN changesets check out my python script SVNArchiveByChangeset which still works a treat for packaging SVN changesets as a zip or tar file.

Ran out space on virtual machine (Virtual Box)

I use VirtualBox OSE for my virtual machines and really love it. I tried to change to the non-free VirtualBox (so I could use USB) but moving from one to the other in Ubuntu was not a simple process and eventually I rolled back (thank Christ for CloneZilla).

I’ve got a Win XP virtual machine with a 10GB hard disk which was getting full so I needed to expand it. The simplest way I found was to use the excellent CloneVDI tool. The tool runs perfectly under wine so I was able to double the size of the disk.

This did not however increase the size of the C drive in Win XP so I installed Partition Magic and resized C to take all available space. Now I’ve got a Win XP virtual machine with tons and tons of space 🙂

Bloggy mcBlog Blog

Happy New Year fockers!!!!

Christmas 2009 Robin

In the wake of the interest surrounding http://project52.info/ and Matt‘s return to the blogging world, I’m going to try and get blogging a bit more (I know I’ve said it before). I’ve alot going on at the moment – work, GAA starting back, Kettle Bell and my Masters so surely I have something interesting to write about.

My main dev machine is now a linux machine (Ubuntu 9.10) and to say I’ve learned alot in setting it up as I want is an understatement. I know more about raid arrays now than I ever have and still I can’t keep them in sync. I also plan on doing a bit of work with Amazon EC2 which should be very interesting.

My mum is currently taking two art courses, one of them in NCAD, so for christmas myself and my bro bought her a Canon 500D which I reckon I will be “borrowing” quite a bit. It’s amazing the difference in photos between it and my Olympus compact. I’ve uploaded my Christmas, OZ and 30th photos already and I aim to keep the gallery up to date. I also plan on moving from photoshop elements to another application but I can’t find any that I like that also supports video and that I can hack to support my export script. Any recommendations?