måndag 15 december 2008

Access control lists i linux

Att använda ett vanligt linuxsystem själv är inga problem. När det kommer in fler användare blir det svårare - att dela filer etc gör att rättigheter måste sättas korrekt. Om man har en enkel struktur är det lätt att göra så att alla har samma primärgrupp, vilket gör att de filer man skapar blir läs/skrivbara av andra (grovt förenklat, det beror naturligtvis på en väldig massa saker). För mer komplicerade strukturer behövs tyngre vapen: access control lists.

Här finns en läsvärd text: http://www.suse.de/~agruen/acl/linux-acls/online/
Såhär samverkar det med samba: http://www.samba.org/ .......

En snabbstart:
  1. se till att filsystemet är monterat med acl påslaget: mount -oremount,acl,rw,noatime /dev/sdaX /mntpnt (för att göra permanent, lägg till acl i options i /etc/fstab)
  2. Se till att du har acl installerat. På debian är det apt-get install acl som ordnar det.
  3. pröva: mkdir /mntpnt/slask
  4. getfacl /mntpnt/slask ger :
    getfacl /mntpnt/slask
    # file: slask
    # owner: pauls
    # group: pauls
    user::rwx
    group::r-x
    other::r-x

  5. pröva att sätta acl:setfacl -d -m g:musiclovers:rw musik/
  6. getfacl musik
    # file: musik
    # owner: pauls
    # group: musiclovers
    user::rwx
    group::rwx
    other::---
    default:user::rwx
    default:group::rwx
    default:group:musiclovers:rw-
    default:mask::rwx
    default:other::---

Ganska lätt, och väldigt kraftfullt. Tyvärr är det inte helt lätt att bevara dessa rättigheter för backup. Det verkar som att rsync har möjlighet att bevara rättigheterna (via flagga -A), tyvärr måste man då ha motsvarande grupper uppsatta på det system som backas upp mot. Tips mottages gärna!

måndag 1 december 2008

Tredimensionell display

Det här var väldigt smart och fiffigt gjort. Jag är imponerad!
En spegel med reflektion i endast vertikala spår (liknande det skydd som sitter framför bildskärmar på banker för att man bara ska se bilden rakt framifrån, och inte kunna tjuvkika) roterar under en projektor i rotationsaxelns förlängning. Genom att växla bild i takt med att spegeln roterar visas olika bilder för alla rotationsvinklar. Bilden renderas i opengl, en bild per riktning, och skickas ut på projektorn. Resultatet blir att man kan se bilden på samma sätt som ett riktigt objekt - när man själv flyttar sig byts perspektivet korrekt, och delar som döljs bakom andra döljs även i bilden.

Kolla själv!
http://gl.ict.usc.edu/Research/3DDisplay/

Datorgenererad grafik

Den här sidan hade väldigt vackra bilder.
http://www.artfromcode.com/

söndag 23 november 2008

sshfs mount in etc/fstab without password

To mount a directory via sshfs in fstab, I found no instruction that worked for me on an ubuntu 8.04 installation.
I have created a user which is allowed to log in only via sftp to my server, and I now wanted a directory on the server being visible readonly on my client, mounted over sftp to maintain ease of configuration and high security. Fuzzing around with smbfs, nfs or something else seemed like a bad idea as I want the same solution to work also over internet, where the only entrance hole through my server is via ssh anyway.

Setup the server so it is possible to sftp to it. See my previous post. I call this user romusic. The server is at 192.168.0.10 below. I carry out commands in a root shell (typing sudo is not my thing, really) by issuing "sudo su - " in the beginning.

Setup passwordless ssh login (see any of the million posts on this if you need more info).
$ssh-keygen
Copy the contents of the generated .pub key into ~/.ssh/authorized_keys on the server. Copy the private key to /root/id_rsa_romusic

make sure sshfs works as a user (using a password here)
$sshfs romusic@192.168.0.10:musik/ musik/

To be able to pass the identity file to ssh via sshfs we have to make a wrapper. This step is what is not covered in the posts I found on the subject. That is because I could not pass "ssh -i id_rsa" as ssh executable to sshfs, this made it complain over execvp. Here is the workaround:
Create the file /root/ssh_i_romusic.sh
#!/bin/sh
/usr/bin/ssh -c arcfour -i /root/id_rsa_romusic $@

Note that I also use cipher arcfour to speed things up here, this should be avoided unless you trust your network somewhat. Just leave it out if you do not know what it means or if you are on a potentially untrusted network.
Do not forget to set that file owned by root:root and it is executable and not writable.

Create a mount point
$mkdir /mnt/musik

Make sure you can mount (this is also needed to accept the key id, needed only once)
$sshfs romusic@192.168.0.10:musik/ /mnt/musik/ -o allow_other,uid=0,gid=0,reconnect,umask=222,sshfs_debug,sshfs_debug,"ssh_command=/root/ssh_i_romusic.sh"

I accepted the key and everything went fine. I now umount and then head for /etc/fstab to make it mount automagically.
$fusermount -u -z /mnt/musik

my fstab entry:
sshfs#romusic@192.168.0.10:musik/ /mnt/musik/ fuse ro,allow_other,uid=0,gid=0,reconnect,umask=222,sshfs_debug,sshfs_debug,ssh_command=/root/ssh_i_romusic.sh 0 0

Make sure everything works by
mount -a
and see there are no complaints.
After that, /mnt/musik should be readable.

torsdag 20 november 2008

sftp med minsta möjliga rättigheter

FTP är krångligt att sätta upp bakom en brandvägg. Dessutom verkar många ha väldigt svårt för att använda ftp-program. Därtill är ftp okrypterat.
Ett bra alternativ är sftp (notera skillnaden mot ftps).

Att sätta upp en sftp-server är lika lätt som att installera en sshserver, i debian (och ubuntu?) är det bara att installera packetet openssh-server så är det klart.
Däremot krävs det en del extra för att kunna ha användare som har tillgång till sftp men inte ett normalt shellkonto.

Jag följde guiden här, men det är ganska lätt bara man kommer ihåg följande steg:
  1. skapa gruppen sftponly: $addgroup sftponly
  2. konfigurera sshd (filen /etc/ssh/sshd_conf) så att en avdelning med "match group sftponly..." finns med innehåll
    Match group sftponly
    ChrootDirectory /home/%u
    X11Forwarding no
    AllowTcpForwarding no
    ForceCommand internal-sftp
    Glöm inte heller att ändra
    Subsystem sftp /usr/lib/openssh/sftp-server
    till
    Subsystem sftp internal-sftp
  3. ladda om konfigurationen med $/etc/init.d/ssh reload
  4. skapa en användare du vill ska kunna enbart använda sftp: $adduser unlucky
  5. tilldela gruppgemenskap: $addgroup unlucky sftponly
  6. sätt hemkatalog till / : $usermod -d / unlucky
  7. se till att hemkatalogen ägs av root (för att ssh-servern ska kunna göra chroot): $chown root:root /home/unlucky
  8. se till att användaren inte kan logga in normalt: $chsh -s /bin/false unlucky
Prova sedan att logga in med den nya användaren. Det ska inte gå vare sig direkt, via ssh, via su - unlucky utan enbart via sftp.
För windows finns winscp och filezilla som går att ansluta sig med.

Jag monterar kataloger inuti /home/unlucky med --bind readonly så att den nya användaren kan läsa men inte skriva. Mer om det någon annan dag!

onsdag 19 november 2008

Avdelare för signatur i epost

Något som många(sett till antal användare) epostprogram verkar ha missat är att det finns en praxis för hur man markerar att meddelandet är slut och en signatur börjar. Praxis finns att läsa här: RFC3676, kapitel 4.3.

Om man följer praxis kan emailkonversationer (ni vet, alla det där mailen med ämnesrad "RE:SV:FW:RE:FW:FW bla") bli avsevärt mer läsbara eftersom man slipper läsa allas signaturer insprängda mitt i meddelandena.

Om ditt epostprogram inte avdelar signaturen enligt praxis, lägg då själv in två streck och ett mellanslag på en ensam rad i toppen av din signatur.

tisdag 11 november 2008

Compile realtime kernel in Debian lenny (preemption patch)

This is how to compile a realtime kernel (preemptive kernel) in Debian Lenny. It should pretty much be cut and paste. I run a 64 bit Intel Q6600 system on a standard pc, and had a bit of hazzle before I got latencies down to a reasonable level.
I will use the directory /var/tmp/KERNEL to build in but that is not important.
  • become root
  • mkdir /var/tmp/KERNEL
  • cd /var/tmp/KERNEL
  • wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.6.tar.bz2
  • wget
    http://www.kernel.org/pub/linux/kernel/projects/rt/patch-2.6.26.6-rt11.bz2
  • tar xvjf linux-2.6.26.6.tar.bz2
  • cd linux-2.6.26.6
  • bzcat ../patch-2.6.26.6-rt11.bz2 |patch -p1
  • make clean && make mrproper
  • make menuconfig (select complete preemption, choose 1000 Hz timer frequency. High resolution timers and symmetric multiprocessing SMP were already enabled)
  • make-kpkg clean
  • fakeroot make-kpkg --initrd --append-to-version=-rt-200811111930 kernel_image kernel_headers
  • dpkg -i ../linux-headers-2.6.26.6-rt11-rt-200811111930_2.6.26.6-rt11-rt-200811111930-10.00.Custom_amd64.deb ../linux-image-2.6.26.6-rt11-rt-200811111930_2.6.26.6-rt11-rt-200811111930-10.00.Custom_amd64.deb
To make sure everything works as intended, run cyclictest (see previous post here) and make sure the latencies are low. I get approximately 300 us max latency which is a bit high compared to other results I have seen, but low enough for me. Make sure you stress the computer when running the test. Without the preemption patch, I get 3000 us in latency when I open a web browser. I also had to turn off things in the bios to get down to 300 us.
I tried the ubuntu realtime kernel 2.6.24 which installs fine on debian lenny, but the latency would just not come down. This indicates the BIOS setting was the crook. I use noapic nolapic as boot settings, which seem to be needed.

Update 2008-11-12:
The frequency scaling is the crook! Running a preemptive kernel as compiled above works fine until the cpu frequency jumps. It has nothing to do with noapic or nolapic, it is sufficient to prevent the frequency to change. You can do this with either disabling frequency scaling in BIOS, or lock the frequency with
for i in `seq 0 3`; do cpufreq-set -c$i -g performance; done
to get constant full speed or
for i in `seq 0 3`; do cpufreq-set -c$i -g powersave; done

to get lowest speed. Both work fine and gets the latency down to 250 us (performance ) to 20 us (powersave) when I tested, as compared to 3000 us with ondemand frequncy scaling governor. I guess I should test with heavier load and longer time to be sure, but I am confident that the frequency scaling is the one to blame. To bad, because frequency scaling is a wonderful thing.
I tried to keep only one core constant speed and locking the processes to that core with taskset
echo `seq 6050 6056` |xargs -n1 taskset -p 0x1

where 6050 is the process id reported by cyclictest.

fredag 7 november 2008

Kompilera cyclictest

Jag experimenterar med realtidslinux i form av standard linux med patchar för preemption (se rt wiki).
Såhär gör man för att köra cyclictest:
git-clone git://git.kernel.org/pub/scm/linux/kernel/git/tglx/rt-tests.git \ rt-test
cd rt-test
make
./cyclictest -p 20 -t5 -n

(som root, eller med sudo framför om man kör t ex ubuntu)

måndag 3 november 2008

Handelsöverskott, dollarn

Jag fick ett tips(tack A!) om att se iousa, en film om USA:s finansiella situation.
Mycket intressant. Att dollarn är stark verkar vara omotiverat om man tittar på tillståndet i den amerikanska ekonomin. En aning trist eftersom jag just ska betala ett stort belopp i dollar.
Hursom, mitt i fanns en lista med handelsunderskott (om jag förstått saken rätt). Den försvann förbi väldigt fort så jag letade efter statistik och hittade följande:
handelsöverskott enligt IMF
IMF:s databas har ett mycket bra användargränssnitt! Ett föredöme för att göra data tillgängligt
För 2008:
Sverige ligger på 16:e plats i handelsöverskott med 32 miljarder USD. Kina ligger etta med 386 miljarder USD, medan USA är ohotad på botten med ett handelsunderskott på 615 miljarder USD.
Mycket intressant. Ekonomi är fascinerande!

torsdag 16 oktober 2008

Vika papper

Det här kanske är ett meningslöst inlägg. Du är varnad.

Om man lyckas med konsten att vika ett vanligt kontorspapper dubbel 42 gånger så räcker det till månen!
Ett papper väger ungefär 80 g/m^2 och om man gissar att densiteten är 800 kg/m^3 så är ett vanligt papper 0.1 mm tjockt. 10^-4*2^42=440 tusen kilometer. avståndet till månen är ca 384 tusen kilometer. Trivialt att räkna ut, ändå häpnadsväckande.

söndag 12 oktober 2008

Härlig film!

Den här filmen tyckte jag var väldigt trevlig!
direktlänk här (högupplöst version)





Bathtub II from Keith Loutit on Vimeo.

måndag 6 oktober 2008

Över 50 knop

En milstolpe har passerats inom seglingen - den magiska 50knopsgränsen är sprängd!
Det senare verkar inte än vara verifierat än.

fredag 3 oktober 2008

Sniiigeln är död. Leve sniiigeln!

Min gamla server gav upp och det var bara att skaffa en ny. Den har fungerat huvudsakligen som backupserver och versionshanteringsserver för mitt företag. När man väl provat att ha en miniserver är det svårt att gå tillbaka till att köra backup till dvd/extern hårddisk.

Dags att skaffa en ny server! Jag vill att den ska uppfylla följande krav:
  • strömsnål (detta utesluter mer eller mindre alla skrivbordsdatorer)
  • går att köra debian linux på
  • RAMminne >=64 MB för att kunna köra unison på större strukturer
  • USB-ingång för att kunna ansluta externt USB-minne vid behov
Jag funderade över bland annat fit-pc, nslu-2, hemmabyggt VIA mini-itx och bubba two men det blev till slut en qnap TS109-II.

Jag har nu inhandlat ovan nämnda qnap och installerat debian på den. Hittills verkar den vara snabbare i responsen än nslu2, men jag når tyvärr bara 3 MB/s i överföringshastighet över rsync/ssh/arcfour. Gigabitnätverkskortet verkar därmed ganska meningslöst på denna server.

Uppdatering 20090730:
Jag sprang över denna fit-pc-liknande dator baserad på nvida ion: Asrock Ion 330. Mycket intressant! Verkar dra ca 20-30W, lite mycket för en server men helt ok för att byta ut en skrivbordsdator. Verkar vara svår att få tag på just för tillfället. Ska för kunds räkning köpa in server, det får bli en laptop HP Compaq 615 istället eftersom det är bråttom.

onsdag 1 oktober 2008

Logga ut annan inloggad användare från Windows XP

För att logga ut någon annan som redan är inloggad - logga in själv. Starta aktivitetshanteraren (t ex med ctrl-shift-esc), välj fliken användare. Markera den du vill logga ut och tryck knappen "logga ut".

måndag 22 september 2008

bash: unison: kommando hittades inte

(Varning:det här meddelandet är skrivet för att andra som drabbats av problemet och googlar efter detta fel ska hitta en lösning. För övriga är det inte särskilt underhållande.)

Jag stötte på felmeddelandet
bash: unison: kommando hittades inte
när jag försökte synkronisera två datorer. Detta förvånade mig eftersom jag vet att jag installerat unison på fjärrdatorn som kör debian testing.
Lösningen visade sig vara att uppdatera det fiffiga alternatives-systemet som finns på debian: kör
update-alternatives --config unison
som root och välja unison. Jag valde samma version som jag kör på klientdatorn, 2.13.

tisdag 16 september 2008

batteridriven GPS-logger


Jag snubblade över en GPS-logger DG-100 från Globalsat. Den verkar perfekt för att lagra data när man seglar. Vore skoj att ha flera båtar med sådana här så att man kan jämföra vägval etc i efterhand!
Prestanda verkar vara tillräckliga vad gäller gpsmottagning, batteritid och lagring. Bäst av allt är att den verkar fungera i *nix trots att det inte stöds officiellt. Inte är den särskilt dyr heller, 649 kr på komplett.
Några frågetecken kvarstår:
  • lagras hastighet och kurs? uppdatering: det verkar delvis så, att döma av skärmdumpen här. Man verkar kunna välja position, time, date, speed som loggformat. Men kursen?
  • vilken upplösning har lagrade data? (dvs vilken precision har dataformatet, eller antal siffror som andra skulle säga)

fredag 5 september 2008

IMAP message too large to decrypt/verify

Jag använder krypterad epost och hade problem med att krypterade mail från vissa personer inte öppnades normalt utan ett felmeddelande "IMAP message too large to decrypt/verify" kom upp istället. Att spara meddelandet som en .eml-fil, avkoda det manuellt och sedan öppna det i thunderbird gick bra.
shell$ gpg <sparat.eml >avkodat.eml

Detta i thunderbird/enigmail, med IMAP.
Lösningen är såhär:i inställningarna till enigmail/openpgp, välj avancerat och sedan klicka ur "only download attachments when opened (IMAP only)"

onsdag 3 september 2008

ABC-boken!

Fantastisk bok!

tisdag 26 augusti 2008

Offline wikipedia

Jag snubblade över ett projekt där någon lagt in en offline-version av wikipedia på en gammal handdator. Väldigt behändigt att ha en liten faktabank med sig!
Läs om det här: http://www.instructables.com/id/Wikipedia-in-your-pocket/

Nu har jag ju redan en elektronisk klump med skärm, tangentbord och webbläsare (mobilen) och har ingen lust att bära med mig en till. Gjorde ett försök att få ner wikipedia på den (sony ericsson k610i). Tyvärr krävs ett väldigt stort minneskort, så jag var tvungen att lägga över bara en liten del för att kunna prova. Så här gjorde jag:
  • ladda ner offlineversionen (utan bilder) här: http://static.wikipedia.org/downloads/2008-06/sv/
  • packa upp filen (tar ca 14 GB)
  • kopiera över allt utom katalogen articles till minneskortet på mobilen
  • kopiera över så mycket av articles du får plats med
  • öppna "mina saker" i mobilen och leta dig fram till katalogen du kopierat till. öppna index och voila!
Det vore toppen att ha engelska versionen eftersom den är mer komplett. Där är enbart den komprimerade filen 14 GB! Där behövs ett minneskort i monsterklass. Alternativt att man rensar friskt på något sätt.

måndag 25 augusti 2008

Slutet är nära! (obs, ett skämt!)

En mycket intressant graf även om den känns aningen "trickfilmad"(genom valet av händelser) visar hur allting händer fortare och fortare:
http://singularity.com/charts/page83.html

Den logaritmiska skalan indikerar att utvecklingen av världen har lutningen 1/|t-t0| där t är tid och t0 en tänkt singuläritetspunkt (än så länge i framtiden!). Med den hastigheten kommer uppfinningar och utveckling att gå oändligt fort någon gång i framtiden.
Det finns åtskilliga plottar över annan intressant statistik som visar andra trender, t ex antal döda i amerikanska krig eller antal referenser till nanoteknologi (om jag förstått titeln rätt).

Det här är inget jag tar på större allvar men det är helt klart fascinerande!

fredag 22 augusti 2008

Mappa windows+e till "utforskare"

En behändig sak i windows är att windowsknappen+e öppnar en utforskare. Något som jag använt ofta, även om jag sällan använder windows numera.
En liknande funktion har jag åstadkommit i linux/kde genom att ställa in i systeminställningar att thunar ska öppnas. Thunar är en väldigt snabb och resurssnål filutforskare som faller mig i smaken. Konqueror och andra har jag aldrig gillat.

I linux/gnome har jag inte vetat hur jag ska göra, förrän nu:
  1. öppna gconf-editor genom att skriva gconf-editor i en terminal
  2. leta dig fram till apps/metacity/keybinding_commands
  3. ändra command_1 till "thunar"
  4. leta dig fram till apps/metacity/global_keybindings
  5. ändra run_command_1 till "e"
På samma sätt har jag windowsknappen+t kopplat till en terminal.

onsdag 20 augusti 2008

Användbart batteripack

Här finns ett mycket flexibelt batteripack som kan
  • laddas med olika inspänningar (5-24V), t ex solcell, utombordare eller
    cigarettändaruttag
  • ge valfri spänning ut (5, 6, 7.5, 9, 12, 14, 16, 19 V DC) (samt USB-laddning!)
  • väger 440 gram och har vid 12 V kapaciteten 3.6 Ah
  • kostar $172 (ca 1100 kr) inkl laddare för landström
  • går att bygga ut till dubbla kapaciteten med extrabatteri á $114 (ca 720 kr)
Mycket smart ide! Högst användbart. Med led-lanternor och behov av att ladda mobiltelefon fullt tillräckligt.
http://www.powerstream.com/PST-MP3500.htm

tisdag 19 augusti 2008

Litiumjonbatterier för båtbruk

En sak jag funderat på är varför man inte använder litiumjonbatterier istället för blybatterier i båtar. Idag hade jag ett möte med en mycket kunnig person i ärendet. Verkar som att man kan köra ett nominellt tolvvoltsystem på fyra litiumjonceller (14.8 V), om man tänjer lite på gränserna. Inspirerad av detta snokade jag upp följande komponenter:
eller så köper man ett färdigt sådant "batteri" med inbyggd övervakning:
http://www.batteryspace.com/index.asp?PageAction=VIEWPROD&ProdID=4151
detta har 50 Ah kapacitet vid 14.8 V och inbyggd övervakning. Vikt 6.6 kg. Pris ca 6400 kr.

Jämför detta med ett blybatteri på 60 Ah, 700 kr, vikt ca 20 kg.

Hmm, sparar väldigt mycket vikt. att spara 13 kg för en investering på ca 6000 kr är troligen ganska överkomligt jämfört med andra ändringar. hmm....

Mer i FRA-lagen

En sak jag ogillar starkt med det samhälle som uppstått efter nine-eleven är att man bygger in rädsla genom de kontroller som införs. Här finns ett mycket läsvärt inlägg på svd kultur:
http://www.svd.se/kulturnoje/mer/kulturdebatt/artikel_1586223.svd

fredag 8 augusti 2008

Islamska mönster

I DN finns en intressant artikel om islamska mönster:
http://www.dn.se/DNet/jsp/polopoly.jsp?d=597&a=624870

fredag 18 juli 2008

Välkommen Drake!


Jag kan stolt meddela att kontrakt är underskrivet och handpenning erlagd för ett stycke Corsair 750 Sprint!
Leverans till nästa år. Jag längtar...

måndag 14 juli 2008

Härlig animation

Den här filmen tycker jag var härlig...

onsdag 9 juli 2008

Koda dvdfilm till format lämpligt för webben

En kompis fick en dvdfilm med en intervju med honom skickad till sig, och bad mig om att göra om filmen till något format som man kan ha på en websida.
Eftersom bara en del av filmen var relevant behövde jag redigera, detta gjorde jag med kino. Extrahera filmen försökte jag göra med ffmpeg (något i stil med ffmpeg -i /var/tmp/VTS_01_1.VOB -ss 00:11:14 -t 350 -threads 4 -vcodec mpeg4 -b 4000k -acodec copy /tmp/output_mpeg4_b4000_ab128.avi) och sedan med mencoder (något i stil med
mencoder dvd:// -ovc lavc -lavcopts vcodec=mpeg4:vhq:vbitrate=694 -oac mp3lame -lameopts br=128 -o dvdvideo.avi) men detta funkade lite halvdant för mig.

Till slut hittade jag en ganska enkelt framkomlig väg:

  1. importera dvd:n med vobcopy (kopierar dvd-filmen till filer):
    $vobcopy
  2. importera filen i kino
  3. klipp bort ändar etc i kino
  4. exportera inifrån kino

fredag 4 juli 2008

Optimal segling

Givet konstant vind, ett polardiagram och en önskad kurs, hur ska man segla för att komma fram fortast? Denna eviga fråga tål att funderas på - speciellt för båtar med spetsiga polardiagram som t ex trimaraner.

Jag började ställa upp problemet och har lite funderingar på hur man ska angripa det. Började med att ställa upp det som ett analytiskt optimeringsproblem med två kurser, sedan med en kontinuerlig viktfunktion (oändligt många kurser). Det blev ganska långa uttryck, så jag angrep istället problemet numeriskt. Med ett ändligt antal kurser (diskretisering av problemet) och villkor som att man inte kan tillbringa negativ tid på en kurs blir problemet direkt ett linjärt program på standardform. Med lite data från Seacart 30 och octave fick jag fram den optimala lösningen. (jag provade först med data från farr 40 one design men det var inte lika intressant, jag är ju trots allt trimaranseglare). Efter att ha experimenterat med lite olika kurser och vindstyrkor känns det som att jag börjat få kläm på problemet:

Alla möjliga kombinationer av segling enligt polardiagrammet bildar det
"konvexa höljet" (eng. convex hull) av polardiagrammet. Man kan tänka såhär: man spenderar en viss tid på varje kurs, en faktor som är större än noll. Summan av alla faktorer för alla kurser är ett. Detta är definitionen på en konvex kombination, och följaktligen är konvexa höljet det som går att få ur - det går inte att segla fortare än konvexa höljet!
Med denna insikt så kan problemet med optimal segling reduceras till att man gör såhär:
  1. hitta konvexa höljet för polardiagrammet (trivialt, görs enkelt med penna och linjal, se streckade linjen i figuren)
  2. för den önskade kursen, sök skärningen med konvexa höljet (punkt C på bilden)
  3. Optimala kombinationen av kurser är de kurser där konvexa höljet möter polardiagrammet. (punkt A och B på bilden)
Detta kanske låter komplicerat men det är vad seglare vetat länge, när man ska mot vinden måste man kryssa! Det är dock framförallt medvind och vid val mellan olika stora segel (t ex vid punkt E på bilden) man behöver fundera lite mer över detta.

Några mycket intressanta slutsatser kan dras
  • det är INTE är vmg mot målet som ska maximeras i varje enskilt tillfälle - det gör alltså inget att vmg är lågt eller negativt sålänge man seglar enligt receptet ovan, man hämtar hem det i genomsnitt. Att få negativt VMG kan hända om skärningsvinkeln är större än 45 grader från/mot vinden, något som ofta händer snabba båtar i svag vind.
  • så länge målet ligger i ett område innanför optimala skärningsvinklarna t ex på medvind eller kryss gäller det att alltid skära på de optimala vinklarna. På bilden gäller detta i området F-G (kryss) och A-B (medvind) samt vid E.
För båtar med olika segel, t ex screacher och gennaker kan det vara lönsamt att hålla lite lägre kurs med ett större segel och sedan hämta hem höjden med mindre segel. Detta ges av om polardiagrammet är konvext (polardiagrammet sammanfaller med konvexa höljet) för den önskade kursen!

tisdag 24 juni 2008

Fågel, fisk eller mittemellan?

Den här produkten har ett dubbel-licensierat operativsystem, verkar vara rimligt lätt att komma igång med och hårdvaran är skyddad. Verkar vara en kul grundsten att bygga lite vad som helst av!
http://makezine.com/controller/

måndag 23 juni 2008

Inte så gulligt...

Klimatkompensera dig!

Jag ska åka på semester långt i sommar - något som svider i miljösamvetet.
Har köpt klimatkompensering redan nu, på climatecare.org som driver projekt för minskning av klimatpåverkande gaser. Det finns en fiffig räknare som räknar ut vad resan motsvarar - för min del blev det strax över fyra ton för två personer, kostar ca 450 kr sammanlagt.

Det finns en bra lista på företag som säljer utsläppsrätter hos energimyndigheten. Notera att utsläppsrätter skiljer sig från vad man köper på climatecare.org!

onsdag 18 juni 2008

Ny båt

Har finns några intressanta förslag på härliga båtar:
  • seacart 30, 30 fot. 1650 kSEK, enligt annonsen nypris 2.3 MSEK, en helt annan siffra än 1805 kSEK+segel+motor.... som det står i senaste numret av segling. Olika intressenter har olika uppgifter....
    Verkar vara en fantastisk båt. Har tyvärr inte seglat den.
  • Cotonella, en 40-fots oneoffbåt. ca 1500 kSEK. I jämförelse med seacart framstår seacarten som rena rama bavarian komfortmässigt....
    Fler bilder finns här och här
  • Corsair sprint, 24 fot, nypris ca 530 kSEK segelklar med trailer och allt. Den är fantastisk att segla, kolla mitt smajl här!
  • Spirit of Titan, 60 fot, 2500 kSEK. Tyvärr är troligen årliga driftkostnaden i samma storleksordning...
  • En annan 60-fotare, 800 kSEK. Behöver meck med riggen enligt specen. Låt mig gissa att det inte är gratis...
Tack Niklas för tipsen!

Vem ska läsa din epost?

Den (i dagsläget eventuellt) kommande FRA-lagen är helt fel. Det finns två stycken som ska läsa din epost - du och mottagaren. Inte någon annan. Inte FRA. Inte din granne. Inte IT-avdelningen. Bara du och mottagaren!


Min säkerhetsfilosofi vad gäller datorer är att ha flera lager av säkerhet. I epostsammanhang har använder jag en krypterad anslutning till epostservern. I denna anslutning skickar jag om möjligt krypterade mail. Verkar kanske lite paranoidt, men det finns ingen anledning att låta bli eftersom det är precis lika lätt som att skicka okrypterat.

Jag har använt krypterad epost i flera år, men det är inte till så stor nytta förrän de jag kommunicerar med har krypteringsnycklar. Ju fler brev som är krypterade, desto mindre sannolikhet att just mina väcker uppmärksamhet.

Att använda krypterad epost är lätt! Du behöver en epostklient som stödjer kryptering och en krypteringsnyckel, som lämpligen skapas i epostklienten om man är ovan vid verktygen.

I linuxmiljö (t ex Ubuntu) finns oftast thunderbird och enigmail. Installera båda med distributionens verktyg. Skapa en krypteringsnyckel inifrån thunderbird. (på min dator som kör debian lenny hittar jag detta under thunderbirds meny openpgp/key management/generate/new key pair). Det är relativt självförklarande att använda programmet - bara att prova sig fram, det tar ett par minuter innan man är igång och skickat sitt första krypterade email!

I windowsmiljö finns en guide till thunderbird/enigmail på http://enigmail.mozdev.org/documentation/quickstart.php
Jag har aldrig använt detta så jag vet inte hur det fungerar men enigmail/thunderbird fungerar åtminstone alldeles ypperligt i linuxmiljö.
Uppdatering:min kollega har just följt guiden och installerat på windows vista, det gick bra med undantag att enigmailtillägget behövde installeras flera gånger innan det tog.

Om du känner till en bra guide för mac os x får du gärna tipsa!
Uppdatering: Det verkar finnas en betaversion för mac os x mail här. Tack J!

UPPDATERING 20080624: här finns en guide för fler epostklienter

måndag 16 juni 2008

FRA-lagen är skräp

Att den omdiskuterade FRA-lagen är skräp tycker fler än jag. Nu finns en rätt kul filmsnutt på youtube:

måndag 26 maj 2008

Cykla långt

Det här är en fantastisk berättelse om en man som på ett dygn cyklat över en Mm - en megameter, 100 mil!
Mycket intressant finns att läsa på hemsidan: http://www.adventuresofgreg.com/HPVMain.html

torsdag 22 maj 2008

Fantastisk zoom

Den här videon demonstrerar en fantastisk zoomteknik med vilken man kan åskådliggöra detaljerad grafisk information på ett effektivt sätt.
Jag är förundrad över prestanda - bilderna som visas är troligen på flera gigabyte. Att hinna läsa in data, packa upp dem och visa på skärmen måste vara en ganska tung uppgift för datorn. Imponerande!



För övrigt är det här forskning som hänger ihop med Microsoft. Eftersom jag oftast har negativa saker att säga om MS känns det extra kul att se att det kommer så här roliga saker därifrån också!

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....

tisdag 25 mars 2008

Gående robot

Jag har sett diverse föredrag om gående robotar, men den här videon är något speciellt. Det är något obehagligt över den...



Speciellt robustheten mot halt underlag imponerar på mig.

East of globen - Eaglo

Namnet sofo som syftar på området söder om folkungagatan (se http://sv.wikipedia.org/wiki/SoFo) har inspirerat till andra liknande namn.

Jag har hört ryktet om namnet Eaglo - east of globen - syftande på området öster om globen i södra om Stockholm. Är det någon som vet mer om det? Kommentera gärna.

Eaglo tycker jag är ett jättebra namn!

onsdag 19 mars 2008

Fundering

Jag sitter just nu och kodar en algoritm i c++. Har stött på ett intressant problem!

Låt x vara en icketom mängd reella, ändliga tal. Vi kan för enkelhetens skull bortse från möjligheten att några av dem är noll. Vi bortser också från specialfall där median(x)=0
Jag behöver funktionaliteten sign(median(x)) vilken är lite knepig att räkna ut utan att skriva lite kod (med std::nth_element(...) såklart...). Är det ekvivalent att vända uttrycket? (detta gör att det går att implementera enklare i mitt fall)
dvs, är
sign(median(x))=a ====>>>>> median(sign(x))=a
sant i allmänhet?





(mer fundering längre ner, låt bli att läs om du vill fundera ifred)






Det verkar som att så är fallet. Om sign(median(x))=1 betyder det att medianen av x är>0. Då är minst 50% av värdena i x positiva. Om minst 50% av värdena i x är positiva kommer minst 50% av värdena i sign(x) vara positiva. Då kommer median(sign(x)) att vara 1. Samma resonemang kan tillämpas med minst bytt mot högst för sign(median(x))=-1.
Andra riktningen då?
Om median(sign(x))=1 betyder det att minst 50% av sign(x)=1. Det betyder att minst 50% av x är >0. Då är median(x)>0 och sign(median(x))=1. Samma med minst bytt mot högst.

Kul, det är alltså ekvivalent bortsett från specialfall!

söndag 16 mars 2008

Fibonacci talsystem

Jag sprang "av en slump" över en notis på Donald Knuths hemsida (ni vet, han som bland annat skrev TeX). Han nämner Fibonacci talsystem, ett talsystem där man skriver ett tal som summan av Fibonacciatal.
Jag hittade problemformuleringen här: http://www.hostsrv.com/webmaa/app1/MSP/webm1010/fibonaccinumbersystem.msp

Jag skrev en text om problemet, med ett något slarvigt bevis, och skrev sedan ett ännu slarvigare program som konverterar tal. Allt upplagt på min hemsida, under other: www2.paulsundvall.net

Uppdatering 20080317:
Christians kommentar är korrekt. Jag har tillåtit mig själv att ha 0 och 1 i koefficienterna, rätt är att man bara får ha 1 eller 2. Det som krävs för att komma hela vägen fram är att visa att alla mellanliggande nollor i ett tal skrivet med nollor och ettor går att eliminera, och få ett tal med enbart ettor och tvåor. Dvs att exempelvis talet (1,0,1,1) går att byta till (0,1,2,1) (inledande nollor räknas naturligtvis inte).

lördag 15 mars 2008

Två musiktips

Här kommer två väldigt olika musiktips.
Det ena hittade jag på allears (en fantastisk sida! Kom dit när jag letade efter Fröken Underbar): Equality
Påminnner stundtals om farbror winnerbäck, stundtals om nåt annat jag inte minns på rak arm.


Det andra är Ulrich Schnauss, en tysk musiker. Se http://www.ulrich-schnauss.com/
http://www.myspace.com/ulrichschnauss
http://en.wikipedia.org/wiki/Ulrich_Schnauss

onsdag 12 mars 2008

Min nästa server?

Den här datorn verkar vara lämplig att använda som server, även om den har grafikutgång. Det är något oklart hur mycket effekt den genomsnittligt drar, men någonstans 5-10W skulle jag tro. Kostar ca 1200 kr.

I dagsläget använder jag en Linksys NSLU2 som server (drar ungefär 7 W med 2.5-tums hårddisk), som kör Debian etch. Det som jag saknar med den är att minnet är i minsta laget (32MB) för att kunna köra det utmärkta men tyvärr minneshungriga synkroniseringsverktyget unison.


UPPDATERING 20080616: här finns en kommande produkt som verkar intressant. Ska enligt uppgift dra endast 2 W. cherrypal. Denna ska enligt uppgift köra en strippad version av debian. Trevligt!

onsdag 5 mars 2008

tisdag 4 mars 2008

Skriva bra kod

Jag har tidigare skrivit om en mycket bra text om hur kan man skriva effektiv kod. (se http://paulsundvall.blogspot.com/2008/01/optimera-kod.html)

Nu har jag råkat på en annan liknande text från AMD, inriktad på just deras arkitektur. Även om den riktar sig till just AMD är några av råden allmängiltiga.
Det är kapitel två som jag avser, i denna pdffil:
http://www.amd.com/us-en/assets/content_type/white_papers_and_tech_docs/40546.pdf

fredag 29 februari 2008

Hur kan dell sälja datorer så billigt?

Jag fick ett reklamblad från dell i brevlådan, de säljer en vostro 400 för 3987,5 kr inkl moms, exkl frakt. Det är en hyfsat snabb dator - definitivt väldigt bra för det priset.
Jag undrar hur det kan bli så billigt - med hjälp av prisjakt.nu kollar jag vad komponenterna kostar (per den 20080229).
  • processor Q6600 kostar 1990 kr
  • minne 2 Gb ddr2 kostar 320 kr
  • 400 Gb hårddisk 500 kr
  • moderkort socket 775 426 kr
  • chassi med nätaggregat 268 kr
  • dvd rw 199 kr
  • grafikkort 128MB ATI 228 kr
summa summarum 3931 kr. Detta är billigast i varje kategori på prisjakt, ett svårt pris att uppnå i praktiken. Om man ska köpa till detta pris tillkommer frakt från varje leverantör och det besvär det för med sig att använda mer än en leverantör.

Dell inkluderar windows vifta business samt ett års på platsen-service. Dessutom måste ju viss arbetskostnad för att montera datorn och installera operativsystemet ingå - även om stora volymer gör att det går att göra effektivt. Hur går det här ihop sig? Jag förstår inte - dells affärside måste bygga på att folk lägger till väldigt dyra uppgraderingar till sina datorer, eller kan det vara så att microsoft sponsrar operativsystemet mot att dell förordar sin kunder att använda microsoft office?

torsdag 7 februari 2008

Frusna människor i New York

Det här hade jag velat vara med på!
Nån som vill vara med och göra samma sak på centralen? Kan inte behövas så många eftersom det är mindre!

tisdag 5 februari 2008

Lastfartyg med kite

Jag har förut skrivit om skysails, ett företag som sätter en kite på fartyg för att bidra till framdriften. Nu verkar verksamheten gå framåt, en ny video har dykt upp på hemsidan där ett nytt fartyg fått systemet monterat.

Jättekul! Verkar vara ett enkelt sätt att minska oljeförbrukningen.

torsdag 31 januari 2008

söndag 27 januari 2008

Jorden runt!

Knappt har Francis Joyon kommit runt jorden på rekordtid 57 dagar i sin jättetrimaran IDEC förrän det är dags för nästa försök av Groupama 3. Medan Francis seglade ensam är detta försök med en besättning på tio man, så det är olika klasser. I skrivande stund ligger Groupama 3 216 sjömil framför gällande rekord satt av Orange II. (En jättelik katamaran som satte rekord för några år sen, med svensken Roger Nilsson som navigatör.)

Francis Joyon finns här. Hans trimaran har vågskärande skrov, mycket intressant att se hur den går igenom vattnet. Se video på hemsidan. Tyvärr är sidan enbart på franska.

Groupama 3 finns här och har en engelsk hemsida. Båten har foils på sidskroven som hjälper till att lyfta upp båten ur vattnen.

Fartpotentialen i dessa båtar är enorm - något som jag tror skiljer dem från båtar som Open 60 och V70 är att både den genomsnittliga och maxfarten är mycket hög. Jag undrar vad nästa steg i utvecklingen är - dessa båtar är bjässar på över 100 fot och naturligtvis byggt i kolfiber. Mera bärplan, reglerbara kanske? Eller sensorer på seglen så att det är lättare att trimma optimalt?
Ledad mast för att förhindra inverkan av sjögång på masten? Med 40 meter mast blir även en ganska måttlig pitchrörelse stora ändringar i hastighet och riktning uppe i masten.

fredag 18 januari 2008

Simulering av vätska

Snubblade över det här av misstag. Vatten är svårt att simulera när man försöker göra det verklighetstroget. Den här sidan visar flera riktigt häftiga video på simulering av vatten.
http://graphics.ethz.ch/~thuereyn/ntoken3/Publications.html

tisdag 15 januari 2008

Mera palindrom

Den här sammanfattningen är inte tillgänglig. Klicka här för att visa inlägget.

lördag 12 januari 2008

Palindromsång

Den här sången har konstig text. Den är sammansatt av palindromer.
Vad sägs om höjdare som "Oozy rat in a sanitary zoo." eller "UFO tofu"?

Kul visitkort!

Den här sammanfattningen är inte tillgänglig. Klicka här för att visa inlägget.

torsdag 10 januari 2008

Optimera kod

Den här pdf-filen innehåller mycket intressanta tips om hur optimering av kod kan gå till. Exempel på vad som är snabbt och långsamt att göra på de vanligaste processorerna gås igenom.
Rekommenderas till nyfikna programmerare!

http://www.agner.org/optimize/optimizing_cpp.pdf

Uppdatering:
trots att jag faktiskt läst igenom filen ovan så missade jag en ganska lätt grej:
Koden nedan ska leta efter den första positiva nollgenomgången i vektorn x.

Originalkoden ser ut så här:

const size_t N=x.size();
size_t Ihigh=0;//index of right point
size_t Ilow=0; //index of left point
for(size_t i=1;i<n;++i) {
if(x(i-1)<=0.0 && x(i)>0.0) {
Ihigh=i;
continue;
} //end if
} //end for


Jag vet att x nästan alltid är negativ i början och positiv på slutet. Därför kommer första villkoret i nästan alltid vara sann och andra villkoret måste också evalueras.
En bättre lösning är alltså att byta ordning på testen så att det första testet är falskt oftast.

const size_t N=x.size();
size_t Ihigh=0;//index of right point
size_t Ilow=0; //index of left point
for(size_t i=1;i<n;++i) {
if(x(i)>0.0 && x(i-1)<=0.0) { //<---här är ändringen
Ihigh=i;
continue;
} //end if
} //end for

tisdag 8 januari 2008

80-talet

Spola fram till 2:10 om du har bråttom.

måndag 7 januari 2008

Den hårda vägen

Blev ofrivilligt uppfinnare till rubrikens tvetydighet när jag (försent) upptäckte att vägen var täckt av is. Kanske dags för dubbdäck. Eller att sluta fundera på om
std::vector<double> x;
myFuncThatWantsDoublePtr(&x[0]);
verkligen är försvarbart snyggt samtidigt som jag cyklar. Speciellt inte när jag handlat och har tomater i väskan.

Konstruktionen ovan är helt okej för övrigt. Jag måste bara vänja mig vid den.

lördag 5 januari 2008

Dokumentärfotografi av Martin Parr

Kulturhuset har en utställning av fotograf Martin Parr. Väl värd att besöka!

Den tilltalade mig, det fanns ett flertal bilder som verkigen utmärkte sig. Han är väldigt skicklig på att fånga eller betrakta en situation. Bäst tycker jag fotot är på två par pensionärer (totalt fyra personer, alltså) som sitter i gräset och tittar med kikare. Två av dom tittar rakt på fotografen med vridna överkroppar.

Inspirerad av Martin Parr och annat fotograferade jag nyårsfirandet uppe på hammarbybacken. Tyvärr är det svårt att fota på natten, men jag lyckades fånga några tillfällen där ljuset i bilden sköttes av fyrverkerierna.



Notera överlämningen av spritkassen precis till vänster om "solen".

Seglingsbilder

Idag är det runt noll, blåser och det var salt?slask på vägen. Då är det skönt att titta på lite härliga seglingsbilder över en rykande kopp te!

Jon Nash är en fotograf som tagit väldigt fina seglingsbilder.
hans hemsida (under Sailing/Hugo Boss) finns fina foton på Hugo Boss. Det är en Open 60 som jag skrivit om förut här och här.