qmail Author Considered Dangerous
Thanks to LWN I was reminded of the, erm, interesting license and security guarantee of qmail. Specifically:
In March 1997, I offered $500 to the first person to publish a verifiable security hole in the latest version of qmail: for example, a way for a user to exploit qmail to take over another account. My offer still stands. Nobody has found any security holes in qmail. [...] In May 2005, Georgi Guninski claimed that some potential 64-bit portability problems allowed a ``remote exploit in qmail-smtpd.'' This claim is denied. Nobody gives gigabytes of memory to each qmail-smtpd process, so there is no problem with qmail's assumption that allocated array lengths fit comfortably into 32 bits.
Erm. Well. I'm not sure what to say. Assuming that array lengths (size_t, IIRC) is a 32-bit type even on 64-bit architectures is wrong. Defending it is insanity.
NP: Layered, Antibreak
I waited. I prayed. I begged. I cried. Eventually, they listened.
NP: Under The Pink, Tori Amos
Woohoo, I solved my Epiphany problem, so have just done the first release of EphyDeli.
EphyDeli is a Python extension for Epiphany that adds Post To Delicious menu and toolbar items, for posting the current page to Del.icio.us. It's lean, mean, and very simple, but does the job.
To download it you can either the tarball or fetch the bzr tree. Don't hesitate to mail me with any problems, and don't hesitate to drop a quick mail if you actually use it so I can see if it's popular.
I'm trying to write an extension in Python for Epiphany that has a toolbar button, and let the user add/remove it at will. Now, I can add a button, but I can't get it to appear in the editor. This is probably due to me being silly and not understanding how the editable toolbar works...
I have already created an action for my extension, which is called "Post". If I do this:
shell = epiphany.ephy_shell_get_default() shell.get_toolbars_model().add_item(0, 0, "Post")
Then the button appears on the toolbar, and works. I can even remove it from the toolbar with the editor, but if I do this I can't add it back again. Does anyone understand how to add a toolbar and menu item (for the same action) to Epiphany from a Python extension?
Yay for Bank Holiday weekends. It's been a busy one, in no particular order we:
- Saw Snakes On A Plane, which was good. It managed to be tongue-in-cheek without being silly, and Samuel L Jackson didn't disappoint at all. Great fun film.
- Saw Pirates Of The Caribbean 2, which wasn't bad. As ever it proves the rule that the sequel is never as good as the original, was a little too long, and the abrupt ending setting the stage for the third film was a little annoying. I didn't think it was bad though, but you really needed to have seen the first film.
- Had a swift pint (or two) with Allen before the cinema. He's been travelling around with work a lot recently (Manchester, Sheffield, Delhi) so catching him is quite tricky these days.
- Went out to dinner with Caroline to De Luca. Very good Italian, highly recommended.
- Cooked a roast chicken and so on for Pete and Jayne, before they go back to uni. This summer has flown by and we didn't really see them much, so it was good to spend half the day with them. I also failed to poison anyone with roast chicken, which is always good.
NP: [THN014] Zu Hause2 LP, Digitalverein
I don't know what changed, but recently autotools are refusing to let me run configure when the tree is already configured. I have to run make distclean. Of course if I've started configure via an autogen...
[sbox-ARM: ~/source/osso-addressbook] > make distclean /bin/sh ./config.status --recheck running /bin/sh /home/ross/realhome/Programming/scratchbox/osso-addressbook/configure --prefix=/usr --no-create --no-recursion checking for a BSD-compatible install... /scratchbox/tools/bin/install -c checking whether build environment is sane... yes checking for gawk... gawk checking whether make sets $(MAKE)... yes configure: error: source directory already configured; run "make distclean" there first make: *** [config.status] Error 1
Stab stab kill die die!!
NP: Zwischen zwei und einer Sekunde, krill.minima
Sound Juicer "Don't Blow Those Brains Yet" 126.96.36.199
Sound Juicer "Don't Blow Those Brains Yet" 188.8.131.52 is out. Tarballs are available on burtonini.com, or from the GNOME FTP servers. Hmm, I've done very little here, and there are 91 open bugs in Bugzilla. This sucks.
- Update the icon cache on install (#348972)
- Fix intltool requirements (Kjartan Maraas)
Update: 184.108.40.206 is released, with a tarball that will configure.
Come And Get It!
In an attempt to clear out some of the stuff I never use, I've put a Thinkpad charger and a Lowepro camera bag on eBay.
IBM ThinkPad charger. This will charge most of the ThinkPads in existence, I don't know when it was introduced but I got it for my ThinkPad X22 (bought in 2001), and has since been used with an X32, a T40p, and a T43. Basically if you have a ThinkPad and the charger is not a brand new 20V Lenovo model (?60 range only as far as I know), this is what you want. This retailed at £50.
Lowepro Nova 3 AW camera bag. Good condition, excellent quality camera bag from Lowepro, capable of storing an SLR, 3-4 lenses, flash, filters, charger, and more. The bag is is dark grey and black. I've been using it to hold a Canon EOS-300D, 18-55mm, 50mm, 28-135mm, a Speedlite 380EX, cables and a number of filters. This retailed at £45.
NP: Boys for Pele, Tori Amos
Yet Another Flickr Uploader
Following the grand tradition of rewriting new programs instead of improving existing ones, I've written a Flickr upload tool in Python. It's called Postr, but luckily that string isn't exposed in the UI.
It's not yet ready for a 0.1 release, although it's close. You can drag-and-drop images to the application, set the title, description, and tags, and then upload. It tries to be clever: the EXIF thumbnail is used in the interface if it exists to avoid loading the entire image, and if the image contains an EXIF ImageDescription field that is used for the description automatically. My next task is to fetch the list of tags and present them to the user in a useful way.
If anyone wants to have a play with it, then the source is available via bzr in this repository.
Lack of Entropy
A while back I upgraded CUPS on my NAS device to CUPS 1.2, and as my configuration file had bitrotted I decided to erase it and start again. It was looking good, CUPS detected the USB printer like they said it would, but then it just stopped working. I had to upgrade to a SSL connection to perform administration tasks, and it just wasn't working. strace shows the daemon was just running a select loop, I had no idea what the problem was.
Today after a bit more searching the solution hit me. It's trying to create a self-signed SSL key, and SSL keys need random data. Now, what creates random data on Linux? Mouse activity (the NAS has no mouse), keyboard activity (no keyboard), and disk activity (it gets used once a week). A quick poke with sysctl proved my problem:
$ sysctl kernel.random.entropy_avail kernel.random.entropy_avail = 8
Hm, eight bytes with which to create a SSL key from, that just won't work. Solution: find /. I ran that in one terminal with sysctl in another, and could watch the entropy pool get filled with IDE data, to be used by CUPS. After twenty seconds of disk activity, the certificate was finally generated. Yay, a working printer!
So, for Google and anyone else out there: if you see Generating SSL server key... in the CUPS log and then CUPS hangs, check your entropy levels.
Whilst trying to get the modesettings branch of the Intel X driver working, I noticed this in the LCD probe:
II) I810(0): redX: 0.569 redY: 0.342 greenX: 0.312 greenY: 0.544 (II) I810(0): blueX: 0.149 blueY: 0.132 whiteX: 0.313 whiteY: 0.329
IBM (this X60 is still branded IBM, not Lenovo) deserve some serious props for actually setting all of the data provided by the EDID spec. I best I should hack up a tool to generate ICC profiles from the primaries specified at startup.
Pimping Contacts and Dates
Those nice people at Linux.com have published an article about Contacts, Dates, and the DBus port of EDS. Basically it says that Dates rocks, Contacts rocks, and so does the DBus port of EDS. Rock on, thanks Nathan!
NP: Neighbour Radio
Has anyone seen this, and know a solution, for ALSA on a ThinkPad X60:
$ esd ALSA lib pcm_direct.c:786:(snd_pcm_direct_initialize_slave) snd_pcm_hw_params_any failed ALSA lib pcm_dmix.c:831:(snd_pcm_dmix_open) unable to initialize slave
The sound card is a standard Intel chipset:
0000:00:1b.0 0403: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)
Cornish Bliss (part 2)
Now, where was I...
Ah yes. After the horrendously grim weather had passed, the weather improved and we headed for the beach. On the way down we commented on how this was the classic British burning weather: bright sunshine, a strong breeze, and occassional clouds combine to burn skin without even feeling that hot. Of course knowing this meant nothing, we were too distracted with purchasing pasties and drink to think about putting a decent amount of sunblock on.
Obviously the main thing to do at the beach, after we'd sat down, not applied sunblock, and scoffed a pasty, was to dig a hole. A huge hole. Spades were purchased and we took turns to help Pete dig The Hole.
Astute readers will notice the inevitable outcome of saying
burning weather, not putting enough sunblock on, and digging a hole
(an activity that results in the back being exposed to the sun). Ouch.
After the hole had been dug we had to full it in again to avoid trapping small childen in it. Obviously this led to a series of hilarious scenes involving burying Pete up to his chest, modelling breasts and a penis, and so on. Finally the hole was flat again, at which point an impromptu long jump sand pit was arranged. I came first in the long jump, and although failing miserably at triple jump although I swear my technique was best (it's all in the wrists).
Next was to explore the costal path in the opposite direction towards Porthkidney beach. The beach is pretty huge by my standards, and due to the lack of facilities (no close car park, shops, toilets, and so on) it's almost deserted: there were a few other people there with dogs (the other local beaches are dog-free in summer) and that's about it. Googling to confirm the name of the beach reveals that there is a history of naturism and "inappropriate gay activity", but we didn't encounter any of that. ;)
The costal path was great, far more rough than the walk to St Ives (often just a foot wide cutting in the ground), steep in places, and generally running very close to the cliff edge. The views were great, but I always think what a horror paths like these would be in winter, with the full force of the Atlantic winds pounding against the cliffs. As a finale it turns out that the costal path follows the cliff all the way along the back of the beach, which would easily be another twenty minutes of walking to reach sand. There is a shortcut down some stone stairs to the beach, but we arrived at high tide and the bottom of the stairs (well, rocks) were a foot deep in water. Wading up to the beach was a fitting end to the walk, and made the beach feel like our own little desert island!
I'll have to explain the expression on Vicky in the above photo. As a child when Vicky went to visit her father in Devon they used to go to the beach and spend the day annoying the wildlife: chasing crabs, kicking limpets off rocks and so on. When Vicky noticed that the rocks at the bottom of the cliff were covered in limpets, she shouted "limpets!" with a manic expression and preceeded to prod them frantically.
After lots of sitting around and digging tunnels, we headed for the dunes for a spot of dune diving. This involves running at top spead down the dunes and throwing yourself into the sand at the bottom. Ah, the simple pleasures in life!
After my dive I ran back up the hill in the manner of a mad man, arms out-stretched to Vicky as I collapsed in front of her, gasping "It's". "What?", was the confused reply. This is terrible, I really need to get Vicky to watch the Best Of Monty Python DVD we have somewhere...
Possibly more to write, but Lost is on, so I'm off for now.
Cornish Bliss (part 1)
Let's start this with a cliché:
A Short History of Tractors in Ukrainian: £8
Best Of by Nina Simone: £14
One week in a rather swish house just outside St. Ives: about £200
No email. No Jabber. No Subversion. No Bugzilla: priceless
For the last week Vicky and myself were in Cornwall, staying in a house just outside St. Ives with her family. The house was much nicer than we expected, very tastefully decorated and well equipped, with a DVD player, hi-fi, coffee machine, and so on.
The house was in Carbis Bay, about a twenty minute walk from St. Ives along the costal path that was directly off the bottom of the garden. The path towards St. Ives is also the nicest stretch of costal path I've been on: it is surfaced and wide enougth to drive on, unlike the paths we've been on previously which are often no more than a foot wide cutting in the earth, next to a sheer cliff.
Our first impression of Cornwall was one of chill: when the taxi dropped
me off at the train station to start the journey down the thermometer said
38°C, but at the same time the next day it was
23°C. Brrrr. The traditional Cornish summer proceeded to roll in
a few days later, with heavy rain, gusty wind and general grimness for a
day. Yay for DVD players!
St. Ives is a lovely town. Unlike Newquay which was got far too popular for it's own good (the two-carriage train had both a Stag and Hen party on board en route to Newquay, trying not that subtly to pull each other), St. Ives is busy but not crammed. There is no demographic that dominates the tourists, a mix of families young and old, surfers, twenty-somethings and pensioners means it doesn't feel like a tourist hotspot, and it manages to cater for everyone. The habour front has lounge bars, traditional pubs, restaurants and cornish pasty shops, catering for everyone. The town has become quite a focal point for artists recently (since 1928, Wikipedia tells me), and there seems to be more independent art galleries than pasty shops (!), including the Cornwish outpost of the Tate. Tate St. Ives is pretty small for anyone who has been to Tate Modern, but it's damn good: due to the size it is very focused (there are just two galleries) and the building itself is a wonderful modern piece of art deco architecture. We went with the intention of getting some more pictures for the house and did quite well: a print of Horizontal Stripes by Patrick Heron, and a limited run print (427/600) by a local artist. I'm too lazy to remember the name of the picture or the artist, but I'll take a photo of it later. Our Grand Plan of having more individual art in the house is going well, we've an original oil-on-canvas abstract to collect from the framers that we bought in Paris too.
To be continued...