<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Schack i molnet</title>
	
	<link>http://blog.snabbschack.se</link>
	<description>Schack, Silverlight 2, WCF, .NET 3.5</description>
	<pubDate>Thu, 18 Feb 2010 19:20:07 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/snabbschack" /><feedburner:info uri="snabbschack" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:browserFriendly></feedburner:browserFriendly><item>
		<title>Snabbschack.se blir Open source</title>
		<link>http://blog.snabbschack.se/2010/02/18/snabbschackse-blir-open-source/</link>
		<comments>http://blog.snabbschack.se/2010/02/18/snabbschackse-blir-open-source/#comments</comments>
		<pubDate>Thu, 18 Feb 2010 19:19:44 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Okategoriserade]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/?p=90</guid>
		<description><![CDATA[
Som så många utvecklingsprojekt genom tiderna så har detta fått stå tillbaka och prioriteras ner tyvärr. Främst på grund av ett heltidsarbete efter avslutad D-uppsats som tagit upp större delen av min vakna tid.
Detta projekt ska dock inte falla i glömska utan jag planerar att släppa kodbasen som öppen källkod på Codeplex - fri för utvecklare [...]]]></description>
			<content:encoded><![CDATA[<div>
<p>Som så många utvecklingsprojekt genom tiderna så har detta fått stå tillbaka och prioriteras ner tyvärr. Främst på grund av ett heltidsarbete efter avslutad D-uppsats som tagit upp större delen av min vakna tid.</p>
<p>Detta projekt ska dock inte falla i glömska utan jag planerar att släppa kodbasen som öppen källkod på <a href="http://www.codeplex.com">Codeplex</a> - fri för utvecklare att antingen jobba vidare på eller använda som inspiration eller bas för liknande projekt i framtiden. Och får jag själv tid över så kommer jag säkert själv realisera det en dag.</p>
<p>Återkommer när det är släppt och välkommen att kontakta mig med frågor!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2010/02/18/snabbschackse-blir-open-source/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sommartider</title>
		<link>http://blog.snabbschack.se/2009/08/03/sommartider/</link>
		<comments>http://blog.snabbschack.se/2009/08/03/sommartider/#comments</comments>
		<pubDate>Mon, 03 Aug 2009 11:44:20 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Okategoriserade]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/?p=84</guid>
		<description><![CDATA[I slutet av våren blev jag tvungen att lägga all min uppmärksamhet på själva D-uppsatsen samt jobbsökande. Krutet jag lade på uppsatsen fick som resultat högsta betyg (A) och en nominering (som en av två uppsatser från Uppsala Universitet) till Juseks BEST-stipendium. Inte illa! Resultatet av nomineringen kommer i höst.
Detta gjorde att själva utvecklingen stannade av lite [...]]]></description>
			<content:encoded><![CDATA[<p>I slutet av våren blev jag tvungen att lägga all min uppmärksamhet på själva D-uppsatsen samt jobbsökande. Krutet jag lade på uppsatsen fick som resultat högsta betyg (A) och en nominering (som en av två uppsatser från Uppsala Universitet) till <a href="http://www.jusek.se/templates/JK_SimplePage.aspx?id=49684">Juseks BEST-stipendium</a>. Inte illa! Resultatet av nomineringen kommer i höst.</p>
<p>Detta gjorde att själva utvecklingen stannade av lite - vilken jag nu under augusti tänkte ta upp och jobba vidare på. Merparten av jobbet är gjort, och grunden finns där. I nuläget handlar det om att koppla gränssnittet på ett bra sätt till den underliggande logiken - samt programmera hanteringen av avslutade partier. Jag lovar förstås att höra av mig när det är dags att börja testa!</p>
<p>Vänligen,<br />
Erik</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2009/08/03/sommartider/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The City of Dreams – Västerås Dag 2</title>
		<link>http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-2/</link>
		<comments>http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-2/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 12:56:23 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Okategoriserade]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-2/</guid>
		<description><![CDATA[Läs om första dagen!
Andra dagen började med en storfräsare som anlände i tajt skinnjacka och ett glänsande leende, Ivar Jacobson:
Be Smart – What they don’t teach you about software at school hette hans session i stora kongresshallen. Jacobson berättade bl a om att det är väldigt inne och användbart med kunskap om utvecklingsprocesser, och att [...]]]></description>
			<content:encoded><![CDATA[<p>Läs om <a href="http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-1/">första dagen</a>!</p>
<p>Andra dagen började med en storfräsare som anlände i tajt skinnjacka och ett glänsande leende, Ivar Jacobson:</p>
<p><strong>Be Smart – What they don’t teach you about software at school</strong> hette hans session i stora kongresshallen. Jacobson berättade bl a om att det är väldigt inne och användbart med kunskap om utvecklingsprocesser, och att det säljer böcker (som han ju skriver). Men det är ingen som egentligen läser böckerna, och därmed åker han runt och berättar om vad som står i böckerna som står hemma i våra bokhyllor.</p>
<p>En av de många poängerna han gjorde var att man inte ska skriva så mycket dokumentation. Alla utvecklare “hatar” att dokumentera, och eftersom folk inte läser det Jacobson skriver i sina böcker, så kommer de verkligen inte att läsa det som står i dokumentationen för något system.</p>
<p>Han menade också att utvecklingsprocesser är riktigt styrda av modet. Med handräckning i publiken visade det sig att SCRUM användes av säkert 80%, medan äldre beprövade tekniker övergavs.</p>
<p><strong>From good to great developer – why does it matter and how can we achieve it?</strong> med <em>Chris Hedgate</em> var kanske mer inriktat mot projektledare än utvecklare tyckte jag, men en riktigt kul genomkörare. Han par-programmerade med en docka och tryckte på att man varje gång när man går in och ändrar eller lägger till någonstans i koden så ska man förbättra den existerande koden. Om det så bara är att ändra ett litet variabelnamn eller skriva om en hel metod.</p>
<p><strong>Windows 7 in the eyes of a security geek</strong> gjorde att jag tog ett kliv från utvecklar-sessionerna in i en tekniker-session. Riktigt underhållande med <em>Marcus Murray</em> och <em>Hasain Alshakarti</em> från Truesec. Murray visade slides i OneNote som han ritade direkt i med sin touch-skärm medan Hasain demade på en burk vid sidan av. Packat med ny information för mig, eftersom det här inte är mitt område, men matnyttigt.</p>
<p>Bl a trycktes det hårt på att man aldrig ska använda ett administratörskonto när man arbetar i Windows Vista och 7. De flesta är ju vana med det efter Windows XP(?) Murray själv hade ett ett config-konto för installation, och ett vanligt user-konto som han använde “till vardags”. Ibland var han en “dålig människa” och körde “Run as administrator” på sitt användarkonto, när man får fylla i sitt lösenord för att kunna installera – men han rekommenderade det verkligen inte eftersom en keylogger lätt kan snappa upp lösenordet och sen göra vad som helst. Gissar att fler försöker hacka Marcus dator än min dock =) (Kolla in en <a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=351" target="_blank">hacking-video</a> jag hittade med grabben.)</p>
<p>En intressant nyhet i Windows 7 är nåt som kallas Direct Access som är ett alternativ till VPN över Internet, där man kan logga in direkt i ett företags intranät mha IPv6. Han menade att denna funktion kunde vara det som gör att IPv6 faktiskt börjar implementeras av företag och så småningom ISP:er.</p>
<p><strong>ASP.NET MVC for smart people</strong> var ytterligare en session med Mr Scott Galloway från Corps, som visade lite snabbt hur man utvecklar med MVC-ramverket istället för vanliga ASP.NET forms. Bra om man vill ha mer kontroll över sin applikation, men kräver mycket mer jobb och kunskap. Vill du se en lite mer detaljerad session om MVC rekommenderar jag Scott Hanselmans “<a href="http://sessions.visitmix.com/MIX09/T49F" target="_blank">Creating NerdDinner.com</a>” från Mix.</p>
<p>Slutligen gick jag på den enda sessionen som blev ett bottennapp för mig: <strong>Öppna upp din applikation med Managed Extensibility Framework</strong> med Magnus Mårtensson från Dotway. Talaren inledde med att berätta vitt och brett om hur just han kunde så mycket om MEF, fått kontakt med Microsoft och att han var en av två moderator på Codeplex för MEF osv. osv. Jag satt tyst och frågade mig själv vad MEF var för någonting. Det visade sig till slut vara ett ramverk som gör det enklare att använda dll:er i sina applikationer, ladda in externa moduler i run-time och kunna använda dessa direkt. Sen följde kodsnutt på kodsnutt som visade en massa grejer man kunde göra på en massa olika sätt, som gick mig lite över huvudet… Men men, jag såg två personer i publiken som konstant nickade uppskattande, så det var nog några som fick något ut av det hela <img src='http://blog.snabbschack.se/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><img src="http://www.microsoft.com/sverige/techdays09/img/techdays2.jpg" alt="" /></p>
<p>Förutom sessioner, hands-on-labs, Microsoft utställningar fanns också “Black Box” på plats. Till dagarna inredd helt i svart, helt utan fönster, helt (eller knappt) utan syre. En av de stora magneterna i Black Box var en <a href="http://www.microsoft.com/surface/" target="_blank">Microsoft Surface</a> som jag tidigare lekt lite med på Microsoftkontoret. Det dröjer kanske innan man får hem en sån som soffbord, vem vet.</p>
<p>På det hela taget en mycket lyckad tillställning, TechDays 2009, må jag säga!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-2/feed/</wfw:commentRss>
		</item>
		<item>
		<title>The City of Dreams – Västerås Dag 1</title>
		<link>http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-1/</link>
		<comments>http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-1/#comments</comments>
		<pubDate>Mon, 23 Mar 2009 12:40:14 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Okategoriserade]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-1/</guid>
		<description><![CDATA[Jag var på TechDays som gick av stapeln i förra veckan på Aros kongress center i Västerås! Microsofts första och största evenemang i Sverige för tekniker, utvecklare och IT-chefer och en minivariant av deras Europa-event TechEd.
Det är hittills dåligt med bilder från eventet, men det kommer väl. En video finns att titta på, samt en [...]]]></description>
			<content:encoded><![CDATA[<p><img style="border-top-width: 0px; display: inline; border-left-width: 0px; border-bottom-width: 0px; margin-left: 0px; margin-right: 0px; border-right-width: 0px" title="image" src="http://blog.snabbschack.se/wp-content/uploads/2009/03/image-thumb.png" border="0" alt="image" width="217" height="184" align="right" />Jag var på <a href="http://www.microsoft.com/sverige/techdays09/sv/about.aspx" target="_blank">TechDays</a> som gick av stapeln i förra veckan på Aros kongress center i Västerås! Microsofts första och största evenemang i Sverige för tekniker, utvecklare och IT-chefer och en minivariant av deras Europa-event TechEd.</p>
<p>Det är hittills dåligt med bilder från eventet, men det kommer väl. En <a href="http://www.microsoft.com/sverige/business/ectv/ectv.mspx" target="_blank">video</a> finns att titta på, samt en hel hög med <a href="http://buzzfrog.blogs.com/zabrak/techdays09/" target="_blank">podcasts</a> från Microsofts <a href="http://buzzfrog.blogs.com/" target="_blank">Dag König</a>.</p>
<p>Under 2 dagar med 100 sessioner och 100 talare så fanns ingen tid att förlora då jag noggrant ringade in sessionerna i agendan:</p>
<p><strong>Keynote</strong>, som inleddes av <em>Troed Troedsson</em> “framtidsvisionär”, var en riktigt lyckad tillställning. Även här drog det gamla “min dotter kan mer om teknik än jag”-skämtet ner skrattsalvor från åhörarna, men jag måste tillstå att hans poäng var träffande. Vi går från att ha varit ett kunskapssamhälle, där skolan stått som ett “torn” av kunnande i samhället och lärarna haft mångdubbelt längre utbildning än andra invånare, till ett kommunikationssamhälle där det mer och mer handlar om att kunna kommunicera på rätt sätt. Idag är skolan snarare ett “hål” av kunnande där lärare har lägre utbildning än de flesta och eleverna sms:ar under bänken. Nja, det är väl kanske att hårddra det lite… men visst har han en poäng när Ericsson vill göra sig av med äldre anställda och rekrytera människor som kan “sms:a i mörkret”. Troedsson tryckte hårt på att det handlar om att hänga med i kommunikationssamhället och att människor som påstår att “ungdomar har inget sinne för kvalité” är helt ute och cyklar.</p>
<p>Keynote följdes sen av Microsofts Sverige-VD <em>Peter Kopelman</em> och vidare några demos av Windows 7, Windows Azure m.m. från <em>Johan Lindfors</em>.</p>
<p><strong>“Det såg ju så bra ut på papper” – Vanliga ASP.NET produktionsproblem<br />
</strong>En session med <em><a href="http://blogs.msdn.com/tess/" target="_blank">Tess Ferrandez</a></em> och <em><a href="http://blogs.msdn.com/deurell/" target="_blank">Mikael Deurell</a></em> som visade på diverse fallgropar här och där i ASP.NET-utveckling som de ofta stöter på ute hos kunder som har problem. Riktigt intressant med två talare som kompletterar varandra bra (och vet om det). Jag gillar Deurells förmåga att se och låta riktigt sorgsen och besviken ut när han frågar åhörarna “varför gör ni inte bara så här? Det är ju så enkelt.”</p>
<p>En hel del info om hur man använder DebugDiag var intressant, ett område jag inte vandrat i tidigare.</p>
<p><strong>ASP.NET 4.0</strong> med <em>Scott Galloway</em>, en skotte som varit på Microsoft i Redmond i många år och är projektledare i ASP.NET-teamet. Han inledde konstaterande att han skulle ha skippat “that lager for lunch”, och sen följde de största nyheterna i ASP.NET 4.0. Den största nyheten för mig är att man nu kan definiera vilka id:n html-objekt ska ha i den färdiga koden – något som skötts internt av ASP.NET och varit nästintill omöjligt att kontrollera tidigare.</p>
<p><strong>Best practises för källkodshantering</strong> med <em>Mathias Olausson</em> gav en inblick i hur man kan använda Team Foundation Server för att dels checka in och ut källkod i projekt, men framförallt hur man använder work-items på ett smart sätt för att kunna få bra historik över ändringar i koden, samt hur man lägger ändringar “på hyllan” som man inte är klar med och låter någon annan ta vid där man slutade. Användbart.</p>
<p><strong>Silverlight Futures</strong> med Fredrik Normén visade <em>lite </em>nyheter i Silverlight 3 men konstaterade gång på annan att han inte fick säga så mycket. Nu vet vi dock allt efter att <a href="http://silverlight.net/getstarted/silverlight3/default.aspx" target="_blank">SL3</a> släpptes på <a href="http://live.visitmix.com/" target="_blank">Mix</a> i veckan! Normén konstaterade att det är tydligt att Microsoft lägger mest krut på Silverlight nu, med tanke på hur relativt lite nyheter det finns i ASP.NET 4.0, där det knappt går att komma längre. (MVC och jQuery då? frågar jag mig.)</p>
<p>Den största nyheten med Silverlight 3 är att man likt Adobe Air nu kan köra en SL-applikation som ett vanligt program utan webbläsaren. Det möjliggör också att man kan skriva offline-applikationer som så fort de kommer online kan synka ändringar med servern. En möjlighet alltså att skriva cross-platform applikationer (fungerar inte för Linux än, eftersom Moonlight projektet ligger lite efter med att porta SL, av förklarliga anledningar) i .NET utan problem! Programmen körs dock fortfarande inne i webbläsarens sandbox, vilket gör det säkert och bra <img src='http://blog.snabbschack.se/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Fortsättning följer… <a href="http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-2/">här!</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2009/03/23/the-city-of-dreams-vsters-dag-1/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Visual Studio och ESET NOD32</title>
		<link>http://blog.snabbschack.se/2009/03/10/visual-studio-och-eset-nod32/</link>
		<comments>http://blog.snabbschack.se/2009/03/10/visual-studio-och-eset-nod32/#comments</comments>
		<pubDate>Tue, 10 Mar 2009 20:57:38 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Visual Studio]]></category>

		<category><![CDATA[felsökning]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/?p=68</guid>
		<description><![CDATA[Jag använder antivirusprogrammet NOD32 i mina datorer, och det fungerar riktigt smärtfritt. Däremot har jag tidigare haft problem med Visual Studio 2008:s inbyggda Development Server tillsammans med antivirusprogrammet. 
Nu efter en uppdatering av NOD så slutade den vips att fungera ännu en gång, och hur mycket jag än försökte och slet mitt hår så fick jag [...]]]></description>
			<content:encoded><![CDATA[<p>Jag använder antivirusprogrammet NOD32 i mina datorer, och det fungerar riktigt smärtfritt. Däremot har jag tidigare haft problem med Visual Studio 2008:s inbyggda Development Server tillsammans med antivirusprogrammet. </p>
<p>Nu efter en uppdatering av NOD så slutade den vips att fungera ännu en gång, och hur mycket jag än försökte och slet mitt hår så fick jag inte igång debugservern&#8230;</p>
<p>&#8230; ända till jag läste igenom de 50+ kommentarerna som fanns på <a href="http://www.wahooga.com/index.php/2008/02/20/visual-studio-development-web-server-automatic-port-numbering-problem/">denna</a> sida.</p>
<p>Har du samma problem som jag kommer här en lösning:</p>
<p>Dubbelklicka på NOD32:s ikon i aktivitetsfältet, och i det öppnade fönstret klicka F5 för att få upp de avancerade inställningarna. I trädlistan hittar du: Antivirus and antispyware -&gt; Protocol filtering. Välj här HTTP and POP3 ports.</p>
<p>Se till att Dev-servern startas om och testa om det tog.</p>
<p>Om inte, öppna Windows hosts-fil i en text editor genom att t ex i Kör (Windowstangenten+R) skriva:</p>
<blockquote><p>notepad C:\Windows\System32\drivers\etc\hosts</p></blockquote>
<p>Har du där en rad som heter <em>::1 localhost</em>, kommentera bort den med ett # i början av raden:<em> </em></p>
<blockquote><p>#::1 localhost</p></blockquote>
<p><em></em>Om du inte har en sådan rad kan du lägga till den bortkommenterade raden (frågan är om detta gör någon skillnad, men det är värt ett försök enl. en bloggkommentar).</p>
<p>Testa nu att starta om dev-servern och testköra din applikation. Först här fungerade det för mig.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2009/03/10/visual-studio-och-eset-nod32/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snabbschack</title>
		<link>http://blog.snabbschack.se/2009/03/03/snabbschack/</link>
		<comments>http://blog.snabbschack.se/2009/03/03/snabbschack/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 16:43:34 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Schack]]></category>

		<category><![CDATA[kul]]></category>

		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/?p=63</guid>
		<description><![CDATA[Vad gör stormästarna för att slappna av mellan sina partier? Jo, spelar en blixt förstås&#8230;!
Spelar du snabbschack på nätet handlar det om att inte råka släppa pjäsen på fel ruta genom att strula till det med musen, IRL handlar det om att inte råka sprätta ner alla pjäser när man sträcker sig efter klockan. Notera [...]]]></description>
			<content:encoded><![CDATA[<p>Vad gör stormästarna för att slappna av mellan sina partier? Jo, spelar en blixt förstås&#8230;!</p>
<p>Spelar du snabbschack på nätet handlar det om att inte råka släppa pjäsen på fel ruta genom att strula till det med musen, IRL handlar det om att inte råka sprätta ner alla pjäser när man sträcker sig efter klockan. Notera att enligt reglerna måste man slå på klockan med samma hand som man flyttar pjäsen.</p>
<p>Maxim Dlugy och Hikaru Nakamura:<br />
<object width="425" height="344" data="http://www.youtube.com/v/Bzrap8Vtyq8&amp;hl=sv&amp;fs=1" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/Bzrap8Vtyq8&amp;hl=sv&amp;fs=1" /><param name="allowfullscreen" value="true" /></object></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2009/03/03/snabbschack/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sockets i Silverlight</title>
		<link>http://blog.snabbschack.se/2009/03/01/sockets-i-silverlight/</link>
		<comments>http://blog.snabbschack.se/2009/03/01/sockets-i-silverlight/#comments</comments>
		<pubDate>Sun, 01 Mar 2009 11:21:40 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Silverlight]]></category>

		<category><![CDATA[sockets]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/?p=50</guid>
		<description><![CDATA[Sockets är till skillnad från WCF Duplex Polling ingen nymodighet utan har funnits sedan början av 70-talet då det amerikanska försvaret satsade resurser på att bygga vad som skulle bli framtidens nätverk och Internet. Wikipedia definierar det lite knepigt, men här är min tolkning av deras tolkning:

En socket är en grunka som kombinerar en lokal [...]]]></description>
			<content:encoded><![CDATA[<div>Sockets är till skillnad från <a href="http://blog.snabbschack.se/2009/02/16/wcf-duplex-polling/">WCF Duplex Polling</a> ingen nymodighet utan har funnits sedan början av 70-talet då det amerikanska försvaret satsade resurser på att bygga vad som skulle bli framtidens nätverk och Internet. Wikipedia <a href="http://en.wikipedia.org/wiki/Internet_socket">definierar</a> det lite knepigt, men här är min tolkning av deras tolkning:</div>
<blockquote>
<div>En socket är en <em>grunka</em> som kombinerar en lokal IP adress och ett portnummer till en användbar enhet som man kan använda i ett program, mycket liknande en ända av en telefonanslutning, som fungerar som en brygga mellan ett telefonnummer och personen som har telefonnumret.</div>
</blockquote>
<div>Man upprättar alltså en anslutning genom att använda sig av sitt programmeringsspråks implementation av sockets och kan skicka data fram och tillbaka mellan två sockets (som kan finnas på två olika datorer) så länge anslutningen är öppen. Det här gör att ena sidan inte behöver &#8220;fråga&#8221; den andra sidan om något nytt har hänt, utan informationen pushas fram och tillbaka.</div>
<div>Det finns ett par olika typer av sockets, beroende på vilket protokoll man använder sig av. <strong>UDP </strong>använder man när man har en anslutning som liknas vid en ström som flödar, och det är inte jätteviktigt om allt som skickas kommer fram - t ex ip-telefoni, strömmande video eller snabba nätverksspel. <strong>TCP </strong>gäller när man vill upprätta en helt tillförlitlig anslutning - vilket innebär att alla paket som skickas från ena ändan kommer att komma fram. Försvinner något paket på vägen så skickas det automatiskt igen.</div>
<div>När det gäller Silverlight och sockets är valet inte speciellt svårt, eftersom det i nuläget endast är TCP-sockets som är möjliga att använda sig av.</div>
<div></div>
<div>I Silverlight 2 Beta 1 fanns det en begränsning i att socketanslutningen mellan en klient och en server måste ske på samma maskin - alltså att hemsidan som silverlight-klienten finns på behöver vara på samma server som applikationen den ansluter sig mot. Nu i den skarpa versionen är det dock möjligt att ansluta till en socket-server på annat håll, men socket-servern måste tillhandahålla ett policydokument på en annan port innan anslutningen kan upprättas.</div>
<div>Det är inte så krångligt som det låter och allt finns utförligt förklarat på <a href="http://msdn.microsoft.com/en-us/library/cc296248(VS.95).aspx">MSDN</a> och med fungerande exempel på en <a href="http://weblogs.asp.net/dwahlin/archive/2008/06/08/creating-a-silverlight-2-client-access-policy-socket-server.aspx">policy-server</a> hos Dan Wahlin.</div>
<div></div>
<div>Ett riktigt saftigt exempel på en socketimplementation för Silverlight finns i en <a href="http://msdn.microsoft.com/en-us/magazine/2009.01.entslpt1.aspx">artikel</a> i MSDN magazine. Vill man bara ha en enkel översikt är dock Dan Wahlins basketexempel, som jag pekade på i föregående inlägg, att föredra. Då var det Duplex Polling, men samma funktionalitet finns även implementerad med sockets:</div>
<div>
<ul>
<li><a href="http://weblogs.asp.net/dwahlin/archive/2008/04/10/pushing-data-to-a-silverlight-client-with-sockets-part-i.aspx" target="_blank">Pushing Data to a Silverlight Client with Sockets: Part I</a></li>
<li><a href="http://weblogs.asp.net/dwahlin/archive/2008/04/13/pushing-data-to-a-silverlight-client-with-sockets-part-ii.aspx" target="_blank">Pushing Data to a Silverlight Client with Sockets: Part II</a></li>
</ul>
</div>
<div></div>
<div>Snart börjar det förresten bli läge att visa lite från mitt snabbschacksprojekt, eftersom jag har ryggraden i princip färdig för en socketserver, som blir den teknik jag till slut valt att använda.</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2009/03/01/sockets-i-silverlight/feed/</wfw:commentRss>
		</item>
		<item>
		<title>WCF Duplex Polling</title>
		<link>http://blog.snabbschack.se/2009/02/16/wcf-duplex-polling/</link>
		<comments>http://blog.snabbschack.se/2009/02/16/wcf-duplex-polling/#comments</comments>
		<pubDate>Mon, 16 Feb 2009 14:45:38 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Windows Communications Foundation]]></category>

		<category><![CDATA[azure]]></category>

		<category><![CDATA[duplex polling]]></category>

		<category><![CDATA[server-klient]]></category>

		<category><![CDATA[wcf]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/?p=34</guid>
		<description><![CDATA[Ett alternativ för kommunikation mellan server och klient till mitt förra inlägg är att använda sig av en WCF-tjänst som Silverlight-klienten pratar med. I Windows Azure är det möjligt att ha en WCF-tjänst i en webroll, vilket alltså skulle innebära att Silverlightklienterna i en webroll skulle tala med schackservern i en annan webroll. En WCF-tjänst kan [...]]]></description>
			<content:encoded><![CDATA[<p>Ett alternativ för kommunikation mellan server och klient till mitt <a href="http://blog.snabbschack.se/2009/02/02/olika-roller/">förra inlägg</a> är att använda sig av en <a href="http://en.wikipedia.org/wiki/Windows_Communication_Foundation">WCF</a>-tjänst som Silverlight-klienten pratar med. I Windows Azure är det möjligt att ha en WCF-tjänst i en webroll, vilket alltså skulle innebära att Silverlightklienterna i en webroll skulle tala med schackservern i en annan webroll. En WCF-tjänst kan förstås också finnas som ett konsolprogram eller på en vanlig webbserver.</p>
<p>Med Silverlight 2 lanserades metoden <strong>Duplex polling</strong>, som innebär att man kan skapa en anslutning mellan en Silverlight-applikation (klienten) och en WCF-duplextjänst (som vi kan kalla servern). Bakom kulisserna ligger Silverlight och &#8220;pollar&#8221;, alltså frågar servern om den har något nytt meddelande att hämta, hela tiden. Man kan själv bestämma hur ofta man vill att pollningen ska ske. Det här är en utmärkt metod för att hålla klienten uppdaterad på vad som händer på servern - men är inte optimalt om man behöver en realtidsanslutning.</p>
<p>Den stora <strong>fördelen</strong> med Duplex polling i jämförelse med att använda sockets (som ju är den gamla traditionella anslutningen man kan ha mellan en klient och en server) är att kommunikationen sker över port 80 - samma port som webbläsaren använder när man surfar. Därmed blockerar inte eventuella brandväggar trafiken till datorn. Använder du sockets kan användaren vara tvungen att öppna portar i sin brandvägg - och det är ju inte direkt önskvärt när det är en tjänst som man vill nå ut till många med.</p>
<p>Här finns MSDN-guiden till hur man upprättar en Duplex-polling kommunikation mellan WCF och Silverlight: <a href="http://msdn.microsoft.com/en-us/library/cc645026(VS.95).aspx">http://msdn.microsoft.com/en-us/library/cc645026(VS.95).aspx</a><br />
Dan Wahlin har också skrivit om hur du kan gå till väga med ett färdigt exempel att ladda ner: <a href="http://weblogs.asp.net/dwahlin/archive/2008/06/16/pushing-data-to-a-silverlight-client-with-wcf-duplex-service-part-i.aspx">http://weblogs.asp.net/dwahlin/archive/2008/06/16/pushing-data-to-a-silverlight-client-with-wcf-duplex-service-part-i.aspx</a></p>
<p><img class="alignnone" title="Dan Wahlins duplex-polling exempel" src="http://weblogs.asp.net/blogs/dwahlin/WindowsLiveWriter/UsingSilverlightandSocketstoStreamScores_148D3/SilverlightSockets_thumb_1.jpg" alt="" width="603" height="513" /></p>
<p> </p>
<p><strong>Nackdelen</strong> med Duplex polling då? Jo, som jag nämnde är man inte garanterad en på millisekunden uppdaterad anslutning. Men det behöver de flesta inte ha (frågan är om jag behöver det eller inte? Det måste undersökas).</p>
<p>Duplex polling är inte heller direkt avsedd för att ha en anslutning mellan 1 server och många anslutningar. När jag har undersökt och även själv skapat en prototyp till en chattapplikation blir det problem så fort som en användare i chatten stänger ner webbläsaren, utan att först avsluta anslutningen till servern. Det som händer är att servern loopar igenom listan med klienter för att skicka meddelanden, och när den kommer till en klient som bara har försvunnit så märker den inte av det och letar tills anslutningen &#8220;timar out&#8221;. Att Duplex polling-tjänsten inte hanterar avbrutna anslutningar ordentligt blir potentiellt problematiskt när man har många användare anslutna och ett gäng stänger ner sina klienter samtidigt.</p>
<p>Jag har undersökt saken och det verkar inte finnas något som hanterar detta på ett bra sätt:<br />
<a href="http://silverlight.net/forums/t/39205.aspx">http://silverlight.net/forums/t/39205.aspx</a> och <a href="http://silverlight.net/forums/t/17502.aspx">http://silverlight.net/forums/t/17502.aspx</a></p>
<p>Min fundering nu är att bygga kommunikationslagret så pass modulärt så att jag kan byta ut det mellan Duplex polling och sockets, beroende på vad som fungerar bäst.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2009/02/16/wcf-duplex-polling/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Olika roller</title>
		<link>http://blog.snabbschack.se/2009/02/02/olika-roller/</link>
		<comments>http://blog.snabbschack.se/2009/02/02/olika-roller/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 15:18:49 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Windows Azure]]></category>

		<category><![CDATA[azure]]></category>

		<category><![CDATA[molnet]]></category>

		<category><![CDATA[server-klient]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/?p=25</guid>
		<description><![CDATA[Jag insåg ganska snart när jag började fundera på detta projekt att det är själva kommunikationen mellan servern och klienten  som kommer att bli den svåra nöten. Servern har hand om alla partier och länkar samman användarna medan klienten är den programvara som varje användare kör på sin dator. I detta fall är klienten en [...]]]></description>
			<content:encoded><![CDATA[<p>Jag insåg ganska snart när jag började fundera på detta projekt att det är själva kommunikationen mellan servern och klienten  som kommer att bli den svåra nöten. <span style="color: #888888;">Servern har hand om alla partier och länkar samman användarna medan klienten är den programvara som varje användare kör på sin dator. <span style="color: #000000;">I detta fall är klienten en Silverlight-applikation som bäddas in i en hemsida, och alltså körs direkt i webbläsaren.</span></span></p>
<p>På serversidan finns många olika vägar att gå, och den initiala vägen var <a href="http://blog.snabbschack.se/2009/01/22/vilket-moln-vilket-moln/">Windows Azure</a>. Efter en tids grävande på nätet i <a href="http://social.msdn.microsoft.com/Forums/en-US/windowsazure/threads/">forum </a>och bloggar så visar det sig att Azure inte är direkt anpassat för att vara back-end för en applikation som kräver närapå direktkontakt mellan klienterna.</p>
<p>Sättet som Azure jobbar är genom att ha två olika &#8220;roller&#8221; som man kan skapa. En web-role, som kan vara en hemsida t ex (alltså fungera som en Silverlight-klient i mitt fall), samt en worker-role som fungerar som en tjänst (eng: service, och skulle fungera som själva schackservern som klienterna ansluter till).</p>
<p>Problemet är att webbrollen och workerrollen inte pratar direkt med varandra, utan att man måste använda sig av ett lagringsmedium som mellan-länk.</p>
<p>Säg att jag på min klient skickar ett schack drag till min motståndare:</p>
<ol>
<li>Jag skickar mitt drag: 1.e4 till min motståndare i min webbläsare.</li>
<li>Webbrollen tar mitt drag och lagrar det i &#8220;cloud storage&#8221; (se bild norpad från <a href="http://blogs.msdn.com/johanl/pages/windows-azure-operativsystem-i-molnet.aspx">Johan Lindfors</a> nedan)</li>
<li>Workerrollen som ständigt ligger och tittar i cloud storage ser att det har kommit ett nytt drag. Han(?) plockar upp draget, ser om det är giltigt och lagrar det tillbaka i en annan cloud storage</li>
<li>Min motståndare som sitter i sin webbläsare är ju också ansluten med en &#8220;egen&#8221; webbroll som ligger och tittar i cloud storage efter nya drag, och vips kommer ett drag från workerrollen som den plockar upp och visar på skärmen för motståndaren: 1.e4</li>
</ol>
<div class="wp-caption alignnone" style="width: 650px"><img title="Azure Architecture" src="http://blogs.msdn.com/blogfiles/johanl/WindowsLiveWriter/Jagharsettmolnetochdetrazurbltt_138C7/Azure%20Application%20Architecture_2.png" alt="Azure Architecture" width="640" height="334" /><p class="wp-caption-text">Azures arkitektur</p></div>
<p>Som synes är det inte en optimal lösning då man som schackspelare vill ha en blixtsnabb kommunikation med sin motståndare. Möjligen är det en omväg att försöka bygga det här för Azure, men jag har inte riktigt gett upp hoppet än. Men det är värt att titta på alternativ.</p>
<p>Azure, WCF Duplex Polling eller gamla hederliga Sockets? Det är frågan.</p>
<p><span style="color: #888888;">On another note: Jag har nu klart ett anpassat bibliotek för att kontrollera ett schackdrags giltighet som kan köras både i klienten och på servern, samt börjat med ett silverlight-bräde som börjar bete sig som jag vill.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2009/02/02/olika-roller/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Snabbschack.se</title>
		<link>http://blog.snabbschack.se/2009/01/31/snabbschackse/</link>
		<comments>http://blog.snabbschack.se/2009/01/31/snabbschackse/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 14:15:29 +0000</pubDate>
		<dc:creator>erik</dc:creator>
		
		<category><![CDATA[Okategoriserade]]></category>

		<category><![CDATA[snabbschack.se]]></category>

		<category><![CDATA[testning]]></category>

		<guid isPermaLink="false">http://blog.snabbschack.se/?p=21</guid>
		<description><![CDATA[Gå till http://www.snabbschack.se för att anmäla dig att testköra när tiden är mogen  
]]></description>
			<content:encoded><![CDATA[<p>Gå till <a href="http://www.snabbschack.se">http://www.snabbschack.se</a> för att anmäla dig att testköra när tiden är mogen <img src='http://blog.snabbschack.se/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.snabbschack.se/2009/01/31/snabbschackse/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>

