Roligt spam

Fick ett fruktansvärt kul spam till min profil på swedishstartups.com. För att vara extra vänlig så har spammaren översatt det hela till svenska per automatik med ett roligt resultat.

favour.david95@yahoo.com
Komplimang om dagen, hur mår du inklusive arbete och företagande där borta, gissar böter.
Mitt namn är positiv, på jakt efter en man som förstår kärleken som tillit och tro snarare se det som ett sätt kul men en mogen man med sinne för humor efter att ha läst din profil på (www.swedishstartups.ning.com), faktiskt, jag drar intresse om du så kontakta mig direkt med den här e-postadress och här är det (favour.david95@yahoo.com) Jag tror att vi kan börja här, väntar på att höra från dig för att jag skicka mina bilder till er för vidare införsel.
kyssar med kärlek och vårda dig.

favour.david95@yahoo.com
Compliment of the day,how is your health including work and business over there, guess fine.
My name is favour, in search of a man who understands love as trust and faith rather seeing it as a way of fun but a mature man with good sense of humor after reading your profile at (www.swedishstartups.ning.com) ,in fact,i derive interest on you so contact me directly with this email address and here is it(favour.david95@yahoo.com) i believe we can start from here, awaiting to hear from you to enable me send my pictures to you for further introduction.
kisses with love and cherish you.

Fredagsposten

Det har varit dåligt med juicy updates med statistik på sistonde. Det beror på att det går helt sanslöst dåligt för mig. Google har haft som hobby att sänka mina sista fungerande siter en efter en det senaste året. Trist men sant. Att jag fick det stora nöjet att stifta närmare bekantskap med skatteverket i form av en utdragen revision under december och januari (pga julledigheter, revisionen är avslutad nu) höjde inte direkt humöret på EF Hjalmar Wåhlander.

Nånting som i alla fall går framåt är Tidningar.nu där vi har ökat rejält både under jul och den efterföljande perioden. Vi har lagt mycket tid på optimeringar, småfix, pill och trill.

Det känns som att vi har förtjänat det här. Som ni kan se så kommer Jan 2010 att bli en bra månad också. Det är frukten av hårt arbete och ett totalt dödsförakt inför det faktum att vi bara har en mindre del av marknaden än så länge. Faktum är att vi ser det som en chans. Det är en stor marknad som andra redan har etablerat. Allt vi behöver göra är att vara bättre. Effektivare. Mer dödsföraktande. Det är marknadsandelar vi skall erövra. Det är egentligen inte en diskussionsfråga om hur utan om när. Det är klart vi blir påverkade när våra konkurrenter verkar förbereda sig på ett byte av affärsmodell, men varför ta ut dåliga nyheter i förskott? Fuck it – lets do it.

Av flera anledningar har jag varit rätt tyst om vad jag har sysslat med sedan Tuurf. Under/efter sommaren så utvecklade jag en demo för iPhone av Tuurfs plattform. Det är inget vi kommer att släppa snart, men det är en produkt vi använder för att visa upp vad Tuurf kan göra för intresserade företag. Av tidsskäl har jag fått släppa en del av mitt engagemang i projektet. Om ni vill ha kontakt med våra mer affärsinriktade delägare i projektet så kontakta mig för en vidareförmedling av kontakt. Jag finns självklart kvar i projektet som majoritetsägare men det är i en betydligt mindre utvecklingsintensiv fas nu än tidigare tills de ekonomiska möjligheterna har förbättras.

Under slutet av förra året så jobbade jag och Peter/Sara hårt med att färdigställa vårt nya projekt, Upplevelser.nu. Vi smyglanserade under januari och det är en fungerande site även om det än så länge är lite skralt med produkter. Det är något vi kommer att jobba med framöver.

Förutom Upplevelser.nu har jag och Sumthin AB minst ett par siter till i pipelinen redo att snart släppas som satelliter till våra övriga projekt. När detta är klart jobbar vi vidare med den stora planen mot nästa större site.

Svågerpolitik & korruption

Rick Falkvinge skriver i sin allra mest konspiratoriska anda om det faktum att svenska polisen helt utan anledning tydligen kan göra en husrannsakan och plocka med sig datorer av fri vilja.

Det finns många frågor man kan ställa sig kring detta. Te.x. kan polisen verkligen göra husrannsakan helt utan anledning och brottsmisstanke? D.v.s finns det inget behov av en åklagares godkännande som i alla amerikanska tv-serier?

Till detta kommer även att vid en husrannsakan rörande it-misstankar så har svenska polisen vad det verkar som satt i system att plocka med sig allt elektroniskt de ser. Detta är förstås inte rimligt någonstans. Polisens trackrecord för vad de lämnar tillbaka och hur är minst sagt befläckat. Har alla PRQs kunder ens fått tillbaka sina servrar? Jag vet åtminstonde en person som fick tillbaka sin server med trasiga diskar och lämnades skadelös. Det vill säga, en helt oskyldig person som bara råkade ha sin server på fel plats vid fel tillfälle fick sina tjänster nedkopplade, sin hårdvara förstörd och data raderad. I just detta fallet hade personens backuprutiner brustit något dessutom, men det är kanske inte något vi kan skylla på sveriges polis.

I fallet som Rick tar upp, Mikael Nordfeldth, så ser det från mitt håll inte bättre ut än att Umeås kommun helt enkelt har lackat ur på honom och skickat Kling & Klang för att röra till det lite. Läser man mellan raderna på mmn-o.se så ser det helt klart lite suspekt ut.

- VPN-tunnel för all trafik (cant say I blame him..).
- “Databas över hashade filer”.
- Webbservrar med tv-streams
- Säkert lite ssh hit och dit.
- IRC som man kan misstänka kördes som fish.

Det bara skriker ju it-terrorist, skruva upp säkerhetsläget till 2 to midnight och på med kravallutrustningen!

Efter att ha gottat mig lite i kommentarerna på mmn-o.se så hittar jag följande godbitar.
http://blog.mmn-o.se/2009/12/07/inte-for-att-jag-vill-klaga-men/
och
http://www.vk.se/Article.jsp?article=239608. Det är väl egentligen precis just här hela historien börjar stinka på riktigt. Mikael har alltså skrivit ett rätt negativt inlägg om en kommunalanställd politiker tjänsteman* som helt uppenbart är korrupt och ger kommunens pengar till sin fru för att utveckla halvkass mjukvara. Mikael klagar på nämnda mjukvara och får en månad senare besök av Umeås finest. Sammanträffande? I think not.

* MMN-O påpekar att det inte är en politiker i kommentarerna.

PR-konsulter vs jurister, 1-0

Eva Gabrielsson skyfflar in ännu ett självmål genom sitt ständiga tjat om jurister. Stieg Larssons bröder sitter med kaffekoppen i händerna och är oförstående. Vem behöver juridiska ombud när man har en motståndare som henne?

–Nej, vi vill inte ha den uppmärksamheten. Kurdos bok är ingen hyllning till Stieg, men den känns ärlig och varm. Tog man upp allt dumt som skrivs till rättslig prövning så skulle man inte ha tid med något annat, säger brodern Joakim Larsson.

Förlåt för helt orelaterat material för bloggen, men det är svårt låta bli att anmärka på sådana här små guldklimpar.

Viktiga optimeringslärdomar

- Ladda inte dynamiska filer i onödan. Ty det är emot internets vilja (för bilder etc). Cacha till disk och ladda direkt om den finns istället för att gå över scriptet.
- Accelerera/bitcode-cacha din dynamiska kod.
- Använd lighttpd för statiska filer på en eller flera separata hosts. Snabbar upp den parallella nedladdningen av sidan.
- Slå ihop och minimera dina script med jsmin eller liknande.
- Merga dina CSS-file för att minimera antalet filladdningar från servern.
- Se till att mod_compress/mod_deflate är påslaget (sällan default).
- Göra inga beräkningar i SQL i onödan, använd aggregeringstabeller.
- Cacha ovanstående SQL-frågor med te.x. memcached som inte är direkt beroende av datum/random/användare (allting globalt i princip).
- Överanvänd hellre window.onload (med respektive eventhandler i ditt ramverk) än att ladda saker direkt i koden när sidan laddas. Objekt som laddas onload blockerar inte bilder, css och dylikt.
- Alla bilder och statiska objekt skall vara ordentligt taggade med expire och etags i http-headern.

Rent allmänt så kan man säga att det finns två grundregler. Se till att huvudsidan laddas så fort som möjligt, minimera sedan antalet anrop som måste göras efter det. Anledningen till detta är att segar huvudsidan kommer ingenting annat. Innehåller sedan huvudsidan 200 objekt som skall laddas så kommer webbservern inte att vilja leka snällt med dina användare.

Google mäter sidladdningshastighet med Google toolbar

Inte helt oväntat så är det bekräftat att google mäter laddhastigheten med hjälp av sina användare. Det är google toolbar som rapporterar sidladdningshastigheten till Google.

Om ni har tittat under Labs -> Site performance i Webmaster Tools så kan man se rader som:
“These estimates are of low accuracy (less than 100 data points)” eller “These estimates are of medium accuracy (between 100 and 1000 data points)” vilket är lite spännande. Om man har många sidor kan man approximera lite hur stor installationsbas googles toolbar har.

Man kan ju även fundera på om det inte är av intresse att installera google toolbar och surfa runt på sin egen site ordentligt så att google får “brett” med data.

Det är ju även värt att notera att för mig så står google analytics för en stor del av laddtiden på en cachad sida, detta är såklart inte så bra. Frågan är hur mycket 0.5-1 sek extra kommer att göra i längden, det blir ju dessutom samma för alla som kör med analytics, men konkurrensfördel utan?

Laddtidernas nemesis

Igår så laddade jag hem och installerade två helt okända programvaror som ingen någonsin har testat eller använt i produktionsmiljöer innan. MemCached och Lighttpd.

Båda två är föredömligt enkla att installera (bortsett från att ubuntus php-version inte stödjer det inbyggda OO-enablade memcached i v5.3). Lite apt-get och boom så har man båda två igång mer eller mindre. För PHP behöver man installera pecl-paketet för memcached om man är ett par versioner bakom 5.3.

Mina aversioner mot dessa två mjukvaror innan har varit lite blandade, med memcached så har jag framförallt varit rädd för att cacha för mycket och att det skulle äta ram i onödan. Lighttpd har jag haft lite svårt att se syftet med eftersom det kräver ett extra ip att köra en till servermjukvara. Och hur mycket snabbare kan en webbserver vara på att skicka filer än en annan?

Ordentligt irriterad av pingdoms rena rama skändning av mina senaste veckors hårda arbete med att optimera tidningar.nu valde jag att testa lite nya grepp.

Att få in memcached i min kod var relativt enkelt även om det krävde en del mindre förändringar. Man kan nog säga att min databas-kod är en rest av svunna tider.

Så ett typiskt anrop ser nu ut såhär
$res = mReadResMemCached("SELECT ....");
foreach($res as $row) { .. }

Mot tidigare
$res = mRead("SELECT ....");
while($row = mysql_fetch_assoc($res) { .. }

memResMemCached:
// returns a array -> hash but from memcached if possible
function mReadResMemCached($sql) {
global $queryCounter;
global $memcached_id;
$ret = false;
$time_start = getmicrotime();
if ($memcached_id) { // verifierar att memcached är ansluten
if ($ret = $memcached_id->get(md5($sql))) {
$queryCounter['memcached_read']++;
} else {
$queryCounter['memcached_write']++;
$ret = mReadRes($sql); // mReadRes returnerar array med assoc/hash-rader
$memcached_id->set(md5($sql), $ret, time()+60*15);
}
} else { // ingen memcached, läs direkt från db!
$ret = mReadRes($sql);
}
$time_end = getmicrotime();
$time = $time_end - $time_start;
$queryCounter['memcached_time'] = $queryCounter['memcached_time'] + $time;
return $ret;
}

mReadResMemCached gör ett par saker, den letar i memcached efter sökresultatet baserat på md5($sql) som är valid i 15 minuter. Den kollar så att memcached är igång och kör annars direkt mot databasen, samt den loggar till en global settings-variabel som i slutet av varje sida (när databasen kopplas ned) loggar antalet läsningar/skrivningar till mysql och memcached respektive samt tiden som lades på anropen. Detta gör att man enkelt kan se hur mycket man “vinner” på memcached vs mysql.

Eftersom det bara är på ett fåtal ställen jag behövde uppdatera det här för att maximera effekten av memcached gick det på någon timme inkl testning. Jag tog helt enkelt de centralt använda delarna samt de två viktigaste php-filerna.

Lite ovetenskapliga benchmarks… körda på produktionsmaskin och under gång, så inget att svära på i kyrkan direkt. Kommando: ab -n 500 -c 5 http://www.tidningar.nu/.

Som man kan se i den här logaritmiska bilden så är systemet som snabbast på att leverera data från databasen när båda cache-mekanismerna är igång. Värt att notera är “bara mysql” som har ett taskigt max-case då den invalidiserar sin cache för minsta lilla och dessutom är ett härke att konfigurera ordentligt.

Att slänga in Memcached och optimera sina vanligaste frågor gav alltså oss en vinst på 10ms i average-caset (index.php rör inte ens mysql nu). Detta syns tydligt på std dev som rör sig mellan 152.5 ms till 6.1 med memcached.

Hos pingdom gav memcached lite skillnad men man kan se hur laddtiden på php-filen försvann. Det stora problemet finns kvar. Apache låser sig på de senare filerna. Detta är ett problem alla nya användare drabbas av vid första laddningen och det kan ta ett par sekunder innan hela sidan är laddad. Jag misstänker att det är apache som inte gillar många parallela anrop.

Till en början körde jag lighttpd på port 8080 vilket inte är att rekommendera baserat på vårt sales-statistik idag. Istället bör man nog satsa på ett extra ip direkt (vilket vi har nu). Jag inbillar mig att det finns många elaka corporate-firewalls som blockar icke port 80-trafik.

Jämförelse bildfil-laddning i lighttpd vs apache vs apache + phpscript med motsvarande readfile(). Gjord med ab -n 3000 -c 5.

Den här grafen är lite dum eftersom den mäter så små värden, men oavsett om jag kör ab 10 ggr eller 1 så är lighttpd snabbare än apache. Framförallt är std dev mindre och lighttpd har inte den jobbiga tendensen att “hänga” sig (vilket man kan se rätt tydligt hos pingdom). PHP-script är en lite äldre metod jag körde för att dynamiskt generera bilderna. Nu kollar jag istället om filen finns på disk innan jag väljer vilken form av länk som skall skrivas ut.

Eftersom värdena har mätts lokalt så har alla faktorer som dns-uppslagning (finns i hosts-filen), tcp-sockets över nätet osv tagits bort, det är en rätt hyfsat “ren” mätning av vad webbservern går för.

Resultatet av detta sammantaget med memcached då? En stor skillnad. Låsningarna i apache är borta, kanske bara så enkelt som att det blev mindre filer för den att servera? PHP-filer laddar på mindre än 100ms, bilder laddar på ett par ms.

Sammanställning av pingdoms laddningstider och förändringen.

Det blir en liten dipp i testresultaten hos pingdom när jag slog på memcached och en stor förändring när lighttpd kopplades in.

Lösningen på terroristproblemet

Min brillianta hjärna har löst ännu ett av världsproblemen och det känns skönt att kunna lägga även detta till min lista.

- Oändlig energi.
- Snabbare än ljuset-resor (ja, well hänger ju delvis ihop med första punkten).
- Cancerns gåta.
- och ett större antal mindre punkter som den här marginalen är för liten för.

Hursomhelst. Om man läser economists artikel om kalsong-bombaren* så inser man att han faktiskt har rest hela vägen från Yemen till Europa med bomberna i sitt bagage (“package”)?

Nu måste vi ställa oss den centrala frågan, vad är syftet? Hade syftet varit att döda urskillningslöst så kunde ju Umar strängt bomben på vilket plan som helst. Hade syftet varit att döda amerikaner så hade han kunnat spränga planet över Atlanten.

Det enda rimliga antagandet är att Umar planerade att maximera incidentens uppmärksamhet. Attack mot amerikaner, på amerikansk jord. Alltså är det vi har att göra med uppmärksamhetshoror. En gruppering av individer vi internetanvändare kanske är mer bekanta med än jordens övriga befolkning.

Ordet terrorist bär på en hel del laddning, vi i väst har fyllt upp det med värden som många av de islamistiska ondingarna åtrår. Att vara terrorist är att vara en fruktad fiende, att vara en självuppoffrande extremist, att vägra rätta sig i leden, att offra sig själv.

Genom att ackompanjera varje tidningsartikel om terrattention whores med en bild på Boxxy samt använda uttrycket uppmärksamhetshora om terrorister kommer vi enligt mina projektioner att kunna sänka antalet utförda attentionwhore-dåd med 95%.

Bäst av allt? Jag har diagrammet för att bevisa det.


Figur 1. Antal dåd utförda av attention whores vs terrorister under 2010, projektion
Man kan helt enkelt inte argumentera mot bilder som den här.

Den förbisedda men kanske även bästa detaljen i sammanhanget är att vi ett snabbt och kvickt utfört drag även grupperar personer som Boxxy, tv-såpa-kändisar, Leif GW Persson, Jan Guillou och modebloggare i samma fack som terrorister. Där de hör hemma.

Update: jamen titta.. Det är inte bara jag!

Googles julklapp

Det här är vad google tycker om långsamma siter numera.


SIdan har varit långsam hela tiden men det peakade som tusan av oklar anledning 22 dec…

Deras andra julklapp ställer jag mig också lite tveksam till av ideologiska skäl. Inte nog med att de skickade 3-4 mail om det hela till mig. Jag trodde att google fattat grejen med att maila sina “kunder” i tid och otid – kort sagt, om jag inte får kommunicera med dem så är jag tacksam om de inte kommunicerar med mig via email.

Det faktum att google väljer att ge bort $20m kan tyckas lovvärt, men jag undrar om de pengarna inte är lite kastade i sjön jämfört med två andra alternativ.
- Ge pengarna i utdelning till aktieägare med uppmaning om att investera i tredje världen. Okey, det är futile men det ger högre levnadstandard för befolkningen på lång sikt.
- Använd pengarna internt för att göra det Google är världsbäst på, göra information tillgänglig.

Att de ger bort pengana tycker jag tyder på att google anser att de inte kan hjälpa världens befolkning på ett bra sätt själva och bedömer att andra gör det bättre (välgörenhetsgrupperna). Ett googlenät i sub-sahara för att kommunicera? Bättre information nischad mot behoven fattiga bönder har? Samarbeten med universitet i tredje världen? Bygga ut kommunikationsmöjligheterna? Det finns massor av projekt google inte ännu har utfört, deras satellit-nät som skulle täcka upp “3 miljarder fattiga människor” har det ju inte hörts så mycket av på ett tag …

Att urlen ligger under /advertising/ på google.com säger väl det mesta antar jag … hejaheja, vi gav den största donationen!

Nu är det jul igen #2

Precis som förra året så går tidningar.nu jämförelsevis strålande. Faktum är att vi redan igår dubblade vår per-dag-omsättningsrekord och då är det många härliga julhandels-dagar kvar för oss som säljer “virtuella” produkter (ja well, kunden får ju ett presentkort att stoppa under granen..).

Det kan vi till stor del tacka adwords för, optimering av våra annonser har jag lyckats investera åtskilliga timmar i under december. Resten av min tid har gått åt till att förbereda inför mitt något oplanerade möte med skatteverket som tycker att jag fifflar för mycket. Eller så kan det vara mina konstigt ifyllda deklarationer. Who knows. Extra kul är ju att de läser min blogg. Alla nya läsare är välkomna!

Ger begreppet transparens helt nya dimensioner.