Archive for January, 2007

Do you need space padding with that bitstring

I’m working with a non text based protocol in perl, so pack/unpack to the rescue. The pack/unpack functions is one of the most overlooked pieces of perl. It can some pretty nice stuff, but it makes mod_rewrite look easy.

As part of a challenge/response one of the fields in the packet type I’m interested in is a length encoded sha1 sum. A length encoded value consists of the length of the value and then the value itself. A sha1-sum is always 20 bytes long but I guess it is some sort of backwards compatibility.

Looking at the documentation this can be solved by something like unpack("C/A*",$packet);. Which means “a byte which is the length of a variable length string”. And it works … as long my challenge stays the same. Otherwise something fails roughly 1/50 of the times.

Actually A* isn’t just a variable length string, but a space padded variable length string. So unpack ignores any spaces at the end.

Took me some time to find this bug…

Comments

Children of Men

England — af en eller anden grund er det altid i England. Præmissen for “Children of Men” er den sædvanlige britisk orienterede dystopi som tilsyneladende er blevet så moderne. Jeg ved ikke rigtigt om englændere er specielt interessante når verden falder sammen i i anarki eller totalitarisme eller om det bare er Orwell der spøger.

Men selvom præmissen er en totalitær politistat anno 2027, så fylder science fiction-elementet efter min mening ikke meget. Det handler om en verden uden håb og hvordan folk håndtere dette. Så er der selvfølgelig en McGuffin – en gravid kvinde – der bringer håb ind i denne autoritære verden.

Så uanset om man er til dystopiske science fiction-film eller til historier om håb er “children of men” absolut værd at overvejer, og så har den sine morsomme episoder.

Comments (2)

Re: HR, bøsser og ros

Rockeren knaldede næven ned i taget på enten sin egen eller politiets bil og brølede “Spejderland!”, hvilket alt andet lige egentlig var en ganske god og morsom kommentar til situationen.

Jeg har undret mig en smule om Mogens Nørgaards blog på Version2 og ikke mindst han seneste indlæg “HR, bøsser og ros”. Jeg tog faktisk fejl i min første kommentar, indlæget bliver faktisk sjovere hvis man sætter “spejder” ind istedet for “bøsse”.

Jeg læser helst ikke Computer World, så jeg er ikke stødt på Mogens Nørgaards klumme der. Da Mogens begyndte på version2 var jeg dog lidt nysgerig på hvad manden bag miracle, som jeg primært forbinder med vibrugerikke og historier om Miracle Breweries, kunne finde på at skrive om.

Jeg er blevet slemt skuffet. Det er ikke nogle uinteressante emner Mogens forsøger at berøre. I dagens emne ‘popsmart management’ imod ‘god gammeldags ros for udført arbejde’ og selv emnet om det politiske nedfald af at terrorister også kan få et sikkert styresystem i Linux kunne have været interessant at debattere på et sobert niveau.

Men i Mogens’ pen bliver det mudret ind i provokationer der ikke er morsomme, ikke virker relevante og mest bare er tåkrummende. Det er muligt at være provokerende på en konstruktiv eller i det mindste morsom måde, men tilsyneladende magter Mogens ikke dette. Som en anden debatør bemærker er det en priviligeret kommunikationskanal Version2 stiller til rådighed for Mogens og hans professionelle virke og det er min store forhåbning at Mogens enten snart tager sig sammen og giver sig til at bruge denne priviligerethed på en måde det er til at holde ud at læse eller at Version2’s redaktion tager sig sammen til at tage denne informationskanal fra Mogens.

Comments (1)

Converting tar.gz to deb

Someone asked for a tar2rpm script which could convert tar files into rpm files so they could be installled, upgraded and removed by the standard package tools. Not being into rpm I ignored the thread until told him that it would be hard.

And then I had to write a tar2deb script to show how easy it could be:


#!/bin/sh

# $1 - tar.gz fil
# $2 - package name
# $3 - version

CONTROL=$( mktemp -dt )
DATA=$( mktemp -dt )

cat $1 | (cd $DATA ; tar xvzf - )

SIZE=$( du -s $DATA | cut -f1 )

cat > $CONTROL/control <<EOF
Package: $2
Section: unknown
Priority: optional
Architechture: all
Version: $3
Installed-Size: $SIZE
Maintainer: $USER
Description: Deb-package made from $1
 This package is made by tar2deb by $USER at
 $( date ) from $1
EOF

(cd $DATA; find -type f | xargs md5sum ) > $CONTROL/md5sums
(cd $CONTROL; tar cvzf control.tar.gz *)
cp $1 $CONTROL/data.tar.gz
echo 2.0 > $CONTROL/debian-binary

ar -cr $2_$3_all.deb $CONTROL/{debian-binary,control.tar.gz,data.tar.gz}

rm -Rf $CONTROL
rm -Rf $DATA

exit 0;

I not sure I would use it in a production system but I think it is at interesting script. Wouldn’t a tar2rpm be as easy to write? No, deb packages can be made with standard unix tools while rpm packages is a cpio archive with a header which isn’t quite as easy to manipulate directly.

Comments

Nyt arbejde

I onsdags begyndte jeg så på mit nye arbejde. Det vigtigste at lære første dag er selvfølgelig hvordan man få kaffe og hvordan man kommer ud og ind af bygningen. Alt i alt en success.

Men efter 6 år samme sted er det noget frustrerende at komme et nyt sted uden noget som helst overblik over processer og hvordan systemet er sat sammen. Det kommer nok til at tage noget tid før jeg får dannet mig det store overblik over systemet der skal til før jeg kan arbejde på intuition…

Comments