blog.thiesen.org

a geek’s life

Archive for the 'English' category

FrOSCon 2007: Call For Papers

The second Free and Open Source Conference “FrOSCon” takes place on August, 25th and 26th 2007 in Sankt Augustin, near Bonn, Germany. The conference is once again hosted by the faculty of computer science of the University of Applied Sciences Bonn-Rhein-Sieg in collaboration with the student body and the Linux/Unix User Group Sankt Augustin.

In a Call for Papers, the organizers ask for submission of contributions. A broad variety of topics concerning free and open source software is desired.

Contributions can be submitted in English or German and should summarize the intended talk concisely and succinctly; talks should be no longer than 45 minutes in length. Deadline for submission is June, 4th 2007.


PerlPlanet

I hate to always criticise other people’s work, but Planet is a piece of crap. I tried it on my favourite blogs to fire up friends.thiesen.org and besides not working on Atom feeds as it should it completely died on another feed and had encoding issues. I tried to fix it, but it appears as if the feed reader library they are using is far too old (they are using 2.2 something, 4.0-pre is the curernt version) and it is Python and I can’t do Python.

PerlPlanet to the rescue. Because there was no other implementation of a Planet like thing and I thought it couldn’t be that hard, I wrote a replacement myself. PerlPlanet can do everything except the Hackergotchi feature while staying compatible with Planets own templates and configuration files. Turns out it is even 500 lines less, though you have to install quite a bunch of Modules, but you should be used to that by now.

Get it here.

P.S.: WordPress 2.0 Beta rocks…


Kflickr MT

Kflickr BETA

Well, because Mark (the original author of Kflickr) is a little bit out of time at the moment and has a rather conservative patch policy and because I have done quite a lot of stuff in the last week on Kflickr, I decided to make this patchset public, keep it in sync with Mark’s tree and see what will happen.

So, Kflickr MT was born. In it’s current incarnation mt2 it is nearly feature complete (in context of an uploading only application), meaning that it can do photo sets and groups, photo licenses, photo rotation, bigger previews and “tags with spaces”. A couple of fixes are in there, too, plus one CVS fix from Mark for UTF8, which made it impossible to set tags containing German umlauts.

This way I hope to get some feedback and bug reports to have some better arguments for Mark to merge the stuff (and that it is actually usefull).

Here you go:


Ich bin Indiana Jones

Naja, zumindest laut diesem Test zu 63%:

You scored as Indiana Jones. Indiana Jones is an archaeologist/adventurer with an unquenchable love for danger and excitement. He travels the globe in search of historical relics. He loves travel, excitement, and a good archaeological discovery. He hates Nazis and snakes, perhaps to the same degree. He always brings along his trusty whip and fedora. He’s tough, cool, and dedicated. He relies on both brains and brawn to get him out of trouble and into it.

Indiana Jones

63%

Maximus

58%

James Bond, Agent 007

58%

Batman, the Dark Knight

58%

The Terminator

54%

Neo, the "One"

54%

William Wallace

50%

The Amazing Spider-Man

42%

Lara Croft

38%

Captain Jack Sparrow

38%

El Zorro

25%

Which Action Hero Would You Be? v. 2.0
created with QuizFarm.com


fuseftp: Implementing userspace filesystems with Perl

Well, as I mentioned earlier, 2.6.14 has this nifty new FUSE feature, allowing the implementation of a file system in userspace. Unfortunately, there was no implementation of a FTP filesystem. Fortunately, there are Perl bindings for FUSE :-) .

One can implement a userspace filesystem using the whole power of Perl, and that makes it quite easy. I implemented a basic ftp filesystem this morning, which uses Fuse.pm and Net::FTP to allow read only access to ftp servers. It works quite well and was really easy, so this might be the beginning of a couple of nice userspace filesystems written in Perl. I could actually create MegasusFS….

BTW, you can download fuseftp from my wiki page.

Usage is quite easy, you can simply:

marcus@hal2000:~: mkdir kernel
marcus@hal2000:~: fuseftp kernel/ ftp.kernel.org &
Successfully logged into ftp.kernel.org
[1] 7150
marcus@hal2000:~: cd kernel/
marcus@hal2000:~/kernel: ls
for_mirrors_only  lost+found  pub  usr  welcome.msg
marcus@hal2000:~/kernel: cd ..
marcus@hal2000:~: fusermount -u kernel/
[1]+  Done                    fuseftp kernel/ ftp.kernel.org

Net::SILC::Client

Once upon a time there was a Linux user group which switched it’s chatting system to SILC. Unfortunately there was no Chatbot available for SILC and the user group had to live without. Suddently, in the beginning of ‘05, somebody had the time to write a bot, called Megasus, which runs inside the Irssi client, which is used by SILC as well. From now on the chat was enriched by nice information provided by a Bot. But Megasus had a problem, (actually the Irssi client when you call fork() inside of it) and it was leaking memory like hell, until the bad Adminstrators where forced to put memory and runtime limits on the machine. This lead to Megasus dying a horrible death every week and really annoyed the author. But then…

Well, I have been looking for real Perl bindings for the SILC Client API for quite a while. The problem is that there are none. Apparantly, nobody took it’s time to write something which would allow something like:

use Net::SILC::Client;
use Chatbot::Eliza;

my $bot = new Chatbot::Eliza( );

sub on_channel_message {
    my ($self, $channel, $nick, $message) = @_;

    if ($message =~ $self->nickname) {
        my $answer = $bot->transform($message);

        $self->channel_message($channel,
                               $nick . ': '  . $answer );
    }
}

my $silc = Net::SILC::Client->new (channels => [ 'silc' ],
                                   nickname => 'NSC');

$silc->set_callback('channel_message', \&on_channel_message);

$silc->connect;

A few days ago, I stumbled over SILC.pm a Sourceforge Project which attempted to create a Perl wrapper for the SILC API. They hadn’t released any code and as the project was founded in 2002 I contacted the authors and asked if they had already done some work, because I started believing that I would have to do this myself. They where really friendly and they had code, but only wrapping some of SILCs Math functions and not really what I needed. So I started writing from scratch.

As of today, you can run the above example and it does what it has to, plus there are a couple of other events that you can handle directly from Perl. As this is my first Perl/C/PerlXS Module I believe that it is leaking memory like hell as well as there are a couple of other problems (vanishing scalars between two function calls is one of them). But it supports all important events (you can set callbacks as this whole system is event driven), lets you issue commands and send private and channel messages. What I need to do to make it a possible frontend for Megasus is that I need an other Event System (for things like fetching RSS feeds) and some other minor fixes, but the major part is done. The Event System is a little bit tricky, as I tried to use Event.pm and running the SILC Main Loop with it which crashed horibly and I’m still not really good in debugging this stuff. And of course, it is lacking documentation (there are two examples which show the main methods as well as some information about the events, but this is not really good). It’s still far away from something I’d release to the CPAN, but If you want to have a look, it’s all in the CVS on Sourceforge.


Joining The Cult of the Amateur

Nicholas Carr has written a quite interesting article on Web 2.0 and what he believes to be the Cult of the Amateur. Basically, he means that because stuff is free, like in Wikipedia or OpenSource (his words, not mine), they will always be used and read more often than the professional stuff on the expense of quality. He sees this as an problem of imorality and somehow (as he is a jounralist) I think he fears the downfall of the media.
Well, why not. I don’t see the whole Web 2.0 hype as a Cult of the Amateur and Free Software is a quite good example for that. What he did was picking two bad examples out of Wikipedia to show that this amateurs are not able to do a good job on writing. I think you could do the same for Free Software, there is so much crap out there. And state of the art, award winning implementations. Software that feed several companies, Software that has excellent quality, Software that is free of charge and that you can copy freely. Linux, Apache, MySQL, OpenBSD, Sendmail … you name it. The Internet runs on Free Software. And it was done by, well professional amateurs. People writing software for a living and in their spare time. I guess when he would have had a better look at Wikipedia he would have found some articles that are of excellent quality, because some journalist or student really had some time to do an excellent job.
The thing is, this isn’t about amateurs vs. professional – because there will be always enough people out there to do an excellent professional job. Just because they are not being paid for what they are doing does not make them amateurs.
This is about people against big companies. In the late ninties they were all running around and telling everybody how information is the new good to purchase, spread, get rich on. Some did, but most of them got pretty broke pretty fast. The point is, that at the moment the Internet and the people connected to it take something back that was long in the hand of really big companies like the media, software companies or content providers. We make our content ourself. It might not be of the best quality, but in quantity we rule. I don’t want a TV-Shopping guy tell me how nice a new product is, I want to have a look at a couple of people opinions and how they like something, that’s what Blogs are for. I don’t want to go to a bockshelf to read a 10 year old article about somebody, I wan’t state of the art information, even if it is not a good read, and I want it for free. And I don’t want to buy DRM encrippled songs from somebody who has enough money anyway. We are taking back control, we just take the money out of the information and we take the money from companies that just didn’t listen and try to tell us that something that you can copy a million times without a real cost, digital data, is still something that has a value.
Reading articles like that shows me that there ist still a long road to go, but were getting closer every day. I like being amoral :-)


Hilarious!

While browsing the web in search of a better German Eliza script that the one that comes with the Chatbot::Eliza Perl module (which is now implemented into Megasus) I found Jenny18. Somebody rewrote the script to pretend to be an 18 year old hot chick who is looking for … well … the real thing and let it run on the usual IRCChannels. All the transcripts are here and are really a quite good read.


Ooops


Unable to handle kernel NULL pointer dereference at virtual address 00000008
printing eip:
c0198a7b
*pde = 1a301067
*pte = 00000000
Oops: 0000 [#1]
PREEMPT
Modules linked in: binfmt_misc lp rfcomm l2cap rtc snd_seq_dummy snd_seq_oss snd_seq_midi snd_seq_midi_event snd_seq snd_via82xx snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore parport_pc parport via_agp usblp hci_usb bluetooth usbhid videodev agpgart sg usbmouse usb_storage sd_mod scsi_mod uhci_hcd usbcore
CPU: 0
EIP: 0060:[] Not tainted VLI
EFLAGS: 00010282 (2.6.13-hal2000)
eax: 00000000 ebx: df36129c ecx: df314be0 edx: e18b4a2c
esi: df361294 edi: df361190 ebp: e18b49c0 esp: df3a7dd0
ds: 007b es: 007b ss: 0068
Process khubd (pid: 2162, threadinfo=df3a6000 task=de998a60)
Stack: 00000001 00000020 00000000 df36129c df361294 df361190 e18b49c0 c0279a21
00000000 c037e8f4 e18b4a2c df361294 df361190 c9d2f028 c8c64400 c0279a80
df361294 df361000 e18adca4 df361294 00000003 c9d2eff8 df361000 c9d2f000
Call Trace:
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
Code: 00 eb bc e8 58 07 1c 00 90 8d b4 26 00 00 00 00 eb b7 e8 49 07 1c 00 e9 4a ff ff ff 8d 74 26 00 55 57 56 53 83 ec 0c 8b 44 24 20 <8b> 50 08 8b 70 48 85 d2 74 73 ff 4a 70 0f 88 e1 00 00 00 8b 46
<7>usb-storage: device scan complete
Unable to handle kernel NULL pointer dereference at virtual address 00000008
printing eip:
c0198a7b
*pde = 1a301067
*pte = 00000000
Oops: 0000 [#1]
PREEMPT
Modules linked in: binfmt_misc lp rfcomm l2cap rtc snd_seq_dummy snd_seq_oss snd_seq_midi snd_seq_midi_event snd_seq snd_via82xx snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd_page_alloc snd_mpu401_uart snd_rawmidi snd_seq_device snd soundcore parport_pc parport via_agp usblp hci_usb bluetooth usbhid videodev agpgart sg usbmouse usb_storage sd_mod scsi_mod uhci_hcd usbcore
CPU: 0
EIP: 0060:[] Not tainted VLI
EFLAGS: 00010282 (2.6.13-hal2000)
eax: 00000000 ebx: df36129c ecx: df314be0 edx: e18b4a2c
esi: df361294 edi: df361190 ebp: e18b49c0 esp: df3a7dd0
ds: 007b es: 007b ss: 0068
Process khubd (pid: 2162, threadinfo=df3a6000 task=de998a60)
Stack: 00000001 00000020 00000000 df36129c df361294 df361190 e18b49c0 c0279a21
00000000 c037e8f4 e18b4a2c df361294 df361190 c9d2f028 c8c64400 c0279a80
df361294 df361000 e18adca4 df361294 00000003 c9d2eff8 df361000 c9d2f000
Call Trace:
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
[]
Code: 00 eb bc e8 58 07 1c 00 90 8d b4 26 00 00 00 00 eb b7 e8 49 07 1c 00 e9 4a ff ff ff 8d 74 26 00 55 57 56 53 83 ec 0c 8b 44 24 20 <8b> 50 08 8b 70 48 85 d2 74 73 ff 4a 70 0f 88 e1 00 00 00 8b 46
<7>usb-storage: device scan complete

Well… 2.6.13 doesn’t seem to like my USB Stick anymore … and again the same problem: I don’t know where to report such stuff. The Kernel Mailing list is a mess and absolutely far to high traffic, I don’t know of any Linux Bugzilla Kernel developers care about and so I’m lost and have to wait for 2.6.13.1….


Speaker!

EuroOSCON registered speaker

I just registered for OSCON Europe as a speaker. I will be giving my (now more or less famous) talk FIFFS – FIFFS Intelligent Feed Filter System. This will be my first english talk on 3 years …. we’ll see. Anyway, I found out that I need to write some books, because O’Reilly didn’t put my name on their flyers. Anyway. … I’ll bee seeing Larry, and Damian and Leon (again) and ….


Disgusting

Inspired by a blog posting from Hanna Wallach (famous for beeing a Debian Woman) I had a look through the works of Cosimo Cavallaro. If you want to see really strange stuff have a look, but be warned, some of the stuff is really disgusting.


Folding Windows

While surfing the web I found the following interesting UI Idea:

http://liihs.irit.fr/dragice/foldndrop/

How long till someone implements this into KDE?


inotify++

What are you supposed to do at the day before an exam? Right, do something relaxing. So I played with one of my favourite new technologies … in the line of udev and d-bus there is now inotify, which will be wide available with the upcoming Linux 2.6.13. It is a replacement for dnotify and is used to make it more efficient for your system to find changed files, e.g. in Konqueror update the view when you have created a new file via the command line.
To use this feature today, you need to get the patches from John McCutchan and integrate it into your Kernel (mine is 2.6.12.2, because I stopped using the development kernels). Unfortunately, gamin, which is the program that notifies other Desktop applications of file changes is build without the inotify backend in Debian. So, you have to do an apt-get source gamin and change the debia/rules file from –disable-inotify to –enable-inotify. As KDE is linked agains libgamin, this change has an immideate effekt after rebuilding and installing gamin and rebuilding and installing the kernel.
Nifty, real time file system changes in Konqui.
(Unfortunately there have been some API changes in the inotify version which is in 2.6.13-rc3 which are reflected in the newest gamin 0.1.2 which is not in Debian yet, this might lead to a strange combination, but atm it works like a charm with the above mentioned combination and gamin 0.1.1).


Brother Printers++

My mothers boyfriend brought me his printer to support my bachelor thesis. It’s a Brother HL-2030 which does 16ppm. Plug and play didn’t really work, because the generic drivers don’t work for this printer. But the got Linux Support and even got Debian packages of their driver on their homepage. A big thumbs up for them.


What the hell?

Imagine, you tell your employer that he is doing something wrong and in return get your home raided and sued. That apparently is what happened to Chip Salzenberg, as reported by Slashdot. I had lunch with that guy just a couple of weeks ago and I feel personally pissed how something like this can happen to such a nice, friendly and careing person like Chip.
The main problem now is that his legal bills have topped 40.000 US $ by now, which is quite a lot of money. They set up a defense fund at GeeksUnite.net to collect money and state the case. Unfortunately, they don’t do any PayPal/Credit Card donation.
Think yourself, did you ever commit the crime of sshing into your company and downloading more sources than uploading? I certainly did.


Google Maps has Germany

Apparently, Google Maps has German Maps now:
The place where I live and where my University is.
Pictures seem to be kind of old, though. The big white spot a little bit left of the middle on top of the picture seems to be the base of our house, which would make it around spring 2003.

Other interesting places include:
The place where I grew up
The Kardinal-Frings Grammar School
Bonn University
The place I stayed at in London
Tartu College, Toronto
York University, Toronto


OpenWRT++


root@OpenWrt:~# uptime
10:57:32 up 35 days, 1:54, load average: 0.00, 0.01, 0.00

My ASUS WL-500g running an OpenWRT snapshot from some time ago is quite stable and works very well. Compared to my former Draytek router it comes with the following features:

  • Availability: it does not reboot under high load, thus I have a quite available internet connection
  • Security: I have the full power of IPTables to secure my network
  • IPv6: It takes care of my IPv6 tunnel for my whole network which is a great feature
  • etc. etc.

So, as you can see, investing 80 € into a new router was a really good idea.


“Your Linux is broken”

A friend of mine fixed my TeX setup yesterday (thanks), in order to get rid of prancing letters in the PDF version of my Bachelor’s Thesis. There was a point when he told me that my Linux is broken, when I had a look onto the screen in order to find out what he was talking about, I saw the following:

marcus@mobilHal:~: vi
-bash: vi: command not found
marcus@mobilHal:~: vim
-bash: vim: command not found

Still laughing about that :-)


Kivio++

Well, I’ve been looking for something to create the graphics for my bachelor thesis, which are mostly some diagrams showing syntax trees. I’ve used Kivio 1.3 for the initial version, but unfortunately it had the bug that it lost some of the connectors from time to time.
Today I upgraded to Kivio 1.4 beta (I’m still hoping that KOffice 1.4 will be released before I release my thesis) which unfortunately had the problem that it couldn’t load some of the files. I reported the bug and it was fixed only 2 hours after I reported it … so here’s to you, KOffice guys.

In other news everything is working out somehow, I think that I might be able to finish the draft version of my bachelor this week, all exams that I’m still having to do are scheduled for July, so this works out as well and I might be finished with all this stuff by end of July. Sounds reasonable to me. But maybe Google is going to destroy the free August project, which wouldn’t be that bad because it involves 4500 $. And I’m going to the first European O’Reilly Open Source Conference (EURO OSCON) in October …. as a speaker.


This tree…

is under constant CCTV survailance.

an image of a tree and a sign saying: this tree is under video survailance

We got this stupid habit of putting trees in front of the house of the girl we like. This is done traditionally in the night to the first of may. Sometimes people tend to steal trees in order to put them elsewhere or just because they don’t want this girl have a tree from this guy. This is the best way I’ve ever seen to prevent tree-napping. (Found on the way back from the swimming in Siegburg)