Posted by George Wright
Fri, 09 Nov 2007 11:23:00 GMT
Yesterday, Collabora finally put the WebKit EAL code that Alp and I worked on over the summer into a public git repository on git.collabora.co.uk! This is great, as our development is now done in the open instead of behind closed doors, which is the way it should be done in my opinion.
At some point I hope to put online a method of building and installing this EAL which doesn’t involve a ridiculous amount of pain, but we at Collabora are currently concentrating on working with upstream on implementing missing features in WebKit/GTK+.
Some exciting new stuff that has appeared upstream is Rodney Dawes’ work on implementing NPAPI support in WebKit/GTK+ as well as the platform independent new CSS transformation work by Apple. This effectively obsoletes my work on full page zooming as we should hopefully be able to reuse their scaling code for these transformations and create an API function which sets a scale factor on the <html> element.
Personally, I am now concentrating my efforts on implementing a backing store for WebKit/GTK+ which should hopefully substantially increase scrolling performance, as well as investigating and looking into writing this zooming wrapper around the new transformations code.
Posted in Computing, Misc | 12 comments
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 Computing, Misc | 33 comments