fredag 04 april 2008 | Kategorier: Allmänt | 3 kommentarer

Jag har aldrig ägt någon TV. När jag flyttade till Norrköping lånade jag en under det första halvåret ungefär, sedan var jag helt TV-fri tills jag flyttade in i Sankt Pers Salonger, och där fanns det tillg¥ng genom…Jonas? Johan? Jag minns inte. Hursomhelst! Sedan jag flyttade ihop med Anna i Stockholm har vi använt hennes pjäs, som inte är helt olik Fuglesangs rymdhjälm. Nu har vi uppgraderat och för första gången äger jag åtminstone en halv TV.
40-tums Samsung med full HD-upplösning, jag välkomnar dig! Nu fattas bara en Playstation 3…
torsdag 03 april 2008 | Kategorier: .NET, Avanade, Microsoft | 1 kommentar
Kom precis hem från hemkammandet av min tredje MCTS-certifiering, ”Microsoft Certified Technology Specialist: .NET Framework 2.0 Distributed Applications”. Grymt! Nu har jag ”bara” kvar att skriva ett prov, sedan (om jag klarar det) är jag MCPD: Enterprise Applications Developer. Innan sommaren ska det ske!
torsdag 03 april 2008 | Kategorier: Allmänt | 3 kommentarer
Jag önskar att det fanns ett litet program som låg i bakgrunden och övervakade uppdateringar för en försändelse hos Posten. Jag vill liksom veta när paketets status har uppdaterats, utan att själv med jämna mellanrum behöva gå in på Postens webbplats och göra en manuell kollisökning.
Man hade kunnat lösa det genom att ha kollisökningen uppe i ett fönster som uppdateras automatiskt förstås. Jag tittade lite på formulären som används för kollisökning. Det som de flesta säkert använder utnyttjar POST för att skicka kollinumret till själva spårningssidan, vilket omöjliggör att man t.ex. lägger till ett bokmärke för snabb åtkomst. Men det finns ett till formulär som av någon anledning använder GET. Såhär ser en URL ut som kan användas för direkt kollisökning:
http://www.posten.se/tracktrace/TrackConsignments_do.jsp?
trackntraceAction=saveSearch&lang=SE&consignmentId=83689516055SE
Det sista i adressen är variabeln consignmentId och innehåller själva kollinumret. Adressen skulle kunna användas för att skriva ett minimalistiskt API för kollisökning, vilket i sin tur hade varit smidigt om man skulle ta sig för att faktiskt utveckla exempelvis en widget/gadget eller motsvarande.
Undrar om det finns fler än jag som skulle vilja ha något i den stilen?
Uppdatering: Jag har skrivit ett mycket simpelt .NET-API för hämtning av statusinformation för en försändelse givet ett kollinummer. Du får använda det till vad du vill. Jag testade det nyss och då funkade det fint, men det kan mycket väl hända att Posten ändrar på strukturen på sin sida och då kommer det med all sannolikhet att sluta fungera. Jag tar inget ansvar för följder av eventuellt användande, etc.
Ladda ned filen här: PostenAPI.dll
onsdag 02 april 2008 | Kategorier: .NET, Webbutveckling | 1 kommentar
Idag satt jag i kanske tre timmar med en ruskigt irriterande IE-visningsbugg som jag trodde skulle driva mig till vansinne. MEN jag hittade till slut en fix, eller workaround i alla fall.
Felscenario: Om man har en UpdatePanel utan innehåll (eller med osynligt innehåll) så kommer den, när den uppdateras, att renderas som en div-tagg, förutsatt att dess RenderMode är satt till Block, vilket är default. Taggen kommer, vare sig man vill eller ej, att innehålla en massa whitespace – som i sin tur triggar en visningsbugg i Internet Explorer 6. En vettig webbläsare förstår att en div som bara innehåller whitespace inte har något innehåll och därför inte ska ta upp plats på sidan. Så är inte fallet för IE6 – där kommer nämligen div:en att få samma höjd som den aktuella fontstorleken.
Sjukt frustrerande! Om det hade varit en vanlig statisk div så hade man kunnat komma runt det hela genom att manuellt ta bort allt whitespace mellan taggarna, men det kan man inte på något enkelt sätt med en standardkontroll, om man inte vill skriva om hela renderingen för kontrollen. Det vill inte jag, i alla fall.
Fix: Efter mycket lidande kom jag på en lösning. Lägg helt enkelt till ett absolutpositionerat element inuti UpdatePanel:en, till exempel s¥här:
<asp:UpdatePanel ID="upTest" runat="server">
<ContentTemplate>
<div style="position: absolute; width: 0; height: 0;"></div>
</ContentTemplate>
</asp:UpdatePanel>
Problemet löst! Visst, jag tycker inte om att lägga in markup som inte gör något, men om det krävs för att lösa en bugg som annars får sidan att se helt muppig ut s¥ implementerar jag den utan att blinka.