MSDN Live Kalmar

26. april 2009
MSDN Live kommer till Kalmar den 7:e maj där temat är uppdelat i två delar:
  1. Ramverk och verktyg (förmiddag)
  2. Rika klienter och webb (eftermiddag)

Agendan för dagen:

08.30 – 08.45 Inledning
Introduktion av .NET Framework, Visual Studio och resurser för utvecklare på Microsofts plattform och produkter. Det kommer även redovisas en hel del tips och trix för hur vi som utvecklare kan bli bättre och mer produktiva när vi bygger lösningar och applikationer.


08.45 – 10.00 .NET Framework 1-2-3
Grunder i .NET Framework.
Vad är CLR?
Hur fungerar kompilatorer och exekveringsmiljön?
Hur skiljer sig kompilerad kod (ASP.NET) från interpreterad kod (ASP)?
Och vad blir vinsterna?
Hur migrerar vi våra tidigare lösningar från ASP och VB 6 till .NET Framework, och varför ska vi göra det överhuvud taget?

De kommer även att gå in på generiska typer och metoder, delegater, WCF, WF, WPF och andra viktiga koncept i ramverket.

10.30 – 11.00 .NET Framework 4.0
Framtidens .NET Framework, 4.0. Genomgång av parallella lösningar, dynamiska språk och datatyper samt andra nyheter i både språk och ramverk.

11.00 – 12.00 Visual Studio igår, idag och imorgon
Visual Studios utveckling och nyheter i Visual Studio 2010.

13.00 – 13.50 XAML-revolutionen
Genomgång av vad XAML är och varför Microsoft satsar stort på ett deklarativt språk.
Praktiska exempel där XAML används i Visual Studio och Expression Blend. Nyheterna som kommer i XAML 2009.

14.00 – 15.00 ASP.NET MVC

ASP.NET MVC är ett nytt ramverk för webbutveckling som möjliggör en tydligare separation mellan domänmodell, affärslogik och gränssnitt än vad som varit möjligt med ASP.NET Web Forms.
Demonstration av hur en ASP.NET MVC-applikation enkelt kan skapas utifrån en befintlig datamodell och undersöker mer avancerade koncept som Model Binders, Action Filters och AJAX-integration.

15.30-17.00 Silverlight 3 och .NET RIA Services

Nyheterna i den kommande versionen av Silverlight samt genomgång av .NET RIA Services.

Just nu värderat 4.5 av 2 människor

  • Currently 4,5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Allmänt

Googles PageRank algoritm (The PageRank Algorithm)

14. april 2009

Googles PageRank algoritm (The PageRank Algorithm)

Google använder en algoritm som kallas för PageRank för att bestämma sidors ranking i resultatlistan. Det som är viktigt i den är att en sida har många och bra länkar till sig, istället för att sidan innehåller ordet en massa gånger.

Google PageRank Algoritmen som räknar ut detta PageRank-värde:

Enkelt sagt så fungerar denna algoritm så att om PR ska räknas ut för sida A, så tas summan av PR-värdet för alla sidor som länkar till A. Dock delas PR-värdet från varje sida med antal länkar som finns på sidan (alltså faktorn C(x)). Konstanten d används för att reglera hur mycket PR-värdet ska sjunka genom en länk. Det brukar uppskattas till att vara ca 0,85.

Exempel:
PageRank A B C PageRank A B C
Låt oss se vad som händer om vi lägger till en länk från sida A till sida B.
PageRank A-B PageRank A-B
Som synes i tabellen ovan så har siffrorna ändrat sig lite. Sida A och C har samma PR-värde, men B har fått högre värde eftersom den har fått en länk till sig.

Låt oss se vad som händer med dess värde i den första iterationen. PR(B) = 1 – 0,85 + 0,85 * PR(A) / C(A) = 0,15 + 0,85 * 1 / 1 = 1.

Efter den första iterationen är alltså PR-värdet för sida B fortfarande 1, till skillnad från de andra sidorna som har fått värdet 0,15.

Om vi nu testar att köra en iteration till, så kommer PR(B) den andra gången att använda det uppdaterade PR-värdet för sida A, varför PR(B) = 0,15 + 0,85 * 0,15 / 1 = 0,2775.

Sidan B har alltså fått ett högre PR värde än de övriga två sidorna, p.g.a. den länk som sidan A har till B. Om man skulle söka på ett ord som finns i dessa sidor så skulle nu B hamna före de andra två i resultatlistan.

Vad hände med följande länkstruktur som synes till höger? I denna struktur så länkar alla sidor till varandra. Hur påverkas PR-värdena?
PageRank A-B-C PageRank A-B-C
Om vi fortsätter med att testa sida Bs värden, så kommer formeln att ge följande värde vid första iterationen. PR(B) = 1 – 0,85 + 0,85 * (1/3 + 1/3 + 1/3) = 1.

Notera att det nu finns tre sidor i summan för inlänkar till B, och att PR(x)/C(X) är 1/3 för varje sida. Eftersom sida A har tre länkar ut till andra sidor, så får B bara en tredjedel av As PR-värde. Dock får sida B PR från övriga två sidor också, vilket gör att summan fortfarande blir 1. Samma sak kommer att gälla för sida A och C.

Skulle man testa en andra iteration så skulle inget förändras eftersom alla sidor behållit sitt PR-ett värde.

Ur detta kan man dra ett antal slutsatser. Om vi ser på den totala PR-summan för alla tre sidor så kan man se att den nu ökat från 0,15*3 till 1 * 3. Detta är betydelsefullt om vi tänker att dessa tre sidor tillhör en och samma webbsida. Det är då bra om man har så hög PR-summa som möjligt.

Det verkar alltså som att ju fler länkar man har i sin sajt, desto högre PR-summa kommer man få. Då kommer frågan, ska man på sin webbplats se till att alla sidor länkar till varandra, och på det sättet maximera webbsajtens PR-summa?

För att svara på den frågan så undersöker vi följande länkstruktur. I denna struktur så länkar alla sidor till A, och A länkar till alla sidor, men B och C länkar inte till varandra.

Uträkningen behöver vi inte gå igenom igen, den fungerar precis som tidigare. Det blir dock ganska mycket jobbigare att stabilisera PR-värdet för denna struktur. Efter ca 100 iterationer så har PR-värdet stabiliserat sig på de värden som visas i tabellen.

Om vi summerar dem så ser vi att vi fortfarande har ungefär 3 för dessa tre sidor, dock har sida A nästan dubbelt så högt PR-värde som övriga två sidor. Detta är ganska logiskt med tanke på att alla sidor länkade till A, men inte inbördes mellan B och C.

Man kan fundera på vad som skulle ha hänt om B och C endast skulle ha länkat till A, men A inte länkade tillbaka till B och C som den gör nu. Faktum är att A skulle inte ha haft lika högt PR-värde då, så det lönar sig för A att länka till B och C.

Man kan se det som att A ökar B och Cs PR, och därigenom får högre värde själv.

Vad är det då för bra med denna struktur? Jo, om vi har en webbsida som vi vill skall komma högt upp i resultatlistorna så måste vi få någon sida som har så högt PR-värde som möjligt. Vi får en sida som har 1.46, till skillnad från tidigare struktur där alla hade PR 1. Genom att placera de viktiga orden i sida A, så kan denna webbsajt komma högre upp i resultatlistorna.

Detta är också en ganska vanlig länkstruktur på en webbsida. Oftast är det så att startsidan länkar till andra sidor, och alla sidor i en sajt länkar till startsidan.

Det är då startsidan, eller sidor högt upp i sajtens struktur som kommer högst i resultatlistorna. Denna länkstruktur är också lämplig för vanliga besökare, eftersom de ofta vill kunna gå både nedåt och uppåt i sajtens struktur på ett naturligt sätt. Man bör dock tänka efter när man skapar strukturen, så att viktiga sidor får många inlänkar från andra sidor.

Just nu värderat 4.2 av 6 människor

  • Currently 4,166667/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Allmänt, SEO

Hur fungerar Googles sökmotor

6. april 2009
Hur fungerar egentligen Googles sökmotor, och hur kan den söka igenom alla webbsidor på bråkdelen av en sekund?

Anledningen till att detta fungerar är att så kallade "crawlers", spindlar (dvs automatiserade datorprogram) används för att i förväg ladda hem alla webbsidor och skapa ett index för alla ord som finns på webbsidorna.

När man sedan söker på ett ett eller flera ord via sökmotorns "Searcher" (webbgränssnittet), så används detta index för att se vilka sidor som innehåller de ord som man angivit.

Sökmotorn behöver såklart inte gå ut och leta igenom varje sida när en fråga ställs, vilket skulle ta alldeles för lång tid. Istället används endast detta index för att se vilka sidor som innehåller orden.

Googles indexeringsprocess:

Arkitekturen för Googles sökmotor

1. Googles crawlers letar upp sidor som de hittat länkar till och sparar sidorna i Repository. Detta kan synas i loggfilerna för en webbplats genom att "Googlebot" har besökt sidan.

2. The indexer tar sedan sidorna ur Repository och skapar ett gigantiskt index som placeras i de sk Barrels, vilket är ett stort distribuerat system för att snabbt kunna sökas igenom.

Detta index innehåller information om varje ord som har funnits i de olika sidorna. Det innehåller information om var någonstans ordet finns i varje dokument, samt lite annan information så som en uppskattning av fontstorlek och hur viktigt det verkar vara för dokumentet.

3. The Indexer letar även upp alla länkar som finns på en sida, och lagrar dessa länkar i Anchors-servern. URL Resolver går sedan igenom dessa länkar och skapar adresser som sedan kan användas för att hämta hem dessa sidor.

4. URL Resolver gör även en annan viktig funktion, nämligen att ha kontroll på vilken sida som länkar till andra sidor. En lista med sådan länkinformation sparas i Links och kan sedan användas för att räkna ut ett så kallat PageRank värde för varje sida.

5. The Sorter sorterar om information som finns i Barrels från att ha varit sorterat på sidor, till att vara sorterat på orden. Man skapar på så sätt ett så kallat "inverted index", som behövs vid sökning.

6. The searcher tar detta "inverted index" och använder det för att svara på frågor på Googles hemsida. De ord man skriver in letas upp i inverterade indexet, som i sin tur returnerar de sidor som innehåller orden. Den lista som man fås sorteras sedan enligt en avancerad rankalgoritm som försöker visa de mest relevanta sidorna längst upp i resultatlistan.

Därför slog Google igenom

Google var mycket duktiga på att få med många sidor i sitt index, deras "coverage" var mycket högt, de kunde inkludera fler sidor än de flesta andra sökmotorer, mycket tack vare deras distribuerade nätverkslösning. De hade tusentals datorer i olika kluster som samarbetade i ett speciellt utvecklat nätverk för att snabbt kunna indexera och svara på frågor.

Den viktigaste anledningen till Googles framgång var ändå hur deras ranking fungerade. Den grundläggande idén om hur resultatlistan ska rankas var formeln TF/IDF (Term Frequency delat med Inverse Document Frequency).

Ett exempel, man gör en sökning på ordet "googled". TF är då antalet gånger som ordet förekommer på varje sida. Ju fler gånger ordet förekom, desto högre TF/IDF värde fick sidan och sådeles rankas sidan högre.

IDF faktorn är ett mått på hur unikt ordet är. Ord som är ovanliga kommer då att få större betydelse än vanliga ord. Om man t ex jämför orden "googled" och "en", så förekommer ordet "en" i många fler dokument på webben än vad ordet "googled" gör. Därför skulle ordet "en" inte ha lika stor betydelse för rankningen som "googled" om man sökt på båda dessa ord.

Det fanns flera problem med denna ranking, dels kunde man ganska lätt lura sökmotorer att få sin sida högt rankad genom att skriva viktiga ord många gånger någonstans på sidan. Man kunde även lägga in populära ord så som "microsoft" på sin sida och då direkt få många besökare på sin sida.

Detta sätt för att ranka sidor fungerade inte speciellt bra och Google utvecklade då en algoritm för att beräkna sidors värde, The PageRank Algorithm.

Jag kommer att gå in djupare på hur PageRank-algoritmen fungerar vid ett senare tillfälle.


Just nu värderat 5.0 av 5 människor

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Allmänt, SEO

Sociala Medier

5. april 2009
Sociala Medier är en kombination av teknologi, social interaktion och användargenererat innehåll. Det uttrycks ofta via forum, bloggar, wikier och communities.

Det används bland många företag och organisationer för att kommunicera med olika målgrupper. Det är mycket effektivt eftersom man får en snabb och enkel dialog.

Enligt undersökningar så använder fyra av tio svenskar sociala medier i någon form och det är MSN, Facebook och Lunarstorm som är de populäraste.

Man har på senare tid lyckats mäta hur de sociala medierna används bland de olika målgrupperna. Det har visat sig att yngre användare riktar in sig på att hålla kontakten med vänner samt planera aktiviteter. Tittar man istället på den äldre målgruppen så fokuserar de mer på att använda de sociala medierna för kompetensutveckling samt för att bevaka sin omvärld.

Det finns både för och nackdelar med sociala medier.
Fördelarna är att man enkelt får en dialog med sin målgrupp samt att det är tillgängligt för alla. Det är väldigt vanligt med sk "newsroom", där företag fritt kan uttrycka sig och interagera med besökarna.

Nackdelar kan vara ryktesspridning och integritetsfrågor som berör företaget eller organisationen. Det gäller att innehållet granskas och kontrolleras noggrant för att undvika problem.  Man bör även ha en administratör som ständigt bevakar kommunikationen.

Skillnaden mellan industriella- och sociala medier:
  1. Räckvidd - Både industriella och sociala tekniker kan nå ut till globala målgrupper, dock sprider sig de sociala medierna snabbare och är mer lättilgängliga.
  2. Tillgänglighet - industriell media ägs ofta av privata företag eller organisationer medan social media är tillgängligt för vem som helst, helt gratis.
  3. Användbarhet - industriell media kräver ofta speciella kunskaper medan sociala medier kan användas av vem som helst, helt utan några förkunskaper.
  4. Frekvens - produktionstiden för industriella medier kan variera mellan dagar och månader medan sociala medier publiceras direkt.
  5. Varaktighet - industriell media kan ofta inte ändras då det publicerats, exempelvis en tidning som har skickats ut til butikerna. Sociala medier kan man editera och förändra.

Just nu värderat 4.3 av 3 människor

  • Currently 4,333333/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Allmänt