
Jag är fostrad i en webbutvecklartradition som visar stor respekt för den grafiska formgivningen. Ligger en knapp 12 pixlar från kanten när den enligt skissen skall ligga 10 pixlar från kanten så ligger den fel och måste flyttas. En formgivning är till för att följas och måste representeras på nätet så som i photoshopskissen.
Det gör att våra sajter ofta blir snygga men det medför också vissa brister. Risken finns att en formgivare mer fokuserar på vad som är snyggt på skärmen än vad som blir användbart. Därför hävdar jag och vissa med mig att på sajter där gränssnittet är viktigt skall formgivningen sättas efter att funktionerna utvecklats. Formgivaren får alltså en wireframe att utgå ifrån som han eller hon sedan får sätta tänderna i. Denna trend börjar på mitt såväl som andra utvecklarkontor sakta ta fart men det går lite långsamt kan jag tycka.
Ett uttryck för detta är att vi alltid skall envisas med att låsa våra webbplatser i bredd. Ofta i 980 pixlar så att den skall renderas bra på en upplösning i 1024*768 pixlar. Men varför är vi inte fler som arbetar med en så kallad Liquid design där webbsidan formas utifrån bredden på webbläsarfönstret. Och istället för att sätta en fast bredd så sätter vi en minibredd och en maxbredd? Många sajter vi använder dagligen arbetar på detta sätt: GMail, Wikipedia och ofta andra amerikanska sajter. Men väldigt få svenska stora webbplatser är byggda på detta sätt.
Att arbeta med liquid design är för oss programmerare lite bökigare men skapar ofta en rätt hög flexibilitet då det kan tillåta bättre användning av skärmen. Jag tror att motståndet till detta har att göra med att vi har för många formgivare av gamla skolan som bara tänker form och inte riktigt lärt sig användarorienterad formgivning. Även om man jobbat med webb en hel del så tänker man fortfarande webbsidan som en digital poster och inte som ett gränssnitt.
Schyst källa för Liquid-inspiration:
http://www.cssliquid.com
Några riktigt schysta exempel:
http://www.jasonsantamaria.com/portfolio/
http://www.simpleart.com.ua/en/
http://www.thinkvitamin.com/
http://kevadamson.com/
Ganska många hoppades, om än inte seriöst förväntade sig, att Apple skulle lansera en Netbook i höstas. En produktkategori som blivit årets största succé med vinnare som Asus och Acer. Asus var först ut och visade att man kunde sälja en fungerande bärbar dator för under 2000kr. Sen tog Acer fram en riktigt bra kompromiss mellan effektivitet och pris genom sin Acer One.
Men när kommer Apple att släppa en Netbook frågar sig alla? Jag tror faktiskt inte att de kommer släppa någon alls. Hur många som än säljs kommer man värna sitt eget varumärke för mycket för att börja sälja lågbudget datorer. Och här är varför:
01. iPhone är Apples Netbook
Netbooks gillas för att sitt pris och sin storlek. Dock tycker vissa kritiker att de inte är tillräckligt portabla för att vara minilaptops. Och skulle de bli ännu mindre blir de mer eller mindre oanvändbara. iPhone är på många sätt en formidabel plattform som har perfekt skärningspunkt mellan storlek och funktionalitet. Jag har en polare som säger att mer och mer av hans surfande går genom hans iPhone. Sitter han hemma och kollar på TV är det inte sällan telefonen åker fram om det är något han kommer på att han måste kolla upp.
02. Because Steve tells you so
Så här sa Steve så sent som i oktober vilket får oss att tro att Apple inte kommer gå in och försöka konkurrera i ett väldigt marginalsnålt segment. Det finns helt enkelt för lite pengar att tjäna om man skall tillverka en laptop under 6000kr.
”We don’t know how to make a $500 computer that’s not a piece of junk, and our DNA will not let us ship that”
03. Apple har missat tåget och är för stolta att hoppa på nu
Apple släpper två typer av produkter: 1, de som gör att de är banbrytande eller 2, de som helt kör över invanda mönster om vår uppfattning om en viss produkt. Macbook Air tillhör den senare och iPod den tidigare. Hade man varit först med en Netbook hade det räckt med att vara först. Skall man in där nu måste man göra något helt revolutionerande. Och skall man samtidigt behålla sin lyxiga finish och ligga i det prissegment som måste till för att vara meningsfullt finns risk at man inte lyckas. Apple har problem som det är med att man börjar uppfattas för alldagliga(8 Signs That Apple Customers Are No Longer Special). Jag tror man gör rätt i att hålla sig borta från de billiga maskinerna så länge man inte kan revolutionera dem.
Det har skrivits en hel del, bland annat av mig, om molnet på sistone. Det intressantaste är nog själva servermolnet där vi inte själva längre äger någon server utan istället köper serverkraft på lösvikt. Det låter ju fantastiskt och har onekligen sina fördelar. Jag har ägnat de sista två veckorna åt att utvärdera Amazons tjänst för servermoln Amazon EC2 och tänkte försöka dela mina erfarenheter.
Varför skall man använda serverkraft i molnet?
Till att börja med. Varför skall man alls ha sin server i molnet? Jag ser fyra fördelar.
- Horisontell prestanda
- Flexibla resurser – Lägg till när det behövs
- Självbetjäning
- Variabel kostnad – Betala bara för vad du använder
Jag tycker du skall välja servermoln om de viktigaste för dig är att inte behöva planera dina resurser och vill slippa uppgradera servern för de dagar då du av någon anledning får oplanerade många besök. Om du skulle råka bli Diggad på Digg.com eller Slashdotted så behövs mycket mer trafik och mycket mer datatrafik och då är det här överlägset. Utan att ändra inställningar så får du automatiskt tillgång till mer datorkraft när så behövs.
Vill du ha full kontroll på din server eller kräver extrem vertikal prestanda som krävs när du t.ex. skall köra Magento Commerce så är inte det här rätt lösning. Men behöver du en enkel dedikerad webbserver på vilken du kan installera vilka programvaror du vill så är det här valet för dig. Flexiblare tjänst får man leta efter. Att det sedan tar ca 5 minuter att sätta upp en helt ny webbserver är helt oöverträffat.
Hur fungerar det?
Detta är väl vad som imponerar mest på mig från Amazons sida. Det är nästan hur enkelt som helst. Efter att man tecknat sig ett konto installerar man enklast ett Firefoxplugin som heter Elasticfox från vilket du kan styra hela din serverpark. Efter lite pill med hur man ställer in säkerhetsinställningar så väljer man först om man vill hosta en server i USA eller i Europa. Efter det får man upp en lång lista över servrar som man kan välja att starta. Här finns allt från Liunxinstallationer i 32 eller 64 bitar. Windows 2003-servrar eller helt andra system. Det finns väldigt många alternativ. Fler i USA än i Europa. Ca 50st i Europa och 150 i USA.
Det krångliga börjar när man skall connecta till server. Först av allt måste man öppna de portar som behövs för att connecta till servern. Detta gör man rätt snyggt genom säkerhetsgrupperna som Amazon använder sig av. Då kan man öppna en port från just sin egna IP-adress som rekommenderas varmt. Annars kan man öppna den för alla IP genom att ange IP 0.0.0.0/0. Ett tips kan väl vara att bara öppna för alla på port 80 för HTTP-trafiken.
Ganska bökigt är det också att connecta genom SSH då man inte använder lösenord utan istället använder sig av säkra nycklar. När du skapade ditt nyckelpar vid installationen av Elasticfox fick samtidigt generera en nyckelfil. Tyvärr fungerar denna inte på Windows om du använder Putty utan då måste du konvertera den från en .PEM-fil till en .PPK-fil med programmet PuttyGen. När man gjort det ställer man i Putty in att att koppla upp sig med denna nyckelfil och du loggas direkt in på servern. Det är också denna PPK-fil som används om du vill skicka filer genom t.ex. WinSCP.
När du lärt dig hur allt det här fungerar, vilket tar ett tag, så är man väldigt fri. Man kan starta upp en webbserver på blott en minut. Oslagbart!

Vad kostar det?
Även om man i EC2 enbart betalar för den serkraft man faktiskt använder skall det väl redan nu sägas att detta inte är det billigaste tänkbara alternativet om du bara skall lägga upp en enkel hemsida. Då kan du lika gärna hyra ett konto på Loopia.se. Men vill man ha en egen maskin törs jag säga att det här är riktigt prisvärt. Framför allt om din sajt kan tänkas växa okontrollerat. Serverkraft i molnet är inte lika billigt som lagring i molnet(Amazon S3) men ändå fullt överkommligt. Serverkraft hos Amazon styrs av 3 parametrar:
- Hur kraftig server du vill ha (liten, mellan eller stor) (betalar per använd timme)
- Hur mycket bandbredd du använder (per överförd Gigabyte)
- Hur mycket data du lagrar (per lagrad Gigabyte)
Här nedan visar jag några exempel på de servrar jag satt upp. Vad som stuckit iväg nedan är framför allt trafik mot den amerikanska linuxservern där jag installerat en Proxy för att kunna titta på filmer från amerikanska sajter som t.ex. Nbc.com eller Hulu.com och därför har datatrafiken vuxit så mycket. Sajterna från euorpa har däremot enbart använts för utveckling av av en webbplats och har inte i närheten av samma trafikmängder. Dock är dessa den stora modellens 64-bitarsprocessor varför processorkostnaden har blivit desto större.

Enligt modellen ovan kan du se att en liten server i Europa kostar 0.11 dollar per timme och således ca $80 per månad. I dagens växelkurs ca 640 kr per månad. Och med rimliga mängder datatrafik kan man väl gissa att det motsvarar ca 1000kr/månad för en mindre webbserver. Och det är väl ungefär hälften av vad man får betala för en dedikerad webbserver på ett svenskt webbhotell.
Det gör ju att man för ungefär halva kostnaden mot en dedikerad maskin i sverige får en server som kan klara av i stort sett hur mycket trafik som helst och där man inte behöver bekymra sig för backuper eller falerande hårdvara. Det tycker jag det kan vara värt om man har det behovet.
Ett av de största begräsningarna i webbläsare sedan dag ett har varit typsnitt. Man har varit begränsad till ett mindre antal fonter som fungerar i samliga webbläsare. Man kan ju tycka att det vid det här laget borde finnas metoder för att embedda fonter i webbsidor men så är icke fallet. Det finns olika typer av work arounds till detta problem. Den vanligaste är att använda Flash för att rendera fonter i rubriker genom plugins som t.ex. Wordpress Flash Titles. Ett annat alternativ är att använda serverside script som genererar GIF-bilder för rubriker. Jag förespråkar den senare då den belastar klienten minst men det kan vara lite bökigt att uppnå. Flash är betydlig enklare men båda har sina nackdelar. Framför allt är väl problemet Google-optimering. Texter som är genererade av flash är svåra att indexera och även om man lyckas är det långt ifrån optimala lösningar som luktar lite för mycket fulhack.
Just där för är Typface.js ett av de intressantaste kodbiblioteken som släppts på mycket länge. Det använder sig av Canvas-klasserna för att rita ut pixelgrafik genom Javascript. Detta fungerar numera i de flesta webbläsare. Och genom att först konvertera TrueType-fonter till kurvor i en Javascript-fil kan man rita upp vilka fonter som helst i canvasytor. Detta görs som vanligt genom CSS och sedan körs bara ett script som byter ut alla element med klassen: typeface-js. Man CSS-style’ar bara html-koden som vanligt och sedan lägger man in en script-fil och font-scriptfil och sätter helt enkelt bara font-family enligt nedan.
<script type="text/javascript" src="typeface-0.11.js"></script> <script type="text/javascript" src="helvetica_regular.typeface.js"></script> <div class="myclass typeface-js" style="font-family: Helvetiker"> Text here in Helvetiker font... </div>
Det enda kruxet med det här tillvägagångssättet är hur man konverterar TrueType-fonter till Javascript-kurvor. På Typeface-sidan finns ett verktyg för att göra just detta men de allra flesta kommersiella fonter är kodade med ett attribut som säger att de just inte får embeddas. Jag är inte säker på juridiken här men OM man faktiskt har köpt fonten kan jag tycka att man borde få embedda den på webbsidor. Så för att ändå konvertera fonten kan du ladda ned programmet Font Creator från High Logic. Genom att öppna fonten i det programmet kan du gå in i menyn på: Format -> Settings ->General -> Font Embedding och där klicka bort alla boxar. Sedan sparar du ned fonten och laddar upp den igen på Typeface-sidan. Då kan du konvertera fonten och lägga in den på din sida.
Exempel:
När jag jobbade mina första år i branschen föll det på Spockes lott att vara min mentor. När vi byggde våra projekt var jag väldigt färgad av högskolan och försökte tänka performance i varje läge. På ett sätt ett bra perspektiv på programkoden men ganska snart försökte han lära mig att: Flexibilitet är viktigare än performance. Jag uppfattade det som något slösaktigt coh provocerande men efter par år så förstod jag vad han menade. Hårdvara är billigt jämfört men arbetstid. Och kan man spara en veckas jobb genom att ersätta det med en server så är det tyyp värt det. En server är bilig och är lätt att uppgradera.
Om det man bygger inte kommer att skalas bortom denna värld är man ofta safe. Och ooptimerad kod behöver ju inte stå i motsats till horizontell skalning heller. Något som idag är mycket mer prioriterat än vertikal dito. Allt vi gör är trådar och då är det bara att lägga servern i ett moln och låta molnet lösa hastigheterna.
Tomas Hardware har skrivit en artikel i ämnet som är inne på samma linje. Han har till och med följande rekommendation för hur man skall jobba.
- Throw cheap, faster hardware at the performance problem.
- If the application now meets your performance goals, stop.
- Benchmark your code to identify specifically where the performance problems are.
- Analyze and optimize the areas that you identified in the previous step.
- If the application now meets your performance goals, stop.
- Go to step 1.
Vi har sedan i april 2008 jobbat med Magento Commerce. Anledningen var renoveringen av webshoppen till Libris.se. Vi ville väldigt gärna bygga sajten på ett öppet system och visste att OS Commerce fanns men sneglade också på Magento. Ett på pappret mycket mer intressant system. Magento fanns då redan i version 0.9 om jag inte missminner mig men det var ändå lite shaky att våga testa.
Den riktigt stora utaningen för Magento som vi såg det var hastigheten. Det gick odrägligt långsamt, i alla fall på de utvecklingsversioner vi körde på våra laptops. 1-2 sekunder för att ladda startsidan… utan produkter i databasen. Vi litade på att systemet skulle bli något snabbare i och med version 1.0 och så blev det om än fortfarande väldigt långsamt. Vi har fått rätt bra fart på sajten nu men inte helt av sig själv. Jag tänkte tipsa om vad våra erfarenheter av att jobba med Magento är och vad vi tycker att du skall göra för att speeda upp din egen installation.
Förslag på åtgärder:
- Linuxserver – PHP/MySQL skall köras på Linux. Inget annat. Skillnaden är dramatisk.
- CPU – Magento kräver vertikal prestanda och en snabb processor är din viktigaste tillgång. Så snabbt du bara kan.
- Mycket minne(4G B) – Detta hjälper inte direkt men behövs om du vill cache’a bra.
- Installera eAccelerator. Ett lysande verktyg som gör den enskillt största skillnaden vid sidan av Linux/CPU.
- Tune’a installationen genom att följa rekomendationerna från Varien för MySQL-performance
Den finns ytterligare en åtgärd som inte testat ännu. Att flytta över app/var-mappen till en ramdisk. Det är alltså denna mapp som sparar sessioner och cache och om den får ligga i minnet istället för på disk kan man nog speeda upp sajten något.
Men i slutändan är det PHP som är den stora flaskhalsen. MySQL tar sällen mer än 20-30% för oss medan varje anrop är väldigt segt. Detta löses enbart genom vertikal performance varför du inte skall ligga i en virtuell miljö. Jag hade själv hoppats att man skulle kunna drifta Magento på t.ex. Amazon EC2 men det är bara att glömma. Skaffa en egen brutal server och följ uppmaningarna ovan så får du en fullt fungerande installation av Magento.
Jag pratade lite med Emanuel igår ang. Spotifys framtid. Jag har testat programvaran sedan i våras och är på många sätt imponerad. Det är en suverän programvara och Philip och grabbarna har gjort ett grymt jobb. Men frågan kvarstår: Kommer Spotify att överleva riskkapitalet? Man har två stora utmaningar för att lyckas med det.
Mobilt spotify
Jag tror man måste lyckas i mobilen för att få ett genomslag i mainstreamleden och avgörande blir nog hur man lyckas i iPhone. Lyckas man inte där har jag svårt att se att man skulle lyckas någon annanstans. Men gör man det öppnas nog dörren till en rad andra mobila enheter. Problemet med detta är förstås att man är så utlämnad till mobiloperatörernas nätverk. 3 som är en av de generösaste aktörerna i sverige inför nu ett tak på datatrafik och tycker att de 4.4GB per månad som snittet använder alldeles för mycket. Och jag gissar att ett flitigt användande av Spotify som är baserad på peer-to-peer-teknik använder betydligt mer än så.
En fungerande affärsmodell
Även om jag ogillar skivbolagens taktik att göra sig ovänner med sina kunder genom att stämma folk till höger och vänster är det ändå avgörande att man lyckas hitta någon typ av fungerande affärsmodell för musik så att någon slant i alla fall landar i händerna på upphovsmannen. Jag har förstått att man på Spotify siktar på att ca 5-10% av användarna skall teckna månadsabbonemang för att få fri tillgång till musik. Och detta är ett bra upplägg. Men det är skitviktigt att man når detta för som avtalet är utformat med artisterna nu får inte artisterna några pengar om inte Spotify lyckats sälja reklam. Så även de är beroende att betalmodellen fungerar. Och då räcker det inte med att bara vara hajpad som idag. Man måste leverera riktiga pengar också.
Men jag är optimist och tror att man kan lyckas med detta. Man har gjort tillräckligt mycket rätt för att vara nära att lyckas. Men det finns också oroliga moln på himlen. Som t.ex. att Joost som i grunden har samma modell som Spotify nu lagt ned försöken med peer-to-peer-distribuerad TV. Jag vet inte om det är av tekniska skäl men är det så kan det ju finnas risk för att Spotifys tekniska plattform får svårt att skala upp på riktigt. Joost byter ju ben och går över till centraliserad distribution av programmen istället sedan man blivit omsprungen av Hulu.com.
Men men. Håll fanan högt Spotify så hoppas vi på det bästa.

De finns två läger på Internet. De som hatar flash och de som älskar flash. Och även om jag jobbade i 6 år på ett företag som nästan helt och hållet levde på flashproduktioner har jag fortfarande lite svårt för tekniken. Vill du animera eller visa film på nätet så finns i praktiken inget bättre alternativ som jag ser det. Men om man bygger gränssnitt, måste man verkligen använda sig av flash då? Ja länge har man i alla fall behövt göra det.
Nackdelen med att bygga gränssnitt och, huvaligen , publicera texter i flash är att man uppnår en usel sökmotoroptimering. I och med att ajax-baserade webbapplikationer slagit fram på bred front har även verktygetn för att animera på nätet ökat i antal väsentligt. Framför allt har jQuery skapat de flesta möjligheterna och möjligtvis även föregångaren script.aculo.us.
Den intressantaste sajten hittills som jag stött på är den holländska Achmea.nl. Språket må vara obegripligt men gränssnittet är riktigt imponerande. Och allt är baserat på javascript och Yahoos YUI-bibliotek.
Det blir verkligen tydligt hur vissa programvaror blir föråldrade och förr eller senare körs över av andra. Wordpress var ett verktyg som slog det mesta på fingrarna och nu blivit de facto standard som bloggverktyg. Joomla är ett verktyg som ligger pyrt till och snart kommer se sig omsprunget av en uppstickare. Jag tror att Squarespace kan vara ett sådant verktyg som springer om.
Länge har det saknats ett riktigt flexibelt lättanväntverktyg som vänder sig till dem som är mer intresserade av utseende än teknik. Och då tror jag att Squarespace kan vara ett riktigt intressant verktyg. Vid sidan av sin tydliga tyngpunkt på design och gränssnitt så har man utvecklat ett mycket lovande admingränssnit där man kan styra det mesta som idag görs via CSS utan att gå in och pilla i en CSS-fil.
Jag tror verkligen att detta verktyg har en nisch i portfoliokulturen och de frilansare som behöver exponera sitt arbete utan att skämmas för en ful sajt.
Den här filmen beskriver det mesta.












