Tuesday, 3 August 2010

Bad Bastien

I forgot to mention in all my previous blog entries that my accommodation at GUADEC was sponsored by the GNOME Foundation. Thanks guys!


Monday, 2 August 2010

GUADEC slides

Got back from GUADEC on Saturday, and spent most of the week-end recovering. Probably a good thing, as I have loads of things on my TODO list, for either the Board, GNOME or Fedora.

Geoclue talk

As per usual when I make slides, I end up going through them quickly, but the Q&A session was long enough for me to go into more details.



Bluetooth talk

No slides, for a change. I hope the videos will be available online soon.


Monday, 26 July 2010

10th GUADEC

Made it to the venue today, and am currently enjoying my 10th GUADEC. I'm still behind jrb :)

Friday, 23 July 2010

Travel preparations

I got myself a little Huawei E585 device, so that I can put in a data SIM card when travelling. My attempts at getting a 3G data subscription in the UK that wouldn't cost an arm and a leg when abroad completely failed, and I didn't fancy carrying a phone just to use as a modem when travelling (I use my usual handset through Bluetooth when in the UK).



Once in the Netherlands, I'll get a Pay-as-you-go 3G SIM card, top it up and subscribe to the cheapest data deal, and be done with it. Note that I needed to unlock the device for use with other carriers, using this dodgy looking website. But it worked as expected.

My attempts at finding the Linux code on the device failed (and this code doesn't seem to be it), so I also dropped a mail to Huawei's FOSS office.

See you online at GUADEC!

Monday, 28 June 2010

My first GNOME Foundation board meeting

A couple of weeks ago, I took part in my first GNOME Foundation Board meeting. As you'll soon see (when the meeting minutes are published), I might have opened my mouth a bit too often as I ended up with 5 separate action items :)

With my holidays behind me, I've been able to knock a couple of those items from my list, and I'll try and use this last day to catch up on the rest of them.

I'll be flying in to GUADEC tomorrow morning, probably spending the day doing some tourism, as Sunday is our first face-to-face Board meeting of the new crew.

I'm attending GUADEC

Saturday, 19 June 2010

iDevice tablet hints

As some of you know, I purchased an iPad some time ago, and I've been using it to read articles and papers away from the computer (which definitely makes for a nice change on week-ends).

It's also started to find its place as an online encyclopedia (thanks Wikipanion) next to the sofa, and a YouTube client when friends are around (along with jeers from my N900 wielding housemate).

Getting Books

Plenty of locations to get those. I've been using Project Gutenberg, because it allowed me to get some classics in French. EPubBooks.com has a similar collection, but better formatted, if you only want the English versions.

For comics, I recommend Tintin Revolution (in English and French), with a definitely left-leaning Tintin, out of a job and on the dole. You'll also find some very old school comics on Golden Age Comics.

Reading books

I use Stanza for PDFs and ePubs and ARCReader for comics. Note that ARCReader is supposed to handle PDFs, but it failed to import any of the files I put on there.

Getting the books on the iPad

The version of the iPhone OS on the iPad is different from the one on the other devices (for now), and doesn't allow easy access to the application documents. All the documents live in the application's directory, and a new protocol is used to get and put documents within each app. This isn't working just yet within Linux, so if you don't want to use iTunes, here are a couple of work-arounds.

One way is using ideviceinstaller. It's painful, especially for large files, but it would at least allow you to get your documents back, or on the iPad, even on a non-jailbroken device.

You would need to list the apps:
$ ideviceinstaller -l | grep -i arcreader
org.fieldman.arcreader - ARCreader 1.1
Get an archive of the application onto your computer:
$ ideviceinstaller -a org.fieldman.arcreader -o copy=./
Unpack the IPA file (it's a zip file), add your documents to the Documents subdirectory, repack as a zip file, and push the IPA file back onto the device.

YMMV, I was having some problems with archiving myself.

The second option is using the afc2 jailbroken filesystem. Once jailbroken, and with the afc2add package installed, you can mount the complete filesystem using nautilus-ideviceinfo (right-click on the device, select Properties, then Details, and select "Browse jailbroken filesystem"). The URI is afc://UUID:2/ if you want to mount it by hand using gvfs-mount or nautilus.

Then you can browse to /var/mobile/Applications/Application UUID/Documents add add documents there. Note that free space stat()'ing is broken (I saw 300 megs free when I have nearly 30GB of free space), and you might break your device using the jailbroken filesystem.

The final option would only work with Stanza, we'll come back to this in a second.

Offline reading

I wanted a way to mark articles as "to read later" in my desktop web browser, and be able to read them when more at ease later on. The bare minimum, which I was using until a couple of days ago is the Offline Pages application, a web browser that'll allow you to download full pages for later reading.

Much better for my usage was the Readitlater application, along with its high-quality javascript bookmarklets. The service has nice APIs, so it would be nice to see more integration in feed readers and web browsers (brownie points for the person who makes an Epiphany extension for it).

Getting the books on the iPad, part #2, Stanza

When launching Stanza, you might see a "Computers sharing books" section in the Get Books/Shared section. This will look for computers on the local network exporting a Stanza service via Zeroconf.

Calibre has an implementation, but it's a bit too heavy duty for me. I tried implementing a proof-of-concept version, and it turns out it's not too complicated, though would need more integration into the desktop.

The protocol used is HTTP, with ODPS data. Implementing things like search and categories was not my prime concern either.

First, I launched a web browser, using the little script I use in Totem for my web-based streams tests:
./launch-web-server.sh --remote start
Then publish it via Avahi:
avahi-publish-service "Stanza export" _stanza._tcp 12345

Right, it shows up in Stanza, and the access_log shows me it's trying to get '/'.

It copied a PDF inside the root directory of my web server, and created cover and thumbnail images for it:
evince-thumbnailer -s 512 'foo.pdf' cover.png
evince-thumbnailer -s 512 'foo.pdf' thumb.png

Finally, I create the smallest possible Atom/ODPS file to advertise my PDF file (saved as index.atom):



<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"
xmlns:dc="http://purl.org/dc/terms/"
xmlns:opds="http://opds-spec.org/2010/catalog">
<entry>
<title>My PDF</title>
<link type="image/png" rel="http://opds-spec.org/cover" href="cover.png"/>
<link type="image/png" rel="http://opds-spec.org/thumbnail" href="thumb.png"/>

<link type="application/pdf"
rel="http://opds-spec.org/acquisition"
href="foo.pdf"/>
</entry>
</feed>


And redirected the index file to index.atom:
$ cat .htaccess
DirectoryIndex index.atom

Retry access from Stanza, and voila.


This should be fairly straight forward to implement in gnome-user-share, the only hard part being the metadata extraction for the PDFs, and other file types. If somebody fancies taking this on, drop me a mail, and I'll point you in the right direction.

PS: Found out about vim's TOhtml function. Neat.

Wednesday, 16 June 2010

Python code obfuscation

A couple of days ago, I looked at code to access tvcatchup.com from Totem, and started looking at the XBMC plugin source code.

Then you see things like that:
Oo = ii [ 0 ] . urlopen ( I11i [ list ] )
I1ii11iIi11i = Oo . read ( )
I1IiI = ii [ 1 ] . getcwd ( ) + I11i [ list + 1 ] . replace ( "/" , ii [ 1 ] . sep )
o0OOO = I1IiI . split ( ii [ 1 ] . sep )
Probably a good thing there's readable alternatives available. Note that I'd still be interested in seeing somebody decypher that, as an excercise :)