Case mod

31.08.2005 0:51

I have installed a second hard drive in my computer some time ago. Unfortunately it seems that the two discs in my computer spin with frequencies that are very close to each other. The result is that you can hear the interference as a low "brrrruum brrrrrum brrrrrum" sound that is coming from the computer.

Now this wonderful Chieftec case I have (it boasts as having a "Special spring design for anti-vibration.") has hard plastic feet that are wonderful at transferring this low frequency sound to the structure of our house. And the result of that is that "brrrrum" sound could be heard in almost all our rooms (and I'm sure the neighbors also get their share of it).

So I bought a piece of a thick carpet and made some soft pads to isolate the case from the floor and it seems to be working.


Who knows, maybe I'll even get the extra benefit that my MP3s will "sound more immediate and crisp" :)

Posted by Tomaž | Categories: Life | Comments »

Debian Quiz

28.08.2005 12:00

The Debian Quiz has this to say about me:

You got 20 of 37 (54.1%) right.
Your Debian knowledge is good, but you lack some deeper insights.

I guess I have been overestimating my knowledge of Debian :)

Posted by Tomaž | Categories: Life | Comments »

Anyone missing a boat?

27.08.2005 19:54


Posted by Tomaž | Categories: Life | Comments »


26.08.2005 17:00

OpenUsability is a project that brings Open Source Developers and Usability Experts together.

Quite a lot of free software projects seem to have registered on the site already. I was randomly browsing the site and the first forum post I looked at contained a link this interesting article about prototyping graphical user interfaces on paper. I'll definitely try this approach next time I will be writing a program with a GUI.

Posted by Tomaž | Categories: Code | Comments »

Skag notebooks

25.08.2005 1:30

I can't belive that a company could do something like this.

Posted by Tomaž | Categories: Life | Comments »

Informative error messages, 2

21.08.2005 17:24

Just spent 30 minutes solving another problem that I could fix in 30 seconds if I would only get a proper error message. Whoever wrote OS X printing system obviously thought that error handling is for the weak. I just found out that OS X will simply say "Print job stopped" (in exactly the same way as if someone stopped the job manually) instead of reporting an error if lpd daemon on a remote printer refuses the connection.

After checking all sorts of configuration options in OS X, adding and removing printers I finally run tcpdump to see what exactly is happening on the network. This is what I got:

17:36:01.864288 IP orion.printer > sen.1012: P 1:57(56) ack 5 win 1448 <nop,nop,timestamp 20706385 3602102236>
        0x0000:  4500 006c d2e0 4000 4006 e450 c0a8 0102  E..l..@.@..P....
        0x0010:  c0a8 0108 0203 03f4 983c 26f2 d079 9481  .........<&..y..
        0x0020:  8018 05a8 7bbb 0000 0101 080a 013b f451  ....{........;.Q
        0x0030:  d6b3 b7dc 6f72 696f 6e3a 206c 7064 3a20  ....orion:.lpd:.
        0x0040:  596f 7572 2068 6f73 7420 646f 6573 206e
        0x0050:  6f74 2068 6176 6520 6c69 6e65 2070 7269  ot.have.line.pri
        0x0060:  6e74 6572 2061 6363 6573 730a            nter.access.

Duh. One vi session of the /etc/hosts.lpd later, I could print again from my Powerbook, but how did OS X understand this as "Print job stopped" is beyond my comprehension.

Posted by Tomaž | Categories: Code | Comments »

Informative error messages

21.08.2005 12:27

The following piece of code has one simple syntax error on the first line:

287 for(x=0;x<XMAX/2+!;x++) {
288        for(y=0;y<YMAX/2+1;y++) {
289                for(z=ZMAX/2;z<ZMAX+1;z++) {
290                        space[x][y][z]=0;
291                }
292        }
293 }

When you try to compile it with GCC 4.0, you get this torrent of very informative error messages that point you to all other lines in the source file except the one that has the error. GCC obviously wants to make sure that the line with the error is the very last line of code that you will check.

lines.c:291: warning: control reaches end of non-void function
lines.c: At top level:
lines.c:324: warning: type defaults to ‘int’ in declaration of ‘id’
lines.c:324: error: initializer element is not constant
lines.c:324: warning: data definition has no type or storage class
lines.c:329: error: syntax error before ‘for’
lines.c:338: warning: type defaults to ‘int’ in declaration of ‘black’
lines.c:338: error: initializer element is not constant
lines.c:338: warning: data definition has no type or storage class
lines.c:340: error: syntax error before numeric constant
lines.c:340: warning: type defaults to ‘int’ in declaration of ‘g2_set_line_widt h’
lines.c:340: error: conflicting types for ‘g2_set_line_width’
/usr/include/g2.h:121: error: previous declaration of ‘g2_set_line_width’ was he re
lines.c:340: warning: data definition has no type or storage class
lines.c:342: warning: type defaults to ‘int’ in declaration of ‘s_draw’
lines.c:342: warning: parameter names (without types) in function declaration
lines.c:342: error: conflicting types for ‘s_draw’
lines.c:206: error: previous definition of ‘s_draw’ was here
lines.c:342: warning: data definition has no type or storage class
lines.c:344: warning: type defaults to ‘int’ in declaration of ‘g2_close’
lines.c:344: warning: parameter names (without types) in function declaration
lines.c:344: error: conflicting types for ‘g2_close’
/usr/include/g2.h:107: error: previous declaration of ‘g2_close’ was here
lines.c:344: warning: data definition has no type or storage class
lines.c:345: error: syntax error before string constant
lines.c:345: warning: type defaults to ‘int’ in declaration of ‘printf’
lines.c:345: error: conflicting types for ‘printf’
lines.c:345: note: a parameter list with an ellipsis can’t match an empty parame ter name list declaration
lines.c:345: warning: data definition has no type or storage class
Posted by Tomaž | Categories: Code | Comments »

Review of Tablix on Morphix

19.08.2005 22:41

Today I've found this review of cluster-oriented Linux distributions by a magazine called PC Quest.

They compared ClusterKnoppix, ParallelKnoppix and Tablix on Morphix. Unfortunately it seems that the authors of the article confused Tablix (software for solving timetabling problems) and Tablix on Morphix (slightly modified Morphix GNU/Linux distribution).

Posted by Tomaž | Categories: Code | Comments »

ATC Advanced, 4

19.08.2005 13:44

You can download the source code for ATC Advanced here.

If you want to try it, please keep in mind that most of this was written between 1am and 3am, so expect lots of weird code and strange error messages.

To compile, first edit common/pathnames.h and correct the hardcoded paths there (they should point to the location where you extracted the tar file). Then do a make clean && make. I haven't tried make install yet and I don't know what it does. Just run the binaries from the source tree for now.

To play you first have to start the server. Run it like this: server/atca_server -g OHare. You can replace "OHare" with any other game that is available in the games/ directory. After the server is running, start one or more clients like this: client/atca_client. Each client will ask you for your nickname and the IP of the server. After a few moments you should see the radar display.

All clients see the same radar screen. The only difference are the colors of the airplanes. Unassigned new airplanes are red. Green airplanes are assigned to you. White airplanes are assigned to other clients or are ignored (you can ignore an airplane by using the "i" command). You can assign an unassigned airplane by using the "p" command. Once the airplane has been assigned to someone, it can not be reassigned.

Please do not send bug reports unless you have a patch.

Posted by Tomaž | Categories: Code | Comments »


15.08.2005 22:05

I'm seriously considering making me one of these. I've seen these displays at 21C3 and What The Hack and they look great.

Full circuit schematic is available and 144 LEDs really don't cost that much.

Posted by Tomaž | Categories: Digital | Comments »

ATC Advanced, 3

15.08.2005 0:59

Just played a game of ATCA with Loopus while listening to the recording of the Humppa radio from What The Hack.


We experimented with various options - mostly on the OHare map which we both know well. The default setting of the number of planes is too low for two players, but with the setting increased by one step it is again quite a challenge. The Killer map is still unplayable, even with two players.

The greatest problem seems to be the coordination between players. Some kind of airplane marking needs to be implemented. This way players won't be confused which one is focusing on which airplane (right now airplanes crash when by chance we are both focusing on one group of airplanes while ignoring some other group).

Also SNL seems to have this problem when some times it will say that it can't open a socket if I start the server immediately after the game ends. I have to wait a few minutes and the problem mysteriously solves itself.

Posted by Tomaž | Categories: Life | Comments »

ATC Advanced, 2

14.08.2005 18:10

ATC Advanced

Here you can see the server running in the upper left window. I've removed all functions that were drawing the radar screen from the server code. Maybe I'll implement some kind of a command line in the future. Currently the server only outputs some status messages to the terminal.

Other three windows on the above screen shot are clients connected to the server. The lower left client just ordered plane "a" to change heading to 0 degrees. The upper right client ordered the same plane to turn to 90 degrees and the last client ordered airplane "b" to climb to 9000 feet.

I'm using the Simple Network Layer library for networking. It is very simple to use (contains only 4 functions) and as far as I can see it works perfectly. The only problem I've found is that I can't use telnet to directly talk to the server (the library returns "buffer allocation error") even though the network protocol I use is plain ASCII.

Posted by Tomaž | Categories: Code | Comments »

ATC Advanced

14.08.2005 0:48

This is a screenshot of the first kind-of-working version of my multiplayer ATC hack.


ATC (Air Traffic Controller) is a simple game by Ed James which lets you try your hand at the nerve wracking duties of the air traffic controller without endangering the lives of millions of travelers each year. The original only supports one player and uses simple ncurses-based monochrome ASCII graphics.

Loopus and I got the idea at What The Hack to make a multiplayer version that could be played over the internet and perhaps use SDL for better graphics.

In the screenshot above, the top window is running the server. Any number of clients (one can be seen running in the bottom window) can then connect to the server and they can all send commands to all airplanes on the radar screen.

I'll release the source code as soon as I'll get this even remotely playable. I still have problems with sending commands over the network connection (the game uses a quite interesting state machine for entering commands for airplanes).

I'll post some more details tommorow.

Posted by Tomaž | Categories: Code | Comments »


09.08.2005 16:03

If there is a properly configured IEEE 802.11a access point in the forest and there is nobody there to use it, can you still say that the wireless network works?

-- Loopus at What The Hack

Posted by Tomaž | Categories: Life | Comments »

Copyright & community, 2

08.08.2005 21:34

After some more thought, I don't think you can compare middle ages before the invention of the printing press with the age of computer networks like Mr Stallman did. People that were writing books at that time were either already rich enough so that they didn't care if they get any money for their work or were monks in monasteries who didn't need money. It is no surprise that no one cared about copyright.

Posted by Tomaž | Categories: Life | Comments »

Copyright & community

07.08.2005 14:13

I've listened to Richard Stallman's talk about copyright and community today. He tried to apply ideas from his free software movement to other kinds of works like literature, movies, music and physical objects.

He rejected the idea that free software ideas could be applied to hardware because you don't have a compiler or a copy machine that will cheaply manufacture a piece of hardware for you from a blueprint. I don't agree with that. If he claims that everyone has the right to learn from software by looking at the source an changing it, then I don't see why it would be OK for companies to hide the physical design of a device. 20 years ago it was quite common for companies to include full schematics with an electronic device you bought, but now the insides of some of the chips are the biggest company secrets. You won't find a television set today that will come with any sort of schematics or connection diagrams. Stallman said that physical objects are already as free as they can be, but many companies are deliberately making their electronic products so that they can not be tampered with (like embedding circuits in plastics so that you can not access them without destroying the device).

His interpretation about how the age of computer networks reestablished the situation that existed before the invention of the printing press was quite interesting. Before the invention of the printing press the ability of making a copy of a piece of written work was uniformly distributed between people. Everybody could make a copy and making 10 copies was about 10 times more difficult than creating one copy. With the printing press only publishers were able to make a large number of copies because they owned the expensive equipment. This uneven distribution of ability to make copies made copyright law necessary (or at least not harmful). Computers again enabled anyone to make large or small numbers of copies and Stallman believes that this makes conventional copyright harmful.

As expected he said that "digital rights management" devices are evil and that everyone should stay away from them. It seems interesting that he even acknowledges the existence of DRM (DRM is mentioned in the GNU Free Documentation License, so that definitely means that FSF acknowledges its existence). There are numerous examples that show that it is almost impossible to clearly define what exactly is a way of enforcing copyright (or "digital rights"). DMCA law in US is often criticized because of this, because by definition a lot of everyday items can be classified (like black markers for example) as devices that circumvent copyright protection schemes.

I also didn't like his idea that the author has absolutely no right to charge anything for his or her work. He said that if nobody asked the author to produce a piece of literature then he has no right to request money from people to read it. As far as I don't approve lengthening of the copyright that is happening today and huge amount of money publishers are getting I find this statement nonsensical. Someone manufacturing a physical object in advance and then selling it has in my opinion the same right to get some money for his work as a musician or a writer. I'm not saying that they should both use the same ways of getting money though. I also find his support of taxing empty CDRs as a way of financing musicians a bit weird. There are huge practical problems with that (like who will gather all the money from all around the world and who will then decide what part of this money an artist would get?) not to mention that the bulk of CDRs are used for everything else except music.

I was also surprised at the way he answered questions at the end of his talk. I would expect someone who is defending the right of free speech at least let people finish their questions. Most of the time he interrupted them in the middle of their questions and said that this or that assumption is wrong or that they are pronouncing their words wrong or that they aren't speaking clearly and so on.

Posted by Tomaž | Categories: Life | Comments »


06.08.2005 19:53

This article about remotely controlled humans looks quite scary at the first glance (direct link to video). On the other hand, application of this to flight simulators would be quite cool.

Once you read the article it seems that technology behind this effect is quite simple (just stimulate some part of the skin with electric current). It looks like we won't be able to do anything really interesting with the human nervous system for a long time. The current methods remind me of hacking a microprocessor with a hammer - if you punch it on just the right spot, you might knock out a specific part of it, but you really don't know anything about what happens inside.

Posted by Tomaž | Categories: Life | Comments »

Keysigning party

06.08.2005 12:52

This morning I attended the keysigning party at Wikimania. I organized a similar event last year at Haip (I wanted to follow the keysigning party HOW-TO), but it failed miserably then because nobody had the patience and/or time to check all the passports and identity cards and then compare endless strings of public key fingerprints. So everyone just went like "OK, I trust all you guys without checking you IDs and fingerprints, now let's sign these keys and go on with the party". In the end nobody remembered to submit the signed keys to the keyserver anyway, so it was just a big waste of time and nerves. So I really wanted to see how a keysigning party organized by some one else would look like.

Hanno 'Rince' Wagner, who led the GPG workshop and the keysigning party didn't exactly follow the HOW-TO. What he did is that he gathered key IDs and fingerprints from everyone and compiled a list on the wiki. Everyone showed his or her passport or ID card to him and everybody else so we could confirm their identities.

This way of doing thing greatly simplifies the keysigning, because everyone doesn't need to check everyone else's fingerprints (the algorithm is O(n) instead of O(n^2)). However in this case you must trust whoever is compiling the list that he won't change the key fingerprints on it, so it isn't a technically correct way of doing it.

Posted by Tomaž | Categories: Life | Comments »

Drink more water

05.08.2005 13:44

One bottle of drinkable water (1 liter) costs 1.80€ in Frankfurt. Quite a shock comparing to free drinkable water at What The Hack.

Posted by Tomaž | Categories: Life | Comments »


04.08.2005 23:19

Tcie and I just arrived at Wikimania. Another change of plans. I know I said I won't be going, but there was enough time to dry myself up at home and then go to Frankfurt by airplane. We checked in the Haus der Jugend (a huge, modern hostel) and paid the conference fee. We got a nice printed conference programme and a printed version of selected articles from Wikipedia on Frankfurt.

People at the Wikimania check-in had problems entering our proper names. Funny, since čžš characters are in the UTF-8 character set and MediaWiki uses UTF-8 by default. I'm used to spell my name in plain ASCII anyway and they promised to make our conference name tags with proper characters.

They have a wireless network set up here. It is working right now (so I hope I will be able to post this), but it already seems that the number of users is approaching the critical mass (people at the counter said that there are currently around 160 attendees, each one using her or his own laptop I guess).

I'll be posting short descriptions and comments on the talks I will be attending at the Cyberpipe web site, since tcie and I are after all representing Cyberpipe at this conference.

Posted by Tomaž | Categories: Life | Comments »

Klagenfurt airport

04.08.2005 22:53

Here are some instructions how to get from Ljubljana to Klagenfurt airport for any other Ryanair customers from Slovenia (it may look simple, but it is far from obvious once you are actually there)

V Ljubljani kupiš vozovnico do Klagenfurt Hbf. Direktne linije ni. Prestopiti moraš v Beljaku - Villach Hbf. Vožnja z vlakom traja okoli dve uri. Na glavni železniški postaji lahko nato na avtomatu kupiš vozovnico za primestno železnico do Klagenfurt Annabichl (karta stane 1.60€). Vlak, ki pelje do tja, ima končno postajo v Wien Südbahnhof ali Bruck a.d. Mur. Klagenfurt Annabichl je druga postaja po vrsti (prva je Klagenfurt Ost) in je v bistvu samo peron, ki stoji ob progi (nekaj takega kot Ljubljana Tivoli). S perona greš po stopnicah navzdol do ceste, ki gre pod progo. Tam zaviješ desno in slediš cesti do letališča.

Posted by Tomaž | Categories: Life | Comments »

SŽ rant

03.08.2005 16:35

I traveled from München to Ljubljana with a Slovenian Railways night train. So I got on the train and tried not to be upset because I will have to share my seat with my luggage for the next six hours (luggage compartments were full, go figure). As always I waited for the conductor to first check my tickets and reservations and then put on my headphones and went to sleep.

Next thing I remember is five faces staring at me. My first though was that I did something stupid while asleep (wouldn't be the first time), then I noticed that the owner of one of the faces was the conductor and then I noticed that his face is all red and that he is shouting something. So I removed my headphones and slowly began decoding his German language. Obviously he wanted to see my tickets again and was furious because I didn't show them immediately. I tried to explain to him that some people occasionally experience a period of inactivity we call sleep, but he didn't seem interested. After he checked the tickets one more time he was satisfied simply left. When the conductor returned for the third time, I was already awake because of the passport control.

I traveled by day for longer through Netherlands and Germany, but I never had to show my ticket more than once (and ICE tickets are quite a bit more expensive than this night train ticket). Why on earth do they want to see your ticket three times on a night train when people probably want to (gasp!) sleep? Add two more sleep interruptions on the border to show the passport (once for the Austrian and once for the Slovenian border police. We are in EU, right?) and I really don't see why I would like to spend extra 20-something Euros for a bed, when I couldn't get any sleep anyway?

Posted by Tomaž | Categories: Life | Comments »

Goodbye WTH and thanks for all the fish

02.08.2005 18:43

1 August 2005, 14:52

I left the camp and went by train to Amsterdam today. The official part ended yesterday around 18:00 with the closing talk. After that we began clearing the camp area. I helped to pick up the garbage and carry chairs and equipment from one of the larger tents. The net and What The Bar were still operational yesterday evening, but when I woke up today all of the big tents were practically cleared up and I could only get a breakfast and lukewarm tea.

Loopus and I planned to go to the Wikimania, but wet clothes and equipment, bad weather and a promise of a hot shower (in two out of three cases the water in the showers at WTH was freezing) changed my mind and I decided to end my journey a bit early. Loopus stayed behind (has went to sleep about the time I got up) and is planning to camp for a few days more in some camp near Amsterdam.

I'm currently on the train to Duisburg and I don't have net access, so I'll post this as soon as I get home.


I'm just past Stutgart and thinking about WTH

Last year when I was on 21C3, I tried to attend as many talks as possible - almost every hour there was a talk or two that was simply to interesting for me no to attend it. But when the conference was over I realized that I hadn't actually had any longer conversations with other visitors of the conference. I decided that when I'm on the next such event, I'll spend most of my time socializing and only attend a few of the most interesting talks and workshops.

Now that I can look back at my visit to WTH, I see that I made the right decision. I learned a lot just by walking around, talking to people about their projects, sometimes helping them with a specific problem and most importantly, it was much more fun than just listening to the talks. I was really surprised how friendly everybody was. If I asked something I always got a friendly answer. I got the nice feeling how everyone here is really part of a great community where each member is really doing her or his best to contribute.

I got into a conversation with a guy sitting next to me. We talked about this and that and then I mentioned I'm just returning from a "computer related" camp. The conversation went fine until I mentioned the term "hacker conference". At that moment he noticeably became uncomfortable and asked if I was talking about people that break into FBI databases and similar stuff. And then I spent the rest of our journey explaining what I understand under the term hacker. My little contribution to undoing what the mass media has done.

One thing that did bother me in the camp is that I really didn't sleep much these four days. We set up our tent in the area A1 right next to What The Bar and Foo Bar, which turned out to be a bad idea. Ear plugs don't help much when you can feel the drums in your stomach. And if we would move our tent to other areas, we would probably drown instead of just getting wet in that storm.

2 August 2005, 18:45

There's no place like $HOME :)

Posted by Tomaž | Categories: Life | Comments »