måndag 19 april 2010

Slumpmässig information 6

Yttermåtten på en metrisk gänga är föredömligt enkelt uttryckta.
http://en.wikipedia.org/wiki/ISO_metric_screw_thread

torsdag 15 april 2010

Konvertera mts-filer i linux

Jag har spelat in filmer i HD-format med en canon legria hf200 videokamera (full HD). Det genererar mts-filer som innehåller video på avchd-format. (för mig 1920x1080i, 2*25 Hz)

Jag följde guiden på http://wesleybailey.com/articles/ffmpeg-tutorial-convert-avchd-mts-m2ts
och lyckades koda om video inspelad i högsta kvalitet till ett format jag kan spela utan problem.

Jag använder debian lenny och la till debian multimedia i repositorien, innan jag följde guiden.

relevanta rader i /etc/apt/sources.list:
deb http://ftp.de.debian.org/debian/ lenny main contrib non-free
deb http://ftp.sunet.se/pub/os/Linux/distributions/debian-multimedia/ lenny main


För information: jag visar här information från ffmpeg om videoklippen när jag spelat in i de olika kvalitetslägena på kameran, högsta till lägsta. Detta är skapat med ffmpeg -i [filnamn]

bitrate: 24055 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s


bitrate: 17021 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1920x1080 [PAR 1:1 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s

bitrate: 12483 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s


bitrate: 7122 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s

bitrate: 6258 kb/s
Stream #0.0[0x1011]: Video: h264, yuv420p, 1440x1080 [PAR 4:3 DAR 16:9], 25.00 tb(r)
Stream #0.1[0x1100]: Audio: ac3, 48000 Hz, stereo, 256 kb/s





För att konvertera till ett format som är lättare att spela upp utan att det hackar, använder jag följande kommando:
bitrate=4000
size="1280x720"
ffmpeg -i "$infile" -vcodec libxvid -b ${bitrate}k -acodec copy -deinterlace -s $size "$outfile"

fredag 26 mars 2010

Starthjälp för flygplan

Jag har en ide om hur man kan minska utsläppen vid flygplansstart. Problemet är att man vid start måste ha mycket hög effekt. Om man kan hjälpa till vid start bör man kunna optimera motorerna för verkningsgrad och inte toppeffekt. Det finns säkert massa "ifs och buts" men se det som en ide!
  1. Tilläggseffekt från landansluten el
  2. Hjälpfordon (bogserbåtsliknande)
  3. Draglina
  4. Tilläggsraketer
Metod 1: En högspänningskabel ansluts till flygplanet, ev från en liten vagn som kan åka längs startbanan. Elektriska element i motorn omvandlar el till värme. När planet lyfter lossnar kabeln.

Metod 2a: En liten rälsbunden vagn, eldriven, hakar i planet med en krok och hjälper till att accelerera det. När planet lyfter lossnar kroken automatiskt.

Metod 2b: Ett litet hjälpplan dockar till flygplanet. Hjälpplanet är försedd med en mycket kraftig vätgas/biogasmotor. När hjälpplanet hjälpt till att lyfta flygplanet flyger det autonomt tillbaka till flygplatsen och tankas igen.

Metod 3: En eldriven winsch hjälper upp flygplanet. När flygplanet är tillräckligt högt upp lossas linan. Eventuellt kan winschen lagra energi i ett svänghjul under en längre tid, som sedan mekaniskt används till winschen. På det sättet kapas toppeffektbehovet i winschen.

Metod 4: Raketer fyllda med förnybart bränsle (vätgas/biogas) monteras på planet. Efter att de hjälp till vid starten släpps de ner för återvinning, eller så får de sitta kvar till landning.

En uppskattning av effektbehovet vid start: En jumbojet väger ca 400 ton (max startvikt). Med 250 km/h starthastighet krävs ca 1 GJ i rörelseenergi. Om man har 30 sekunder på sig är det en medeleffekt på ca 30 MW.

Vad tror ni? är det görbart?

onsdag 24 mars 2010

Omvänd DNS

Omvänd DNS (reverse DNS) innebär att en ipadress slås upp till ett värdnamn. Jag har funderat över hur man ska gå till väga för att få omvänd dns att fungera korrekt, dvs att uppslagning från domännamn till adress och sedan tillbaka ger samma domännamn.
Här finns en bloggpost som behandlar hur det går till.
Det handlar alltså om att få ISP:n att lägga in poster som pekar på det man önskar.

torsdag 4 mars 2010

Storleksändring av krypterad disk (luks)

Den här artikeln avser diskkryptering på Linux, med luks och ext3.

En guide för hur man konfigurar kryptering finns här.

Om du är otålig, hoppa till de sex nedersta raderna och byt ut mina namn mot dina.

Jag använder diskkryptering för att skydda mina data. Mina diskar hanteras av LVM, vilket jag varmt kan rekommendera. Nu har diskutrymmet tagit slut inom den krypterade partitionen, och jag behöver därför storleksändra den. Det är en av fördelarna med LVM, så länge det finns fysiskt diskutrymme kvar någonstans går det att öka valfri partition utan att det kräver några stora ändringar eller tar lång tid.

Jag kör kommandona nedan medan jag är inloggad och filsystemen är monterade. Det går utmärkt. Otroligt, egentligen, att det går!

Bakgrundsinformation:
Nedan heter min volymgrypp (lvm volume group) minvg, min logiska volym (lvm logical volume) minlv. Namnet för den krypterade volymen är minkv.
I /etc/crypttab står det:
#
minkv /dev/minvg/minlv none luks,noearly

I /etc/fstab finns raden:
/dev/mapper/minkv /home/mittnamn ext3 defaults 0 4

Såhär gör du:

Storleksändra först lvm-partitionen (här ökning med 5 GB):
$lvextend -L +5G /dev/minvg/minlv

Öka sedan den krypterade volymens storlek:
$cryptsetup resize minkv

Öka sedan filsystemets storlek:
$resize2fs /dev/mapper/minkv

lördag 27 februari 2010

Unison mellan Mac, windows och unix

Jag använder Unison för att synkronisera filer mellan datorer. Det är ett utmärkt verktyg. Fram till nyligen har det inte gått att synkronisera filer mellan olika plattformar på ett enkelt sätt - om man använder svenska tecken. Eller rättare sagt, exotiska tecken som manualen säger, allt utom 7-bits ascii. Sålänge man håller sig till en och samma plattform har det inte varit några problem.

Nu finns en lösning - senaste versionen av unison fungerar utmärkt oberoende av teckenkodning. Jag har fått synkronisering att fungera mellan Mac OS X, Windows och Linux (Debian, Ubuntu) smärtfritt. Jag använder en Debianbaserad linuxserver som "nav" och de övriga maskinerna synkronisera mot den.
Tricket för att få det att fungera är att köra en tillräckligt sen version av unison på alla ställen. Klientens version måste fungera med den version som ligger på servern. Viktigt är att man kan ha flera samtidiga versioner på servern. Detta gör att man kan ha en blandning av olika versioner, utan problem.

En liten kommentar: i texten säger jag att "det inte behövs" osv. Eftersom en del operativsystem är konfigurerbara i all oändlighet är det inte nödvändigtvis sant. Däremot är det sant för den konfiguration som gäller för standardinstallationer.

Här kommer receptet som fungerar för mig:

På servern (Debian Lenny linux):
---------------------------------
Installera unison med apt-get install unison. Det ger version 2.27.57 för mig:
$unison -version
unison version 2.27.57

Detta räcker utmärkt för att synkronisera andra maskiner med samma version, OM DU HAR SAMMA TECKENKODNING. Kör du t ex ubuntu eller debian behövs inget mer göras. Det behövs däremot om du ska köra Mac OS X eller windows som klienter mot servern. Och det ska vi, inte sant!

Nu checkar jag ut version 2.39.6 från unisons repositorie (funkar troligtvis med andra versioner, om du vill ha exakt som jag så lägg till -r403 till kommandot nedan för att få revision 403)
$mkdir -p $HOME/code/thirdparty
$cd $HOME/code/thirdparty
$svn co -r403 https://webdav.seas.upenn.edu/svn/unison/trunk unison
Du måste ha subversion och ocaml installerat. (På min arkitektur (arm) råkar ocamlopt inte finnas, därför använder jag NATIVE=false. Lämna ut det om du inte behöver det)
$cd $HOME/code/thirdparty/unison
$make NATIVE=false
när kompileringen lyckas kör jag
$ $HOME/code/thirdparty/unison/src/unison -version
och får svaret
unison version 2.39.6
vilket betyder att allt är som det ska.



På Mac OS X (som klient)
---------------------------------
På mac gör jag ungefär likadant som på servern. Detta eftersom de färdigbyggda paket för unison (.dmg) inte var tillräckligt aktuella för att det skulle fungera för mig.
Nu ser jag att det dykt upp en 2.40 för Mac, kan vara värt att prova först!
Annars bygger man såhär. Man behöver förmodligen ha installerat utvecklarverktygen på mac för att det ska fungera. (Du behöver make, ssh, subversion, ocaml och möjligtvis fler saker)
$mkdir -p $HOME/code/thirdparty
$cd $HOME/code/thirdparty
$svn co -r403 https://webdav.seas.upenn.edu/svn/unison/trunk unison
$cd $HOME/code/thirdparty/unison
$make

Om allt gick bra har du nu ett fungerande unison. Det ligger i $HOME/code/thirdparty/unison/src/uimacnew/build/Default/
Jag drog mitt till dockningslisten och så funkade allt som tänkt.


Sist men nästan viktigast: peka ut sökvägen till unison på servern i konfigurationsfilen. Konfigurationsfilen ligger i
~/Library/Application Support/Unison/*.prf på mac os x.
Se till att den innehåller raden
servercmd=XXXX/code/thirdparty/unison/src/unison
där XXXX matchar $HOME på servern. Kör $echo $HOME på servern om du inte vet vad det är.


På Windows (som klient)
--------------------------------
På windows fick jag en av de förbyggda programmen att fungera. Här visar sig verkligen styrkan i att köra en distribution och inte bara ett operativsystem - bibliotek, sökvägar, binärer finns enkelt tillgängliga. På Debian kör jag apt-get install unison-gtk och är sedan klar. I windows är man tvungen att installera inte bara unison utan även ssh (via cygwin är lättast) och gtk. Det tog mig säkert en timme att få att fungera.

Du behöver en tillräckligt sen unisonversion för att få det att fungera mot unison som används på servern.

Instruktioner för hur man gör finns när man letar sig fram till downloads för windows på unisons hemsida. Man behöver unisonbinären, gtk-runtime och cygwin. Jag kopierade bara in unisonbinären rakt in i det uppackade gtk-runtime-biblioteket och det fungerade för mig.

Precis som på mac os x behöver du peka ut sökvägen till unison på servern. Profilen redigeras i unisons grafiska gränssnitt. Lägg till servercmd enligt instruktionerna för mac os x.


Om du följt instruktionerna och bett tillräckligt till datorguden kan du nu synkronisera filer utan problem med teckenkodning!

Tidigare inlägg i ämnet: http://paulsundvall.blogspot.com/2009/10/unison-unicode-och-kompatibilitetsprobl.html

Tack till Albin som tipsade mig om att unison uppdaterats!