Search Results: "ana"

23 November 2005

Antti-Juhani Kaijanaho: The annoying banner thingie

I started the grep-dctrl rewrite last spring. I soon had most of the code implemented, and I asked for testers on -devel. There were no debs at that time, and so it probably was not much of a surprise that nobody volunteered. I got discouraged and abandoned the project for several months. In August, just before my vacation at work ended, I decided to polish the code, and I did. I prepared debs and was ready to submit them to unstable. (At that time I was under the impression that experimental was the wrong place for any grep-dctrl stuff.) I felt it was necessary to warn users about the code, since it was sure to contain nasty surprises. I considered sending a mail to some lists: -devel-announce would have reached my audience, but the message would have been inappropriate there; I feared it would not be noticed in -devel. I considered a message at installation time,either with debconf or without. However, debconf messages are seen by system administrators and not users, so that was not an attractive option. I finally decided on that annoying banner:
==========================================================================
                                  NOTE                                    
 grep-dctrl has been rewritten from scratch.  Although this does add new  
 features, regressions are certainly possible.  Please watch for them and 
 report them to the BTS.                                                  
==========================================================================
(The above annoying banner will not be shown to you again, unless you
request it with the -B switch.  It will also be removed entirely soon.)
I took great care to make the banner as unobtrusive as possible, still taking in account that it had to be prominent to have any effect. I added logic that would suppress the banner after a user had seen it once (using a dotfile in home directories, ~/.grep-dctrl-banner-shown; if you find one in your home directory, you can now safely remove it). I did not print it to stdout (it would clobber the output) nor to stderr (it might be redirected, which would have been counterproductive); rather, I used /dev/tty. After all, many people use grep-dctrl in scripts without realizing it; especially they would need to know that there was a weak link there. Nevertheless, I expected to get flamed for this. To my considerable surprise, I got no reactions - aside from several good and substantial bug reports. The banner stayed in longer than I intended, mainly because I was exhausted by my teaching duties during the autumn. I finally removed it last week, in 1.103. And then, several days after the banner had been removed, I get a bug report (which, strangely, is still open even though I sent a closing message almost 24 hours ago). That's when I decided to post this entry.

Antti-Juhani Kaijanaho: Grep-dctrl 2.0 uploaded

'nuff said. Go nuts with it.

Antti-Juhani Kaijanaho: Grep-dctrl delayed again

I found another bug. Oh well, I think I'll finish this upload and report the bug myself. It's not a showstopper. EIEIO!

Antti-Juhani Kaijanaho: The Programmer Bought the Farm

Thank $DEITY I asked Jordi how he uses grep-dctrl, for because of that I just found a HORRIBLE bug in the grep-dctrl I was nearly releasing. Here-a-bug, there-a-bug, -EIEIO

Antti-Juhani Kaijanaho: First order of business for grep-dctrl update

... is bringing back grep-dctrl internationalization and its Finnish localization. Anybody want to help me with this? :) After that I'll prepare a 2.0 release that closes #208646. Contact me at ajk@debian.org if you are interesed in helping with grep-dctrl i18n (I'll also take offers for localizations for any locale:). You can also /msg me (ibid) in IRCnet or OFTC.

Antti-Juhani Kaijanaho: Grep-dctrl rewrite status

You know that annoying release-critical bug on grep-dctrl, saying that it's not releasable? Well, I have used my new year mainly to work on that. I have fixed all but one of the known regressions; only i18n is missing. My internal checklist for that bug is getting the regressions out of the way. I hope to get that done on Tuesday. Then I hope to be able to close that bug.

Antti-Juhani Kaijanaho: Nerd! Loser!

I am nerdier than 83% of all people. Are you nerdier? Click here to find out! (Via Amaya @ PlanetDebian) I am 90% loser. What about you? Click here to find out!

Antti-Juhani Kaijanaho: On build-essential

The build-essential package is not a definition of the build-essential policy. The actual definition is given in the policy manual:
It is not necessary to explicitly specify build-time relationships on a minimal set of packages that are always needed to compile, link and put in a Debian package a standard "Hello World!" program written in C or C++. The required packages are called build-essential, and an informational list can be found in /usr/share/doc/build-essential/list (which is contained in the build-essential package).
The build-essential package is an informational list, it is documentation. The idea of the build-essential package is to document which packages are always needed to compile, link and put in a Debian package a standard "Hello World!" program written in C or C++. The build-essential package maintainer's main job is to make sure that the informational list is correct. When I maintained build-essential, I got multiple bug reports asking (and sometimes demanding) that debhelper be added to the list of build-essential packages. I closed all such reports (#64827, #70014, I thought there were more but can't find them) with a suggestion that the proper place to make this request is the policy list, not the build-essential package bug list. In fact, when I asked for a new maintainer (Colin Walters ended up taking the package), I specifically listed the following requirement:
I consider the capacity to deal with stupid requests (like "plz add debhelper"; lately, there have been not so many of these) and an understanding of the relationship between this package and Policy as essential qualities of the maintainer of this package.
I'm a little concerned that the current build-essential maintainer apparently does not understand the relationship between the package and policy. For the build-essential package maintainer, it is irrelevant whether debhelper is used by 92 % of the archive. That argument might be a good one, but the proper place to make that argument is the policy list, seeking to amend policy in such a way that debhelper is included in the set of build-essential packages. But it is not the job of the build-essential package maintainer to decide it!

Antti-Juhani Kaijanaho: It's not a new meme

This musical Russian roulette thing that's been going on lately in Planet Debian is not a new thing. It made rounds in the Finnish blog circles in the beginning of December. Here's my list (I made a twenty-song list, not just ten-song like most):
  1. Jethro Tull - Acres Wild
  2. Cliff Eidelman - Surrender for Peace (Star Trek VI soundtrack)
  3. Miljoonasade - Paskanmarjat
  4. Roxette - Fireworks
  5. Verdi - Alfredo! Voi! (La Traviata)
  6. Ultra Bra - Hei kuule Suomi
  7. Cincinnati Pop Orchestra - Back to the Future theme
  8. Johann Sebastian Bach - Blute nur, du liebes Herz (St. Matthew passion)
  9. Verdi - Annina? (La Traviata)
  10. Miljoonasade - Radiorakkautta
  11. Pave Maijanen - Palava syd n
  12. Nirvana - In Bloom
  13. Albert Prefjean - Sous les toits de Paris
  14. (unknown horrible synthesizer thing) - Thunderball (James Bond)
  15. Sibelius - String Quartet D minor op. 56 "Voces intimae" I Andante - Allegro molto moderato
  16. Emmi - No Nothing
  17. The Kings of Convenience - The Girl from Back Then
  18. Maija Vilkkumaa - Kristiina
  19. Buddy Holly and the Crickets - Oh, Boy!
  20. Buddy Holly and the Crickets - Valley of Tears

Antti-Juhani Kaijanaho: Happy New Year 2005

When I save this posting, it is precisely the first seconds of 2005 in Finland. Happy New Year to everybody!

Antti-Juhani Kaijanaho: Nobody would call me a traveler


create your own visited countries map

Antti-Juhani Kaijanaho: ID6

As I start to write this, it's the last minute of my country's 87th birthday (the Finnish Independence Day). It got me thinking about nation-states and independence and whatnot. And I came to a threefold conclusion: First, there is some value in independence. Getting rid of the status of a Grand Duchy in personal union with Russia was certainly a good step for Finland, in light of the rough road the Russians themselves have since travelled. For the same reason, the two wars Finland fought against the USSR were quite worthwhile. Similarly, if Finland were to be threatened by a neighbour again, armed defense would certainly be justifiable. Second, there is no intrinsic value in independence. If a humanly life (including freedom and local government) can be guaranteed even if there is no Finnish state in itself, I see no reason to hold on to the old-fashioned concept of a nation state. Third, I am in favour, as a long-term goal, of a world government. Of course, a single government becomes a single point of failure in case of a coup, for example, but if the global state is arranged properly, the danger of a successful coup is minimal. On the other hand, a world government is in far better position to institute necessary policies to combat the global problems of poverty, climate change and other such issues than the current system of competing and cooperating nation-states. In the current system, the big issues are easily put aside in name of local opportunism. Finland is by no means immune to that problem. The great crises of the 20th Century were its devastating wars. Fortunately, we have overcome them to a sufficient degree. The great crisis of the 21st Century is not terrorism - though it is a symptom. The great crisis is caused by the limits of growth, and we are already feeling quite concretely the nearness of those limits. If something is not done, our current civilization will crash spectacularly. The human race will probably survive - but do we really want to live through another Dark Age? Long Live the Earth!

Antti-Juhani Kaijanaho: Nordic walking

For obvious reasons, I need to get more exercise. To that end, last Monday I purchased equipment required for a fairly new sport, quite popular nowadays here in Finland, though it used to raise a few eyebrows here. The equipment is a pair of poles with length of 125 centimetres, quite similar to (but shorter than) poles used in cross-country skiing. Nordic walking was originally developed from specific summer-time exercises that the cross-country skiers did. Specifically, it consists of walking while using the poles in a similar (but not identical) fashion as they are used in cross-country skiing. It's supposed to exercise both the upper body and the lower body much more equally than just walking, and it's supposed to be one of the best forms of exercise for a computer geek. And I don't doubt it. Tried it twice already. The poles do help in maintaining balance while walking in slippery grounds :) NaNo is effectively dead for me. I hang around but I haven't written anything in a week. It was too stressful for me at this time. I do hope that I get around to finishing the story later (but not now; the stress is too fresh in my memory).

Antti-Juhani Kaijanaho: NaNoWriMo... strike that... IWriSloMo

I am taking part for the second time in the (Inter)National Novel-Writing Month. The goal is to write 50000 words in one month of novel-like prose, regardless of quality. Essentially, it is a group effort of producing novel first drafts in a fairly good pace. Seems to work for some people, but I'm lagging behind with no realistic hope of catching up. I am writing each day, but my output is on the order of 500 words a day, not the 1700 words a day that the official goal requires on average. So, I'd properly belong in the International Write Something Month (IWriSloMo), affectionally known as I Write in Slow Motion. The goal there is to produce 200-250 words of bad short fiction (bad, short and fiction being all optional) each day in one month. But I think I'll stick with NaNoWriMo - there's gotta be the losers, too, you know :) And I get a noticeable boost from being able to compete in my own weight class (I can order participants by word count, and I can try to up my position on that list:). My current minimum goal for each day is to restore myself to the first page of Finnish contestants. So far, I have been successful. So what am I writing? It is a Horatio Hornblower pastiche set in the 25th Century and the setting is space. I can hear you yawn, but hey, nobody said it was any good! :)

Antti-Juhani Kaijanaho: 27

It seems I'm such an important person that my birthday is celebrated by the United States of America by holding elections. I'm honoured. Or not. Being forced to choose between two evils would be not that nice. Fortunately, I'm not qualified to vote. I'll be 27 years old this evening at 20:18 local time (+0200).

Antti-Juhani Kaijanaho: Municipal elections preliminary results

I wrote earlier about the municipal elections that were held yesterday. This is just a small note to tell the result. The Green League held its seven seats in the city council. I got 67 votes, which is two short of me having been selected as a deputy councillor in our city. This result is still quite good for me: I have now a rather good bargaining position within our group for the lesser positions (seats and deputy seats in the standing special committees). And it is likely that I'll be promoted to deputy councillor later on (all that is required is for one of the councillors or deputy councillors to resign, which likely happens due to moving out of the city).

Antti-Juhani Kaijanaho: Tomorrow: Municipal elections

On Sunday morning, the polls open in Finland's municipal elections. In these elections, representatives of the people are selected to all municipality (city, town or rural district) councils in Finland. Eligible for vote are all citizens over 18 not living abroad and certain foreigners living in Finland. The polls close at 8 pm local time, and early results based on the hand-count of the votes given during advance polling are announced soon after. The full (manual) count is finished around 11 pm local time; partial and full results are announced as they become available. A mandatory manual recount is then performed during the next few days and the official results (essentially never resulting in any significant changes, while close contests may see changes) are announced on Wednesday. The new municipal councils begin their work after new year and sit for four years. The votes are tallied according to the open list variant of the d'Hondt method. While a voter marks the number of a single candidate on the ballot, the vote is counted toward the total sum of votes received by the candidate's party, and seats are allocated to parties more or less in proportion of votes received. The list of candidates within each party is then sorted in descending order of individual vote count and from the top of the list and the first N candidates are elected, where N is the number of seats allocated to the party. The upside of this mechanism is that - as long as parties represent true differences of opinion in material issues - the different opinions held by the people are represented faithfully, in miniature, within the municipality council. There is a small bias toward large parties in that fractional numbers of seats tend to get rounded up for large parties and down for small parties, but the system works, nevertheless, fairly well. A preferential system would be my preference (no pun intended:), though. And now for the good part: I am running in these elections as candidate number 129 in the combined candidate list of Jyv skyl . My party affiliation is the Green League. It is estimated that I would need about 150 votes to get in the city council, though the exact treshold cannot be known in advance. For the past two weeks, I have been exerting myself in distributing my personal and our party's election materials to people in my local area, as well as standing in the city centre trying to get people vote for me, or alternatively, for other candidates in our party list - or even to vote at all. My body is aching all over, since I have not been very good at exercising before this endeavour. The end is near: tomorrow evening we will know what will become of this. Please wish me luck :)

Matthew Garrett: Dull software announcement

VBEtool 0.4 - "Where the fuck did that gin and tonic come from, and just how drunk am I?" has been released.

VBEtool is a very dull piece of software that executes code in your video BIOS. As of version 0.4, a set of drunken Northern Irish people have added support for x86emu in order to allow it to run on systems that do not support vm86 mode (such as an AMD64 in 64-bit mode). As an added feature, version 0.4 will run on kernel 2.6.15 thus making it at least 3 times better than version 0.3. This functionality is added at the possible expense of it scribbling over chunks of utilised memory. Thlinux.

VBEtool will happily allow you to make DPMS calls to switch your screen on or off, but is primarily useful for reinitialising your video if your power management system can't do it itself. This makes it ideal for ACPI users. x86 people have had this for some time, but 0.4 brings the love to AMD64 users and IA64 users (yes, all 3 of you). Source is available from http://www.srcf.ucam.org/~mjg59/vbetool/. It requires the development headers from pciutils in order to build, but should otherwise be self-contained.

If 0.4 breaks on systems where 0.3 worked, please let me know and I'll point out how it's entirely not my fault and then fix it anyway. I'm lovely like that. But it works on my AMD64, so boo to you.

22 November 2005

Wouter Verhelst: Wanted: an NBD dissector for Ethereal

I could probably write it myself, given time, but I'm guessing it's going to cost me a lot more time understanding the Ethereal API than it is going to cost someone else undestanding the NBD protocol. Which is really simple. So, here's a short description of the protocol; now if someone could write me an Ethereal dissector, I'd be very happy. And if you need it, just ask for more information.
"Negotiation" phase:
  • Connection is opened by the client
  • The server sends out the literal string NBDMAGIC to the client (which is the "INIT_PASSWD" in the code and in error messages), followed by the the 'cliserv_magic', 0x00420281861253LL. The NBDMAGIC is there to identify a server; the cliserv_magic may be updated when the protocol changes incompatibly.
  • The server sends the size of the device as a 64 bit unsigned integer.
  • The server sends 128 bytes of zeroes (discarded by the client currently; these are reserved for further use)
(whether or not the above are all in one packet is something I don't know and don't really care about; they're all done using different write calls, so can technically be in different packets)
After that, the client is expected to be happy with the connection (if it isn't, it'll just drop the connection without explanation).
Main data pushing phase:
(I just made that name up, give it a reasonable name please ;-)
  • Clients sends a struct nbd_request to the server (which is defined in <linux/nbd.h>. The fields in that struct are:
    magic (32bit unsigned int)
    must be NBD_REQUEST_MAGIC aka 0x25609513 (again defined in <linux/nbd.h>); if it isn't, the server disconnects (this should really be handled better, but at the moment it isn't; and changing the protocol to do this might be less than trivial). It is possible that previous versions of the protocol used 0x12560953 instead (the header file mentions that as something not to be used, but I don't know where it comes from).
    type (32 bit unsigned int)
    is NBD_CMD_READ aka 0 (to read data), NBD_CMD_WRITE (to write data) aka 1, or NBD_CMD_DISC aka 2 (to request a clean disconnect).
    handle (char array of eight bytes)
    used to uniquely identify a request; this is later sent back in the reply, and can be used to associate a reply with a request.
    from (64 bit unsigned int)
    the offset in the export where the read or the write should start.
    len (32 bit unsigned int)
    the length of the requested read or write.
  • If struct nbd_request.type==NBD_CMD_WRITE, the client will then send struct nbd_request.len bytes to the server, containing the data it wants to see written.
  • Server sends a struct nbd_reply to the client:
    magic (32 bit unsigned int)
    functions similar to struct nbd_request.magic, only its value is supposed to be 0x67446698. Analoguous to struct nbd_request.magic, there's a value, possibly from a previous version of the protocol, which says 0x96744668 instead.
    error (32 bit unsigned integer)
    is zero, unless an error occurred
    handle (char array of eight bytes)
    the exact same value that was received in struct nbd_request.handle
  • If struct nbd_request.type==NBD_CMD_READ, the server will then send struct nbd_request.len bytes to the client, containing the data it read.
As you can see, a very simple protocol really... now if only somebody could write me a dissector—having to dissect it by hand isn't very funny, really.

Clint Adams: GUI music players

First, I should point out that I hate GUIs. Then I should point out that I don't want to play music with a GUI music player. I'm including ncurses-type things like cplay in the GUI category. They've always made my skin crawl. So, why am I testing out GUI music players? It's because I didn't didn't realize that I misread the Audioscrobbler spec. Now that we've established that I don't know what I'm talking about, let's move on. Yesterday, I followed the suggestion of some KDE people and tried amaroK. I was pleasantly surprised. It was pretty, it was functional, the UI didn't piss me off, and it kept showing me a picture of Mako for some reason I still can't figure out. Here's where it fell down: it wanted me to select tracks based on album/artist info in the file tags; the musicbrainz lookup function is not as useful as tp_tagger; when I tried to play tracks off of a slow networked filesystem, it skipped a bit, then it shoved its head up its ass and ate itself. It managed to finish the track before it disabled its frontal lobe, but it didn't send the data to last.fm. So, amaroK was a lot better than I expected, but unacceptable. People seem to like Quod Libet. Joey and Erinn. So when I tried it today, I didn't expect it to be awful. Here's what it has over amaroK: it doesn't fall over and die when trying to deal with files on a slow networked filesystem. It just skips. You may be thinking that this could be easily solved with proper buffering. I'd think that too, if it didn't skip when playing files on the local hard drive. You may be wondering why I'm trying to play music on an old 486. I'm not. This is a Pentium 4 2.8GHz under almost no load. This is ridiculous. Compared to amaroK, this thing is ugly as sin, and incredibly awkward. That includes the metadata editor that people keep raving about for some reason. Furthermore, when I rearrange songs in the Play Queue, it occasionally ignores me and plays the track that used to be at the top of the list. Rhythmbox also has problems with skipping, so I guess that gstreamer is the devil. I'm not filing bugs because I don't intend to ever use these programs again.

Next.

Previous.