torsdag 17 april 2008

Protestera mot den felaktiga behandlingen av ooxml

Jag har tidigare skrivit om dokumentstandarden ooxml
http://paulsundvall.blogspot.com/2007/08/sverige-rstar-ja-till-iso.html
http://paulsundvall.blogspot.com/2006/12/fritt-och-fritt.html
Standarden har blivit farsartat igenomröstad, t ex med den plötsliga anslutning av microsoftvänliga företag i standardiseringsgrupper.

Denna standard är fel av många anledningar; det finns redan en nästan likadan standard, standarden är omöjlig att implementera för andra än microsoft.
Läs mer på http://www.noooxml.org/ för detaljerna.

Nu finns det ett (ytterligare?) sätt att protestera mot denna felaktiga standard:
http://www.petitiononline.com/sisooxml/petition.html
Detta upprop fokuserar på brister i själva omröstningen

Jag uppmanar till att delta i uppropet!
Bra standarder är bra för alla - tänk epost, www, internet och vad det skulle vara utan bra standardisering - det skulle inte alls fungera.

tisdag 8 april 2008

Beräkning av medelvärde i vektor

Den här funktionen beräknar medelvärdet av talen i en vektor.
Jag får den bara att gå i ca 0.7 element per klockcykel, mätt på en miljon anrop med en 100 element lång vektor. (optimeringsnivå -O3, gcc 4.2.3, Intel core 2 quad)
Någon som vet något sätt att få koden snabbare? Eller är det här den prestanda man kan förvänta sig?


int
AverageLU(const std::vector<double>& x,

double
& result) {
result=0.0;

const
size_t N=x.size();

if
(0==N) {
return
-1;
}



size_t i=0;
double
r0=0.0;
double
r1=0.0;

double
r2=0.0;
double
r3=0.0;
if
(N>=4) {

//how many full groups of 4 do we have?
const size_t N4=(N/4-1)*4;
for
(i=0; i<N4; i+=4) {
r0+=x[i ];

r1+=x[i+1];
r2+=x[i+2];

r3+=x[i+3];
}
}

for
(; i<N; ++i) {

r0+=x[i];
}


result=(r0+r1+r2+r3)/double(N);

return
0;
}

måndag 7 april 2008

Skicka epost från kommandoraden

En mycket användbar funktion i *nix-system är möjligheten att skicka epost via kommandoraden. T ex såhär:
echo "hej hopp" | mailx -s"ämnesrad" slask@paulsundvall.net

Detta kräver förstås att datorn är konfigurerad korrekt. Jag har ett externt smtp-konto och använder det för att skicka post i mitt system. För att ställa in allting följde jag instruktionerna på http://wiki.debian.org/GmailAndExim4
Instruktionen gäller för att använda gmail som leverantör, men det fungerade med min epostleverantör utan problem.

Aldrig mer glömda bilagor!

Jag har många gånger glömt att bifoga filer till epostmeddelanden; ni vet det vanliga, man skriver brevet först, texten hänvisar till en bifogad fil, sen hinner man trycker skicka utan att ha bifogat filen....

Det finns tack och lov en lösning på problemet!
Det här tillägget till thunderbird scannar texten efter vissa ord (jag har lagt in "bifogat", "bifogade", "attachment") och om det hittar något så varnar programmet innan brevet sänds.
Rekommenderas varmt!

fredag 4 april 2008

Bra översikt av hårddisktyper

Rubriken (till detta blogginlägg) är kanske ingen kioskvältare direkt, men den här artikeln gav en bra översikt över vilka olika typer av hårddiskar det finns och deraas relativa prestanda.

http://techworld.idg.se/2.2524/1.151478

(Ur prestanda och energiförbrukningssynpunkt är detta ett mycket bra val, kanske lite väl dyrt förstås: http://www.nextlevelhardware.com/storage/battleship/)

tisdag 1 april 2008

Räkna rader i filer

Jag undrade hur många rader kod jag skrivit i ett projekt - såhär enkelt var det att göra ett bashscript som räknade rader!

#!/bin/bash
echo -n "The number of source lines is "
( echo 0;
for ending in cc hh ; do
find . -name "*."$ending -print | (
while read banan ; do
wc -l <"$banan"
echo '+'
done
)
done ; echo p
) | dc

Gående tandborste

Det här var ju helt fantastiskt....

Störtskön koreansk trummis

Jag hade tänkt att hitta på ett aprilskämt men det får bli det här istället....