Dags att växla upp

Behövde tanka Ubuntu Desktop-skivan och jag tänkte att jag lika gärna kan låta arla (fil-maskin) servera Ubuntu-avbilder 24/7. Hur som, för att från min laptop lägga till en torrent på arla gjordes följande:

easy_install -U transmissionrpc
cat > /usr/local/bin/torrent-relay
#!/usr/bin/python

import sys
from base64 import b64encode
import transmissionrpc

HOST = "filserver"
PORT = 9091

filename = sys.argv[1]
metainfo = b64encode(open(filename, 'rb').read())

tc = transmissionrpc.Client(HOST, port=PORT)
tc.add(metainfo)

Konvertera SVG till PNG

Jag har haft stor glädje av Gnome-grafikerna ikoner de sista dagarna då jag gjort presenatationer på olika ämnen (just nu sitter jag och försöker städa upp introbilderna till TDD och JDojo). OpenOffice hanterar dock inte av SVG-filerna snyggt – det ser riktigt illa ut tyvärr. Så, lösningen har varit att konvertera dem till PNG istället (för hand) till 320×320 pixlar – det räcker fint för att det skall se bra ut på projektor.

Det jag ville göra nu var att slippa utföra jobbet för hand, och det lyckades jag inte med (trodde jag). ImageMagick (convert) gjorde nämligen att det blev svart bakgrund istället för transparent. Efter att jag fick igång den interaktiva python-fu-prompten så fick jag ut svart bakgrund där också, och även http://guillaume.segu.in/blog/code/43/svg-to-png/ producerade svart bakgrund … Sedan tittade jag på filerna utan att använda Eye Of Gnome (eog) och upptäckte att det visst var fina bilder med fin transparent bakgrund. Problemet var helt enkelt att jag lurats av eog.

Well well, här är python-koden som behövs för att skripta Gimp:

>>> import sys
>>> import os
>>> from gimpfu import *
>>> image = pdb.file_svg_load(filename, filename, 90, 320, 320, 0) #dpi, w, h, paths
>>> drawable = pdb.gimp_image_active_drawable(image)
>>> pdb.file_png_save2(image, drawable, outfilename, outfilename, 1, 9, 1, 1, 1, 1, 1, 0, 1)

Riktigt trevligt. :)

Webboptimering

Jag höll en kort presentation (lite väl kort – 25 min var i minsta laget) på DotnetForum och JavaForum nyligen (2009-02-09 och 2009-02-10) om webboptimering.

“Min” del av inbjudan löd:

Best Practise inom webboptimering
Yahoo! bjöd på 14 handfasta tips genom Steve Souders bok High Performance Web Sites. Tre år senare kom Even Faster Web Sites med AJAX-fokus och samtidigt började verktygen för att undersöka den verkliga prestandan, dvs användarupplevelsen, florera.
Fredrik kommer peka på fria, användbara verktyg och ett par enkla åtgärder som gör skillnad för dina kunder och dina kostnader.

Här är Webboptimering, 25 min (ODP)– och Webboptimering, 25 min (PDF)-versioner (tills speakerrate.com ger mig ett konto – de verkar ha problem med mailutskicken …).


PNG, JPG eller GIF?

PNG är ett icke-förstörande format, dvs ingen färginformation förstörs när man sparar bilden. PNG är därför bäst av dessa tre vanliga format. PNG har stöd för transparens, dvs genomskinliga bildpunkter (bakgrunden syns igenom).

PNG lämpar sig bäst för “datorgenererad” bildinformation.

JPG är ett förstörande format, dvs färginformation förstörs/förloras varje gång en bild sparas ned och läses in igen. Man anger i procent hur “hårt” man vill att JPG skall komprimera/förstöra färginformation. Sparar man med 100% så förstörs väldigt, väldigt lite information, men å andra sidan så komprimeras bilden inte så mycket och filen blir stor.

JPG lämpar sig bra för naturlig bildinformation, såsom fotografier.

GIF är ett icke-förstörande format som ersattes av PNG pga patent-problematik. Patentet som täckte den komprimeringsalgoritm som används är inte längre giltligt, men det finns ingenting som GIF klarar som PNG inte klarar – PNG är alltså en bättre version av GIF då PNG har flera och bättre komprimeringsalgoritmer.

GIF lämpar sig bra om man vill använda webbläsare från 1900-talet, dvs innan stöd för PNG kom. :)

RAID-disken raidades

Satte in en ny hårddisk (var en SATA-strömkabel kort sist) och möttes mot min förvåning av att en av raid-enheterna inte dök upp. Efter lite pillande visade det sig att mdadm faktiskt vill att man uppdaterar dess konfigurationsfil manuellt:

mdadm --examine --scan --config=mdadm.conf >> /etc/mdadm/mdadm.conf

Sedan var allt löst, frid och fröjd:

root@filserver:~# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md_d4 : active raid1 sdc1[2] sdb1[0]
      488383936 blocks [2/1] [U_]
      [==>..................]  recovery = 12.9% (63137152/488383936) finish=116.1min speed=61024K/sec
      
md0 : active raid1 sde5[1] sdd5[0]
      71015168 blocks [2/2] [UU]
      
md2 : active raid1 sde6[1] sdd6[0]
      85272896 blocks [2/2] [UU]
      
unused devices: 

Gravatar FTW 2010!

Jag såg idag av en händelse ett utmärkt exempel på användning av Gravatarer. På konferensen Codebits hemsida så ser slängde man upp en ansiktsvägg med konferensdeltagarnas gravatarer, vilket ju kan ge en känsla för hur konferensen ser ut! :)

För större konferenser borde detta vara ett enkelt sätt att samla in bilder på talare, och efteråt för folk som bara hann se en del av ett föredrag att snabbt/lätt hitta “ah, det var han som hade den där galna iden om [topic]” … Jag kommer iaf lättare ihåg ett ansikte än ett namn … Continue reading “Gravatar FTW 2010!”

Ansiktslöst webb 2.0?

Med min nya Nokia N900 som kör Maemo GNU/Linux så har jag lagt lite tid på att dekorera mina kontakter i adressboken med foton. Utöver ett fåtal personer som jag manuellt lagt in en bild för, har jag använt programmet Hermes för att tanka hem uppgifter och bilder (foton) från Facebook och Twitter. Själv har jag skrivit en utökning som gör att Hermes även använder bilder från Gravatar.

Gravatar har dock inte den spridning bland mina kontakter som jag hade hoppats. Det är fler av mina kontakter på LinkedIn som lagt upp en bild på sig själva, än motsvarande för Gravatar. Detta blev uppenbart när jag körde ett litet script som skapade en LinkedIn-vägg och en Gravatar-vägg. Skall se om jag kan få dessa väggar uppdaterad automatiskt lite då och då.