En webfont til besvær

Jeg har, etter å ha prokrastinert det i et par år, endelig somlet meg til å lage et nytt design til hjemmesiden min og bloggen. Du sitter muligens og ser på resultatet av dette akkurat nå (med mindre du bruker RSS, Planet eller jeg har byttet design igjen).

Det jeg ønsket å oppnå var å videreføre design-elementer fra det forrige designet mitt, som jeg aldri ble helt fornøyd med, samtidig som jeg holdt det hele så enkelt som mulig. Jeg tror jeg har lykkes med det i det store og det hele, men da jeg bestemte meg for å ta i bruk @font-face for å lage headeren min ble ting fort ganske hårete.

Jeg bruker til vanlig Google Chrome, og mesteparten av designarbeidet mitt gjorde jeg med referanse til denne nettleseren, i den tro at alt var flott og fint i de andre nettleserne som følger standarder. Jeg visste jeg ville måtte gjøre noen ekstra-grep for å få IE8 til å oppføre seg, men det er som forventet, og det skal jeg ikke gå inn på her (utover det at det finnes et fint verktøy for å konvertere TTF- og OTF-fonter til de andre rare formatene ulike nettlesere krever hos Font Squirrel, og en grei teknikk for å få flest mulig nettlesere til å fungere er beskrevet her).

Jeg fant nemlig uventet motstand hos ingen ringere enn Firefox. Det har seg sånn at jeg har to domener: haraldseid.net, som jeg bruker for typiske «hjemmeside-ting», altså meget statisk innhold, og slaskete.net, som jeg tidligere delte med Amund og Sverre, til blogg. Begge domenene kjører fra samme server. Jeg utviklet først designet mitt på hjemmesiden, siden det er en meget triviell oppgave med flate HTML-filer osv. Alt var fint og flott. Så skulle jeg arve dette designet til WordPress-bloggen her på slaskete.net, og da ville plutselig ikke den fine fonten i headeren vises i Firefox lenger!

Jeg lette etter feil og bugs og overstyringer fra andre CSS-er, jeg brukte Firebug og jeg prøvde å validere CSS-en (som selvsagt ikke validerer, på grunn av alle de eksperimentelle funksjonene jeg bruker) i ulike validatorer. Til slutt måtte jeg ty til Google, og fant etter hvert ut at:

Firefox nekter vanligvis å vise en webfont (definert med @font-face) fra eksterne URL-er, med mindre denne eksterne webserveren er konfigurert til å tillate det! Grunnen til dette er at man ønsker å begrense «piratkopiering» og uautorisert bruk av webfonter. Nå er det så vidt jeg vet bare Firefox som gjør dette, jeg opplevde i hvert fall ikke problemet med andre nettlesere.

Så hvordan får man Firefox til å akseptere at fonten man linker til er gangbar? Jo, med HTTP-headerne! Her er hvordan du gjør det med Apache:

Først og fremst må du sørge for at mod_headers.so er aktivert, hvordan man gjør dette varierer fra server til server, men under Debian gjorde jeg rett og slett sånn:

a2enmod headers
/etc/init.d/apache2 restart

Med dette på plass så oppretter man en .htaccess-fil i den mappen som fonten ligger, med følgende innhold:

# example Apache .htaccess file to add access control header

<FilesMatch "\.(ttf|otf)$">
<IfModule mod_headers.c>
Header set Access-Control-Allow-Origin "*"
</IfModule>
</FilesMatch>

Mer info og kilde for løsningen er hos Mozilla Hacks.

Kurs i Oslo

Jeg sitter nå i et kursrom hos Crayon i Nydalen i Oslo. Det er en time til dag to er overstått, og det betyr at vi snart er gjennom den øverste av de permene som man ser på bildet. Begynner å nå grensen for hvor mye info man kan klemme inn i hodet på kort tid.

To meget tykke permer i A4-format.

Disse permene inneholder pensumet for fem dager med kurs.

Oh, forresten, jeg har visst begynt å blogge igjen.

.ssh/known_hosts

Det ser ut som om Sakarias prøver å starte en meme, så da må jeg jo hjelpe til.

einar@p04071:~$ wc -l .ssh/known_hosts
50 .ssh/known_hosts
einar@petunia:~$ wc -l .ssh/known_hosts
32 .ssh/known_hosts
[einarh@dilbert ~]$ wc -l .ssh/known_hosts
14 .ssh/known_hosts
[einarh@dogbert ~]$ wc -l .ssh/known_hosts
wc: .ssh/known_hosts: No such file or directory
einar@slartibartfast:~$ wc -l .ssh/known_hosts
20 .ssh/known_hosts
einar@marvin:~$ wc -l .ssh/known_hosts
4 .ssh/known_hosts
einar@zarniwoop:~$ wc -l .ssh/known_hosts
6 .ssh/known_hosts

Sitater

Når jeg skal slappe skikkelig av, så liker jeg å sette på litt The West Wing (også kjent som «Presidenten» her på berget), hvor Martin Sheen spiller den utopisk dyktige og sympatiske presidenten Josiah «Jed» Bartlet. Dette er den eneste serien jeg vet om som kan servere både et bibelsitat og et Haisommer-sitat i løpet av en kort samtale (vel, kanskje med unntak av Gilmore Girls, som også er krydret med mange herlige referanser av ulikt slag):

CUT TO: INT. THE OVAL OFFICE – NIGHT
Bartlet has poured himself a drink and is filling another glass up with water.

BARTLET
«Set free the oppressed, break every yoke, clothe the naked and your light shall break forth like the dawn, and the glory of the Lord shall be your rear guard.»

He hands Leo the drink of water.

LEO
Ten minutes ago, you promised me you’d go easy on the Moses references.

BARTLET
That was Isaiah.

LEO
Still. They frighten people?

BARTLET
Who?

LEO
Me.

BARTLET
Well, then here’s to swimmin’ with bow-legged women.

Den perfekte HTPC – Asrock NetTop ION 330

I den mørke middelalder, altså for fem-seks år siden, dukket det opp et nytt og fantastisk programvareprosjekt som lot deg gjøre om Microsofts XBox (den som var XOBX HUEG) til et fleksibelt og brukervennlig underholdningssenter. Etter litt motstand – «det er jo et MICROSOFT-PRODUKT, og jeg spiller ikke uansett» – tok jeg til vettet og skaffet meg en XBox, fikk den moddet, og la inn XBMC (XBox Media Center). Den har vært i kontinuerlig bruk i fire-fem år nå.

Men siden den gang har det skjedd store ting på TV-fronten, og HDTV er det nye store. Den gode gamle XBox-en får pustebesvær og hva verre er når den ser en videofil i denne høye oppløsningen. Heldigvis har ikke folkene bak XBMC ligget på latsiden, så XBMC kan nå kjøre på helt vanlige PC-er, både under Linux, OS X og Windows. Så da har det forsåvidt vært ganske greit å slenge sammen en HTPC av passende deler og kjøre XBMC på denne. Men dette er som regel faktisk ganske mye jobb, og for å få spilt av HD-oppløsning må man enten ha en MEGET kraftig CPU, eller være kjempeheldig med skjermkort og lydkort og hovedkort o.l. Resultatet har hatt en tendens til å være stort, stygt, støyende og ikke spesielt billig.

For en knapp måned siden kom endelig løsningen, takket være NVidia og deres ION-brikkesett, som utfyller Intels Atom-plattform med et relativt kraftig skjermkort med en meget viktig funksjon: maskinaksellerert video-dekoding! XBMC-folkene har til alt overmål allerede fått på plass tilstrekkelig nye drivere til å støtte dette fine systemet (kjent som VDPAU på Linux) allerede.

Når så Asrock NetTop ION 330 dukket opp på Multicom.no ble jeg bare nødt til å besille den, her måtte jo den perfekte out-of-the-box XBMC-PC-en endelig har dukket opp!

Den kom i dag, og jeg har nå brukt en knapp time på å pakke den opp, koble den opp, installere XBMC Live, slåss litt for å få lyden til å komme ut på HDMI, og konklusjonen er: KA-CHING! Jeg er villig til å utrope denne boksen (og de hundretalls søsknene som er nødt til å komme etter den) til XBoxens naturlige arvtager som den perfekte XBMC-boksen. Den har spilt av alt jeg har kastet etter den uten å svette, og selve grensesnittet er flytende og fint selv om jeg kjører i 1920×1200 (på PC-skjermen min) og spiller av en 1080p-film samtidig. Til og med suspend-funksjonen ser ut til å fungere, så det burde ikke være noen grunn til å slå boksen helt av når man ikke bruker den.

Det eneste jeg har å utsette på denne boksen nå er at den ikke har IR-mottaker innebygget. Heldigvis har jeg en Windows Media Center-fjernkontroll med tilhørende USB-mottaker, og det skal jeg få testet bare Trond Viggo gir tilbake mottakeren.

For de som måtte komme ut for samme problem som jeg hadde, her er endringen jeg måtte gjøre for å få lyd ut på HDMI-utgangen:

Gå til Settings -> System -> Audio hardware og sett Audio output til Digital. Her deaktiverte jeg også valgene for DTS- og AC3-capable receiver, fordi TV-en min ikke støtter disse lydformatene. Hvis du kjører HDMI-kabelen via en forsterker vil du sannsynligvis la disse være aktivert.

Skriv inn følgende i filen ~/.asoundrc:

pcm.!default {
type asym
playback.pcm {
type plug
slave.pcm "hw:0,3"
}
}

(Bruk et tastatur og trykk CTRL+2, så kommer du til en loginprompt. Brukernavnet er xbmc, og passordet tastet du inn under installasjonen. Skriv nå «nano .asoundrc» og skriv inn innholdet som er listet over. Trykk CTRL+O og enter, og deretter CTRL+X. Skriv så «sudo reboot», og så bør du ha lyd når maskinen har restartet.)

Enjoy!

Windows Live Writer

Jeg er faktisk MEKTIG imponert over dette programmet, som er en del av Windows Live-programpakken. Alt jeg trengte å gjøre for å sette det opp var å skrive inn URL-en til bloggen, og brukernavn og passord. Resten av oppsettet tok programmet seg av selv, og det var til og med smart nok til å lage et slags theme som fungerer som en forhåndsvisning av hvordan blogg-innlegget mitt blir seende ut til slutt. Her har verktøy som BloGTK og Drivel mye å hente inn, der må jeg alltid skrive inn direkte URL til XMLRPC-interfacet, og velge fra en lang liste over forskjellige blogg-typer.

Alt ser ut til å fungere helt strålende rett ut av boksen, nå blir det bare spennende å se hvor nær preview blir i forhold til endelig resultat. Ingeniørene til Microsoft skal i hvert fall være stolte over dette verktøyet. Killer app!

OneCall mobilt bredbånd i Ubuntu GNU/Linux

Før jul gikk jeg litt amok og bestilte meg mobilt bredbånd fra OneCall, mest fordi jeg ville ha det i julen mens jeg var hjemme. Nå fikk jeg selvsagt ikke modemet før jeg var tilbake på Gjøvik, men det er en annen sak. Som seg hør og bør begynte jeg å undersøke hvordan jeg skulle få det nye leketøyet til å fungere i Linux. Det viste seg å være relativt enkelt (men man må leke litt i terminalen for å få det til å gå). Så her følger fremgangsmåten for å få OneCalls «Personlig Bredbånd» til å fungere i Ubuntu 8.10, Intrepid Ibex. Samme fremgangsmåte bør fungere for alle som har NetworkManager versjon 0.7.0 eller nyere.

OneCall har valgt et modem som heter Option iCon 401, og som så mange andre modem av denne typen så opererer det i to modi: Når du først plugger den inn i USB-porten så presenterer den seg som en falsk CD-ROM-stasjon med noe magisk auto-installasjonsprogram beregnet på Windows og OS X. Dette er imidlertid overhodet ikke hjelpsomt for en Linux-bruker, all den tid det ikke følger med programvare for å dytte modemet over i riktig modus på Linux-plattformen. (Her er det verdt å nevne at folkene i Ice er mye hyggeligere, selv om deres løsning heller ikke er feilfri, kanskje jeg skriver om det en annen gang).

Det finnes et par forskjellige programmer som tar seg av jobben med å bytte modus på modemet slik at systemet gjenkjenner ting på riktig måte. Jeg valgte en løsning som tar seg av jobben helt automagisk:

Last først ned filen udev.tar.gz fra denne forumposten: http://www.pharscape.org/forum/index.php?topic=545.0 [direktelink]. Naviger så dit du lastet ned filen i en terminal, jeg lagret den i ~/tmp/:

cd ~/tmp/
tar zxvf udev.tar.gz
cd udev
sudo make install
sudo /etc/init.d/udev restart

Når du har utført dette skal udev ha blitt startet på nytt, og NetworkManager skal ha oppdaget modemet. Dette kan du bekrefte ved å trykke på NetworkManager-ikonet og se etter teksten «Mobile Broadband»:

Hvis man så trykker der det står «Configure …» blir man så kastet inn i en konfigurasjonsveiviser, eller «wizard», som det heter så fint:

Trykk Forward, og sørg for at Country er satt til Norway. Her får man dessverre ikke opp et valg for OneCall, men OneCall benytter seg i skrivende stund av Telenor sitt nettverk, så deres oppsett fungerer fint. så velg Telenor og gå videre:

Det neste og siste valget man må ta er hva man skal kalle tilkoblingen, her skrev jeg OneCall, som seg hør og bør.

Neste gang du trykker på ikonet for NetworkManager bør du ha fått opp et nytt valg for OneCall under «Mobile Broadband». Når du trykker på denne blir du spurt om PIN-koden, dette skal ha fulgt med SIM-kortet ditt. Skriv inn PIN-koden og trykk OK, og nå skulle mobilt bredbånd være oppe og gå. Slettes ikke verst!

Blogging fra desktopen

År 2008 er mindre enn 24 timer fra å være over, og jeg har aldri blogget så lite som nå, noe jeg begynte å reflektere over i kveld. Så fant jeg også ut at det er altfor lenge siden jeg oppdaterte programvaren som bloggen kjører på, og bestemte meg for å legge inn nyeste versjon før jeg gjorde noe mer. Det skulle vise seg at dette ble en noe mer smertefull prosess enn jeg var innstilt på, men nå er det i det minste unnagjort, tre timer etter at jeg begynte. Jeg måtte blant annet skrive om skinet mitt ganske mye for å få det til å fungere normalt. Noen endringer har det nok blitt, spesielt på høyresiden her.

En positiv ting kom imidlertid ut av hele denne prosessen, og det er at XMLRPC-interfacet endelig har blitt fikset, så nå kan jeg bruke sånne fancy blogge-verktøy fra desktopen til å legge inn nye innlegg. Whoppee!

South Park-Einar
Ida laget en ny South Park-karakter til meg, den gamle ble borte i en tidligere oppdatering av bloggen.