Planet FOSDEM

July 05, 2008

Christophe Vandeplas

TrueCrypt did the impossible again

Starting from version 5.0 TrueCrypt has support for Full-Disk Encryption using the pre-boot authentication principle.

TrueCrypt has a history of extreme security by providing the functionality of plausible deniability. The problem with encryption is that people can force you to enter your password, but if they can't prove that you are using encryption they can't force you. It is plausible that you are telling the truth.

But why am I telling this? Well, the problem with the full-disk encryption was that the TrueCrypt bootloader was easily detectable. There was no way to have plausible deniability for the fully encrypted disk.

Starting from version 6 the great guys found a way to include plausible deniability and full-disk encryption.But how are they doing it? Well from what I read you can have two passwords in the bootloader. One password will give access to your 'normal OS' and the other password to your 'private and hidden' OS.

They also added a huge performance increase: Support for parallelized encryption/decryption on multi-core processors (or multi-processor systems). Increase in encryption/decryption speed is directly proportional to the number of cores and/or processors.
For example, if your computer has a quad-core processor, encryption and decryption will be four times faster than on a single-core processor with equivalent specifications (likewise, it will be twice faster on dual-core processors, etc.)

Well done guys. I'll soon upgrade my v5.1 to the latest v6 edition.

by chri at July 05, 2008 19:10

July 04, 2008

Pascal Bleser

Deluge 0.5.9.3

Packages of the latest Deluge (a torrent client), 0.5.9.3, are finally available for openSUSE, in the Packman repository.

It took so long to upgrade because the Deluge developers upgraded the in-tree rblibtorrent to a more recent build that, in turn, requires the very latest Boost 1.35. Took me some hours of work to make a boost1_35 package that can be installed aside the (older) boost package that ships with openSUSE.

BTW, if Deluge doesn't start properly, run "deluge" from a shell and if you see the following error message: "deluge.core.DelugeError: 'No such unique_ID.'" then you have to delete your Deluge configuration (rm -rf ~/.config/deluge) and start+configure Deluge again.

YMP

by Loki (noreply@blogger.com) at July 04, 2008 10:20

July 03, 2008

Pascal Bleser

openSUSE and Packman mirror in India

debayan told me today that he has an 8mbit mirror for openSUSE (and other distros) as well as Packman in India.

Cool stuff, definitely an added value for openSUSE users there :).

by Loki (noreply@blogger.com) at July 03, 2008 22:29

July 02, 2008

Pascal Bleser

Freetype2 packages with subpixel hinting

openSUSE packages of the latest freetype2 (2.3.7) are available on opensuse-community.org, with subpixel hinting enabled. See SubpixelHinting for further details.

YMP

by Loki (noreply@blogger.com) at July 02, 2008 20:15

Philip Paeps

The brain is a stack

For the last couple of weeks, I've been fuzz testing some code I wrote. On its own, that sort of thing is mind-numbingly boring, so instead of just handling the problems I found the "simple way" (check for NULL before dereferencing, check if offsets make sense, etc) I decided to refactor where possible so the bugs just couldn't happen. This kept the fuzzing fun too.

Moving error handling upwards nearer to the cause of the errors in an existing code base is sometimes surprisingly tricky. Lots of reshuffling of structures, hiding data from header files and clever encapsulation tricks and pointer gymnastics.

When you're working in ten or twelve files at the same time, you realize how much like a stack the brain is and how good it is at caching information. You push the consumers of a structure on the stack and you roll it up as you change the structure. Sometimes you find yourself branching because you found a way to abstract something and when you get back, the stack is back pretty much as if it had never been gone.

I haven't been able to precisely calculate the depth of my brain stack yet, but it seems to be fairly accomodating. After a couple of hours of shuffling code around, even rough line numbers seem to be getting cached for fast retrieval too. Much fun.

Yet another research opportunity for 'students of the mind'.

July 02, 2008 19:01

The brain is a stack

For the last couple of weeks, I've been fuzz testing some code I wrote. On its own, that sort of thing is mind-numbingly boring, so instead of just handling the problems I found the "simple way" (check for NULL before dereferencing, check if offsets make sense, etc) I decided to refactor where possible so the bugs just couldn't happen. This kept the fuzzing fun too.

Moving error handling upwards nearer to the cause of the errors in an existing code base is sometimes surprisingly tricky. Lots of reshuffling of structures, hiding data from header files and clever encapsulation tricks and pointer gymnastics.

When you're working in ten or twelve files at the same time, you realize how much like a stack the brain is and how good it is at caching information. You push the consumers of a structure on the stack and you roll it up as you change the structure. Sometimes you find yourself branching because you found a way to abstract something and when you get back, the stack is back pretty much as if it had never been gone.

I haven't been able to precisely calculate the depth of my brain stack yet, but it seems to be fairly accomodating. After a couple of hours of shuffling code around, even rough line numbers seem to be getting cached for fast retrieval too. Much fun.

Yet another research opportunity for 'students of the mind'.

July 02, 2008 19:01

Pascal Bleser

Miro 1.2.4 for openSUSE 11.0, 10.3 and 10.2

The latest Miro (1.2.4) is now available for openSUSE 11.0, 10.3 and 10.2 in the Packman repository.

YMP

by Loki (noreply@blogger.com) at July 02, 2008 13:23

July 01, 2008

Pascal Bleser

Miro 1.2.4 for openSUSE 11.0

The latest Miro (1.2.4) is now available in the Packman community repository for openSUSE 11.0.



Builds of Miro 1.2.4 for openSUSE 10.3 will follow shortly.

by Loki (noreply@blogger.com) at July 01, 2008 07:30

June 30, 2008

Damien Sandras

GUADEC & RMLL

I will be talking at the RMLL on Thursday afternoon.

Right after the RMLL, I will be flying back from Mont-de-Marsan to Belgium on Friday.

On Saturday, I’ll take the plane to Istanbul for GUADEC.

I will present Ekiga 3.00 to both events : what’s new, what’s old, what’s to expect.

I have just committed a large piece of missing code in the Ekiga engine.

See you there !

by Damien Sandras at June 30, 2008 21:08

June 29, 2008

Philip Paeps

Patches everywhere

It is amazing how patches have a tendency to pile up on laptop disks. While MFC'ing a silly change this afternoon, I accidentally typed svn diff in $HOME/projects/freebsd/head/sys and the output was rather interesting.

In addition to random patches that occur to me while I'm sitting on the train, I have a good chunk of syscons changes that I really should put somewhere safely.

Laptops are dangerous. Not only do they burn your lap -- and other sensitive areas -- they allow you to do work which is very easy to forget about (and then lose).

Time to sort through this mess and send out some patches.

June 29, 2008 16:54

June 28, 2008

Pascal Bleser

Smart on openSUSE 11.0

zypper ar -r http://download.opensuse.org/repositories/smart/openSUSE_11.0/smart.repo
zypper ref smart
zypper install smart
smart channel --add http://linux01.gwdg.de/~pbleser/files/smart/opensuse-11.0.txt
smart mirror --add http://linux01.gwdg.de/~pbleser/files/smart/mirrors-eu.txt
smart update

by Loki (noreply@blogger.com) at June 28, 2008 22:31

Dad 2.0

And here's my son, Thomas, 3.25kg, 50cm, born at 10:45am on Thursday (26th), healthy and (subjectively) cute.

Everything went great (as "great" as giving birth can be, won't argue with women about that), mother is in good shape and feeling well too.

Such a tiny little thing to hold in one's arms, almost forgot how it is, even though our daughter Gaëlle is just (almost) 3.

So don't be surprised if I'm a bit "inactive" and slow to reply to emails and stuff, currently having higher priorities ;)

by Loki (noreply@blogger.com) at June 28, 2008 20:59

Mark Van den Borre

June 26, 2008

Christophe Vandeplas

eID things

Some output from some commands:

Welke slots zijn er ?

$ ./pkcs11-tool --list-slots
Available slots:
Slot 0           CCID Smart Card Reader 0 0
 token label:   BELPIC (Basic PIN)
 token manuf:   (unknown)
 token model:   PKCS #15 SCard
 token flags:   rng, login required, PIN initialized, token initialized
 serial num  :  6CFF2491AB111E14
Slot 1           (empty)
Slot 2           (empty)
Slot 3           (empty)
Slot 4           (empty)
Slot 5           (empty)
Slot 6           (empty)
Slot 7           (empty)

Hier zijn dus nog 7 vrije slots die we kunnen gebruiken voor alles en nog
wat. Sommigen gebruiken het voor SSL certificaten, anderen voor kun
private PGP/GPG keys

Wat kan de kaart zoal:

 ./pkcs11-tool --list-mechanisms
Supported mechanisms:
 SHA-1, digest
 SHA256, digest
 SHA384, digest
 SHA512, digest
 MD5, digest
 RIPEMD160, digest
 RSA-PKCS, sign, verify, unwrap, decrypt
 SHA1-RSA-PKCS, sign, verify
 MD5-RSA-PKCS, sign, verify
 RIPEMD160-RSA-PKCS, sign, verify
 RSA-PKCS-KEY-PAIR-GEN, keypairgen

De objecten die op de kaart staan (certificaten dus):

$ ./pkcs11-tool --login --list-objects
Please enter User PIN:
Private Key Object; RSA
 label:      Authentication
 ID:         02
 Usage:      sign
.... enzovoort.

Welke certs staan er op :

$ ./pkcs15-tool --list-certificates
X.509 Certificate [Authentication]
       Flags    : 3
       Authority: no
       Path     : 3f00df005038
       ID       : 02

X.509 Certificate [Signature]
       Flags    : 3
       Authority: no
       Path     : 3f00df005039
       ID       : 03

X.509 Certificate [CA]
       Flags    : 3
       Authority: yes
       Path     : 3f00df00503a
       ID       : 04

X.509 Certificate [Root]
       Flags    : 3
       Authority: yes
       Path     : 3f00df00503b
       ID       : 06

En natuurlijk ook expliciet de details over de private keys. We zien dat
de private keys niet extractable zijn:

$ ./pkcs15-tool --list-keys
Private RSA Key [Authentication]
       Com. Flags  : 3
       Usage       : [0x4], sign
       Access Flags: [0x1D], sensitive, alwaysSensitive, neverExtract,
local
       ModLength   : 1024
       Key ref     : 130
       Native      : yes
       Path        : 3f00df00
       Auth ID     : 01
       ID          : 02

Private RSA Key [Signature]
       Com. Flags  : 3
       Usage       : [0x200], nonRepudiation
       Access Flags: [0x1D], sensitive, alwaysSensitive, neverExtract,
local
       ModLength   : 1024
       Key ref     : 131
       Native      : yes
       Path        : 3f00df00
       Auth ID     : 01
       ID          : 03

by chri at June 26, 2008 18:30

June 24, 2008

Pascal Bleser

webpin CLI 1.0.0

webpin 1.0.0 is available in the openSUSE:Tools build service repository.

The only change is that it supports searching for openSUSE 11.0 packages (and that there is an openSUSE 11.0 package of webpin).

by Loki (noreply@blogger.com) at June 24, 2008 06:40

June 22, 2008

Philip Paeps

Making Firefox 3 work for you

For the last couple of hours, I've been playing with Firefox 3 to make it behave. I have blogged at length about how "userfriendly" basically means looking pretty and not working. The good thing about Mozilla is that "userfriendly" is only its default state. With a bit of fiddling, you can actually make it work.

So, without further ado: "Philip, how do you make Firefox 3 work?"

First, install a couple of mandatory extensions:

  • Tiny Menu reduces the space-wasting "menu bar" at the top of the screen into a single button.
  • Littlefox halves the screen real-estate hogged by the browser giving webpages a bit more Lebensraum. It also obliterates the ghastly pastel default look.
  • Adblock Plus I don't need to explain. Don't forget to whitelist those couple of advertising-run websites which are worth it -- like http://fxr.watson.org/ for instance.
  • Download Statusbar turns the preposterous "download window" into a more sensible and less intrusive toolbar.
  • FaviconizeTab squashes up the tabs you always leave open.
  • oldbar: restores the behaviour of the address bar.

Install the nullflash plugin to stop Firefox whining about that "Flash" plugin you don't have.

When you've done that, move the back/forward/reload/stop/home buttons, the address bar and the search bar next to the "Menu" button and hide the navigation and bookmarks toolbars.

Halfway there.

Now get rid of the nonsense that's been piled on the address bar by wielding the medium hammer in userChrome.css:

/*
 * Remove nonsense from the address bar.
 */
#star-button { display: none !important; }
#go-button { display: none !important; }
#feed-button { display: none !important; }
#urlbar-search-splitter { display: none !important; }

Finally, use about:config to set browser.xul.error_pages.expert_bad_cert to true, so you can visit sites which use self-signed certificates a bit less painfully.

There you go!

June 22, 2008 14:10

Firefox 3 and the userfriendly glue

Since there was a call for testers on the freebsd-ports@ mailing list about Mozilla Firefox 3, I decided to give it a go. I had to patch the Makefile not to pull in dbus-glib as an unconditional dependency. I don't believe in D-Bus and don't want it on my system. If I allow Firefox to link with it, it would be the only thing sitting on the message bus too, which feels a bit crazy.

So, Firefox 3. The Mozillians have been sniffing way too much of the userfriendly glue. I already blogged about the too much handholding and the way they've confused security and trust when I tested one of the early betas.

Since I last tested, a workaround has been added to reduce the userfriendliness and increase the usability of self-signed certificates: setting the browser.xul.error_pages.expert_bad_cert option to true roughly halves the number of hoops you have to jump through in order to get the certificate recognized. Great.

The idea of bookmarking also seems to have become even more entrenched in the browser since my last test. I have never really used bookmarks. I've recently started vaguely using del.icio.us but bookmarks really aren't my thing. I guess some people must be into the idea though.

Using tinymenu and littlefox and some creative interface reshuffling, it's still possible to hide most of the bookmark nonsense so that it doesn't get in the way. The only thing I haven't been able to get rid of yet, is the new "add bookmark" button that has been added to the address bar. I'm sure a way exists, I just need to find it.

Overall, despite the userfriendliness, Firefox 3 is an improvement. It feels a bit faster and it still renders the stuff I want it to render fine. It's still a webbrowser though. Nothing to get overly excited about. More than 90% of the stuff being delivered over HTTP is worthless and it's only getting worse. Firefox 3 with enough extensions and some creative tweaking to make it less userfriendly and more usable allows you to sift through the crap in relative comfort.

I will try to resist the urge to downgrade again. Maybe if I feel sufficiently bored, I'll cook up a patch to make LANG=C less usefriendly and more useful. Don't hold your breath.

June 22, 2008 11:07

June 18, 2008

Philip Paeps

Fuel economy for beginners

Belgian farmers are unhappy. When Belgian farmers get unhappy, they want everyone else to be unhappy too. Using tractors and with a little help from friendly taxi drivers and truckers, they basically shut down Brussels for a day.

Charming people.

Their protest doesn't particularly bother me personally. I don't need to be anywhere near Brussels and I use a bike and public transport to get around.

In other words, if it weren't for one small detail, I would have probably completely ignored this whole nonsense in the newspapers and not wasted any time blogging about it.

What is the small detail, you ask?

The farmers are unhappy about high prices of fuel. They are unhappy about a number of other things too, but they are making a point of complaining about fuel prices.

So who came up with the bright idea of using these fuel-hungry machines to blockade the capital instead of ... well, farming?

This whole macho display of noisy pollutants will accomplish precisely nothing. Remember that we have a government composed entirely of short-sighted right-wing conservative incompetents who are way too busy practising linguistic racism and similar idiocy to spend any time at all on the economic welfare of the country they are supposedly governing.

At best, the politicians will find it's a bit noisy out while they're wasting time and money on fictitious non-issues. Close the windows and crank up the airco. "Where were we again? Oh yes, we were going to try to estrange one half of the population from the other half some more".

In other words, instead of burning expensive fuel to produce stuff which can be eaten and exported, our agricultural friends are basically pointlessly polluting the capital while shutting down much of the economic activity that takes place there.

Very clever.

June 18, 2008 17:09

June 17, 2008

Pascal Bleser

Translations for countdown

I'd need a few translations for the 11.0 release countdown picture so, please, if you can contribute in one of the languages below, send me an email or put the translation in a comment below.

"Out now!" or "Available now"! (or whatever is best suited in your respective language), in the following languages:
- greek (el)
- croatian (hr)
- hungarian (hu)
- norwegian (nb)
- dutch (nl)
- polish (pl)
- romanian (ro)
- russian (ru)
- swedish (sv)

Obviously, that's the text that will be displayed once 11.0 is available for download, and afterwards.

And, as you can imagine, it's urgent :)

Thanks!

by Loki (noreply@blogger.com) at June 17, 2008 07:27

June 16, 2008

Pascal Bleser

Demise of POJOs ?

As a comment to Adam Bien's "demise of POJOs", as his blog doesn't allow more then 1000 characters in comments :)

I have other gripes with EJB than their weight (or lack thereof). To me, as a developer of frameworks and more or less generic components used by many developer teams, the JEE spec lacks a great amount of stuff once you go beyond the usual business logic + some database type of application.

Clustering ? Not even mentioned in the JEE spec. Cluster membership (have a cluster node uniquely identify itself), sending messages to all cluster nodes (have to resort to proprietary replicated JMX), etc...
Execute initialization/warmup code at startup ? Still have to resort to the servlet trick, or use proprietary mechanisms.
AOP ? Dependency Injection ? only very lightly supported in EJB 3.0, clearly not sufficient for more complex approaches.
Security ? JAAS ? ouch.

To me EJB is a great facade technology for remoting, EJB 3 is a nice managed component model for applications where it fits... business logic, JDBC, web or Swing UI, but nothing more advanced (from a purely technical point of view) where you need a lot of flexibility or cluster awareness. And yes, while Spring doesn't help wrt clustering, it provides a much more flexible and fine-grained model to manage beans. I mean, this isn't theoretical or fanboyism, I clearly encounter situations where a fine-grained control is needed, every single day. So while EJB can be a good approach for business application level developers, especially when you need to fence them into a scarce technical frame, it just doesn't provide enough features nor flexibility for frameworks or components that need a fine grained control over lifecycle/deployment, cross-cutting concerns (security, audit logging, ...), clustering, etc.

by Loki (noreply@blogger.com) at June 16, 2008 07:34

June 15, 2008

Philip Paeps

Sounds familiar

Haven't those of us who run small companies all been there?

Late invoices

Late payments suck.

June 15, 2008 10:26

Skeptical about OpenId

More and more websites seem to be showing that funny OpenId logo and more and more people I know appear to be quite lyrical about the stuff.

Still. I'm a skeptical bastard. I wonder if OpenID is not a solution looking for a problem, like so many "Web 2.0" technologies.

Using the same username and password everywhere would of course be unbelievably stupid. If one site is broken (or run by a sneaky and enterprising individual), your identity is effectively owned.

I am still using the good old paranoid method of dealing with the plethora of websites that want me to create "accounts" and would like me to create a username and a password to log in to them.

Ever since the beginning of time, I've been generating different passwords for the sites that want them, and storing them in a file on an encrypted volume. Over time, of course, that list has become rather long:

% grep http /cryptostick/keys/passwords.txt | wc -l
207

Many of the sites in that file, I've probably not visited in the last many years, some of them probably don't exist anymore. Not a problem, the amount of data I'm storing about them is probably on the same order of what I once told them about me: very little.

So back to OpenID: if I understand it correctly, it would replace this simple plain text file I keep on an encrypted volume with a whole infrastructure of XML-communicating "things", any of which could possibly break, any of which would be - like anything XML - hideously difficult to debug and, most importantly, like any "web technology", unbelievably volatile and subject to becoming obsolete at the drop of a hat.

I can think of any number of other things that can and will go wrong.

It's a "web technology". People rely on PHP and other security holes, and we all know what happens to infrastructure built on a foundation of wet tissues. After a couple of months, some bright spark comes up with "2.0", also built on wet tissues but now they're "layered". Or something. Try to follow the metaphor.

In any case: either your identity is completely and utterly up for grabs, or you've invested a lot of time (and possibly money) in a very complicated (though probably very pretty) infrastructure which is now completely obsolete.

At the same time, my trusty text file on its encrypted volume (with its backup on dead tree stored somewhere physically secure) celebrates its tenth birthday and still works as well as the day it started as an empty file.

I'll stick to "Web 0.9", thank you. I don't think I could handle the stressful life of "developing for the web". It's so much more relaxing in the kernel, where standards develop at glacial speeds. bliss.

June 15, 2008 10:05

June 14, 2008

Philip Paeps

The demise of the floppy

I was looking for something this morning. The laws of the universe demand that when you're looking for something - anything! - you will find any number of things you didn't remember you ever had. If you're a geek, you'll have so much fun playing with these things that you're very likely to forget what it was you were looking for in the first place.

So I found a stack of floppies.

This made me realize that a significant number of people I see on the train in the morning wouldn't recognize these things. In many ways, the floppy is like the LP. Which is another thing they wouldn't recognize.

It's funny how quickly the USB stick has completely taken over the role of the venerable floppy in the Sneakernet. Not to mention how large the average file has become.

Floppies could store anything from a couple of thousand of bytes to nearly one and a half million bytes. Most of the files on my disk are larger than that now.

These days, you can put millions of floppy-equivalents on a single USB stick.

The USB stick fits in your pocket and will even be readable after you take it out of your pocket.

Scary...

I would love to see if any of these floppies are still readable, but I don't seem to have any machines powered on with a drive.

June 14, 2008 14:36

June 09, 2008

Philip Paeps

Linking with random libraries and the userfriendly police

It's the "libintl.so version bumped, time to recompile just about everything" time of the year again. Yes, I know that if I were to use a binary-based package manglement system, I wouldn't need to recompile, but I'm not interested in that. I don't mind the recompiling per sé either. To me, the benefits of source-based package management far outweigh the disaster that I consider binary-based package manglement to be. Your opinion may well differ.

This rant is not about package management methods though. Please save your comments for another day. I promise there will be other things in this post for commenters to get upset about. :-)

When working with computers, I prefer to think in English. I know a number of more interesting languages than English, but when working with computers, English is just the path of least pain. I don't want software to speak any other language to me. I like having a (roughly) direct mapping between garbage spewed on stdout and stderr and calls to printf() and friends in the code. It makes debugging marginally less painful.

Basically: I don't want localization. I don't mind if other people want it, but I want nothing to do with it.

In particular, I don't want to be affected when the people who maintain gettext decide that it's time to bump the version of libintl.so. In fact, I would be a very happy man indeed if I didn't have libintl.so on my system at all.

Most ports I use understand and respect WITHOUT_NLS= and don't link with libintl.so and don't register a gettext dependency. Some ports (like devel/glib20) however, pull in a dependency on gettext unconditionally, and this is where the trouble starts.

The perceptive reader has by now realized that this is another episode in the interminable "autotools is evil" saga.

When autocrap finds libintl.so on the system, it will halucinate madly and decide that since I have this file sitting on my filesystem (in /usr/local/lib, no less!), I obviously want to have random things linked with it.

This presumptious behaviour is stupid and broken.

Ports that understand and respect WITHOUT_NLS= do this by adding flags to configure or patches to inhibit autocrap checks for libintl.so and hope that this continues to work from version to version. Port maintainers can't be expected to check this all the time.

Inevitably, after a certain amount of time, even if you have WITHOUT_NLS= set, there will be a number of things unexpectedly linked with libintl.so on the system. Since they have no dependency on gettext registered, they won't be caught by the portupgrade -rf gettext dance.

Unfortunately, autotools has become so pervasive and ingrained in the open source world, that there is no real solution to the problem. Even if you could somehow fix autocrap not to cause linking with random libraries it finds, people would continue to use old versions which haven't been fixed.

This is not the real reason it will never be fixed though.

The real reason the problem will never be fixed is that a very loud group of people believes that linking with random libraries just because they're there is userfriendly. The fact that many of these people can't tie their shoelaces without ungrammatically asking for help on Usenet doesn't really matter.

It's userfriendly. Clearly, we can't go around fixing bugs that need fixing when the buggy behaviour is userfriendly.

You can't argue with userfriendly.

Whatever happened to "Unix is just picky about its friends"?

June 09, 2008 14:53

Christophe Vandeplas

Cisco config syntax highlighting in Gvim

My colleague Niels created a syntax highlighting script for VIM.
Like he says:

The goal was to aid in reading a config file, not to provide error-checking when writing one. The script checks for often used tokens and colors them. The recognized tokens are:
  • Comments (start with an ! mark)
  • IP addresses (only IPv4 currently)
  • Interface names. All variants that I came across are included, but the list will certainly be incomplete.

Read the full article here.

by chri at June 09, 2008 12:41

June 08, 2008

Christophe Vandeplas

Value of Comic books ?

Can anyone help to estimate the value of these older comic books?
Please reply or mail me at christophe at vandeplas.com

Title Year Picture
Tintin
L'affaire Tournesol
1956
Tintin
Les Cigares du Pharaon
1964
Les nouveaux exploits de Quick & Flupke
Gamins de Bruxelles
3e serie - ????
inside 1 and inside 2

by chri at June 08, 2008 10:52

June 07, 2008

Damien Sandras

Andy, I’m sure there are more than 100 new features in Ekiga 3.00. I’m ready to write them down.

However, I’m not sure to have enough spare time (yes, I’m not paid to work on Ekiga) to finish everything at perfection for the next release of GNOME. Do you want to join forces ?

by Damien Sandras at June 07, 2008 16:43

June 06, 2008

Christophe Vandeplas

Debugging IPsec VPN Tunnels

Today I had to debug an IPsec VPN tunnel between OpenSwan and Cisco PIX.
Being the third person to work on this 'problem', you could call this last-possible-escalation. Time to give a little hint to know what to look at and where the problem can be. Let's hope these tips&tricks will help others...

Usually IPsec VPN problems can be resumed to five points (order is important):

  1. Incorrect Phase 1 settings
  2. Incorrect Phase 2 settings
  3. Wrong routing
  4. NATting when the VPN traffic should be NATted
  5. Incompatible IPsec stacks

Phase 1 & Phase 2

The first two points seem very simple. But unfortunately it's usually the first place where the problem lies. They key is to clearly choose the settings and give them to 'the other side'. Communication is the key of success here.
Once you and 'the other side' have configured the tunnel, check the logs. If you see messages saying that 'Phase 1 is completed' stop looking at the settings of Phase 1. They are correct ! Check Phase 2 now.
If your tunnel doesn't complete Phase 1, then check the settings again, and again. Ask the other party to dictate what they see. The annoying part is that when you have different brands of VPN devices, the interface to configure these is usually different. So it's more difficult to compare the settings.

A one-million-euro rule: "If you can't see the configuration with your own eyes, don't trust what they say. See to believe !"

Ok, now your IPsec implementation tells you the tunnel is up & running. But "it still doesn't work".

Wrong routing

A simple traceroute or tracert should tell you what is wrong. Nothing very difficult.

NATting

Traffic that enters the VPN tunnel shouldn't be NATted. Usually the firewall NATs all traffic from inside to outside. As your VPN tunnel also has traffic from inside to outside it can become NATted. Check these settings to prevent your tunnel-traffic to be natted. If natted it won't match the encryption domain and will not enter the tunnel.

If the tunnel works for traffic in one direction, but not in the other direction the solution is 'no NAT'.

With Cisco devices the debug icmp trace is a great help. (don't forget the terminal monitor to see the debugging). Now start a ping from a host in your network and see the output in your CLI. Full info about the ICMP packet and what NAT has been applied will appear on the screen.

Incompatible IPsec stacks

This happens, not often but it happens. It's the most difficult thing to detect as you must be 100% sure that your settings are correct. Don't take this easy solution as granted too fast.

To solve this try to upgrade your firmware or use another device with a newer/older firmware and the same configuration.
Try with two devices of the same brand. As long as it works the customer will probably be happy.

A last thing

A last controversial thing I had to do in my career was to take a difficult decision. I had to make a VPN tunnel work between a Fortigate and a Symantec thing (sorry, but I really can't call this thing a firewall out of respect of real firewalls). First the Symantec firewall didn't show certain settings, so I had to reverse-engineer the default configuration. Also another downside was that the device just wouldn't bring up the tunnel all by itself when seeing 'interesting traffic'. It had to be started from the Fortigate. Once that stupid VPN tunnel was working (both directions) it just couldn't stay stable. The Fortigate already had 6 stable VPN connections to other sites, all running FortiOS (based on Linux). But this connection to that crap just crashed regularly without reason.

After many hours of troubleshooting I took my courage with both hands, called the customer and told him: "I could continue debugging this crap, but I can't promise any result. Instead I ask you to throw that Symantec thing away and replace it with a Fortigate of less than €500. In the end I will have a working VPN tunnel in maximum 4 hours, making this a total cost of €900. Compare this to the unknown cost of further troubleshooting without certainty of results.

The customer thanked me for my honesty, a day later they ordered the device and once it was delivered I had a working, stable VPN tunnel in a few hours.

Lesson learned.

by chri at June 06, 2008 16:25

Spam the spammers

From: Spampoison

WWW Robots (also called wanderers, spiders, crawlers, or bots) are programs that crawl the Web continually retrieving linked pages. When a spammer's bot visits your website, blog, forum, etc, all pages and sites linked to it will be searched looking for email addresses.

All you have to do is link to this page so that whenever a spammer's robot scans your page, it will be sucked into this one. To link to this page, just use this simple code:

<a href="http://english-131071411611.spampoison.com">
Fight Spam! Click Here!</a>
or
<a href="http://english-131071411611.spampoison.com">
<img src="http://pics4.inxhost.com/images/sticker.gif" border="0" 
width="80" height="15"/></a>

These links will redirect email harvesting bots to trap sites that will feed it with an almost infinite loop of dynamically generated fake email addresses, mostly on known spammer owned domains! This will render their harvested lists practically useless and of no commercial value.

And yes, probably the spambots will blacklist the domains spampoison.com, but well, it will probably slow them down

by chri at June 06, 2008 16:17

June 05, 2008

Damien Sandras

Ekiga Snapshots Resurrected

Thank to Eugen Dedu and Yannick Defais, we now have again packages allowing easy testing of our bleeding edge Ekiga.

Thank you to Kilian for having maintained them during all those years…

Check them out:
http://snapshots.ekiga.net.

It includes Debian Unstable (i386 and amd64) and Ubuntu Hardy and Gutsy
(i386 and amd64).

Those packages feature the presence indicator, new and advanced video
codecs, a roster like you can find in most Instant Messenger clients, a
quality indicator, an easier setup and many other things.

Last but not least, we have hidden many bugs to hunt here and there!
Please, be kind enough to help us test and improve the software.

by Damien Sandras at June 05, 2008 19:21

Christophe Vandeplas

The Nuon and Electrabel game

Edit 7 june: Electrabel finally wired the money.

Game information:

Electrabel
2008-01-31 : Electrabel adds €125 (+taxes) of 'breaking contract' for a contract I didn't have. They inform me of this by (paper)mail.
2008-02-11 : They only transfer €158,9 instead of everything they owe me.
2008-04-03 : After many phone calls they finally admit that they still owe me €125 by sending a 'facture de cloture' without any more info.
2008-06-05 : I still don't have the money on my account. (But the phonecenter I called last week said they opened a complaint to tell the financial department to pay me back. It usually takes two weeks they say.)
2008-06-07 : Finally the money is on my bankaccount

Nuon
2008-06-04 : €802,86 has arrived on my bank account
2008-06-05 : Letter in the mailbox to say they owe me €802,86

The rules of the game: Find and explain the differences!

by chri at June 05, 2008 17:21

Arnaud Vandyck

Philip Paeps

The funny thing about the move to Subversion

I wonder if I'm the only person who has noticed that there is practically no whining or moaning about Subversion by the people who are actually using it.

There is a lot of drama out on the internetwebs about FreeBSD's migration to Subversion, but it's pretty much all from people who don't use FreeBSD let alone commit to src. (And I'm not talking about the comments on my blog - my readers are very mature and civilized, I'm very grateful and feeling lucky.)

Lots of people shouting that "Distributed Version Control Is So Much Better" and "Centralized Development Is So 20th Century, Distributed Is The Only Way". Meanwhile in the repository, all seems to be going quite well. Code is being checked in, code is being merged, the CVS exporter works and the infrastructure is slowly but certainly starting to fall into place.

People even have time for pointless bikeshed-painting.

There is certainly something to be said for distributed development. But there's an expression that goes don't change a winning team. The FreeBSD Project delivers a fully integrated operating environment and prides itself on its high-quality centralized revision control history. Subversion is working out great!

June 05, 2008 09:01

June 04, 2008

Philip Paeps

Comment spam

And people complain about my CAPTCHAs... Despite the CAPTCHAs, I'm still getting some comment spam. Strangely, it seems to come in "bursts" and the assholes always target the same entries to spam.

I wonder how they're getting past the CAPTCHAs.

Oh well... I've added a blacklist of words I don't expect to see in comments. If you run into the blacklist (unlikely), try a synonym. Be creative. :-P

Spam sucks.

June 04, 2008 09:07

June 03, 2008

Christophe Vandeplas

Create ISO on MacOS X

From slashdotdash.net

1. Insert CD/DVD source

2. Fire up a Terminal, you can then determine the device that is you CD/DVD drive using the following command:

$ drutil status
 Vendor   Product           Rev 
 MATSHITA DVD-R   UJ-857    HBEA

           Type: CD-ROM               Name: /dev/disk1
      Cur Write:   24x CD           Sessions: 1
      Max Write:   24x CD             Tracks: 1
   Overwritable:   00:00:00         blocks:        0 /   0.00MB /   0.00MiB
     Space Free:   00:00:00         blocks:        0 /   0.00MB /   0.00MiB
     Space Used:   76:47:23         blocks:   345548 / 707.68MB / 674.90MiB
    Writability: 

3. Umount the disk with the following command:

$ diskutil unmountDisk /dev/disk1
Disk /dev/disk1 unmounted

4. Create the ISO file with the dd utility (may take some time):

$ dd if=/dev/disk1s0 of=file.iso bs=2048

5. Test the ISO image by mounting the new file (or open with Finder):

$ hdid file.iso

6. The ISO image can then be burnt to a blank CD/DVD.

by chri at June 03, 2008 17:47

Damien Sandras

Back from LinuxTag 2008

I am thus back from LinuxTag.

My talk went great, you can download it by following this link.

I think it was successful, there were many people and I could demonstrate the new features of Ekiga 3.00 by calling Jonita through our VPN connection.

People could see the presence feature in Ekiga, as well as the video codecs improvements.

I liked Berlin very much, it seems to be a very enjoyable town.

I spent most of my time with Anne and Vincent.

I would like to thank Anne again for organizing the GNOME track, and of course the GNOME foundation for sponsoring the travel.

by Damien Sandras at June 03, 2008 17:05

June 02, 2008

Pascal Bleser

openSUSE Board Elections Committee

A week ago, AJ announced on the opensuse-project mailing-list that we (the board) have approved the proposal we've been working on since some time. It was heavily influenced by feedback we gathered from IRC meetings and the opensuse-project list (threads here and here).

One of the key items is that a separate group of people will organise the elections, instead of the board itself. The idea is to reduce chances of cheating and manipulating the process and/or the results (theoretical chances, as I don't see anyone on the board even remotely intending to do that, but it's a matter of trust and democratic processes).
We are thinking of a board election committee composed of 3 members, who would have the job of organising and running the board elections, from collecting people who want to apply for the board, selecting both a process and a piece of software to run the elections as well as announcing the results. To avoid reproducing the same potential chicken/egg issue as if the board was doing this, members of the election committee may not apply for being a board member.

So if you're interested in taking part into one of the most important processes of our community, please contact us at board@opensuse.org.

by Loki (noreply@blogger.com) at June 02, 2008 07:33

June 01, 2008

Christophe Vandeplas

Port-sharing with OpenVPN

Just a short note to wake up people and tell them they can run OpenVPN on the same port as their Apache webserver.
Yes yes yes, this is possible thanks to the so called port sharing feature of OpenVPN 2.1. But not many people know about this great feature. It's time to promote it a little !

Quote documentation:
--port-share host port
When run in TCP server mode, share the OpenVPN port with another application, 
such as an HTTPS server. If OpenVPN senses a connection to its port which is 
using a non-OpenVPN protocol, it will proxy the connection to the server at 
host:port. Currently only designed to work with HTTP/HTTPS, though it would 
be theoretically possible to extend to other protocols such as ssh.
Not implemented on Windows. 

by chri at June 01, 2008 17:15

May 31, 2008

Philip Paeps

CVS is Dead -- Long Live Subversion

Yay:

[660] (philip@carrot)~/projects/freebsd/head% svn info
Path: .
URL: svn+ssh://svn.freebsd.org/base/head
Repository Root: svn+ssh://svn.freebsd.org/base
Repository UUID: ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Revision: 179458
Node Kind: directory
Schedule: normal
Last Changed Author: remko
Last Changed Rev: 179458
Last Changed Date: 2008-05-31 16:17:36 +0200 (Sat, 31 May 2008)

After months of working on a conversion script for 10-15 hours a day, EvilPete has now pulled the trigger on FreeBSD's (src) CVS. And there was much, much rejoicing.

It'll be a bit bumpy for a while, but I'm really happy that we've joined the 21st century of version control. :-)

Of course, CVS will be around for another couple of years so people using anoncvs or CVSUP to keep their FreeBSD systems in sync won't be left in the cold, but as developers, we can finally stop gritting our teeth when we have to merge something.

Now I need to learn about svnsync. I don't think Peter will be impressed if I hammer svn.freebsd.org for all the machines I keep trees around on. :-)

/me happy

May 31, 2008 17:54

Christophe Vandeplas

Companies blocking LinkedIn

It it only my company that suddenly blocked access to LinkedIn or does your company do the same?

Fortunately there are always work-arounds for those who are using it also for work-purposes:

  • First RDP-ing to our support-machines that have a direct internet connection
  • Using https to bypass the proxy and by using a Greasemonkey script to convert all the http links to https.
  • SSL-VPN to your own server with OpenVPN or SSL-Explorer.

For the interested, the Greacemonkey script is fairly basic right now. Once Greacemonkey works with Firefox3 I'll enhance it to convert all the links on LinkedIn.

// LinkedInSecured user script
// version 0.1 BETA!
// 2008-04-22
// Copyright (c) 2008, Christophe Vandeplas
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select "LinkedInSecured", and click Uninstall.
//
// --------------------------------------------------------------------
//
// ==UserScript==
// @name          LinkedInSecured
// @namespace     http://christophe..vandeplas.com
// @description   Changes every http link on LinkedIn to https
// @include       https://www.linkedin.com/*
// @include       http://vandeplas.com/*
// @exclude       
// ==/UserScript==

var replacements, regex, key, textnodes, node, s;

replacements = {
    "http://www.linkedin.com": "https://www.linkedin.com"
    };
regex = {};
for (key in replacements) {
    regex[key] = new RegExp(key, 'g');
}

textnodes = document.evaluate(
    "//a[@href]",
    //"//text()",
    document,
    null,
    XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,
    null);
for (var i = 0; i < textnodes.snapshotLength; i++) {
    node = textnodes.snapshotItem(i);
    // Debugging
    //console.log ("Textnodes: %o" , textnodes);
    //console.log ("Node: %o", node );
    //console.log ("Node-href= %o", node.href );
    //s = node.data;
    s = node.href;
    for (key in replacements) {
        console.log('Link: ' + node + ' number:' + textnodes.snapshotLength + ' key:' + key +  ' s='+s );
        s = s.replace(regex[key], replacements[key]);
    }
    //node.data = s;
    node.href = s;
}

by chri at May 31, 2008 16:12

Readers eID Belgium site n/a?

While researching a little more the eID I wanted to download the sources of the application again. My good old link http://readers.eid.belgium.be isn't working anymore.

Google-cache tells me it did exist in the past. And that there were some other pages on this site.

But now I get a very pretty (NOT) error:

SRVE0017W: A WebGroup/Virtual Host to handle / has not been defined.


SRVE0017W: A WebGroup/Virtual Host to handle / has not been defined.


IBM WebSphere Application Server

Some quick research shows me the server runs: WebSphere, and an old version of Apache/2.0.52 that can have some security issues.

No contact information to report this...the search for the sources continue

by chri at May 31, 2008 11:40

May 29, 2008

Damien Sandras

Linuxtag

Many people seem to be going at LinuxTag.

I’ll be giving a talk at the event this Saturday.

If you want to see more about Ekiga 3.00, feel free to join in Saal Paris.

I will present Ekiga in general, SIP, Ekiga 3.00 and what we can expect from the future. I also hope there will be no problem with the VPN connection at the office to do a short demo of Ekiga used with Asterisk.

by Damien Sandras at May 29, 2008 20:21

Philip Paeps

Unpredictable traffic

I like Calvin:

Unpredictable traffic

He should try taking the train... sigh

May 29, 2008 09:22

May 24, 2008

Pascal Bleser

Embedded Jetty + WicketFilter - web.xml

I searched quite a bit on lazyweb but couldn't find anything conclusive so.. for posterity, here is how to start an embedded Jetty (a lightweight Java Servlet container/webserver) without any XML, add <init-param/> values without XML (Wicket's WicketFilter requires a applicationClassName init-param that contains the fully qualified class name of your WebApplication) and with Wicket:

import org.apache.wicket.protocol.http.ContextParamWebApplicationFactory;
import org.apache.wicket.protocol.http.WicketFilter;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.DefaultServlet;
import org.mortbay.jetty.servlet.FilterHolder;

public class EmbeddedJettyWithWicket {
   // change these accordingly:
   private static final String LISTEN_HOST = "localhost";
   private static final int LISTEN_PORT = 8888;
   private static final String WICKET_WEBAPP_CLASS_NAME =
      MyWebApp.class.getName();

   public static final void main(String[] argsthrows Exception {
      Server server = new Server();
      SelectChannelConnector connector = new SelectChannelConnector();
      connector.setHost(LISTEN_HOST);
      connector.setPort(LISTEN_PORT);
      server.setConnectors(new Connector[] { connector });
      Context root = new Context(server, "/", Context.SESSIONS);
      root.addServlet(DefaultServlet.class, "/*");
      FilterHolder filterHolder = new FilterHolder(WicketFilter.class);
      filterHolder.setInitParameter(ContextParamWebApplicationFactory.APP_CLASS_PARAM,
                                    WICKET_WEBAPP_CLASS_NAME);
      root.addFilter(filterHolder, "/*"1);
      server.start();
      server.join();
   }
}
Java2html


UPDATE: replaced with code that actually works

by Loki (noreply@blogger.com) at May 24, 2008 20:55

May 19, 2008

Philip Paeps

How not to deal with jetlag

The first part of Heathrow was surprisingly painless this morning. I had about an hour to catch my flight to Brussels, which is cutting it a bit short, but since there are a very large number of mostly-empty flights going to Brussels this usually works well. I did the usual dance of getting to the right terminal as fast as possible. It only took about 35 minutes from T3 to T1. Not quite a record but close.

My flight wasn't boarding until twenty minutes later, so I had tea with the Dutchies first and then ran off to my plane.

The plane sat in a quiet part of the airport for more than forty minutes before finally being allowed to take off. Of course, life in Brussels goes on in the mean time, so there was no gate and we got to go through the bus dance.

Luckily, I didn't have to wait for my bag very long.

Got home dead-tired and went to bed, waking up an hour ago. This is not a good way to deal with jetlag. Ugh...

Trains are on strike tomorrow. If the newspapers are to be trusted, the whole country will shut down, it will be doomsday and more of that. I calmly sent a text-message to a colleague who will kindly give me a ride to work (at an insane hour, but that's fine with me) -- thanks! I'm sure other train-bound people can find similar solutions to their transit-problem tomorrow.

May 19, 2008 22:39

Christophe Vandeplas

Watchguard Hotfix Addresses SSL Vulnerability Affecting Fireware Users

From here: https://www.watchguard.com/archive/showhtml.asp?pack=70113 (you probably need a login to see this page)
Together with Watchguard we took the decision not to make a full-disclosure with all the details of the leak and exploit. Why? Well it will take some time before all the customers move away from their v10.0 version and publishing the full details would not be a good idea for both Watchguard and the customers.


10.1.1 Hotfix Addresses SSL Vulnerability Affecting Fireware Users

Severity: High

11 May, 2008

Summary:

WatchGuard's implementation of Mobile VPN with SSL in Fireware 10.1 and previous versions is vulnerable to a serious attack. Successful exploitation of this vulnerability leads to the disclosure of information about the state of the Firebox. The hotfix (10.1.1) to Fireware fixes this vulnerability. WatchGuard strongly advises customers using Mobile VPN with SSL to install this hotfix immediately.

FAQ:

Are WatchGuard's other SSL-capable products affected?

No. The WatchGuard SSL 500 and SSL 1000 products, the Firebox SSL Core gateway, and the mobile user VPN with SSL on Firebox X Edge products are not affected by this vulnerability.

What exactly is the vulnerability?

This is an information disclosure vulnerability; an attacker could gain information not otherwise available about the Firebox. This vulnerability is present in Firebox Core and Peak class devices running Fireware 10.1 and previous versions. It is NOT present in Firebox Edge class devices.

How serious is the vulnerability?

It is quite serious. Successful exploitation would yield significant information about the state of the Firebox. While the attacker would not gain control of the Firebox via this vulnerability, he would learn a great deal about how the Firebox works.

Other than installing the hotfix, is there a workaround?

Yes. We recommend that you disable Mobile VPN with SSL until you have installed the patch. WatchGuard's other Mobile VPN options (IPSec and PPTP) are unaffected by these vulnerabilities, and may be an appropriate substitute for Mobile VPN with SSL.

Where can I go to get the hotfix?

The hotfix is currently available via the software download center on WatchGuard's web site.

Is 10.1.1 a replacement for for 10.1?

Yes, 10.1.1 supersedes 10.1. Consequently, we have removed 10.1 from the software download center.

How was this vulnerability discovered?

This vulnerability was discovered by Christophe Vandeplas and confidentially reported to WatchGuard. We would like to publicly thank Mr. Vandeplas for working with us to keep our customers secure.

Do you have any indication that is it being exploited in the wild?

No, at this time we have no indication that the vulnerability is being exploited in the wild.

by chri at May 19, 2008 10:56

May 18, 2008

Philip Paeps

Time to go home

17:00 EDT

All conferences come to an end eventually. I left the hacking lounge rather early last night to catch some sleep. I find East-bound jetlag more bearable that way. Not that it helps much, of course.

Breakfast at the local Second Cup again. I've not quite managed to train them to suggest a random muffin automatically, but the resistance to randomness is pretty much gone. Of course, I'll need to retrain them again next year...

Lunch followed rather quickly after breakfast. George (or "Geoff", as the Residence receipt calls him) knew of a tea-and-sandwich place on York which I should try to remember for next year. They were very happy to offer me a random tea too. Excellent!

Getting through security at YOW was not too troublesome, despite having Robert nearby. It appears the plane is filled with geeks. We're theoretically distributed all through the plane, but I have a feeling some small reorganizing will miraculously occur...

If I remember the callsign correctly, the plane is the same one that flew me here. No power plugs.

A text message this morning warned me that the trains in Belgium are on strike tomorrow. I wonder if I'm going to get to work... We'll have to see. I'm very consciously not thinking about the second leg of my trip or my layover at the zone of randomness and baggage-consumption on that little lsland off the coast of Europe...

May 18, 2008 21:00

May 17, 2008

Philip Paeps

Associate with Evil

22:43 EDT

The big hacking room was closed when we got here tonight, so the first of us got into the small one. We learned that it was possible to open a bottle of wine politely and without spillage with only a Leatherman at our disposal. From now on, of course, I'll never use a corkscrew again.

After some bouncing up and down stairs because we're still sharing the building with children, we're now in the big lounge again.

My turn to play access point. I briefly considered using 'h0h0magic' as ESSID, but of course Peter's already got that in his room nearby. Why am I not surprised? So ... everyone associate with Evil.

Of course, tcpdump is running.

May 17, 2008 02:43

May 16, 2008

Pascal Bleser

smplayer

smplayer 0.6.0 has been released. If you haven't used it yet, it is a very nice and comprehensive graphical frontend for the almighty mplayer that (now) uses the Qt4 toolkit.

It just got out of a pretty long development branch plus several betas and now seems to be ready for mass consumption (at least, that version works nicely on my desktops (10.2+10.3), haven't noticed any issues yet).

The package of the old major release has been renamed to smplayer-old and the new 0.6.0 branch from smplayer-beta to smplayer.

Note that kmplayer is another nice mplayer frontend that perfectly integrates into konqueror.

Screenshots: smplayer | kmplayer

by Loki (noreply@blogger.com) at May 16, 2008 19:08

Philip Paeps

Surprise! No headache!

10:09 EDT

Fascinating discussion on vimage at the end of the devsummit last night. A number of people seem to be rather hesitant to the prospect of renaming every function in the network stack. Surprising, that. :-) I'm very happy this work is being done though. And now is a very good time to check it in. And it gives us an opportunity to make an "XXXKSE What To Do? -- Oh No, Not Again" tshirt. :-)

Dinner at Haveli last night. I chatted with David of Coverity about static analysis and the "interesting" software environments I sometimes find myself in. Coverity will never be a silver bullet, but it finds bugs. And it helps engineers understand tangled constructions and bugs in tangled constructions.

On that note, I'm very happy that the smoked FreeBSD Coverity server is being restored to life. I have missed it over the last few months...

Brief stop at the liquor store on the way to the hacking lounge. The looks on the faces of the chaperones of the science fair were ... hostile. They also seem to have found some security smurf to keep an eye on us all night. I'm not sure what the story is on this, but it must be interesting.

Someone had the bright idea of bringing a bottle of cognac. The resulting snoring must have been impressive. I had the good fortune of sitting next to Tiff, which ensured my glass never being quite full. No headache this morning. Good. Very good.

Now listening to Adrian's talk about how stupid people who write networking applications are. I like conferences.

May 16, 2008 14:09

Pascal Bleser

Re: Ubuntu's Pipe Dream: True Free Software Syncronicity

As Sean Michael Kerner puts it on his blog, Mark Shuttleworth's "The Art of Release".. erm... "vision"/wish/dream/strategy is nether a good nor a realistic thing.

Shuttleworth's "vision" just won't work. You can't force 10-20 big upstream projects (KDE, GNOME, kernel, OpenOffice.org, Firefox, GCC, etc...) to sync their release schedule. And you wouldn't want to do that either. One of the reasons why FOSS is usually better in terms of quality is that releases, focus and features are typically driven by quality, by developers, not by marketing and competitors. Things are released when they're ready, when the maintainer thinks it's good enough.

Having a synched release plan for many large and complex projects means a huge burden on upstream.

I can't imagine Mark Shuttleworth could be that clueless about the reality of software development and how the whole ecosystem around a distribution actually works. He isn't. Can't be. So what agenda is he having/endorsing when he pushes that idea so loudly (arguably, even when he whispers, it does make a lot of noise ;)) ? I don't know. Except, maybe, because Canonical doesn't have much developers working directly on upstream projects that aren't 100% Ubuntu specific (at least compared to Fedora and openSUSE) and hence they're not really in a position to push for certain things to be fixed before others. Well, just thinking out loud, maybe there's no hidden motivation behind it at all.

Sean wrote that he rather wished "common packaging across distributions", but:
  • PackageKit is definitely a good initiative and project, but it doesn't solve anything with regards to that as it's "merely" a frontend to different package management stacks, so it can give users of several distros the same frontends and user experience, but not access to the same packages;
  • it isn't about the package format (RPM vs deb vs whatnot), RPM and dpkg are pretty much equal in terms of features, performance, stability anyway; even if everyone was using RPM, it wouldn't help because the real problem is what dependencies packages are built against, especially their respective versions

To explain the latter: take openSUSE, Fedora and Mandriva, they're all using compatible versions of RPM. So, from a packaging format point of view, you can install an RPM package that has been built on one of those three on any of those three (say, a libfoo.rpm built on openSUSE can be installed on Fedora).
Problem is, every single package (except a very, very few) has dependencies against other ones. If you take Firefox as an example, it depends on the GCC C++ runtime libs (libstdc++), gtk2, cairo, freetype, etc... Point is, distros usually don't have compatible (major) versions of those libraries so you won't be able to install openSUSE's 11.0 Firefox package on Fedora 9 because it uses much more recent versions of gtk2/cairo/freetype/GCC/... (just an example).

And then you have different package naming conventions (though softened a bit by relying on file dependencies instead of package names for shared libraries). And different init scripts. And different file/directory locations. Distro A uses sysvinit, distro B uses upstart.

To summarize, what Sean would like to see is even more restrictive and difficult to implement then what Mark is dreaming of -- it would pretty much boil down to having a single, unique distribution ;)
Whatever your distribution of choice is, and regardless about how religious you are about it, I think we all agree that would be a terrible thing, whatever that distribution would be (including openSUSE).

In order to accomplish that partially (which should be feasible in theory, certain dependencies are very stable and have a strong record on backward/forward compatibility, e.g. KDE 3), we'd first need to have everyone or at least the "big players" work together on LSB and actually implement it (Debian/Ubuntu don't, or only partly, even without considering RPM), and have LSB evolve at a much faster pace to encompass more standards. If package naming differences and init scripts incompatibilities were addressed and implemented by many distributors, it could be done for a certain amount of packages.

Having major upstream projects follow strong guidelines on SONAMEs and ABI compatibility would be a lot more interesting than synching release cycles.

But, again, it has a high cost on upstream development, is very complex to accomplish, and clearly takes a lot of fun, drive and "innovation" out of FOSS development. Not sure we'd want that either. I certainly don't.

I'd already be really happy if all upstream projects written in C or C++ would know how to properly handle SONAME, bumping the major version number when ABI incompatibilities arise, in order to package and install several major versions of libraries side-by-side (a train openSUSE arguably catched quite late but works for most library packages nowadays). As said, it isn't trivial though, assessing and verifying ABI compatibility through regression tests isn't always that easy -- at least not as easy as with Clirr and/or JDiff when using Java.

by Loki (noreply@blogger.com) at May 16, 2008 13:20

May 15, 2008

Philip Paeps

Working wireless

15:25 EDT

So the wireless at the devsummit is working today. Peter put sshd on port 443 on freefall and everyone was very happy. :-)

It looks like the syscons work is going to be a Dutch-speaking effort. The bof consisted of myself, Ed, Marcel and Remko. We are agreed that before we can ever hope to make things "generic", we need to clean up the existing mess. Ed's work on TTYs will definitely help there, and it turns out that Marcel has some code in Perforce too.

I've been working a bit on divorcing the framebuffer from the console. This is more complicated than it sounds, particularly because of the way the VESA bits tie in with this. With a bit of luck, we should have some work committed before 8.0.

Marcel rightly pointed out that unless we "Just Do It", we risk (continued) analysis paralysis. Muddling with consoles and input devices is naturally going to piss people off, but we'll just have to deal with the flak as it hits us.

David from Coverity wondered what it would take to get people to listen to his talk. Ice cream was suggested and now there's a whole bucket of the stuff waiting for us here. Yay! :-)

May 15, 2008 19:25

The hallway track

08:05 EDT

It's funny how the "hallway track" at a conference is often at least as interesting as the conference itself. I always find it interesting to catch up with what people are working on and what interesting places people are working. Few "normal people" seem to be aware of how much of their daily internet addictions (like DNS :-)) are handled by FreeBSD setups.

We got kicked out of the hacking lounge rather early last night because we're creepy old men. There is some sort of science fair being held in the same building and clearly, children with scientific tendencies should not be exposed to the dregs of society who sit around in hallways with laptops drinking (gasp) alcoholic beverages (if you look hard enough, you'll find some alcohol in them). What a strange continent.

Beer of a rather better nature just afterwards in George's room with some very funny people. The amusingly named beer linimon found in Montréal ("Belle Gueule") is something to remember. We exchanged a number of completely unpublishable stories on an unbelievably varied range of subjects. Even the subjects are unpublishable. Move along, nothing to see here. :-)

Breakfast in a bit and then off to the devsummit again for more hackery and geek things. Perhaps the internetwebs will be working today. Just in case, I've set up an evil proxy contraption which might come in handy. Why would a university - of all places - restrict "the internet" to "HTTP over a proxy"?

I have a feeling the local Second Cup will have their hands full with an enormous influx of geeks this morning.

May 15, 2008 12:05

Devsummit day 1

21:14 EDT

Registration at the Royal Oak last night was fun again. It seems most people managed to fight their way through the Canadian border scrutiny again. As usual, a number of people got stuck in Chicago. ORD almost makes LHR looks good... Almost.

We left the Royal Oak rather earlyish for the hacking lounge. I think I got a number of people somewhat interested in my effort to "architect" syscons. It is going to hurt but it really needs doing. The best description I've come up with for the current state of affairs is "four-dimensional noodles on bad acid". The term layering violation does not even begin to describe it.

Got a bit of code-reading done and then headed upstairs at a fairly civilized hour. My roommates (plural, Tiff seems to have moved in -- cool) were in a somewhat confused state when I got there. It transpires that George was double booked in our room, and a number of other rooms before that and was a bit 'hostile' after the manyeth elevator ride. Confused accomodation receptionists are a required feature at geek conferences.

Started a bit grumpy this morning. I found that carrot at home had crashed. Funny how this sort of thing always happens when there's an ocean separating me from any reasonable debugging interface. A smiling face suggesting coffee and breakfast improved my mood considerably. Thanks, miss!

I appear to have come to terms with the local currency. The locals have not come to terms with my breakfast requirements, however. They are surprisingly resistant to giving me something "random and tasty". I asked for a muffin and the girl asked me which one, when I asked her to give me the one which would give her the most pleasure to part with, she looked a bit confused and suggested about four different kinds, when I then said "yes", she got even more confused. sigh.

The devsummit was off to a good start. Except for the fact that there is no wireless. This is also a conference constant, however, so it didn't bother me much. In fact, the lack of wireless probably boosted the productivity.

Met Ed Schouten who is working on rewriting the TTY layer. This ties in rather nicely with my ideas about syscons. I look forward to working with him some more on this. Tomorrow I am organizing a syscons bof. I hope to get this project off the ground at last.

Highlight of the devsummit was the "greenbsd bof". Poul-Henning and Diane disagreed a bit about how to measure power going through switch-mode power supplies. Everyone agrees that we should come up with ways to save power intelligently and that implementations in other operating systems are suboptimal. This will probably become more interesting over the next few months. I look forward to doing some more power-management work again. It's been a while.

Thai food at the hacking lounge. Yum yum. I need to try to find Peter to figure out where my ISC tshirt went and catch up with email. I'm also cooking up an if_bridge patch for Andrew to look over while we're on the same continent. Feeling productive.

May 15, 2008 01:14

May 13, 2008

Philip Paeps

Random strolling around Ottawa

15:44 EDT

Rather lazy day yesterday. I had a mostly caffeinated breakfast and attempted some shopping. Only my heart wasn't really in it (is it ever?) and I ended up not buying anything. In the afternoon, I went to take a look at the break-out rooms in the Fauteux Building Dan has arranged for the developer summit tomorrow.

While the rooms are very nice -- I would kill for rooms like this at FOSDEM -- they are 'theatre-style' with staged seating rather than 'conference-style' with movable furniture. I'm sure the type of rooms we're looking for exist at the University but we've just not been successful at making them understand our needs. From what I know about dealing with universities regarding rooms for conferences, this surprises me not at all. Perhaps a number of us will take a stroll around campus noting the rooms we like so we can try to get them next year.

Dinner with Bjoern and Tiff (whose name I misspell consistently) at The Royal Oak just down the road here. I had some excellent nachos and a chicken salad. It transpires that a beer I found 'unimpressive' (to put it charitably) last year, I rather liked this year. I would find it unlikely if this was indeed the same beer -- I remember some really foul stuff across my palate last year -- but if it was, I happily retract my statement from last year.