Startsidan

Prenumerera på mina inlägg:
RSS-flöde

Kontakta mig gärna via e-post:
anders.fjeldstad@gmail.com

Följ mig via Twitter:
twitter.com/Hihaj

Sök bland alla inlägg:

Arkiv för april 2008

TinyMCE och medium trust i ASP.NET

söndag 27 april 2008 | Kategorier: Allmänt | 4 kommentarer

Det är alltid lite spännande när man laddar upp en ASP.NET-applikation man utvecklat lokalt till en webbhotellsserver. Kanske har man refererat till något användbart bibliotek som inte finns installerat på webbhotellet, kanske försöker applikationen göra något den inte får. Det senare fick jag smaka lite på nyligen.

Bakgrund: TinyMCE är en gratiskomponent för ”rich text editing” utvecklad av ett svenskt företag. Den används för att förvandla vanliga textinmatningsrutor till mer Word-lika fält där användaren kan formatera texten lite som han eller hon vill. Mycket smidigt! Om man till exempel gör ett kommentarsformulär för en blogg kan det vara kul att låta sina besökare enkelt skapa länkar eller göra delar av texten fet, kursiv eller understruken, för att ta ett simpelt exempel. WordPress använder det i sitt adminsystem. Det är en bra komponent.

Eftersom TinyMCE i grunden är 100 % Javascript så konfigureras den också genom Javascriptkod. Det kan lätt bli lite kladdigt, och som ASP.NET-utvecklare tycker jag det är trevligt om man kan samla all konfiguration på ett ställe – i Web.config. Detta har såklart Moxiecode (som utvecklar TinyMCE) tänkt på, och har därför tagit fram en .NET-anpassad version av TinyMCE, som bland annat lägger till en configSection i Web.config där man kan göra alla möjliga inställningar för komponenten. Bra initiativ!

När jag senast, och för första gången i ett ASP.NET-sammanhang, skulle använda TinyMCE (version 3.0.7) laddade jag glatt ner .NET-versionen och konfigurerade den enligt de exempel som fanns tillgänliga. Allt fungerade som en dröm lokalt, men när jag laddade upp min lilla applikation till utrymmet jag hyr av Loopia så smällde det direkt:

Required permissions cannot be aquired.

Whaa? Vad har jag gjort för fel? Inget! Det visar sig att TinyMCE-assemblyn i min bin-katalog kräver ”full trust” för att kunna kompileras och köras. Vilket är något som Loopia inte tillåter – i likhet med många andra webbhotell så kör de sin hostingmiljö i ”medium trust”, vilket innebär att de hostade applikationerna inte kan ta sig vilka friheter som helst. Jag förstår dem till fullo – jag skulle göra likadant.

Låt oss då ta ett steg tillbaka och fråga oss vilken del av TinyMCE det är som gör att komponenten som helhet skulle behöva ”full trust”. Det är ju en Javascriptkomponent (så står det till och med på utvecklarens hemsida – ”100 % Javascript”). Javascript = klientsideteknik. Varför kräver den en massa rättigheter på serversidan?

Min gissning är att det beror på att de bakat in sin så kallade ”GZIP Compressor”, hädanefter kallad ”Ulf”, i .NET-versionen av komponenten. Ulf bygger i sin tur på SharpZipLib som enligt uppgift ska kräva ”full trust”. Ulf är förvisso användbar och ska enligt utvecklaren minska den överförda storleken på TinyMCE med cirka 75 % vilket ju är bra.

Lösning: Jag Googlade som en tok för att hitta någon form av lösning på det här problemet, men hittade inget vettigt. Verkar helt sjukt att ingen stött på det tidigare (alternativt så suger jag obeskrivligt mycket som inte direkt ser hur man fixar det). Vad jag dock av en händelse testade var att ladda hem källkoden till .NET-komponenten, kompilera om den och referera till den istället för till den färdigbyggda assemblyn som jag tidigare använt. Poff – ”full trust”-kravet var som bortblåst.

Alltså:

  1. Ladda ned det utvecklaren kallar ”.NET Package”.
  2. Öppna solution-filen och bygg den med Release-konfigurationen.
  3. Kopiera den resulterande Moxiecode.TinyMCE.dll-filen till din webbapplikations bin-katalog (eller var du nu föredrar att lägga den) och referera till den.
  4. Ladda upp din applikation till ditt webbhotell och kör så det ryker!

Det är högst troligt att denna manuella manöver inte kommer att vara nödvändig länge till – Moxiecode fixar nog det där snart. Men nu vet du hur jag fick göra!

Morot för motivation

lördag 26 april 2008 | Kategorier: Företagande, Spel | 1 kommentar

April och maj är sjukt stressiga för min del. Dels har jag ett jobbuppdrag på sidan av mitt dagjobb som tar upp i princip all ledig tid, och dels har jag det sista certifieringsprovet för min MCPD att plugga till – båda har deadline i slutet av maj.

Hur hanterar man en sådan situation? I mitt fall väljer jag att bara bita ihop och ta i lite extra. Det är trots allt inte så ofta jag har så här stor arbetsbelastning, och snart är det dessutom sommar och semester, så jag räknar med att kunna återhämta mig ganska snabbt efteråt.

Sedan har jag en liten morot som höjer motivatinsgraden: härom dagen fick jag ett exemplar av spelet Call of Duty 4 av Annas arbetsgivare, som tack för att jag hjälpte till att vektorisera en logotyp åt dem för några månader sedan. Jag räknade verkligen inte med att få något för det, gjorde det för att vara lite schysst bara, men det är klart att jag blev glad när jag plötsligt satt med ett av fjolårets mest hyllade FPS i knät!

Jag väntar med att sprätta förpackningsplasten tills jag passerat någon betydande milstolpe i arbetet. Så nu är det bara att konvertera ASP.NET-kod till speltid…

Budgetspel is the shit!

tisdag 22 april 2008 | Kategorier: Spel | 3 kommentarer

Jag bläddrade nyss igenom lite ”budgetspel” hos ett par nätbutiker och insåg att det finns en hel del schyssta grejer som ger mycket värde för pengarna. Här kommer några tips på PC-spel under 150 kr:

  • Supreme Commander, 69 kr. Ett strategispel som jag själv bara testat betan av, men som verkade lovande och fick bra kritik när det släpptes. Förhållandevis hårdvarukrävande.
  • Battlefield 1942 (Deluxe), 49 kr. Ah, nostalgin. Så många linjär algebra-föreläsningar som fick stryka på foten…
  • GTA San Andreas, 129 kr. Stort, underhållande, soft. Ett äkta idlarspel.
  • Dark Age of Camelot, 19 kr. Okej, HÄR har vi MMORPG-nostalgin. Jag kanske inte på allvar kan råda någon att verkligen köpa det men samtidigt…19 kr? Kostar pengar per månad dock.
  • Rome – Total War (Gold), 109 kr. Fantastiskt bra strategispel.
  • Warcraft 3, 99 kr. Detta RTS håller fortfarande, med en bra story och mysiga miljöer. Inget för folk med WoW-abstinens.
  • Company of Heroes, 69 kr. Förra årets bästa RTS, utan tvekan.

CSS-nöt: Dynamisk "talande" webbplatsnavigering

måndag 21 april 2008 | Kategorier: Webbutveckling | 11 kommentarer

Jag håller nu på med att utveckla en webbplats där jag vill ha en ”talande” meny (se till exempel denna artikel i Smashing Magazine). Det innebär i princip att varje menyelement ska bestå av själva länknamnet plus en kortfattad beskrivning. Menyn ska vara horisontell och består bara av en nivå. Vidare vill jag att den presentationsmässigt ska vara helt dynamisk, så att jag kan generera den utifrån någon datakälla utan att jag manuellt behöver göra några inställningar för de olika menyelementen.

Det luriga är elementens bredd. Jag vill att varje menyelement (länk) ska vara precis så brett att länknamnet ryms på en rad – varken mer eller mindre. Beskrivningstexten ska anpassa sig till detta. Se exempel nedan:

Exempel på "talande" meny

Så vad är problemet? Strukturmässigt rör det sig om en länk som innehåller dels en rubrik och dels en beskrivning. Hur får man då länkens bredd att styras av rubriken, men inte av beskrivningstexten? Det har jag klurat lite på, men ännu inte hittat någon bra lösning. Dags för alla stylesheet-ninjor där ute att vakna ur slummern!

Några förslag? Jag kommer att uppdatera det här inlägget med den bästa lösningen som dyker upp.

Glöm inte: billigare SL maj-augusti

tisdag 15 april 2008 | Kategorier: Allmänt | Inga kommentarer

Jag tänkte bara påminna om att SL:s säsongskort för maj-augusti som vanligt ger ungefär en månads rabatt, så att man får fyra månadskort till priset av tre. Typ. Kan vara bra att tänka på om man vill spara lite pengar! Kanske går de till ett Playstation 3?

Här finns alla biljettpriser.