Archive for the ‘Henrik’ Category

Internet och 3G är coolt

november 10, 2006

Jag skulle vilja avsluta min Tech-ed blogg med att säga att mobilt internet är coolt. Nu sitter jag på flygplatsen och tittar på planet som jag ska åka med samtidigt som jag är uppkopplad via 3G och min mobil till Internet så jag kan delge mina upplevelser med er, Coolt. Frågan är om det är lika kul att se hur mycket det kostar så det är bäst att jag kopplar ner nu.

/Henrik

Annonser

Läskig taxiresa till flyget

november 10, 2006

Så, då är man på väg hem till Sverige och kylan igen, känns både jobbigt och skönt. Jobbigt för att man vande sig väldigt fort vid att kunna sitta på uteserveringar på kvällen enbart iklädd tröja, skönt för att man saknar alla där hemma.

Jag hade fixat det mesta kvällen innan, förbokat taxi, kollat hur lång tid taxin kommer ta och hur det ska gå smidigast att betala. I morse gick allt jättesmidigt, jag betalde för både mitt och Magnus rum eftersom han inte har något företagskort och efter en stund kom det en taxi och det var då det läskiga började. Mannen som körde taxin var en storvuxen spanjor med långt stripit hår i hästsvans och han kom inrusande till hotellet och undrade vem som bokat taxi. Jag gick ut till taxin med honom, la stora väskan i bagaget och hoppade in där bak. När jag kom in i taxin upptäckte jag hur ofräch den var, det luktade rök som bara den och delar av säterna var lagaded med svart tejp. Vi började åka och då stod taxametern på 5.5 Euro vilket är i alla fall dubbelt mot vad den stått på när vi tagit en taxi på gatan, men jag gissade att det var framkörningsavgift. Vi åkte iväg och efter en stund så tände han en cigarett och vevade ner sin ruta, jättemysigt, NOT. Han sa några ord på engelska någon gång ibland, men det var svårt att förstå vad han sa och när jag tänkt lite så kom jag på att han påminde mig om en sådan där utkaster i en maffiafilm. Själva resan gick bra förutom att det var dålig luft i taxin och när vi kom fram stod taxametern på 18.5 Euro. Jag var precis på väg att säga att han kunde skriva ett kvitto på 20 Euro så jag skulle slippa mynten, men då tryckte han på någon knapp och vips så var det uppe i 27.5 Euro så jag frågade varför det blev så. Då kunde han självklart inte ett enda ord engelska och började peka på ingången till terminalen. Jag orkade inte tjabba och jag visste inte hur jag skulle kunna det när han inte pratade engelska så det slutade på att han skrev ett kvitto på 28 Euro och jag gissar att jag precis blev rippad på 10 Euro, men jag kom i alla fall fram i tid och säkert så man får väl vara nöjd.

Hälsningar från Henrik

november 10, 2006

ASP.NET: End-to-End

november 9, 2006

Läs hela texten här:

SQL Server Error Handling in T-SQL and in SqlClient

november 9, 2006

Bob Beauchemin
Director Of Developer Skills
SQL Skills
Blog: http://www.sqlskills.com/blogs/bobb

Oj vilken intressant session som båda var toknegativ och possitiv. I och med SQL Server 2005 så kan man använda Try-Catch i T-SQL vilket låter helt superbra eftersom det gamla if @@ERROR <> 0 efter varje del var/är superjobbit. Dock har de inte implementerat det fullt ut i alla funktioner så det går t.ex. inte att använda i funktioner, men det går att använda i lagrade procedurer och det är det vi använder mest. En väldigt stor skillnad mellan @@ERROR i 2000 och Try-Catch i 2005 är att @@ERROR alltid skickade tillbaka felet till klienten och  try-catch gör aldrig det. Vi gick igenom en massa olika varianter på hur man kan skicka tillbaka felet till klienten och försöka få med det ursprungliga felmeddelandet så att man kan fortsätta ha sin felhantering i klientapplikationen och slutsatsen är att det går, men man måste göra det på lite speciella sätt. Dock är sammanfattningen att det är bra att använda Try-Catch eftersom felhanteringen blir mer enhetlig och mer lättläst men ska han ha rik felhantering hos klienten måste man bygga in egen parsning av de meddelande som kommer tillbaka.

Asynchronous ASP.NET Programming

november 9, 2006

Jeff Prosise
Cofounder, Wintellect (www.wintellect.com)

Asynchrone ASP.NET

Det finns två olika sätt att göra sina aspx-sidor asynchrona men den som har mest möjligheter är AsyncTask. Anledningen till att man vill göra sinaaspx-sidor asynchrona är för att annars kan det inträffa att man får 503: Server Cannot responde-fel vid hög belastning eftersom arbetstrådarna i IIS’en tar slut. Många gånger när dessa tar slut så är det enda de flesta av trådarna gör är vänta på att en kommunikation med en extern källa ska bli klar. Därför ska man alltid se till att programmera så att all kommunikation med externa källor som t.ex. databaser och webbservicer är asynchrona.

Det går att skapa egna HTTP-Handles för att effektivisera när man t.ex. vill hämta upp bilder dynamiskt från databas eller webbservice. Dessa handles går också att göra asynchrona. Jag såg inget direkt behov av detta hos oss eftersom vi har alla våra bilder på hårddisk, men absolut något att titta på om man har lite tid över för man kan alltid hitta något användningsområde.

Det går också att bygga egna HTTP-Modules och stoppa in i IIS’en. En IIS-Module är en modul som bearbetar ett request innan det går vidare till själva http-handle’n och aspx-sidan. Här kan man lägga till egna moduler för att t.ex. kolla efter sql-injections försök och hindra dessa request innan de ens når webbsidorna. Det går även att t.ex. göra sin egen loggning om man vill det. Här ser jag lite användningsområden för oss och det är dels för att filtrera bort skit-request som är hackningsförsök samt att göra en extremt snabb loggning av ljudet så att det alltid går att säga vilket ljud som är det mest lyssnade på och liknande.

Visual Basic 2005 – Advanced Application Developing Tips

november 8, 2006

Föreläsare: Joe Binder

Sessionen innehöll inte en massa powerpoints utan istället visade han en massa tips och tricks som han använder när han programmerar. Det fanns både sådan som absolut är intressant och sådan som vi inte kommer använda.
Templates
Man kan/bör exportera sådana klasser som används i många project som templates så de blir enkla att lägga in i nya projekt. För vår del är ett väldigt bra exempel loggningsklassen som Anders Stenberg byggde första versionen av som i alla fall jag använder i alla applikationer jag skriver.
Debug
Vid debuggning så går det i 2005 att sätta vilkor på brytpunkterna så att den bara hoppar in vid just detta villkoret och detta är väldigt intressant eftersom man ofta vill ha en brytpunkt vid t.ex. en loop, men man vill inte hoppa in i loopen varje gång utan bara vid specifika tillfällen. En annan intressant sak var att när man debuggar så kan man precis som innan hålla musmarkören över en variabel och se vad den har för värde men det nya är att man i debuggläget kan ändra värdet om man ser att det är något fel och sedan fortsätta debugga. Detta är väldigt användbart om man långt inne i en debugg upptäcker att man gjort ett litet stavfel så kan man rätta till det utan att behöva göra om allt.
Using
Om man skapar ett object av någon klass man vet måste stängas oavsett vad som händer så ska man använda using istället för dim eftersom då sköts allt sådan automatiskt även om applikationen kraschar.

Syncronizing Data with a Server in SQL Server 2005 Everywhere Edition

november 8, 2006

Steve Lasker
Blog: blogs.msdn.com/SteveLasker

SQL Everywhere Edition är efterföljaren till SQL Express och har uppdaterats med de önskemål som kommit in till Microsoft. Sessionen gick igenom vad det finns för möjligheter att göra lokala lagring av data och synkronisering av denna. För att göra sådant så kan man idag använda SQL Express för lagringen och sedan Remote Data Access (RDA) eller Merge-replikering för att synkronisera datan.

Jag hade lite förhoppningar om att kunna komma på lite intressanta sätt att få Isidor att inte bli helt nätverksberoende men tyvärr kändes det inte som det fanns några bra tekniker för detta. Det kommer komma en vidareutvecklad variant i nästa version av Visual Studio men det känns lite långt borta så just nu så får vi nog istället försöka titta på de funktioner som finns inbyggda i asp.net 2.0 med profilering.

Powerpoint presentation

Introduction Visual Studio 2005 Team Edition for Database Professionals

november 8, 2006

Denna produkt som ofta kallas DataDude ingår som en del i Visual Studio 2005 Team Suite men går att köpa enskilt och kostar då lika som de andra delarna i Team Suite.

Det som produkten gör som inte vanliga VS gör är att göra det möjligt att lägga upp SQL-schema i ett projekt så man kan jobba med den precis som ett vanligt utvecklingsprojekt med versionhantering och liknande. Det gör det också möjligt att göra schema och data-jämförelse mellan projektet och en utveckling eller produktionsdatabas, alt från en databas till en annan. Man kan säga att de har fört in det SQL-Compare kan men jag tycker att SQL-Compare är lättare och mer användarvänligt. Produkten gör det också möjligt att göra unittesting på databasen på ett enkelt sätt vilket är det enda som egentligen gör produkten lite intressant, men jag tycker inte det är en anledning till att köpa den då den är väldigt dyr.

SQL Server 2005: Optimizing Procedural Code

november 7, 2006

Kimberly L. Tripp
Blogg: http://www.SQLskills.com/blogs/KimberlyPowerpoint presentation
Ännu en superintressant föreläsning av Kimberly, hon är absolut min favorit bland föreläsarna. Denna session handlade om att optimera sina lagrade procedurer så de fungerar så bra som möjligt i servern. Den berörde inte direkt hur man skriver kod utan den fokuserade på hur sql-servern hanterar frågorna och hur den cachar sin plan på hur den ska exekvera koden på bästa sätt. Det låter ju väldigt bra att den cachar planen så den slipper räkna ut den varje gång, men är det alltid bra? Svaret på den frågan är Nej, det är ofta bra, men ibland kan det ställa till stora prestandaproblem.

Den stora grejen här är att det inte finns några bra regler att följa som säger om man ska tvinga sql-servern att hitta på en ny plan eller inte eftersom planen läggs upp för hela lagrade proceduren och ofta har man ganska komplicerade procedurer. För att man ska kunna ta reda på om detta är ett problem och även om det är ett problem att servern skapar nya planer hela tiden så använder man profiler tillsammans med Query Analyser. Profiler för att hitta information om när det sker en ”recompile” och för att upptäcka när det sker väldigt många läsningar fast det inte borde göra det. Query analyser för att ta reda på vad i proceduren som orsakar detta och för att testa vad som är bäst. Kort sagt, ganska mycket trial and error.

Jag tror att det är ett problem vi har i Isidor med dåligt uppsatta planer och även problem med för många recompiles i onödan och jag hoppas kunna ägna lite tid åt att analysera detta under slutet av året.