Archive for July, 2006

the mask illusion/lugradio live

July 23, 2006

So LUGRadio Live completes its second year – bigger longer and better than the last. A lot of the talks were really good fun this year, especially the eye-candy related ones. Mirco Muller was there showing off lowfat, his movie-on-a-quad demo, Cairo/GL mixing, his MacOS X dock implementation (the best I’ve ever seen) and so on.

Mark Shuttleworths talk was especially good because he basically said all the things we’ve been saying for years in the autopackage project, except people actually listen to him. My talk came after his and it was clear that what was being said had much more of an impact thanks to Mark, as he had only a few hours earlier been saying that distros need to refocus on the core, we need consistent distro-neutral packaging, we need a strong platform, we need to shift power back to upstream and so on. Hearing this from the millionaire spaceman Ubuntu leader was literally music to my ears.

My talk was right at the end of the event and was a bit quiet for the first half (I was competing against the “women in open source” talk!) but got packed out about half way through as that ended. It was billed as being about autopackage but actually I talked about a bunch of things … mostly why centralisation doesn’t work, but also things like malware and desktop security. People seemed to be interested and following the talk pretty closely. A depressing statistic was that nearly everyone in the room had cleaned a friends computer of spyware at some point.

Wolverhampton was nicer than I remember it. On both Saturday and Sunday me and Mirco headed into town with a bunch of other people, today it was the dude behind Diva, a guy who does Linux sysadmining/database stuff (he had a very fetching red fedora) and some girl who had been sent by her dad to “learn stuff”. It was a good crowd and the pub food was welcome.

The whole show was much more professional this year. They had got a real logo, put up big banners out side, had several concurrent rooms etc. The technology pretty much all worked and the main stage (where I did my talk) is really big.

Anyway, it was pretty good as these things go and I’ll definitely be up for it next year if I’m around.

it’s all in the mind

The image you see is not what your eyes actually send to your brain. This is the basis behind all optical illusions but one of the most powerful is this one: [the amazing spinning mask illusion](http://machomedia.blogspot.com/2006/06/charlie-chaplin-optic-illusion.html).

I’ve seen similar experiments done before and the effect never seems to wear off. The basic cause seems to be that the human brain knows what a face is supposed to look like and cannot really handle the idea of an inside-out face, simply because such a thing is so improbable. The brain “error corrects” a lot of things but this is one of the coolest :)

second life

July 18, 2006

Linden Lab is looking for a full time Linux developer to work on their Linux port (and naturally, hack on other stuff as well once the port is complete). That job is remote and doesn’t require you to move to San Francisco – yay – so that’s new from when I last talked to them about that. Linux/SL users have been limping along with a half finished port and Wine for many months now, so hopefully the ‘Lab can find a good Linux developer soon. I don’t work there but have been following their efforts for some time, they’re a cool company and if you want to write software for the platform it’d be a good place to work. Send mail to Karen (the email address is the obvious one).

They are also aware of and even supporting the effort to reverse engineer the SL client protocol, which is pretty cool. [Would be cooler if they documented it in a non-XOR-encrypted form of course ....](http://eightbar.co.uk/2006/06/01/sl-projects-to-watch-out-for/)

autopackage stuff

July 9, 2006

Slowly getting back my energy to code. The last 6 months took a lot out of me, more than I had anticipated.

double compiling

The original approach of using apbuild to compile each object twice, once with each compiler, was very complex and didn’t work. Specifically when compiling something like taglib that combines objects from multiple directories into a single static archive we lost information required to rebuild the 2nd ABI version of that archive.

I have modified makeinstaller to take a different approach – actually running the entire build system twice then installing into a second build root. The code is a bit hacky and a bit lazy: it assumes “make clean” will work for instance, but it’s getting ready to commit. Once done a major 1.2 blocker will be sorted.

selinux

I recently wrote about the latest shenanigans surrounding Fedora and SELinux. Don’t get me wrong, I think it’s great they’re focussing on security like this, I just (strongly) disagree that this latest move will have any positive impact. There are more important things to be working on. We’re far too complacent about spyware in the Linux community still. I’m considering writing some of my own to demonstrate just how vulnerable we are. Lots of difficult issues surrounding how to distribute such a demo though.

At any rate, I summed up a couple of the more immediate issues for us in [this mailing list post](http://article.gmane.org/gmane.comp.autopackage.devel/5300).

binary relocatability

The current binreloc works OK but leaves a lot to be desired – most critically, we messed up the memory allocation semantics so that they were rather non-obvious and unintuitive. I’ve written a new system that should be an improvement over the old one:

* It hardly ever requires code modification. All you have to do is link another object into the final binary. This could even be done automatically by apbuild.
* No need to think about “raw” vs “glib” style or anything like that.

It works by opening a file descriptor to the prefix and dup2ing to a magic, pre-defined number – currently 200. You then “./configure –prefix=/proc/self/fd/200″. There are security checks to prevent suid+hardlinked binaries being attacked via this approach. If paths are passed to child processes it’ll work as the FD is inherited across exec. If the child process could *also* be using fd-binreloc then you can simply realpath() it to an absolute path, however, remember that in the new Linux world file paths are always process relative.

Unfortunately Tim hasn’t got back to me yet, so I’d appreciate it if somebody could try it out and let me know how they find it! [Get it here](http://article.gmane.org/gmane.comp.autopackage.devel/5278)

elf alternative

I had started writing a journal entry talking about a “next gen” binary format, but I seem to have lost interest. It was reliant on a 64 bit universal address space and wasn’t likely to be implemented anytime soon. Binary formats, it turn out, are just not very interesting, hence the reason that all of the ones in use today are variants of 10+ year old designs which optimise for the wrong things.

other stuff

* Does anybody know what it means in Nintendogs when a bone appears underneath the dog? I’m guessing it means you re-inforced the dogs last behaviour but the manual doesn’t seem to mention it.

* If you live in the UK and ever got a text message from T-Mobile or Virgin from “>pers” that contained garbage or somehow deleted itself when you tried to open it, join the club. It appears the mystery message is a SIM upload from the network – presumably one that only works on some phones.

* Had a strange dream last night. Manya was in it, but she wasn’t with Tony, instead there was some other guy I didn’t recognise. I’m not superstitious but I hope she’s OK. Would be good to see her again sometime.

the oil drum

July 2, 2006

I wrote an article on economics for The Oil Drum, which can be read here: [Interesting Economics](http://www.theoildrum.com/story/2006/7/1/18145/05010). The current economic system sits at the heart of the short-term thinking that pervades our society. So let’s look at changing that.