Avstavningar på webben

Något som stör mig med att skriva på nätet är att man inte kan skriva med av­stavning­ar. Eller ja, man kan, men det är krång­ligt. Det finns två sätt, ett manu­ellt och ett auto­matiskt.

Det manu­ella är klart värst. Då ord­nar man först så att texten just­eras med rak höger- och vänster­kant, och sedan propp­ar man in binde­streck och rad­matningar där det tycks pas­sa bäst. Så­dant pyssla­de vi typo­grafer med förr i tiden, med bly­typer och så­där. Det var dock före min tid, och själv har jag aldrig gjort an­nat än digi­tal typ­sätt­ning.

Den auto­matiska met­oden är att in­foga en liten ram­sa på de plat­ser i orden där en rad­matning är lämp­lig: ­. Att det lik­nar ordet blyg på eng­elska är fak­tiskt gan­ska träff­ande. Re­sul­tatet blir ett binde­streck som inte syns om det inte be­hövs, vilket vill säga om ordet av­stavas. Det är med hjälp av det­ta lil­la magi­ska tecken som det här in­lägget blivit av­stavat. (Om du inte ser några av­stav­ningar så beror det på att din webb­läs­are klara­de sig utan sådant tjafs).

Där­med är allt inte frid och fröjd, trots att det är auto­mat­iskt. Två prob­lem åter­står. För det för­sta är det jobbigt att skriva ­ var­je gång ett ord är lämp­ligt för snygg av­stav­ning. Och et­ter vär­re: Man kan inte av­stava många sam­man­sat­ta ord. Sät­ter man till ex­em­pel sam­man katt och tass så blir det kattass. Ett t ska bort. Skriv­er man det­ta som katt­tass så blir det ju katttass, och ett t för mycket. Gör man inte det, så blir det kattass i löp­an­de text, men kom­mer att av­stavas som kat-tass eller katt-ass istäl­let, och det går ju inte hel­ler.

Ack och hu så fasligt illa det är!

Att köra Firefox på eget konto

Som webbparanoid står man inför ständiga faror. Tänk om min webbläsare har något farligt säkerhetshål, som någon otrevlig webbsida jag råkar besöka får för sig att utnyttja för att ladda upp alla mina filer, eller än värre ta bort dem helt?

Problemet går givetvis att lösa på flera sätt, och lika givet är att ingen lösning är fullkomlig. Den jag tänker lägga fram här torde fungera som försvar mot de flesta »opersonliga« attacker man kan råka ut för. Om någon däremot faktiskt är ute efter dig så har du nog ingen glädje av det.

Vad vi kommer att göra är att ordna så att Firefox (och faktiskt vilka program du vill) kan köras utan rättigheter till din home-katalog. Simpelt som en plätt.

The following takes place in a unix-like environment. Du måste ha sudo och XTerm installerat.

Skulle sudo bråka med dig, se avsnittet längre ned om sudo.

  1. Skapa en ny användare på ditt system, och döp den till något smart. Låt oss kalla den _web. Ge den en egen home-katalog som heter /home/web.
  2. Spärra all tillgång till din egen home-katalog för andra användare än du själv:

    $ chmod -R og-rwx $HOME

  3. Kontrollera att användaren _web berövats sådan tillgång:

    $ echo "Den här textfilen får du inte läsa." > ~/kontrollfil.txt
    $ sudo -u _web cat ~/kontrollfil.txt
    Password:
    cat: /home/jesper/kontrollfil.txt: Permission denied

    Sedan kan du ta bort testfilen:

    $ rm ~/kontrollfil.txt

    Om inget permission blev denied så har du ett konstigt filsystem. Lämna en kommentar!
  4. Kopiera din webbläsares inställningskatalog till den nya användaren. Använder du Firefox heter den .mozilla och kör du Opera är det .opera. Kopiera katalogen såhär:

    $ sudo cp -r $HOME/.mozilla /home/web/
    $ sudo chown -R _web._web /home/web/.mozilla

    Och liknande för Opera:

    $ sudo cp -r $HOME/.opera /home/web/
    $ sudo chown -R _web._web /home/web/.opera

    En del andra webbläsare sparar sina inställningar i en katalog inuti katalogen .config, däribland Midori. För att kopiera en sådan katalog måste du gå litet annorlunda tillväga.

    $ sudo -u _web mkdir /home/web/.config
    $ sudo cp -r $HOME/.config/midori /home/web/.config
    $ sudo chown -R _web._web /home/web/.config

  5. Med ett par enkla trollformler kan du nu köra igång din webbläsare under en annan användare, men med samma inställningar som dem du kopierade från ditt vanliga konto. Men trollformler är inte roliga att komma ihåg, så vi automatiserar det hela med ett skalskript. I exemplet lägger vi det i filen $HOME/bin/webuser.sh, och detta är vad den skall innehålla:

    #!/bin/sh
    if [ X$1 == X ]; then exit; else app=$(which $1); fi
    xhost localhost && cd /home/web/ && \
        sudo -H -u _web env HOME=/home/web $app --display localhost:0.0&

    (Eventuellt klagar någon insatt läsare på att $HOME-variabeln får samma värde flera gånger om. Men det verkar faktiskt krävas i vissa sammanhang, och jag är osäker på varför.)
  6. Sista stegets utförande lämnar jag som en övning åt läsaren. Det som måste skapas är en ikon, ett menyalternativ eller något annat fiffigt, som vid aktivering gör bruk av den smått makalösa trollformeln ovan:

    xterm -geometry 20x1 -e 'sudo sh $HOME/bin/webuser.sh WEBBLÄSARE'

    Det sista ordet ska givetvis inte vara »WEBBLÄSARE«, utan det kommando som din webbläsare startas med. Till exempel firefox. Om du får välja mellan att köra kommandot i ett terminalfönster eller inte, så kan du välja att låta bli.

Vad kommer hända när du dubbelklickar på den där ikonen? Jo, en pytteliten ruta dyker upp på skärmen som frågar efter lösenord. Det är sudo som frågar, och i sina flesta inkarnationer är det lösenordet till ens eget konto det ber om. Vanligtvis frågar sudo inte heller efter lösenordet oftare än kanske var tionde eller tjugonde minut. Programmet kommer nämligen ihåg lösenordet åt dig en stund efter att du matat in det.

Om sudo bråkar!

Om sudo inte vill låta dig hålla på med sådant precis hur som helst, så kan du lägga till följande rad i slutet av filen /etc/sudoers – men akta dig! Om du råkar göra den filen ogiltig kan du bli utelåst från ditt eget system!

user    ALL=(ALL) SETENV: ALL

Första ordet ska förstås inte vara user, utan ditt eget användarnamn på din burk. Detta är viktigt! Gör du fel, som sagt, så får du rejäla problem, och kommer sitta och svära över att du aldrig lärt dig ed, en texteditor anpassad för en tid då man hade skrivare istället för datorskärmar. (Jag skojar inte.)

Ett sätt att undvika sådana missöden är att försöka redigera filen med följande kommando:

$ sudo env EDITOR=gedit visudo

Ersätt gedit med den texteditor du gillar att använda. När du ändrat färdigt i filen och sparar och stänger, så kommer visudo kontrollera att filen är riktig. Har du gjort något tokigt kommer den ge dig en chans att reparera skadan innan det är för sent.

Och till sist, om du inte gillar att sudo kommer ihåg dina lösenord, lägg till följande rad långt upp i /etc/sudoers, bland de andra Defaults-raderna, om du har några.

Defaults timestamp_timeout =0

Det var allt!

Att rotera PDF-filer

Ibland har någon varit klantig och scannat ett dokument i liggande format, så att upp är åt höger eller vänster. Vissa gånger är dokumentet helt enkelt upp-och-ned. Vad ska man göra då?

Nå, det är faktiskt inte nödvändigt att skaffa nackspärr bara för att man ännu inte hunnit kosta på sig någon knädator med snurrbar skärm. Kör du Windows kan du i och för sig rotera hela skärmen genom att hålla ned CTRL och ALT samtidigt som du trycker på en piltangent för att ändra på hela skrivbordet, men det kan lätt bli lite väl mystiskt i längden.

Ett första steg för att få bättre ordning på saker och ting är att installera en vettig PDF-läsare. MuPDF är en pytteliten och minimalistisk läsare som man styr med tangentbordet. Finns färdig att ladda hem till Windows, MacOS och Linux. Bland BSD-varianterna finns den åtminstone i ports på OpenBSD.

MuPDF finns dessutom som tillägg till Firefox. Ett utmärkt och jättesnabbt sätt att öppna PDF-filer direkt i webbläsaren!

Men så snart du laddat hem MuPDF kommer du antagligen att klia dig på huvudet: Hur styr man egentligen den här grunkan?

Och det är lätt.

  • Flytta omkring på en sida genom att hålla ned vänster musknapp och släpa omkring dokumentet.
  • Kopiera text genom att markera det du vill kopiera med höger musknapp. Texten ska kopieras automatiskt i samma ögonblick som du markerat den, X11-style! Detta gäller alltså även Windows och MacOS.
  • Rotera dokumentet genom att trycka på L eller R, för 90° medurs respektive moturs.
  • Zooma in och ut genom att trycka på + och -. Det ska även gå att zooma genom att hålla ned shift-tangenten och använda blädderhjulet på musen.
  • Anpassa fönsterstorleken till sidan genom att trycka på W.
  • Bläddra till toppen av nästa sida genom att trycka på N.
  • För att tvärtom bläddra till botten av föregående sida så trycker du på P.
  • Bläddra till samma plats på nästa sida genom att trycka på mellanslag.
  • För att tvärtom bläddra till samma plats på föregående sida så trycker du på backsteg, alltså den knapp du tar bort felskrivningar med när du skriver.
  • Bläddra 10 sidor framåt med shift-N och 10 sidor bakåt med shift-B.
  • Sätt bokmärke på en sida genom att trycka på M. När du bläddrat omkring och vill gå tillbaka till bokmärket, så trycker du på T.
  • För att bläddra till ett visst sidnummer så skriver du först sidnumret, och sedan trycker du på G. För att till exempel gå till sidan 74 av ett dokument, skriv 74g.
  • Och till sist, när du är färdig och ska avsluta, skriv Q som i quit.

Skulle du sedan vilja rotera PDF-dokumentet på riktigt istället för bara i PDF-läsaren, så rekommenderas verktyget pdf90 som följer med i verktygslådan PDFjam för Linux eller MacOS. Något liknande för Windows har jag inte hittat, men möjligheten finns förstås att skriva ut dokumentet till en PDF-fil, och rotera det genom utskriftsinställningarna.

Om du inte kan skriva ut i PDF-format, så kan du använda den vanliga Skriv ut till fil-funktionen som är inbyggd i Windows. Observera att du måste ha en postscript-skrivare installerad, och välja den när du skriver ut till fil, för att det här ska fungera. När du ska välja filnamn att skriva ut till, se till att det slutar på ".ps". Sedan kan du använda ett postscript-till-PDF-verktyg i stil med PStill för att konvertera .ps-filen till en PDF-fil. Programmet finns även till MacOS och *nix-varianter.

Ett annat alternativ för Windows-användare är att installera det fria (och kostnadsfria) programmet PDFCreator. När det är installerat har du en ny skrivare att skriva ut till, och när du skriver ut till den så skapas ett PDF-dokument. Smidigt som tusan.

Några frågor? :)

Ladda hem från SVTPlay

Uppdatering. Den här guiden är oerhört förlegad. Använd den inte. Använd version två av guiden i stället, eller ladda ned programmet H.VHS som kan hämta från SVT Play (och flera andra sajter) automatiskt.

* * *

Visste du att du med SVTPlay kan ladda hem program och spara dem på hårddisken? Jodå! Samma teknik går att använda för att se på programmen utan att ha installerat Flash, vilket jag själv inte har. Flash går nämligen inte att köra på ett 64-bitars OpenBSD.

För att kunna följa guiden här behöver du ett program som heter rtmpdump. Det finns inte bara till BSD- och Linux-system, utan även till Windows (och då ska du tanka hem zip-filen med en »Windows build«). Tyvärr kan jag inte bistå med några Windows-specifika instruktioner, men om någon kan bidra med detta vore jag glad.

Du behöver givetvis också en mediaspelare, och den jag använder i guiden är MPlayer.

Då sätter vi igång! Se till att du har programmen installerade och öppna ett terminalfönster.

Först och främst behöver du en länk till rtmp- eller rtmpe-strömmen för programmet. Detta gör du genom att högerklicka på länken för extern Flash-spelare och kopiera adressen:

Flash (rtmp)

Sedan kör du rtmpdump på denna, och klistrar in adressen istället för ADRESS nedan.

$ rtmpdump -o filnamn.flv -r "ADRESS"

Citattecknena bör vara med. För tillfället behövs de inte på SVTPlay-adresser, men det kan komma att förändras.

Nu är nedladdningen igång! Ibland når den inte ända fram till 100% utan stannar på 99,9%. Det gör inget.

Om den däremot stannar tidigare så kan du återuppta nedladdningen som följer:

$ rtmpdump -o filnamn.flv -r "ADRESS" --resume

När du laddat hem programmet kan det hända att det har »inbyggda« svarta ramar. Om du kör programmet i fullskärm blir resultatet irriterande litet. För att verkligen få fullskärm kan du ta bort ramarna genom följande procedur:

$ mplayer -vf cropdetect filnamn.flv
(Massor av text när MPlayer startar och analyserar filen.)
.
.
.
[CROP] Crop area: X: 639..0  Y: 359..0  (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0  Y: 359..0  (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0  Y: 359..0  (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0  Y: 359..0  (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0  Y: 359..0  (-vf crop=-624:-352:634:358).%
[CROP] Crop area: X: 639..0  Y: 359..0  (-vf crop=-624:-352:634:358).%

Nu har MPlayer automatiskt känt av vilket kommando som tar bort de svarta ramarna. Avbryt uppspelningen, och spela upp filmen ånyo med den parameter som MPlayer gav dig:

$ mplayer -vf crop=-624:-352:634:358 filnamn.flv

För att få fullskärm trycker du givetvis på f på tangentbordet.

Uppdatering 17 oktober: Martin Adlerborn har satt ihop en enkel och illustrerad instruktion, som visar hur man går till väga för att ladda hem i Windows. Så om du kör Windows, klicka här för att ladda hem PDF-dokumentet och sätt fart. Och tack till Martin. :-)

Spela DVD i MPlayer

Mediaspelaren mplayer kan vara ganska lurig att använda, utöver att bara spela upp video- eller ljudfiler. Att titta på DVD-skivor, direkt från skivan eller från en kopia eller .iso-fil på hårddisken, är inte alltid så lätt som man kunde önskat. Därför vill jag ge några snabba tips, genom att steg för steg bygga upp ett kommando i terminalen.

Om mplayer inte automatiskt känner av din dvd-läsare, så måste du berätta var den finns:

$ mplayer --dvd-device /dev/cd0c

Den skivläsare jag använder har uppenbarligen device-adressen /dev/cd0c. På andra system än OpenBSD numreras enheterna annorlunda.

Vill du istället spela upp en .iso-fil eller en kopierad DVD-katalog, anger du adressen till denna:

$ mplayer --dvd-device ~/skivor/dvd-1/

Nästa steg är att ange vilket kapitel du vill spela upp. Mplayer kan nämligen inte visa DVD-menyer, utan du är tvungen att välja spår direkt. Första filmen på skivan har talet 1, den andra har 2, och så vidare. Jag vill spela upp den andra filmen:

$ mplayer --dvd-device ~/skivor/dvd-1/ dvd://2

Kör du detta så spelas filmen upp. Men ytterligare något kan läggas till!

DVD-filmer är nämligen irriterande randiga. Tittar du bara noga så ser du det, särskilt när starkt färgade fält rör sig hastigt över skärmen. För att göra dig av med detta lägger du till ytterligare en parameter:

$ mplayer -vf-pre filmdint --dvd-device ~/skivor/dvd-1/ dvd://2

Ett sista tips: Om du vill hastigt och smärtfritt »ta loss« filmen från DVD:n och lägga den i en .avi-fil, fungerar det följande kommandot. Det använder sig av mplayers syskon mencoder, som anropas på liknande sätt, men skapar filmer istället för att spela upp dem.

$ mencoder -o ny-fil.avi -oac copy -ovc copy --dvd-device ~/skivor/dvd-1/ dvd://2

Filen ny-fil.avi som detta skapade är en direkt kopia av spåret på skivan. Därför spelas den med fördel upp utan ränder:

$ mplayer -vf-pre filmdint ny-fil.avi

Det var allt. Adjö!