Lessons learnt at aKademy - one of many

Posted by George Wright Sat, 07 Jul 2007 17:24:00 GMT

If Fred suggests going to Pizza Hut for lunch, do not decide to make the Ice Cream Factory unlimited refill offer at Pizza Hut the only part of your lunch. It could have disastrous consequences.

2 comments

Summer Work

Posted by George Wright Thu, 24 May 2007 00:00:00 GMT

This summer I’ve managed to land an internship at Collabora Ltd to work on freedesktop.org projects.

Collabora’s current projects include Telepathy, Farsight and Nice. I will be working on something related to one of those projects.

So far we’re still in the brainstorming phase of what to work on, but Rob is keen that I work on getting TCP-like stream properties (flow control, ordering guarantees, retransmissions etc) into Telepathy’s “Tubes”, so that applications can communicate using stream-like Tubes over whatever UDP connection ICE has NAT-traversed. This will effectively provide a generic method for applications utilising either D-Bus or their own protocol (over a SOCK_STREAM) to communicate through NAT routers whilst still speaking something like TCP.

Of course, I would like to get the community’s opinions on the projects and most of all I’d like suggestions on other things I can spend my time hacking on which will benefit the populace at large. Any criticisms (constructive or otherwise) are welcome. The work will almost certainly be in glib but if there’s any relevant work that needs doing in KDE, Collabora may consider letting me work on that.

Posted in , ,  | 6 comments

aKademy 2007 - Travel

Posted by George Wright Mon, 07 May 2007 02:42:00 GMT

I’ve finally got round to booking the train tickets to get to Glasgow for aKademy this June.

If anyone in London is travelling to Glasgow the trains I’m on are:

London to Glasgow, 29/06/2007 - departing London Euston at 11:46 and arriving at Glasgow Central at 16:55. Virgin Trains.

Glasgow to London, 08/07/2007 - departing Glasgow Central 10:55 and arriving at London King’s Cross at 16:45. GNER.

Would be great if any KDE people are on either of those trains. For those who haven’t booked yet, those trains are the cheapest ones I could find on those days - it came to a total of £47 for two single tickets (both standard class), booked through the GNER website.

Posted in  | 3 comments

FOSDEM - Day 1

Posted by George Wright Mon, 26 Feb 2007 00:22:00 GMT

The second day of FOSDEM was good fun. The night before was not so fun. After having dinner with a bunch of KDE developers, I decided to go and try to find the hotel I was staying in. After two and a half hours of running around Brussels like a headless chicken carrying a few tonnes of computers on my back, I finally managed to get to the hotel we were staying in - the Hotel Continental.

For those who don’t know, the Hotel Continental was the cheapest hotel I could find using Google that was in Brussels. It’s literally right next to the Bruxelles-Midi station and a twin room costs 61.50 EUR per night. The downside? The room is terrible. The wardrobe door fell apart when we tried to open it, the room was tiny and there wasn’t a shower anywhere near the room. However, it wasn’t all terrible. The staff were exceptionally friendly and courteous, the beds were comfortable and the breakfast was quite nice, which made the whole experience much more pleasant than it could have been. If you don’t mind a cheap place to stay that’s nicer than a youth hostel I think the Hotel Continental is quite a nice place to stay.

As for the conference itself, I finally managed to meet Lorn Potter today. I’ve known him for years due to my interest/work in Opie and Qtopia but as he’s located in Australia I’ve never had the opportunity to meet him, so it was great to finally meet him today. The rest of the time was spent trolling on the Debian booth and being viciously attacked by Nattie of #debian-uk fame, who has now surpassed Jes Hall and Lauri Watts on my top ten list of people to hate for touching my hair.

Anyway - it was a great conference and I hope to see many of you again next year!

Posted in ,  | 6 comments

FOSDEM - Day 0

Posted by George Wright Sat, 24 Feb 2007 16:06:00 GMT

Today has been a long day for me. In my ineptitude, I booked a Eurostar from London to Brussels at 6:06 am which meant that I had to get up stupidly early (2:30am) to get to Waterloo on time. The Eurostar was a very good ride though, and it was made more interesting by tracking our route on Maemo Mapper using a GPS. Apparently the top speed we hit was 190.1 miles per hour somewhere in France, and the total journey time from Waterloo to Brussels Midi was 2h37m.

When we got to Brussels we managed to get spectacularly lost on the tram system to the University. Nobody told us there were TWO campuses in south Brussels both called “Universite Libre de Bruxelles”. Luckily the GPS was incredibly useful at this point as I had already added the GPS coordinates of FOSDEM to it and we ended up walking to the conference.

As conferences go, FOSDEM appears to be fairly typical of an open source one. There are LOTS of parallel tracks and it’s impossible to attend even one fifth of the available talks. There are literally thousands of people here and so I’ve been spending most of the day sifting through the crowds and trying to find familiar faces. I’m currently in the OpenMoko talk as it appears to be one of the most interesting projects of the year. They appear to be spot on as to their development model and organisation, but we’ll have to see how well it all goes. I personally am very excited by the prospect of taking the OpenMoko software system and hacking it onto my phone.

I hope to get to more talks tomorrow but for now I think I need to get some sleep and some university work done!

Posted in  | 3 comments

ThinkPad Death!

Posted by George Wright Thu, 22 Feb 2007 06:53:00 GMT

Well, it looks like my ThinkPad T43p has decided to die. A few months ago the UltraNav touchpad/trackpoint combination thing decided to start being faulty, in that it would randomly stop working and then only start working again when it felt like it (a reboot didn’t fix the problem, and no mouse was detected by the kernel if I did reboot), which was a pain.

So today I rebooted the laptop and what am I greeted with upon next boot? The following error message splurted out over and over again:

translated ATA stat/err 0x51/40 to SCSI SK/ASC/ASCQ 0x3/11/04

Really not my idea of fun. A hard disk failure - the most annoying thing in the world. Luckily I managed to get the hard disk into a USB caddy and copy the entire home partition off it, but it seems the hard disk really is faulty as dd if=/dev/sdi of=/dev/zero on my desktop (where sdi is the disk) gets the following sent to dmesg:

[19135224.412000] sd 23:0:0:0: SCSI error: return code = 0x8000002
[19135224.412000] sdi: Current: sense key: Medium Error
[19135224.412000] Additional sense: Unrecovered read error
[19135224.412000] end_request: I/O error, dev sdi, sector 61507808
[19135224.412000] Buffer I/O error on device sdi, logical block 7688476
[19135322.864000] sd 23:0:0:0: SCSI error: return code = 0x8000002
[19135322.864000] sdi: Current: sense key: Medium Error
[19135322.864000] Additional sense: Unrecovered read error
[19135322.864000] end_request: I/O error, dev sdi, sector 61507816
[19135322.864000] Buffer I/O error on device sdi, logical block 7688477

Oh the joy. I’ve now contacted Lenovo/IBM to see what they can do for me under warranty, and upon reading the warranty documentation it seems the trackpad and disk drive are customer replacement units so hopefully I won’t even have to send it in! Hooray for sane warranty agreements! :)

Posted in  | 11 comments

More NX babble, FOSDEM!

Posted by George Wright Mon, 19 Feb 2007 13:22:00 GMT

Thanks to the response of my previous blog about the NX client I’m now working on for the 770, I’ve come to the conclusion that the best way to allow GTK to interact with the client library I wrote would be to implement a D-Bus interface in addition to the standard C++ interface so that the library can work much more cleanly with other toolkits (and hopefully even other languages!). Unfortunately, this is going to be on hold for at least a few days while I sort out my university work… It’s going to be quite a cool project though!

For the first time this year, I’ve finally decided to go to FOSDEM. In previous years it’s always been during term time and as I was at a boarding school I could never go, but now that I’m at university I’ve decided to just take the plunge and go (besides, Alasdair Kergon told me that I absolutely had to come this year). If anyone I know is going give me a shout and I’ll see if I can find you amongst the large crowd of (possibly drunken) geeks! I’ll be leaving Waterloo on the 6:06am Eurostar to arrive in Brussels somewhere around 9:30am and returning on a Eurostar departing sometime around 9pm on Sunday.

Posted in ,  | no comments

NX and the Nokia 770

Posted by George Wright Sun, 18 Feb 2007 04:54:00 GMT

So recently I managed to acquire a Nokia 770 internet tablet (thanks to mjg59). It’s a really nifty device – the screen on it is unparalleled (except, obviously, for the N800 – whose screen is slightly better), and it has quite a nice Linux platform on it. The problem? It runs Hildon, which is GTK-based. The input methods are heavily integrated into the GTK on the device and using any other widget toolkit just doesn’t work (well, it does, but you’re going to need a physical keyboard).

In light of this, I decided to start hacking around with GTK. Its API is not as pretty as Qt in my opinion, but it’s not too shoddy. It just takes a bit of getting used to, although the really verbose function names and endless requirement to call them really annoys me (gtk_foo_bar_baz_lala_eggs_breakfast() anyone?).

Armed with NXClientLib which I developed for my Summer of Code project last year, I decided to try and port my NX client to Hildon. In typical style, I made the architectural decision last year to write the library in C++ and link to QtCore/QtXml simply because it made my life a whole lot easier (I would dread to think how much extra code I’d need to write if I didn’t have QString). Anyway, I’m currently in the process of gluing GTK and Qt together in perfect harmony (haha) so that NX can take over the world, but it’s proving to be less trivial than I thought it would be.

Some gratuitous screenshots:


The initial login interface

The window automagically changes the layout for the on-screen keyboard

I’m afraid that’s all there is to “Maemo NX” thus far. I’ve spent most of the time trying to learn how GTK/X11 works and also thinking how best to implement the whole thing. If anyone is an expert at X window reparenting in GTK I’d be most grateful if they could take a look at this code and let me know why it doesn’t reparent the X window whose ID is specified by int wid into the GTK window I create and then make the reparented window visible. It seems to reparent fine, as the window with id wid disappears, but there’s no sign of it in the GTK window. If I can’t get this to work I’ll simply use mozplugger-helper which does a fine job of reparenting a window, but the fewer dependencies I can have the happier I’ll be.

If anyone’s interested in the code so far, it can be found in the FreeNX subversion repository at http://svn.berlios.de/viewcvs/freenx/nxclientlib/maemonx/.

Posted in ,  | 17 comments

Linux on the HTC Universal

Posted by George Wright Sun, 31 Dec 2006 02:26:00 GMT

For those of you that don’t know, I have an HTC Universal phone. I have two main priorities for this thing - firstly, to get Linux booted on it with the phone hardware working nicely, and secondly to get NX working on it (yes, I’m strange).

Today was the first day in ages that I’ve actually decided to do anything. Those of you that met me in Ireland at aKademy will know that I was working on bootstrapping Debian Sarge on it without much success. Well, today, I managed to bootstrap an almost fully working Etch system without too much difficulty (and by that I mean it only took me 14 hours to do..).

Anyway, it was installed by running

debootstrap --include=wireless-tools,hotplug --arch arm --foreign etch /etch http://ftp.uk.debian.org/debian

at first on my desktop, then copying the entire directory over to my 2GB SD card. I had to create /dev/mmcblk0p1 and /dev/mmcblk0p2 though, and pass the kernel parameters rootdelay=3 root=/dev/mmcblk0p2 init=/bin/bash for it to be usable. When I got to bash I could then run debootstrap --second-stage which finished the bootstrap process.

After all that I installed kdrive from the 720degrees project but ended up having to replace the Xfbdev binary with that from one of the pre-built Universal GPE tarballs as it didn’t seem to have support for VGA modes.

In any case, I’ve now got X11 to run semi nicely, but the lack of a working touch screen is a bit infuriating at the moment.

I’m still trying to work out how tslib works - it seems to be a bit of a weird library. I can create the device /dev/input/event0 and get output from it when I tap on the screen, but Xfbdev always moves the cursor to the top right if I try and specify that as the tslib device. If anyone knows about how tslib works I’d be grateful if they could share it with me as documentation on it seems to be rather sparse.

I intend to get more working soon, but for now, I’m pretty washed out after all the fiddling I’ve done today. On the todo is to get the phone hardware to work, write a telepathy backend for the phone hardware and experiment with various desktop environments or window managers to find which one is suitable (I have a pet hatred for qtopia/opie/gpe. They’re all rubbish.). I’d also like to get the wireless working more reliably (I’m having to use the usbnet at the moment) and also write a keymap for the keyboard that isn’t rubbish. Ah the joys of embedded Linux.

Posted in  | 14 comments

Using a Windows Mobile phone to connect to the internet

Posted by George Wright Wed, 22 Nov 2006 01:31:00 GMT

As some of you may know, I have a Windows Mobile 5 based phone. It’s possibly got the worst software I’ve ever used in my life but the hardware’s really nice so I put up with it.

One of the major things I use the phone for is as a modem for Linux because I have an (effectively) unlimited data tarriff on my contract, so being able to use it with my laptop is incredibly useful.

Previously, I have been using the USB cable and using wvdial to treat the phone as a dial up modem to connect to the internet. This wasn’t without complications as Windows Mobile seems to require an initialisation string which no other phone uses. This is:

AT+CGDCONT=1,"IP","APN",""

Where ‘APN’ is the access point name for your data carrier. In my case (T-Mobile), it’s “general.t-mobile.uk”.

To connect via USB though, you first need to load the appropriate module to give you a serial interface (/dev/ttyUSB0) to communicate through. You’d think this was as simple as running ”modprobe ipaq”, but no - it’s more complicated.

First you have to modprobe ipaq then run lsusb -v. You then need to look up your phone’s entry and record the hex numbers for the vendorID and the productID then rmmod ipaq and load it again passing those identification numbers as parameters to the module, so in my case:

modprobe ipaq vendor=0x0bb4 product=0x00cf

This will then give you /dev/ttyUSB0 to play with. However, it’s still isn’t that simple from here. You need one more fiddle to get it working. You need to set “Stupid Mode” in wvdial to force pppd to start as soon as the modem connects. Thus, the final wvdial.conf is as follows:

[Dialer Defaults]
Modem = /dev/ttyUSB0
Baud = 115200
Init = AT+CGDCONT=1,"IP","APN",""
Phone = *99#
Username = USERNAME
Password = PASSWORD
New PPPD = yes
Stupid Mode = yes

So, after setting up Linux you just need to run the “Wireless Modem” program on the phone and start the softmodem.

Unfortunately, trying to get it to connect via bluetooth appears to be infinitely more difficult. Luckily, I finally managed to get it to connect today after a few hours of research and fiddling, and it now seems rather trivial.

Firstly, Edgy’s bluez packages appear to be sufficiently broken that it doesn’t bring up the bluetooth adapter in discoverable mode - thus resulting in severe breakage when trying to connect the phone. This is fixed by running the command:

hciconfig hci0 piscan

You then need to fiddle some values in /etc/bluetooth/hcid.conf to allow the phone to pair.

I set a default passkey using the passkey "xyz"; option in hcid.conf as I couldn’t be bothered to set up a helper application. However, it should work just fine if you do set up a helper application. That’s basically all that needs to be altered.

Now onto the phone.

Going into Settings -> Connections -> Bluetooth, make sure the phone is discoverable and pair it with the computer. Once it’s paired, the Linux box’s ID should appear in the list on the “Devices” tab. You then just need to go into the “Internet Connection Sharing” program and start the connection using “Bluetooth PAN”. Once that’s done, it’s fairly trivial. On the computer, run the command:

pand --connect BADDR -n

Where “BADDR” is the 6-element bluetooth address of your phone, which can be obtained using the command hcitool scan. After that, it should splurt out something like:

pand[8361]: Bluetooth PAN daemon version 3.7
pand[8361]: Connecting to BADDR
pand[8361]: bnep0 connected

This means that pand has brought up a new ethernet interface called bnep0 for you to play with. After this, it’s just standard networking. Run a dhcp client on bnep0 and it will give you an IP address and NAT you across to the phone.

Hooray - the phone is connected via bluetooth to the internet. I still haven’t worked out how to get it to act as an actual modem over bluetooth (taking AT commands etc), but to be honest, I fail to see any point if we have Bluetooth PAN instead.

Posted in ,  | 33 comments

Older posts: 1 ... 4 5 6 7 8 ... 17