Search Results: "spa"

24 December 2007

Erich Schubert: Spamassassin precompiled rules

Spamassassin supposedly can precompile rules to allow faster operation. It compiles an optimized matching automaton that will process all the regular expressions in parallel.Anyway, in order to use it, you need to manuall install some dependencies. They probably can't be introduced as real dependencies to not enforce them upon people who don't want to use this feature. So far, I've identified
aptitude install re2c gcc libc6-dev make
I'm aware that many people will have the libc6-dev and gcc stuff already installed, and the re2c dependency is well-documented. But I actually had removed the C compiler from my mail server.

Erich Schubert: Training my AI

Some time ago I've been working on an AI to classify web pages. I've spidered (and classified!) about half a million web pages I'm using for training.This totals to about 40.000 categories and 100.000 useful tokens. I need 8 bytes of storage - two float values - for each combination, which is a matrix of about 27 Gigabytes. I'm using mmap to map my data files into memory for convenient access. On a 64 bit system, I can keep them mmapped all the time.This results in the following funny top output:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
12443 erich     26  10 27.7g 309m  21m R  8.5 32.8  86:01.98 train
So according to top, the process is using 27 GB of virtual memory. That is the data files, actually. The 300 MB resident memory is the training data it's processing. At this point, all my data has been converted to 32-bit integers, so this is already condensed down a bit.It's also obvious that ext3 supports sparse files - running "du" on my database directory currently gives 1.5 GB (it just has started filling the matrix), adding the "apparent size" switch gives 29G.I hope that when the training run has finally completed (ETA is a couple of days), the AI will actually be able to classify webpages somewhat reliably. :-) You can think of it like a huge bayesian spam filter. Except that I've added some boosting that should improve results, some computational improvements for speed and scaled it up to 40.000 categories instead of just "spam".Other uses I'm planning for the AI is automatic email filtering into multiple folders (best to be employed on Google GMail, where an email can have multiple labels, not just one folder), automatic document classification for document and knowledge management systems, etc. pp.[Update: I havn't yet decided if or when I'll release the code as GPL. Right now, the code could require some cleanups. And I'm considering to start a business around this datamining and classification stuff, so I might want to keep it closed for some time at least. The business will most likely be around integrating the code though, so a public release might well be possible.]

23 December 2007

Erich Schubert: Proper way of embedding spamtraps?

I'm considering to embed some spamtraps (i.e. email adresses that will feed all their incoming email to the spam filter) into some web pages.However, I want to prevent people from accidentially using these links or even just seeing them. So using "display: none" seems appropriate. But Google is known to punish websites 'hiding' content from users but not from robots.Some sites say, Google will just ignore the parts that are within "display: hidden", others say it will punish the site altogether.Maybe the adsense control comments will help
<!-- google_ad_section_start(weight=ignore) -->
but it wouldn't really make sense. It's meant for adsense only.Or the page could become a bit more hackish and use javascript to kill the unwanted content. Any experiences with the proper way of hiding spamtrap email links like this:
<a href="mailto:aaaaaaa-never-email-this-address@domain.tld"
>Unwanted Emails only<:/a>

Christian Perrier: News from D-I i18n

Some more important things happened this week for Debian Installer i18n: All this work is meant to give some more push to D-I localization effort that paced for some time last months while I focused my attention on some other areas. It seems to show that things never work without someone to care about them, apparently..:-)...so, existing translators, watch out, I'm back on D-I i18n and will kick your asses if you don't keep your translations up to date..:-)

22 December 2007

Manoj Srivastava: Manoj: The way of the wolf

This is a SCi-Fi series from E. E. Knight. It is not often that one comes across a brand new series in fantasy or science fiction; and more rarely still when it has the quality of this one (The Vampire Earth series). This is a post-apocolaptic novel, the apocalypse being a virus that killed most of the human population, unleashed by a gate-travelling extra-solar species to disrupt human resistance as they took over. Ostensibly about vampires, it provides an interesting back story to explain master vampires and their reaper thralls. What was captivating about this book is the detailed and generally coherent world building, the swaths of land under outsider control, where there is law and order and culling of humans for food; and the rag tag resistance. The characters are fairly well developed (though the author shies away from romantic relationships of any kind). Not since the Recluse novels have I felt this way about a new series.

Joey Hess: solstice

Good solstice party this year. It seems not long since the last one, and I thought about not going, but did in the end. (Anna, several people asked about you.) The bonfire was in the field at the top of Wortroot, and it was cold enough to be very nice to have a fire out there while some of Here's to the Long Haul played. Down in the basement, watching contra dancers, I noticed that Klypso's muzzle has turned all white.

Rodrigo Gallardo: What other Debian planets are there?

Liferea’s upstream has decided to stop puting Debian Planet as a default example feed for new installs. I agree with that change for the upstream distribution, but I’m still going to revert it for the Debian package. And, of course, that gives us the chance to do even better. I’ve added Planeta Debian to the Spanish default feed list and Planet Debian-FR to the French one. I wanted to add Debian Brasil to pt_BR, but their feed returns a 404. So, do you know about Debian planets in other languages? Please open a wishlist bug against liferea with the name, URL, the URL of the feed, the language it’s in, as well as some way I can verify the site is “official”, where that means it’s mostly published to by developers and heavy users. The languages which currently have a customized list are bg, es, nl, pt_BR, sk, ca, eu, pt, sv, de, fr, pl, ru and tr. If your language is not one of those, you’d do better to start by contributing a non-Debian specific feed list for your language, directly to upstream (and maybe translating the whole program, while you’re at it ;) ).

21 December 2007

Russell Coker: A Better Design for Child Seats

The current method of carrying young children (less than 4-6 years old) in cars is to have a special car seat fitted in the back seat. This has several significant problems:
Some car companies are offering child “booster seats” that are an optional attachment to the rear seat (I first noticed this when reviewing the specs of the latest version of the car I drive - the VW Passat [1]). This is a good idea, but it doesn’t go far enough. The best thing to do would be to provide a selection of back-seat assemblies as factory fitted options which have built-in baby and child seats. The combinations that would be most desired are:

  1. Standard car back-seat for three adults (or two adults for a small car).

  2. A regular seat (for an adult) at the road side of the car combined with a baby (backward facing) seat at the kerb side.

  3. A regular seat (for an adult) at the road side with a young child (forward facing) seat at the kerb side.

  4. A baby seat at the road side with a young child seat at the kerb side.

  5. Two young child seats.

It would be quite possible to have all five of these options available from the factory. Of course there are corner cases that this doesn’t cover such as twins or parents who have two children so close together that they need two baby seats. For those cases option 2 combined with one of the current off-the-shelf baby seats would do. The number of different supported options would need to be kept reasonably small to reduce manufacture cost and to allow a reasonable market for second-hand seats. One thing to note is that it’s recommended that the first forward-facing seat a child uses is smaller than the later one. Having options for three different built-in baby/child seats (rear-facing and two sizes of forward-facing) would significantly expand the number of combinations (and thus the expense). I suspect that the safety benefits of having an ideal method of securing a forward-facing child seat would compensate for the disadvantage of having it be too large for the child when they are first placed in it. Another possibility would be to replace the rear seat with a more solid bench with bolt holes for baby and child seats. Securing a child or baby seat to a hard surface with bolts would be a much less technically demanding task than using a seat belt (and thus could be done correctly without expert assistance). Child and baby seats would have to be redesigned for this (I suspect that the safety of them relies on being attached to a soft surface), but after that I expect that safety would improve. For this option the rear seat could bold on to a hard surface that’s suitable for attaching child/baby seats so it would simply be a matter of removing the rear seat and installing the child/baby seat(s). The most common car design in Australia includes a 60/40 split rear seat (meaning that if you have a large item to store in the boot/trunk then you can fold down 40% or 60% of the back of the rear seat to allow the luggage to extend into the passenger compartment). This split could be extended to allow removing the base of the rear seat for 60% or 40% to bolt on child/baby seats. Once a car model had been designed for replacing the rear seat there would be other options available. For example replacing the rear seat with luggage storage space. While almost all cars allow folding down the backs of the rear seats to store extra luggage the option of removing seats that you don’t need to give even more space is not common at all (I’ve only seen it advertised as a feature in vehicles with 6 or more seats). I expect that if this idea was implemented it would allow a small car such as a Toyota Corolla to give an equal or greater amount of usable space for children in the rear as a larger vehicle such as a Toyota Camry. While better options for luggage storage would allow people who don’t have children to use a small car while still being able to carry the luggage that they desire. This would allow considerable savings on car purchase prices and fuel use. I expect that a reduction in fuel use world-wide could be achieved by removing the pressure on parents to buy large cars! The poor support for child seats in cars is really surprising. One of the features that could be introduced is both top and bottom mounts for such seats. There is apparently a standard for this, some (not all) cars support it, but most baby seats apparently don’t. So baby and child seats are secured at the top (to a hook that’s bolted securely to the car frame and which was designed specifically for the purpose) and at the bottom to the seat-belt which was never designed for such things. It’s a pity that some of the money spent on supposedly protecting children from drugs couldn’t be spent on making cars safer for them. The government is in the best position to force car manufacturers to improve their safety features while parents are in the best position to teach children about the dangers of drugs.

Ross Burton: Pimlico on Maemo Chinook

Every since the Maemo Chinook beta was relased, people have been asking when we're going to make Pimlico packages available. I'll skip over the fact that Pimlico is open source, so building a package yourself is trivial (I suppose its a good thing that there are users who can't do that!). Now, Pimlico consists of Contacts, Dates and Tasks. Contacts doesn't have a Maemo port as such and the device already has an addressbook of sorts, so I tend to leave that until last. That leaves Dates and Tasks, both of which require an all-new Evolution Data Server to be built, because Nokia strip down EDS for Maemo and don't install the calendar component to save disk space. This generally shouldn't be a problem as we've been building replacement EDS packages for some time now which adds the calendar component and restores some functionality to the common libraries. So, Rob set about re-syncing our packaging with the Chinook EDS (there are several Maemo-specfic patches we obviously need to include) and started a build. Then our plan started to fall apart. To cut a long story short, the Chinook's Application Manager has an additional sanity check which wasn't in previous releases. The gist of it appears to be that a package foo from repository A cannot upgrade package foo from repository B. Or, libebook from maemo.org cannot be upgraded to libebook from o-hand.com. I can see how this can stop people accidently breaking their device by installing broken core packages, but it's also stopping us provide core packages with enhanced functionality. Never fear, we have a plan. It's not incredibly pretty and will take a day or so of tiresome recompiles to get working, but we'll get there. That said, we've all been busy and now it is the Christmas holiday... so I wouldn't bet on being able to run Dates and Tasks on your N800/N810 before the new year. As a reward for patience, however, there are Contacts 0.8 packages for Chinook in our repository. NP: Last.fm Recommendation Radio

Andrew Pollock: [tech] Waiting for a software RAID-1 to resync is like watching paint dry

I'm so annoyed with myself. So today was the day I was going to upgrade the disks in daedalus. I'd finally managed to convince Dell to sell me two new 140Gb disks to replace to two 70Gb disks that were fast approaching capacity. I'd organised for access to the datacentre from 10am. I arrived early. I didn't manage to get into the datacentre until about 11am, because they were having problems remotely unlocking the door, and I had to wait until an air conditioning repair guy turned up, who was fixing some air conditioning problem. I hadn't had a lot of time to plan how I was going to do the upgrade, but I figured it was going to be pretty straightforward. Each disk is partitioned into three partitions, all of which are mirrored using software RAID. The first partition is the root filesystem, which is just an ext3 filesystem, mirrored. The second partition is swap, also mirrored, and the third partition is an LVM physical volume. The first two partitions are only a couple of gigabytes. So the basic plan was to remove the second disk (disk 1, aka /dev/sdb), put in the new bigger disk, load the partition table from the original disk 1, resync the three mirrors, and then boot off the new disk 1, and rinse and repeat with disk 0. This was all going swimmingly, when right at the end (in fact after the third partition finished syncing according to the kernel), /dev/sda decided it had a few unreadable sectors. This made the software mirroring have a dummy-spit, and decide it needed to restart the syncing from scratch. I'd seen this before with a bad disk. So I wishfully hoped it was something to do with the new disk being bigger than the old disk, so tried to roll back to the original disk 1. As was pretty much expected, disk 0 exhibited the same problems at the same point. So the problem was disk 0, not the new disk 1. So it seemed like I just managed to pick the wrong half of the mirror to work from. I thought I'd try manually dd'ing the third partition from /dev/sda to /dev/sdb, ignoring the errors, but that didn't result in a usable half of a mirror either. Interestingly, these bad sectors hadn't made themselves known until this point. The RAID array had been otherwise healthy, and SMART hadn't uttered a peep. I think at this point, after spending about 3 hours fighting with it, I decided to move up a layer. I could successfully sync /dev/md0 (the root filesystem) and /dev/md1 (the swap device), and the only reason I could think of these bad sectors not giving me grief already, was because they were right at the end of the disk, and I hadn't quite used all the free physical extents in LVM yet. Lucky I hadn't decided to grow things any further. So I decided that rather than trying to convince this existing /dev/md2 to sync with the new /dev/sdb3, I'd just build a new degraded RAID-1 on /dev/sdb3 and move all the physical extents from the degraded RAID-1 on /dev/sda3 to the new degraded RAID-1 on /dev/sdb3. I tried the logical volume with /tmp on it first, since it was fairly sacrificial. It worked fine. So I tried the largest logical volume, /srv, which was 30Gb. That went fine as well, so I moved the rest. All of them went without complaint. So then I removed the now unused /dev/md2 from the volume group, and finally managed to boot with just the new disk 1. Then I was able to put in the new disk 0, and just do a standard RAID-1 rebuild onto it. Hooray for LVM saving the day yet again. And this is where I should have stopped. At this point it was about 3pm. I'd been aiming to leave by 4pm to pick up a rental car that I had to get by 5pm. I'd wanted to also upgrade to Etch while I was physically in front of the box, in case there were any nasty kernel/udev issues that made the box unbootable. The catch was, I needed to grow /var, which was quite full. The intention had been that once I'd got the two new disks in and all synced up, I'd create a fourth mirrored partition, and add this to LVM as a new physical volume, then I could just keep merrily growing things. It felt a little bit dirty having to make a new partition to get at the extra space, and I'd reading about mdadm's "grow" mode, whilst I was sitting around waiting for things to sync. So I thought to myself, I'd just delete the third partition, and recreate it using the remaining additional cylinders I now had at my disposal, then use this grow feature of mdadm to tell Linux the array was now bigger, then resize the physical volume, and go from there. This is where things went a bit pear-shaped. I deleted and recreated (larger) the third partition on each disk, and rebooted. I was then messing around with mdadm trying to update /etc/mdadm/mdadm.conf, since the UUID of /dev/md2 had changed, when I discovered that /dev/md2 had completely disappeared. It seems that recreating that partition made Linux completely fail to see /dev/sda3 and /dev/sdb3 as RAID-1 members, and so because of the fairly transparent nature of Linux's RAID-1, LVM had seen the underlying physical volumes, and just decided to run with /dev/sda3 as the physical volume, and everything had continued to work. I just had no redundancy any more. So it was about 3:20pm at this stage, and I was starting to panic, thinking I'd never get this sorted out before I had to leave, and I'd end up returning to the US with a non-redundant mess on my hands. Then I remembered that I had the backups of the partition tables of the old disks, from before I removed them. So I thought I'd go back to that state, and just have the additional cylinders unallocated. I hadn't yet attempted to grow the RAID-1 (partly because it had vanished), so in my haste, I didn't see this being a problem. The problem was, I'd booted into multi-user mode, and things had merrily been operating on just half the mirror. I restored the partitions, and rebooted, and lo and behold, /dev/md2 magically reappeared, already 100% consistent according to /proc/mdstat. I was somewhat surprised by that, but I booted back into multi-user mode again, only to discover that the /var filesystem was panicking and remounting itself into read-only mode. This was pretty weird, given that during boot, it was considered clean by e2fsck. So I was really getting bothered by this stage, so I rebooted into emergency mode (single-user mode in Debian starts way too much), and manually started up LVM, and forcibly fscked everything. There was a bit of filesystem damage to /var, /home and /srv. Thinking I'd now fixed the problem, I rebooted into multi-user mode again, but again /var, which was considered clean during the fscking/mounting phase of booting, panicked shortly after mounting, and remounted itself read-only. So I rebooted again, broke the mirror, and forcibly fscked the filesystems again (only operating on what was on /dev/sda3. Then I rebooted without incident into multi-user mode and resynced the mirror. At this point I ran away. So I'm really annoyed with myself. This should have been a blog post about how crap Linux's software RAID is at error recovery, and how LVM saved the day yet again, but it was overshadowed by me overreaching in my haste, and managing to cause silent data corruption. The morals of this story: I think that is all. I'm just so pissed off that what could have been a perfect (enough) upgrade with zero data-loss, even considering I had a bum disk, wasn't.

20 December 2007

Ross Burton: Sound Juicer "Sound Sculptures In Space" 2.21.0

Sound Juicer "Sound Sculptures In Space" 2.21.0 is finally out. Tarballs are available on burtonini.com, or from the GNOME FTP servers.

Simon Richter: The Debian package namespace

A Debian package is uniquely identified by its name and version; there is no further information taken into account by dpkg. This keeps the packaging system rather simple, but has the disadvantage that all information that would otherwise be placed in extra data fields has to be encoded into these two fields. As the names of all binary packages generated from a single source package need to be known when building the .dsc file, no substitutions are allowed in the package name. Back in the Good Old Days, the only extra bit of information in the name field used to be the SONAME from the library in the package (thus implicitly saying that each library should have its own package), which meant that the maintainer had to adapt the debian/control file every time a library's ABI changed. This being the Good Old Days, people writing libraries actually thought about things, so ABI changes were few and far between. These days, libraries are stacked on top of each other, re-exporting the underlying libraries' ABI. The SONAME system could in theory handle these situations if the SONAME of every library whose ABI is re-exported is encoded into the SONAME of the newly built library. So if my own ABI version is "2", and some of the functions I export use types defined in glib, then after building against glib1.2, my SONAME would be somewhat similar to "2+glib1.2". For languages that don't have a well-defined ABI (i.e. anything but C), the version of the language ABI(s) used will also have to be added. Obviously, this would also have to be encoded into the package name, which is where trouble starts during transitions. The last C++ ABI transition had all C++ library maintainers add a suffix to the package name; dependent ABIs are not handled at all in Debian right now (which led to the libpng mess). The existing encoding rules are not entirely formalized, and it is not guaranteed that they are bijective. For example, packages used together with cross compilers have been following the convention of using the name that the native package would use, followed by a dash, the target architecture name, another dash and the word "cross". There is no guarantee that the architecture name does not contain a dash, however, so we cannot simply take the second to last word as the architecture name if the last word is "cross" (think "libgcc1-kfreebsd-i386-cross"), which makes it difficult to write a plug-in to apt that would automatically download the binary for the target architecture and convert it using dpkg-cross. I've decided to nonetheless go ahead with my request that the "-*-cross" part of the package name space be reserved for packages related to cross compilation; it will work for the time being.

18 December 2007

Martin F. Krafft: bugscripts and rng

Yes, Bastian, there is a way to do what you want. I believe I told you from the very start: refactor reportbug and implement reportbug-ng on top of the existing code. But no, you chose to reimplement everything (a typical thing to do for GUI programmers) and now you are asking us maintainers to change the way we've been doing things for years? You also make presumptuous statements about how we deal with bug reports. If you personally hate how certain packages prepare bug reports, then maybe you should personally suck it up and use different software? Seems like a more logical and less intrusive way forward, then expecting others to "send a friendly mail" to ask for more information on a bug report. Maybe you have all the time in the world, but I don't. I can work on e.g. mdadm (which uses an interactive bug script) only on rare occasions, and then I'd rather fix and close bugs than to indulge in another iteration of bug submitter ping-pong. You are also personally annoyed by long pre-subject texts, which you doubt anyone reads? I don't even bother to challenge that, but let me say that pre-subject texts are there to prevent stupid bug reports, or bug reports filed in the wrong place, and to take load off the maintainer. So you chose to ignore them? Given the projected user-base of your tool, I'd say you should rather force people to read them by asking them to transcribe the text. If you don't want to pop up a terminal, well, why the heck didn't you integrate debconf properly, while reusing reportbug, and taking a step forward to provide a proper interface for bug scripts? Why do you even bother to whine about interface issues at this point? Feel free to take over my packages, which make use of interactive bug scripts. I see zero reason to change them, and I will not. NP: The Flower Kings: Paradox Hotel

Chris Lamb: PDF calendar generation

As an alternative to those Christmas “round robin” letters, my mum likes to create a calendar to send to relatives. This year, I rewrote the original crufty PHP script in Python:
usage:  pdfcalendar [options]
 Generates a simple PDF calendar for the specified year, one page per month,
 optionally using images in the specified directory.
 To use images, use the --dir argument to specify a directory (or leave empty
 to use the current directory) with the structure:
      -- 01
          -- s6000001.jpg
      -- 02
          -- s6000002.jpg
         \-- s6000003.jpg
      -- 03
         \-- s6000004.jpg
     etc.
 Images will be included on the appropriate month's page. If multiple images
 for a month exist, they are tiled horizontally.
options:
  -h, --help            show this help message and exit
  -d DIR, --dir=DIR     Directory to source images (Default: '.')
  -y YEAR, --year=YEAR  Year of calendar (Default: next year)
  -o FILE, --output=FILE
                        Output file (Default: calendar.pdf)
  -q, --quiet           Don't print status messages to STDERR
GPL3+ source available in Git. Would love a patch that tiles images in a square if anyone has a spare moment.

Martin F. Krafft: Taxes and wars

I was considering importing my car to Switzerland. When I moved in 2002, I asked the customs office about the process and was told that I'd need to pay taxes and fees, so I postponed the import until Day Unknown. Today, a very friendly customs official told me that this is not true and that I could have imported my car duty-free if I had done so as part of my move. Slightly annoyed, I went on to discover what those duties would be today. I found out that there are seven different types of fees I'll have to pay, and tried to understand the reason for these fees:
  1. To import a car, you need a form 11.010, downloadable from the Swiss Customs Office. Because each download causes extra work for the administrator, they charge a nominal fee of CHF 0.70 to get the PDF file.

  2. I take that form to the customs office. There, the officials will assemble around the car and attempt to lift it. I don't know why they do that, but they charge you between CHF 12 and CHF 15 per 100kg of weight. I think it must be recompensation for the hard physical labour. Also, each customs official can lift 100kg, which explains those figures they seemed a bit arbitrary at first.

  3. Next, they'll ask 4% of the estimated value of the car as a car tax. They do this because the value of a car is directly related to the area it covers, and since Switzerland is so small, you effectively have to buy a couple of square metres for the car. It's not quite as easy as that though: once I bought the area under my car, I have to move the car away, because I cannot park my car on the area I just bought. I have to buy parking space for that. If I don't want to buy a parking space, I have to keep the car moving. In order to keep the car moving I need to fork over CHF 40 per year for a permit to drive the car on Swiss highways.

  4. Now, I pay 7.6% value-added tax. It makes no difference that the car isn't new, that I am not selling or buying it, nor that I have already paid 16% VAT in Germany when I bought it. Since I am about to "consume" the car in Switzerland, I have to pay consumer tax. Since I also consume the physical labour the officials put into the car lifting exercise, as well as the area under the car I bought, I pay VAT for (car value + lifting tax + area under car). Unfortunately, the European Union will not pay back the consumer tax I previously paid as part of the export, since I already consumed the car there.

  5. I then get a report about the import. This costs CHF 20. I don't need this report, but I have to buy it. The reason is that the computer admins are so overworked serving PDF files to future importers that they have not had time to stop the computers from printing this report, and the special paper and toner used by all administrative offices in Switzerland costs about CHF 20 per page. An alternative explanation is that CHF 20 is the smallest bit of "money" in Switzerland, everything else is "change".

  6. I will also have to pay annual taxes for possession of a car, the value to be determined by the custom officials. Since I already paid for the area under the car while moving and while stationary, I think the annual car tax is levied for environmental reasons. A lot of people drive through Switzerland to get from Germany to Italy or from Austria to France, pumping a lot of exhaust gas into the Swiss air. This makes them guilty, just like inhabitants of Switzerland who own a car are guilty. Due to legal reasons, the Swiss government can only punish Swiss people for those sins, so the annual car tax is a little higher to cover for all environmental damage. It is doubtful where the money goes, though. I also have to continue paying taxes in Germany, because I still have a residence with my parents.

  7. Finally, I have to purchase a car insurance. That insurance does not insure the car, it insures the others on the road. Actually, it is a driver-car-dependent insurance, meaning that the others are insured only if I am the driver of my car. If I drive another car, or someone else drives my car, the others will not be insured. unless I pay higher insurance fees. Because cars with a larger area under them and those that require more people to lift them are more dangerous, the insurance fee is proportional to the car density. At least I can give up my German insurance and be covered by the Swiss insurance. However, I cannot keep my German insurance and be covered in Switzerland. I think this is because the head of customs department and the CEO of the insurance company have sex with each other.

It's been a great day, given how much I learnt. I finally understand why people have fought wars over taxes. I think I may leave the car in Germany. PS: Yes, this post may be considered hyperbole. NP: The Pineapple Thief: 8 Days Later

Russell Coker: The Net - Good for Literature

A recent news article has Doris Lessing (a Nobel prize winner for literature) claiming that the net has “created a world where people know nothing” [1]. However the Internet is a great tool for learning for people who choose to use it in that way, for example I have learned many interesting things from reading Wikipedia and following the links which I probably wouldn’t have learned in any other way. Criticising the Net for the lack of reading by the population makes just as much sense as criticising newspapers. She gives an example of a North London school where the library was under-utilised and compares it to schools in Africa where students beg for books and claims that the Net is at fault. But you could just as easily blame newspapers as Britain has some of the worst examples of tabloid journalism in the English language - of course Britain also has some really high quality papers and anyone can choose which ones to read. I think that when children don’t have much interest in reading it’s more sensible to criticise the education system. The article is not that great either, one significant flaw is referring to Elton John as “another creative type“. No, Elton is a formerly creative type who’s afraid that the pension he expected from his back catalogue is threatened. Ex-artists who complain about the Net merely demonstrate that for them it’s not about the music. The Wikipedia article about Elton John [2] documents his career and you can see that since the late 80’s it’s been steadily going downhill. To create literature you must read it - which doesn’t mean being close to old-fashioned libraries (as Doris claims). Currently I am trying to write science fiction, largely inspired by Cory Doctorow [3] and www.365tomorrows.com/. One good thing about the Internet is that there is a reasonably level playing field that everyone can compete on. Bloggers compete for readers using all forms of writing - including literature. The speech has more information about Zimbabwe [4] and the difficulties faced by people there who want to learn. One thing that has the potential to improve the situation there is the One Laptop Per Child [5] project. Such a laptop costs about the same amount as 20 novels (based on US prices) or 5 text books but can be used to store many more books.

Bastian Venthur: On #422085 and #417256

Since I received a terrifying amount of insults via mail for not implementing this feature request after my last blog entry, where I asked for help developing rng, I’d like to make my position about this issue clear. Why I was opposed to implement it:
  1. I personally hated that some packages sent a huge amount of unrelated info with every bugreport for this package, even if it’s not meaningful for this bugreport. I made a quick check against my favorite package with a very long output and thought (and still think) that this info is not even relevant for the majority of bugreports of this package. So I thought it was not too much to ask, to write the reporter a friendly mail to post the output of this script, if it’s really needed.
  2. I was personally very annoyed by packages with very long presubj text, which I doubt anyone reads anyway. Since I don’t want rng to be annoying to the users, I decided to leave that feature away. An implementation of this feature would mean to pop up a window with some text the user should read before continuing to report the bug. I don’t like popups and don’t want rng to make use of them.
  3. I’m definitely opposed to a feature which will pop up a terminal where a user has to do something before he can proceed reporting a bug. Sorry, but this won’t happen in rng. I might consider such a thing if it could be scripted to use QT or even GTK but a terminal popping up in a GUI application is a no-go for me, sorry.
  4. I was personally very annoyed by some of the reactions on this bugreport. Since we’re all volunteers and stuff and this feature is maybe a nice-to-have but definitely not a must-have, I decided to put this issue very low on my to do list.
However, I agree that the stuff in /usr/share/bug isn’t completely useless. The opposite is true, it makes the life of maintainers easier and rng should make use of it where possible. So what can we do now? Maybe we can start all over and discuss this issue in a more friendly and constructive way? Here’s my offer: rng will support bugscripts, but it will not feature a terminal popping up asking a user questions. I’m developing a GUI application and a popping up terminal is not very GUI’ish for me. What can we do about this? Is there a way to implement this? Supporting presubj might be okay too, but I don’t want rng to be annoying. Popups are annoying and having to read the same stuff again and again when reporting multiple times on the same package is annoying too. Maybe rng could spawn a pop up with a checkbox “Don’t show this text again when reporting a bug against this package”? Maybe we could have an option in the (not yet implemented) preferences window where we could suppress those messages completely? And please, don’t use abusive language or even insults when contacting me about this issue. My rng-time is currently very limited and my motivation to work especially on this issue is already very low. We’re speaking here about a fully optional feature. Providing the output of some scripts or having to read a presubj is helpful, but not mandatory when reporting a bug. So please, be nice! I really don’t need all that stress right now.

17 December 2007

Jeff Bailey: Dear Ubuntu Planet,

I'm on a quest to remove spam from my inbox. I've been killing off GNU mailman lists where the -owners stuff was feeding me spam. Most of my spam now seems to be relayed from @ubuntu.com. Does anyone know if there's a similar solution to what @debian.org has where I can ask it to reply with a bounce saying "Here's my real email address, use that instead pls"?

I suppose I could just set my default email address in LP to something that will do it instead, but I'd rather avoid the WrathOfElmo(tm)

Jose Luis Rivas Contreras: This is spam?!

I was checking my mail and saw a message to debian-mentors@l.d.o with: please get me a sponsor.u can contact me on 00026774674834 or 000256714146928.am daneal aged 19 thx If this is spam then it was designed very well, if not, why any sponsor needs your phone numbers or your age?! Really weird.

14 December 2007

MJ Ray: Spam: The Leading Company

Today I was cold-called by someone announcing themselves as "UK Bank Claim", a service of "the leading company", asking me questions about my bank charges. Now, that put my back up right away. I co-own most of my banking service providers (aren't cooperatives and mutuals great?), and you can't get much more confusing service and company names if you tried. Then they claimed to be registered with the Ministry of Justice, but I can find no mention of this registration service on the MoJ web site. I've emailed the ministry to let them know. The phone number they called is registered with the Telephone Preference Service. The call did not send any Caller Line ID and refused to give a telephone number when asked, so I suspect it may have been from overseas. I registered a TPS complaint nonetheless. The caller gave me the domain theleadingcompany.co.uk which is registered to The Leading Company ltd - UK Limited Company, (Company number: 6081225), 28-32 church street, slough. Strangely, that is not the Registered Address: Excelsior House, 3-5 Balfour Road, Ilford Essex shown on their web site, nor the one listed at Companies House:- ROPE WALK SHOPPING CENTRE, ROPE WALK, RYE EAST SUSSEX - are companies allowed to use multiple registered addresses? I thought that was forbidden. In short, who is this company, why are they claiming government support and why are they allowed to behave like this this? How far should I go with this? Do you think I should contact hedleycreative.co.uk (whose email address is in their web source) and ask them why they're working for phone-spammers? I guess I shouldn't waste any more time, but I think it's worth publicising this behaviour a bit, to try to avoid these people finding unwary victims.

Next.

Previous.