fredag 27 juni 2008

Server too busy – som det borde rapporteras

För någon som är relativt ny i Jaiku-världen och inte har sett deras 503-felsida, "Server too busy", började jag skratta ganska mycket när jag alldeles nyss möttes av följande sida.

Tänk om Athegas sida kunde vara lika eftertraktad så att vi kunde visa vår Star Wars-inspirerade felsida (som om vi hade någon). Vem tar på sig att fixa det?

onsdag 25 juni 2008

Litet väl genomskinligt?

Nu är den här, artiklar som uppdaterar sig själva på aftonbladet.se. Ett exempel på snitsiga användningsområden är Marcus Leifbys direktrapporteringar, som skrivs direkt på plats och uppdateras nästan varje minut. Tidigare har läsaren behövt ladda om sidan för att se om det hänt något. Nytt är nu att brödtexten gulmarkeras för att snabbt och tydlig informera läsaren att något har hänt.

Själva uppdateringen sker med ett vanligt asynkront XHR och är inget sexigt i sig. Gulmarkeringen sker med YUIs ColorAnim och är inte heller den så mycket att prata om.

Färganimeringen sker först från transparent till gult.

var anim = new YAHOO.util.ColorAnim(div, {backgroundColor: { to:"#FFFFCC"}});

När musen förs över brödtexten, tillbaka till transparent. Här uppstår det första problemet.

var anim = new YAHOO.util.ColorAnim(div, {backgroundColor: { to:"transparent"}});

YUI stödjer inte animering till transparent. Därför försöker jag ta reda på vilken bakgrundsfärg som gäller för diven som innehåller brödtexten genom att jobba mig uppåt i DOM-strukturen.

var Dom = YAHOO.util.Dom;
var parent = Dom.get(div);
var bgColor = Dom.getStyle(parent, 'backgroundColor');
while (parent && bgColor == 'transparent')
parent = parent.parentNode;
bgColor = Dom.getStyle(parent, 'backgroundColor');
if (parent.tagName.toUpperCase() == 'HTML') {
bgColor = '#fff';
}
}

Saken är biff! Efter tester i FF2/FF3, IE6/IE7 och Opera fick jag problem i Safari, mitt andra problem. Allting fungerade förutom att den gula färgen inte försvann när jag förde musen över brödtexten. Stöder inte Safari onmouseover på divar? Nej - det var inte det. Det visade sig till slut att transparent i Safari kallas:

rgba(0, 0, 0, 0)

Alltså, för att hitta den egentliga bakgrundsfärgen på en div som fungerar i de allra flesta webbläsarna, kan följande kod användas:

var Dom = YAHOO.util.Dom;
var parent = Dom.get(div);
var bgColor = Dom.getStyle(parent, 'backgroundColor');
while (parent && (bgColor == 'transparent' || bgColor == 'rgba(0, 0, 0, 0)')) { // rgba is Safari-transparent
parent = parent.parentNode;
bgColor = Dom.getStyle(parent, 'backgroundColor');
if (parent.tagName.toUpperCase() == 'HTML') {
bgColor = '#fff';
}
}

tisdag 17 juni 2008

FF3 är bara timmar bort

Med bara timmar kvar till släppet av Firefox 3 är det hög tid att börja förbereda nedladdningsfingret. Ett världsrekordsförsök, som vi har all anledning att stötta. Tänk er bara att tvingas utveckla i IE, inte bara utveckla för IE.

Så ladda ner, uppgradera eller byt till Firefox 3 nu!

Download Day

fredag 13 juni 2008

Nej, jag är inte besviken!

Det är fantastiskt vilket genomslag den nya iPhonen har fått i media, bland kollegor, bland late adopters och early adopters. Veckan har jag spenderat med att berätta att jag inte känner mig lurad, besviken eller arg på att jag så kort tid innan den nya iPhonen släpptes köpte den gamla. Det är många som undrar just det nämligen.

Jag visste när jag köpte den att det alldeles strax skulle komma en ny. Jag resonerade som följer. Jag var oerhört nöjd, exalterad och glad för min iPod Touch (som jag köpte samma timme den släpptes i USA). Först låste jag inte ens upp den, men efter några veckor kände jag mig tvingad och sedan var det ju ingen återvändo!

Jag har sedan slutet av nittiotalet varit helt beroende av min Palm. Då var det en Palm Pilot II. Jag importerade en från USA eftersom den hade bakgrundsbelysning. Nu senast var det en Palm Treo 650. Jag var nästan ensam om den eftersom så få förstår vilken bra PDA/Telefon den är. Jag har vid flera tillfällen provat att ta mig an HTC-telefoner med hemska Windows i och det går bara inte. Man får ju vänta i dagar på att den ska reagera på saker man gör.

Efter någon månad med min Touch insåg jag att den telefon jag varit beroende av, mycket för PDAn i den, helt plötsligt bara hade blivit en telefon för mig. Jag bar med mig Touchen överallt och var konstant frustrerad över att jag inte kunde hitta en öppen accespunkt. Touchen har ju ingen telefon i sig ;) Det naturliga svaret på mina problem var självklart iPhonen. Hur ska man då kunna hålla sig när man bor granne med Apple Storen i San Francisco under JavaOne?!

Alltså, 3G, GPS, bättre batteritid och pris. Allt finns i iPhone 3G. Vem behöver GPS när trianguleringen fungerar så läskigt bra (ja, jag bor i en tätort ;) Det enda jag verkligen kommer att sakna är i så fall Turbo 3G om den går att använda istället för en dongel till datorn. Om jag sedan kan använda den med Telenor - ja, då är det dax att byta.

Men som det är nu är jag en löjligt lycklig gamla-iPhone-kille.

måndag 9 juni 2008

\\\\\\\\

Jag måste bara kort få meddela att det ibland går litet orm i escapandet av strängar. Framför allt om man pysslar med reguljära uttryck i Java.

Idag skulle jag escapea alla backslashar (\) i en sträng. Jag ville helt enkelt byta ut dom mot två backslashar (\\).

I perl hade jag,

$txt = 'hej\n'
$txt =~ s/\\/\\\\/g
print $txt

> hej\\n

vilket ju känns ganska rakt på. Backslashen i sig måste escapeas med en backslash (\\). För att få två backslashar i den resulterande strängen blir det således (\\\\).

Nu över till Java:

String txt = "hej\\n";
txt = txt.replaceAll("\\\\", "\\\\\\\\");
System.out.println(txt);

> hej\\n

Härligt va?! ;) Anledningen till alla backslashar är att man först måste escapea backslashen i Javasträngen och sedan en gång till i det reguljära uttrycket.

För att få två backslashar måste man alltså

2 * 2sträng * 2regexp = 8

torsdag 5 juni 2008

Artikelkommentarer


Aftonbladet var verkligen inte först ut med detta, men sedan några timmar går det nu att kommentera artiklar på Aftonbladet. Inte alla ännu, utan bara artiklar på Fotbolls-EM-siten, http://www.aftonbladet.se/sportbladet/fotboll/fotbollsem2008/. Den första artikeln som fick kommentarer handlar om Ljungberg.

Artikelkommentarerna hanteras av Snack, Aftonbladets samlade plats för läsarmedverkan. Integrationen med publiceringssystemet för aftonbladet.se, Escenic, har jag jobbat med denna vecka. Det känns himla roligt att få komma i mål, lagom till EM och med en lösning som jag tror håller. Det är alltid en utmaning att skapa dynamiskt innehåll på en site med den enorma trafikmängd som aftonbladet.se hanterar.

På lördag drar EM igång och i samband med det kommer jag hänga på mina övervakningssidor för att se att det håller. Håll gärna tummarna!

På det privata planet har denna vecka varit fantastiskt intensiv. Helger, kvällar och mornar har varit en enda lång packorgie. Vi har nämligen köpt en ny lägenhet, ett rum större i samma hus där vi bor. Vi ska inte flytta än på ett tag, men den gamla lägenheten måste säljas och det innebär home staging. Sist jag sålde en lägenhet plockade man undan litet personliga detaljer som foton på familj och smutstvätt kanske. Det har ändrats litet. Vi fick en lista på några A4-sidor med "åtgärder" och har i princip tömt hela lägenheten och bara lämnat kvar viss möblering. I onsdags var första visningen, ytterligare två på söndag och måndag är planerade. Tipsa era vänner! ;)

Under visningstiden bor vi på Degerholmen (ute i skärgården i närheten av Torö, Nynäshamn) hos världens bästa svägerska och svåger.

Dit ska jag nu!