All change

OK, so I’ve neglected the blog a bit recently but hopefully I can be excused. I had three weeks of exams for my final year at University of Essex and dissertation presentation before that. The exams were over almost two weeks ago now and since then I have catching up with other work and starting a few of my own projects I have been thinking about lately.

I have been gennerally been working on the way I integrate websites for customers in future, and making my source code for web applications more structured and re-usable. There are several useful segments of code I have written over the years and I feel it would be beneficial to make them more generic so they can be added to new projects more easily and extended.

The management system I developed a few years ago for the family business website http://courchevel-1650.com has proven to be successfull and new features have been developed regularly. The system handles all the areas associated with renting out property to holiday makers, such as storing customer details, managing availability, updating the website and printing letters. With a proven system like this that does so much, I’m sure other businesses could make use of it so am making it more generic.

Aside from these I have several other ideas in the pipeline inspired from courses I took in ‘Image Processing’ and ‘Further Concepts in Databases’ but you’ll have to wait for further details at a later date. I also feel the urge to contribute source code to a few open source projects so expect to see developments in this area in future.

Easter vacation

Well, it’s the end of spring term at uni now and I’m back for the holiday staying with parents. The past few months have been pretty busy with assignments and dissertation (which I’ll post about at a later date). Here’s a list of what I’ll be up to until I return to uni for my final term.

  • Keep an eye out for jobs.
  • Work on my ‘Mobile Robots’ coursework, which involves programming Aria/Pioneer robots to manoeuvre a course with sensors.
  • Prepare my presentation to demonstrate my dissertation project next term.
  • Revise some course material for exams.
  • Carry out some restoration work on Bertie (the Rover Mini shared my Jayne and myself).
  • Get a week of snowboarding action in Courchevel, France.

I’ll probably be blogging about several of these, so stay tuned!

Mobile 3G Internet

Yesterday I switched my mobile network provider to ‘3′, mainly because of their attractive fixed-rate Internet bundle. For £5 I get 30 days Internet access, up to a 2GB data-transfer limit. Compare that to my previous network provider (who shall remain nameless) and my £5 would get me only 1MB (0.5p per KB). Obviously this has given me a lot of freedom to surf the web, send/receive email and read RSS feed, which are supported nicely on my Sony Ericsson K800i. Other networked applications I have installed so far are Google Maps and YouTube. I had always wanted to use Google Maps when out and about before, but the amount of data that it uses was just too expensive before.

A particular feature that I have found interesting is my phone’s support for IMAP4 ‘push’ email. After adding support into my Courier-IMAP server, the phone receives email notification (like receiving an SMS message) as soon as new emails are stored on the server. If only my desktop mail client (Evolution) supported this too!

The other thing I want to mention is mobile TV. For £2 I decided to try out 3’s 30 day mobile TV add-on. Quality is obviously not brilliant as it is streamed and there’s not a mass of channels, but it’s amazing none-the-less the first time you see it. I don’t know yet whether I will continue to purchase this add-on, but I can see it being a boredom-buster for those train and bus journeys.

Overall, I’m really happy with the switch–SIM card cost nothing (free with £10 credit), it’s given my phone so much more value, I’m getting to keep my old number and still on pay-as-you-go (pre-pay).

Sony Ericsson phones reading ID3 tags

I’ve been having trouble transferring/playing music on the SE W610i and K800i phones. Copying the MP3 files to the phone is easy–when you plug it in with the USB cable you can select ‘File Transfer’ on the phone and it will reboot as a mass storage device so Linux can mount it. However, after transferring albums and safely unmounting the disks, they appeared to have strange names in the music player. When viewing by artist, album and track in the Walkman and standard music player sometimes the ends of names would be cut off even if they weren’t particularly long. For example, after transferring Mark Ronson’s album ‘Version’ and viewing by artist, the album would be split apparently between three artists:

   Mark Ro
   Mark Ron
   Mark Ronso

Initially I assumed the files were becoming corrupt somehow, even though I made sure I was unmounting properly from Ubuntu and even tried the same files from a Windows machine. After a bit of searching I found a forum thread about the same problem. The problem is due to ID3 tags–specifically version 2.4. The way the Sony Ericssons (at least these phones) display artist and track names has nothing to do with directories or file names but ID3 tag embedded in your MP3 files. Many of my albums had information stored in v2.4 of ID3 (Amarok uses 2.4 by default), but the phones can’t handle this properly and much prefer the 2.3 version. Problem identified! Now for a solution.

Warning: There is a possibility you will loose some ID3 data when converting from v2.4 back to v2.3, However the stuff that does get removed can’t be that great as I havn’t noticed anything missing. V2.4 is supposedly a bit controversial anywa, so v2.3 should make your files more widely supported.

There are two open source tools I can see as being helpful–id3v2 (command line) and Kid3 (graphical KDE application). id3v2 has the argument -c (–convert) which is supposed to convert from id3v1 to id3v2. This will allow you to convert all MP3s in a directory with one command as follows:

id3v2 -C Music/MarkRonson/*

Kid3 has a reasonable user interface and may in fact do a better job at conversion as it has a specific v2.4 to v2.3 conversion tool. You select the files you wish to convert by opening them, Ctrl-A then from the main menu select ‘Tools’ -> ‘Convert ID3v2.4 to ID3v2.3′.

Hope this has helped someone out. This fix works but hopefully a more elegant solution will come at a later date (e.g. ID3 tags get converted automatically when being copied or SE release a firmware update to support v2.4)

Packard Bell Syntek webcam success

Approximately 18 months ago, my girlfriend was looking for a small and light laptop to replace her broken iBook. The replacement laptop is a Packard Bell Easynote BU45-U-045 (I think that’s the model number–product details). Most of the hardware is well supported by Ubuntu Linux–Intel graphics chip runs Compiz-Fusion well, SD card reader, and wireless–although with ‘Restricted Drivers Manager’. There is also a webcam integrated above the screen, but I didn’t get this working until today. The camera chip comes from Syntek Semiconductor Ltd but is usually assembled under the name D-Max.

The command ‘lsusb‘ was an obvious starting point, but no manufacturer/device name is given so you have to look carefully at the ID numbers. This is the output I have (174f:a821) but apparently there are other devices by Syntek that are supported (174f:6a31, 174f:6a33, 174f:6a51, 174f:6a54 and 174f:a311).

jayne@jayne-laptop:~$ lsusb
Bus 004 Device 001: ID 0000:0000
Bus 005 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 003 Device 002: ID 08ff:1600 AuthenTec, Inc.
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 002: ID 174f:a821
Bus 001 Device 001: ID 0000:0000

I found the Syntek DC-1125 Camera Driver Project hosted on SourceForge, still in development (in face the latest version was released today!) but it worked OK for me. These instructions are how I managed to get it to work on Ubuntu. If you decide to carry out these yourself, you do so at you own risk and I accept no responsibility.

Download the drivers from the project page–you want the file stk11xx-*.tar.gz–and extract them. From the extracted directory, make the Loadable Kernel Module with the command sudo make -f Makefile.standalone. I got the following error about ctags, but this didn’t matter as the module had been compiled by this point (.ko file).

make: ctags: Command not found
make: *** [driver] Error 127

If compilation goes OK you should see a file called ’stk11xx.ko’ in the directory which you should copy to your kernel’s module directory, sudo cp stk11xx.ko /lib/modules/`uname -r`/kernel/drivers.

Run the following commands to load you camera’s kernel module. The light next to it flashes if you have one.

sudo depmod -a
sudo modprobe stk11xx

If all has gone well up to this point, test it with an application like Camorama or Ekiga. Install Camorama through Synaptic or by typing the following command.

sudo apt-get install camorama

Webcam output, no arguments

For me the image shown was upside down, which was annoying at first. However there is an argument you can pass when you load the module which counteracts this. If you need the image flipped, use these commands to unload the module and re-load it with the argument ‘vflip=1′.

sudo rmmod stk11xx
sudo modprobe stk11xx vflip=1

Open Camorama again and you will hopefully now be the right way up. Now we have to make sure that this argument gets added automatically or you will be the wrong way up next time you start the computer. You want to create a new file in the directory ‘/etc/modprobe.d’ for the module with the line ‘options stk11xx vflip=1′ in it.

sudo touch /etc/modprobe.d/stk11xx
sudo gedit /etc/modprobe.d/stk11xx
Webcam output, flipped

If you have a similar webcam to this then I hope this post is useful to you. If it is or if you have a question, please leave a comment.

Introducing: Another Blog

I set-up this blog a few months ago and it’s just been kicking ’round doing nothing. So, here we go–my first blog post.

I am a 3rd year undergraduate student studying Computer Science at Essex University. This blog will hopefully allow me to document my thoughts and provoke discussions on matters that are relevant. I have a small web design business that has been running for a few years now, and a wiki which I add to whenever I solve a problem–It’s mainly so I don’t forget, but you may also find it useful. Things that interest me and will be covered in this blog are:

  • Web development (CSS, XHTML, server-side scripting)
  • Graphic design (print and 3D–notably Blender)
  • Linux (FOSS, community, Gentoo, Ubuntu)
  • Servers (Web, email, SQL, backups)
  • Programming languages (PHP, Java, C, C++, Ruby, Python etc.)
  • Recreation (Snowboarding, Jazz–Saxophone, cars–Minis)

Anyway, thanks for reading so far and hope you have a use for this blog.