Arkiv för kategori ‘webbprojekt’

Surströmmingsskiva och flygprisagent

söndag, 5 september, 2010

Igår var jag på Nordiskas årliga surströmmingsskiva vilket var en mycket trevlig upplevelse. Jag har bristande rutin vad det gäller surströmming men fick iaf ner en firre. Efter kalasandet på Nordiska gjorde jag och Åke stan fram till morgonen. Eftersom jag skjutsade Jörgen vid 4-snåret på lördagsmorgonen blev det en rätt lång dag, typ 27 timmar.

Idag har jag knåpat Python för ovanlighetens skull. Jag är lite intresserad av att bevaka flygbiljetter mellan Zürich och Moskva, närmare bestämt direktflyg med avfärd fredag och hemkomst måndag. Expedia är rätt vettiga för prisuppgifter men de har ingen bevakningsfunktion och deras API är inte öppet för såna som mig. Jag har löst detta genom att mitt Python-program håller koll på priserna för de 20 kommande helgerna och mailar om lägsta-priset förändras. Cron ser till att kontrollen sker varje timme. Ibland kan det finnas billiga biljetter ett tag och då kan det vara käckt att kunna nypa dem direkt.

Idag har jag även fixat och donat med lite praktikaliteter såsom exempelvis strykning av veckans skjortor. Nu är jag mao redo för nästa vecka och ser fram emot en tur till Moskva på fredag.

Lite tankar om molnet och den lite mer högtflygande tanken om hur man intresserar sig för det man jobbar med

lördag, 10 juli, 2010

Vissa koncept och idéer, kanske speciellt inom den del av IT-världen jag rör mig, kommer, skiner och om de är genuint sunda, mognar de och blir naturliga komponenter i ekosystemet. Molnet (”the cloud” för den som så vill) är en sån pryl som nog får anses rätt etablerad vid det här laget.

Nu kommer min mörka hemlighet. Håll andan. När jag första gången fick höra om molnet (kan det har varit en sisådär två-tre år sen?) fattade jag inte grejen. Det var inte den mörka hemligheten. Det är nu det kommer. Jag har till viss del fortfarande inte gjort det. Eller så här, tillåt mig (eller vad då, jag gör som jag vill i min blogg) utveckla lite. Jag förstår att molnet kan tillföra mycket i vissa fall men ibland när jag hör folk (vem är folk? Folk i diverse podcasts och folk man stöter på tror jag) kan jag inte låta bli att tycka att man ger molnet oförtjänt mycket cred eftersom jag sedan länge kunnat tillhandahålla tjänster med samma karaktär och fördelar som vissa sk molnbaserade tjänster. (Det är egentligen lite lurigt att prata om molnbaserade tjänster på det här sättet eftersom det bara är vissa delar (typ lagring och vissa andra mer standardiserade nätverkstjänster) som är realistiska att köra i privat regi så vi får inskränka oss till den delen i detta resonemanget. :) )

Vissa kanske inte hänger med riktigt på att det var så farligt att outa sig på det här sättet. Jag har dock hittills inte hört så mycket av de här tongångarna så det känns lite kontroversiellt i nördkretsar, ungefär som att ställa sig upp på bussen och börja rekrytera medlemmar till Sverigedemokraterna eller så…

Jag inser att det som molnet representerar kan vara en tillgång om jag vill dra igång en affärsverksamhet och vill kunna utveckla infrastruktur och resurser jag behöver i takt med att verksamheten eventuellt tar fart. När det gäller flera tjänster av privat karaktär, typ att lagra sina filer, anser jag fortfarande att egna servrar och egna lösningar i allmänhet ger störst kapacitet och flexibilitet. Varför lägga sakerna i händerna på någon annan om man anser sig ha kompetensen att fixa prylarna själv? Ja det beror väl lite på hur man värderar sin egen kompetens och tid samt vilka resurser som står till buds antar jag. Kanske man kan jämföra med en bilmekaniker som i alla lägen hellre lämnar in sin bil till en annan verkstad än fixar den själv? Skulle du lita på en sån mekaniker? Låt mig återigen utveckla och nyansera.

Först dock en närbesläktad ”rant”. Nu har jag använt termen ”moln” ett antal gånger och det är egentligen inte helt oproblematiskt ur mitt perspektiv. Jag har som sagt lite svårt för hela ”molnkonceptet” (jag gillar egentligen inte att använda den termen men det är liksom försent nu). Nätverkstjänster har funnits länge och har inte helt plötsligt blivit något annat även om dessa tjänster har utvecklats och vidareutvecklats. Att låta nån annan drifta ens e-post är inte helt plötsligt något annat bara för att man uppfunnit ett begrepp som man kallar för moln. Var tvungen att kolla om inte fler tycker att det känns konstigt med denna omdöpning och hype och det glädjer mig att Richard Stallman är lika frågande i en Wikipedia-artikel: ”It’s stupidity. It’s worse than stupidity: it’s a marketing hype campaign”, he told The Guardian.

Nu tillbaka till min ”tvillingrant” som alltså mer handlar om själva användandet av molnbaserade lösningar och inte användandet av molnet som begrepp. Häng med mig nu, det kanske inte klarnar men jag ska ta mig fram till en poäng som är inte enbart är knuten till nörderiet.

Jag är mycket medveten om att man inte kan ha koll på allt och pysslar man inte med datanörderi på heltid så ska man definitivt outsourca så mycket man kan till andra som man litar på. Ungefär som när jag ska se till att min bil är i kördugligt skick och där jag inte är beredd att själv exempelvis byta turbon genom att börja beställa reservdelar och läsa på hur den processen går till (stort tack Saab i VS-Schwenningen för att jag slapp). Men, och nu kommer väl det som ska likna poäng, om man är professionell datanörd och bara pratar moln samt enbart använder färdigpakterade lösningar utan att göra eller undersöka egna lösningar och bry sig om helheten (typ allt det som inte handlar om ens specialområde: java, C#, nätverk, databaser eller vad det nu kan tänkas vara) så anser jag att man nog är en aning snett ute. Ungefär som om man som bilmekaniker skulle ta taxi till jobbet eftersom man bara kan och intresserar sig för avgassystem. Eller som sjuksköterska med inriktning mot barn inte intressera sig för alla möjliga typer av sjukdomstillstånd inom olika åldrar. Det ena borde ge det andra och hänga ihop om det är ett genuint intresse och jag hoppas att folk jobbar med sina intressen.

Vet inte hur många som följer med mig nu eller om jag gör det själv men jag tror att jag har en tanke som jag står för. Med andra ord, inte lika hårt knutna till datanörderiet; om ditt jobb avspeglar ett intresse och nåt du brinner för, då försöker du troligen att se utanför ditt specialområde, dvs vill se helheten och intresserar dig för att upptäcka och hantera den? Om jag skulle försöka sätta in denna tanke i ett större perspektiv skulle jag påstå att detta är en viktig nyckel till hur mänskligheten kan forma bra (arbets)liv och samhällen.

Bil, Zürifäscht och OpenVPN

måndag, 5 juli, 2010

I lördags ägnade jag några timmar åt att hämta Saaben, numera åter i körbart skick, från Tyskland. Efter att återigen passerat IKEA på vägen tillbaka kompletterade jag möblemanget i lägenheten genom lite fler monteringar (bokhylla och hallmöbel).

I helgen, speciellt på lördagkvällen, var det Zürifäscht vilket var tredje år är en rejäl fest med flera miljoner besökare (3 miljoner 2007 och troligen inte färre i år) med stora flygshower, fyrverkerier och tivoliverksamhet. Nordiska anordnade också fest med utmärkt vy över kvällens mycket påkostade fyrverkerishow. Det var trevligt att träffa andra nordbor som varit i stan längre och få höra deras syn på saker och ting.

Söndagen ägnade jag huvudsakligen åt att se över IT-infrastrukturen och då främst ihopkopplingen av mitt svenska och mitt schweiziska nätverk. Jag vill att min schweiziska router (som kör dd-wrt) ska förstå när det är läge att routa trafiken via vpn-tunnel till (och sen tillbaka från) Sverige. I nuläget fungerar det direkt på routern (om man ssh:ar in till den) men inte från maskiner anslutna till routern och jag tror att det återstår en routing-regel i göteborgsnätverket så att trafiken hittar tillbaka till alperna.

Ikväll efter jobbet var jag förbi Nordiska igen (tredje besöket på en vecka, mitt andra hem) för att bli medlem i föreningen. Jag klarade inträdesprovet, dvs att kunna prata ett nordiskt språk, och kan därmed träna vidare med gott samvete. :) Jag körde ett styrkepass på vinden efter introduktionsträffen och eftersom det inte var så välbesökt gjorde det inget att jag glömt träningskläderna hemma…

Jag har läst en del i ”Clean code” på sistone. Den är inte dum och kan nog rekommenderas till de flesta som pysslar med programmering i allmänhet och Java i synnerhet.

Imorrn och på onsdag drar semifinalerna igång. Inte missa. Nu sova.

Modern MythTV i Debian Lenny

onsdag, 12 maj, 2010

Jag kör MythTV i Debian Stable (dvs Lenny i nuläget) vilket gör att det för närvarande endast finns stöd för version 0.22 via debian-multimedia. I Ubuntu 10.04, som oftast körs på frontenden i mitt fall, används numera som standard 0.23. MythTV-protokollet är inte bakåtkompatibelt så man får se till att uppgradera både backend och frontend samtidigt.

Eftersom det var meckigt att få in 0.22 i nya Ubuntu och 0.23 dessutom innehåller en hel del förbättringar beslöt jag mig för att uppgradera till 0.23 på webbservern (som alltså agerar backend) genom att kompilera själv.

I korthet gör man så här:

  • Checka ut 0.23-branchen
  • kör configure-skriptet tills det inte klagas på några beroenden (som fixas genom: apt-cache search deendency, sudo apt-get install paketnamn)
  • kompilera med make
  • installera med sudo make install

Som standard (om man inte mixtrar med prefix-flaggan) installeras MythTV i /usr/local/ vilket är praktiskt eftersom exempelvis /usr/local/bin brukar ligga före /usr/bin/ i pathen så att din nyinstallerade version favoriseras.

Om du liksom jag tidigare installerat Debian-paket för 0.22 så är det läge att ändra startskriptet /etc/init.d/myth-backend så att den nya versionen körs (ändra sökvägen till mythbackend högt upp). Passa även på att uppgradera Mythweb (bara att kopiera över från /usr/local/share/mythtv/mythweb/ eller ändra i webbserverns konfiguration) så att den också kan prata med mythbackenden.

I Debian Lenny, med standardkärnan 2.6.26 på amd64-arkitekturen, får man lite problem med ivtv-modulens (tv-kortets drivrutin) och kärnans kommunikation vilket löses lätt och elegant med uppgradering av kärnan med lenny-backports. Lägg till lenny-backports (exempelvis direkt i /etc/apt/sources.list) om den inte är aktiverad redan och kör ” sudo apt-get update; sudo apt-get install -t lenny-backports linux-image-2.6-amd64″ (om du kör ett 64-bitars system, annars väljer du förstås annan lämplig arkitektur).

Sådärja, nu pratar förhoppningsvis alla MythTV-komponenter med varandra. Min gissning är att det kommer 0.23-paket även till Debian Lenny senare men det kanske kan dröja ett tag eftersom det finns en del beroenden att reda ut för paketmakarna och vem vill vänta på det. Genom att kompilera själv har man dessutom större möjligheter att påverka vilka komponenter man vill ha stöd för samt kunna hänga med i svängarna när det kommer fixar eller om man vill ändra något på eget bevåg.

Javazone: Operas Håkon Wium Lie om One web, CSS3 och HTML5

torsdag, 10 september, 2009

Det blev morgon även den andra dagen och jag sitter nu bänkad för dagens första föredrag i sal 1. Jag har checkat ut från hotellet och hämtat ut min biljett på centralstationen så att jag ska kunna se så mycket som möjligt av kollega Tobias iPhone-föredrag innan jag måste rusa till tåget som lämnar perrongen samtidigt som Tobias rundar av sitt föredrag.

Jag använder sen en tid tillbaka nästan bara Opera på min Eee eftersom Firefox inte tar hand om de begränsade resurserna på ett tillfredsställande sätt. Nyligen släpptes version 10 i skarp version och den funkar riktigt bra! Renderingsmotorn Presto är nu uppe i 2.2.15. I nuläget är det bara Safari 4.0 och Opera 10 som klarar Acid3-testet. Naturligtvis är det då intressant att höra vad teknikchefen på Opera tycker och tänker!

Angående dagens första föredragshållare så har jag hört Håkon prata tidigare på CommunityOne i våras om just dessa webbtekniker som ligger honom varmt om hjärtat. Han gjorde det bra då så jag gav honom förnyat förtroende. Det visade sig att typ hela föredraget var identitiskt men det innehåller tillräckligt mycket stoff för att funka en andra gång.

Håkon, som är CTO, på Opera och tillika mannen bakom CSS började med att ge en rejäl historisk tillbakablick. Därefter följde en beskrivning av Opera Mini och hur deras innehållskomprimering gör surfupplevelsen på mobilen mer njutbar och kostnadseffektiv.

Efter ungefär en halvtimme kom Håkon på allvar in på sitt favoritämne och baby, CSS.

Han tog bland annat upp dessa CSS-funktioner:

  • Web fonts finns och funkar fint i Opera 10 men än så länge inte i IE (vilket förstås gör att många avvaktar på den fronten).
  • Media queries gör att man kan applicera olika stilmallar beroende på hur stor upplösning webbläsaren har att tillgå. Detta gör att trubbiga media=”screen/handheld/print” kan kompletteras något som gör det möjligt att göra bättre anpassade webbgränssnitt.
  • För att göra runda hörn mha stilmallar istället för en massa enskilda bilder har nu attributet border-radius lagts till. Du kan speca både ”vertikala och horisontella radien” så att du får hörnen som du vill.

Avslutningsvis pratade Håkon lite kvickt om HTML 5 och demade video-taggen.

Javazone: Google App Engine

onsdag, 9 september, 2009

Efter lunch gick jag på en introduktion till Google App Engine. För min del har det hittills inte varit aktuellt att bygga nåt för denna plattform men jag kan helt klart se scenarion där det är lämpligt.

Föredraget var inte jättebra men gav i stort sett den information som finns i Googles egna introduktion.

Om man ska starta en tjänst som kan tänkas växa men som man inte vill investera stort i från början erbjuder Google App Engine ett attraktivt alternativ.

Man kan välja mellan ett Java- eller Python-API och det är Python-API:et som är originalet. Enligt föredragshållaren är Python-verktygen mognare och man bör enbart välja Java-varianten om man man har goda anledningar. Dock verkar det finnas Eclipse- och Maven-plugins så jag skulle nog iaf kika på Java-API:et och se om det duger för att slippa två obekanta faktorer samtidigt.

Även om Google App Engine är gratis på flera sätt och vis finns det en hel del begränsningar gällande vad som kan lagras osv som kan vara bra att känna till innan man hoppar på tåget.

Hursomhelst vore det lite kul att prova så det kanske kommer mer när jag kommit så långt.

Liferay Portal – en första titt

onsdag, 9 september, 2009

Eftersom jag snart kommer att jobba med portalutveckling och portalprodukten Liferay Portal har jag tagit mig en titt.

En sak som blir tydlig direkt är att Liferay Portal är en förhållandevis liten och kvick krabat. Installationen av Liferay Portal som är bundlad med Tomcat 6.0 väger in på 135 pannor (okej, MB) och går att starta inom en evighet på en Asus EEE 901 med 1,6 GHz Atom-processor och 2 GB RAM. Behöver jag tillägga att det hade tagit ungefär en vecka att ladda ner och installera en annan känd och funktionsmässigt jämförbar portalprodukt från en stor trebokstavsaktör (hint: inte SUN) inom datorvärlden?

Det finns även ett Eclipse-plugin som verkar funka (har installerat och pillat lite) men som skulle kunna vidareutvecklas.

Jag lär få anledning att återkomma i ämnet senare.

Javazone: Molnarkitektur och Groovy & Grails

onsdag, 9 september, 2009

De två första två föredragen har handlat om vad man bör tänka på när man snickrar arkitekturer för molnbaserade tillämpningar samt introducerat Groovy och Grails som två produktivitetshöjande verktyg som stundtals kan vara att föredra framför traditionella Java EE-lösningar.

Moln-föredraget var den första delen av två föredrag varav det efterföljande är tänkt att vara mer praktiskt. För min del räckte det bra med teorin på den fronten (tänk på att maskiner kommer och går osv) och nu sitter jag på Björn Beskows föredrag om Groovy och Grails. Enligt Björn är Groovy och Grails ”the natural evolutional path for Java EE”.

Björn började med att visa enkla exempel på hur man kan använda Groovys metaclass för att enkelt definiera om existerande metoder men även lägga till nya. Eftersom Groovy är bytekompatibelt med Java lär det bygga på reflection tänker jag.

På samma sätt som Ruby on Rails är ett flyfotat webbramverk för Ruby har vi Grails som en motsvarighet inom Groovy. Det är ”convention over configuration” som gäller och det finns möjlighet att kickstarta sitt projekt med enkla CRUD-tillämpningar på samma sätt som i Rails mha Grails Scaffolding. Om din tillämpning är någotsånär snarlik kan vara trevligt att få ett vettigt upplägg från början på nolltid som man sedan kan vidareutveckla.

Inom Grails används GSP istället för JSP och enligt Björn är det ”JSP done right” bland annat med fina taglibs och ”tiles”-möjligheter.

Integrationen med Spring ska vara utmärkt och konstigt vore väl annars eftersom nyligen uppköpta SpringSource köpte G2One (företaget bakom Groovy) för ett knappt år sen.

Det är för övrigt riktigt varmt i lokalerna här i Spektrum och långärmad skjorta känns lika opassande som en dunjacka i öknen.

Lugn och fin på Stockholmskontoret samt nytt-inlägg-utskick-via-e-post-funktion

fredag, 10 juli, 2009

Stockholmskontoret ligger i likhet med Göteborgskontoret nära centralstationen vilket är smidigt när man anländer med tåg och är lite för trött och sliten för att bevandra stockholmsgatorna de närmsta timmarna. Hellre då sitta ner och koppla upp och av.

Efter önskemål från min enorma läsekrets (ni är en exklusiv skara enligt min besöksstatistik) har jag nu installerat ett tillägg som ger er möjlighet att få e-post när nya inlägg dyker upp här i bloggen.

Jag har tyckt att flödena (inlägg och kommentarer) har täckt det behovet men ibland kanske det är mer lämpligt med e-post som är lite mer push än pull jämfört med flödena, valet är ditt.

Ordning på dokumenttorpet

lördag, 14 mars, 2009

I Debian Lenny har man äntligen fått ordning på EncFS i sitt ”standardutförande”. Då blev det läge för mig att sätta upp den lösning jag haft planer på sedan länge.

Till att börja med, dokument och liknande ska naturligtvis versionshanteras så ”dokument”-katalogen är numera importerad i Subversion. Denna subversion-repository är naturligtvis åtkomstbar via SVN-protokollet tunnlat i SSH, ”svn+ssh”.

Vad gäller säkerhetskopiering har jag valt den lösning som Andreas Olsson beskriver föredömligt pedagogiskt (se där ja, lärarstudierna kommer till nytta :) ). Även om versionshanteringen med Subversion medför inkrementella säkerhetskopior vore det dumt att begränsa sig till detta varför vi blandar in rdiff-backup, SSHFS och EncFS för att säkerhetskopiera till en annan nätverksansluten server (”off-site backup”).

Några korta ord om de olika komponenterna:

Rdiff-backup kopierar en katalog, i mitt fall via internet till en kollega till webbservern, och ordnar med inkrementella backuper på ett effektivt sätt.

SSHFS använder FUSE för att montera en katalog över SSH.

EncFS använder också FUSE och gör det möjligt att lagra filer på ett krypterat filsystem på ett smidigt sätt.

För säkerhets skull säkerhetskopierar jag svn-repositoryn (inte en arbetskopia utan själva repositoryn) med rdiff-backup i krypterad form (tack EncFS) över en krypterad förbindelse (tack SSHFS). På så sätt finns det inkrementella säkerhetskopior i två nivåer, via Subversion men även på Subversions ”interna” filer vilket rent teoretiskt borde kunna vara användbart om Subversion av nån anledning får krupp och gör så att filerna blir korrupta. Filerna lagras krypterat ”off-site” så om de skulle komma på vift behöver man troligen anstränga sig för att ta del av de hysteriskt hemliga filerna.

Nu skrotar jag den tidigare rsync-lösningen och hoppas att efterföljaren funkar fint. Bara man sköter sitt updateande och commitande med SVN-klient så finns det hopp.