<?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:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>kjempekjekt.com</title>
	
	<link>http://blog.kjempekjekt.com</link>
	<description>om livet som .net utvikler</description>
	<lastBuildDate>Sun, 27 May 2012 20:50:29 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/kjempekjektcom" /><feedburner:info uri="kjempekjektcom" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId>kjempekjektcom</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/kjempekjektcom" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://www.plusmo.com/add?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://plusmo.com/res/graphics/fbplusmo.gif">Subscribe with Plusmo</feedburner:feedFlare><feedburner:feedFlare href="http://www.thefreedictionary.com/_/hp/AddRSS.aspx?http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://img.tfd.com/hp/addToTheFreeDictionary.gif">Subscribe with The Free Dictionary</feedburner:feedFlare><feedburner:feedFlare href="http://www.bitty.com/manual/?contenttype=rssfeed&amp;contentvalue=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.bitty.com/img/bittychicklet_91x17.gif">Subscribe with Bitty Browser</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsalloy.com/?rss=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.newsalloy.com/subrss3.gif">Subscribe with NewsAlloy</feedburner:feedFlare><feedburner:feedFlare href="http://www.live.com/?add=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://tkfiles.storage.msn.com/x1piYkpqHC_35nIp1gLE68-wvzLZO8iXl_JMledmJQXP-XTBOLfmQv4zhj4MhcWEJh_GtoBIiAl1Mjh-ndp9k47If7hTaFno0mxW9_i3p_5qQw">Subscribe with Live.com</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://download.attensa.com/app/get_attensa.html?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.attensa.com/blogs/attensa/WindowsLiveWriter/BadgeredintoBadges_10C02/attensa_feed_button5.gif">Subscribe with Attensa for Outlook</feedburner:feedFlare><feedburner:feedFlare href="http://www.webwag.com/wwgthis.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.webwag.com/images/wwgthis.gif">Subscribe with Webwag</feedburner:feedFlare><feedburner:feedFlare href="http://www.podcastready.com/oneclick_bookmark.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.podcastready.com/images/podcastready_button.gif">Subscribe with Podcast Ready</feedburner:feedFlare><feedburner:feedFlare href="http://www.flurry.com/pushRssFeed.do?r=fb&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.flurry.com/images/flurry_rss_logo2.gif">Subscribe with Flurry</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:feedFlare href="http://www.dailyrotation.com/index.php?feed=http%3A%2F%2Ffeeds.feedburner.com%2Fkjempekjektcom" src="http://www.dailyrotation.com/rss-dr2.gif">Subscribe with Daily Rotation</feedburner:feedFlare><item>
		<title>Kjempekjekt.com "responderer"</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/M1fVQRYZf6w/</link>
		<comments>http://blog.kjempekjekt.com/2012/05/27/kjempekjekt-com-responderer/#comments</comments>
		<pubDate>Sun, 27 May 2012 17:17:43 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[kjempekjekt.com]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/?p=892</guid>
		<description><![CDATA[Nå følte jeg det var på tide å redesigne programmeringsbloggen igjen. Jeg likte egentlig det forrige designet ganske godt, men det hadde noen problemer. Hovedutfordringen var at det ikke skalerte så veldig bra på smarttelefoner og pads. Så si farvell til det gamle (screenshot nedenfor); favell til logo i KRIGSTYPER, farvell til header med fargegradering [...]]]></description>
			<content:encoded><![CDATA[<p>Nå følte jeg det var på tide å redesigne programmeringsbloggen igjen. Jeg likte egentlig det forrige designet ganske godt, men det hadde noen problemer. Hovedutfordringen var at det ikke skalerte så veldig bra på smarttelefoner og pads.</p>
<p>Så si farvell til det gamle (screenshot nedenfor); favell til logo i KRIGSTYPER, farvell til header med fargegradering og animerte bytes, farvell til jQuery-rotert profilbilde, og farvell til information overload på høyresiden&#8230;</p>
<p><a href="http://blog.kjempekjekt.com/wp-content/uploads/2012/05/old_design.png"><img style="background-image: none; border-right-width: 0px; margin: 20px auto; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="old_design" border="0" alt="old_design" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/05/old_design_thumb.png" width="504" height="309"></a></p>
<p>Det nye designet er basert på <a href="http://twitter.github.com/bootstrap/">Twitter Bootstrap</a>, en populær HTML5-template jeg har blitt veldig glad i, og har brukt på to andre prosjekter allerede. Hovedfordelen med dette designet er at det er et såkalt <strong>responsive design</strong> – det vil si at det tilpasser seg dynamisk til browserens størrelse. Nesten uten effort fra min side fungerer nå bloggen min ganske bra på de fleste skjermstørrelser.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="RESPONSIVE" border="0" alt="RESPONSIVE" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/05/RESPONSIVE.jpg" width="550" height="577"></p>
<p>Programmeringsbloggen fungerer nå utmerket på min Windows Phone, og på iPad er den helt nydelig. Flere og flere foretrekker å lese blogger slike <em>devicer</em>, så det er på høy tid at jeg gjør denne opplevelsen bedre.</p>
<p>Designet er nå mye renere, med fokus på innholdet. Jeg har beholdt de ti siste kommentarene på høyresiden – jeg tror det skaper engasjement blant leserne. Søkefeltet, listen over ferske poster og listen over kategoriene er flyttet til den minimalistiske headeren.</p>
<p>Jeg setter pris på tilbakemelding, så gi meg gjerne en lyd på om designet fungerer for deg..</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=M1fVQRYZf6w:gHFtoeXepuI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=M1fVQRYZf6w:gHFtoeXepuI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=M1fVQRYZf6w:gHFtoeXepuI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/M1fVQRYZf6w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/05/27/kjempekjekt-com-responderer/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/05/27/kjempekjekt-com-responderer/</feedburner:origLink></item>
		<item>
		<title>NodeJS vs. ASP.NET</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/0jYu0nUg1UM/</link>
		<comments>http://blog.kjempekjekt.com/2012/05/16/nodejs-vs-asp-net/#comments</comments>
		<pubDate>Wed, 16 May 2012 21:05:41 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[NDC]]></category>
		<category><![CDATA[Webutvikling]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/2012/05/16/nodejs-vs-asp-net/</guid>
		<description><![CDATA[Jeg har snakket om det før – det blir mye spennende web-teknologi på NDC i år. Og nå avslører vi at det hele kommer til å kulminere i et svært oppgjør mellom de to største leirene&#8230; Daminan Edwards jobber på ASP.NET-teamet hos Microsoft, og står bak open source-prosjektet SignalR, som hjelper deg å lage real-time, [...]]]></description>
			<content:encoded><![CDATA[<p>Jeg har snakket om det før – det blir <a href="http://blog.kjempekjekt.com/2012/03/17/ndc-2012-agendaen-webutvikling/">mye spennende web-teknologi på NDC i år</a>. Og nå avslører vi at det hele kommer til å kulminere i et svært oppgjør mellom de to største leirene&#8230;</p>
<p><a href="http://i47.tinypic.com/1y0enk.jpg"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="NDC_CAGE_MATCH_500" border="0" alt="NDC_CAGE_MATCH_500" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/05/NDC_CAGE_MATCH_500.jpg" width="504" height="595"></a></p>
<p><strong>Daminan Edwards</strong> jobber på ASP.NET-teamet hos Microsoft, og står bak open source-prosjektet <a href="http://signalr.net/">SignalR</a>, som hjelper deg å lage real-time, multi-user interaktive webapps i .NET. <strong>Rob Conery</strong> er en velkjent ex-Microsofter som nå er helfrelst på NodeJS. I en munter setting ledet av <strong>Jon Galloway</strong> vil du få oppleve de to teknologiene side om side – og endelig skal vi få se hva som er best!</p>
<p><strong>Det er fortsatt ledige biletter til </strong><a href="http://www.ndcoslo.com/"><strong>NDC 2012</strong></a>, og <a href="http://www.ndcoslo.com/Article/Contact">folkene fra Programutvikling</a> kan hjelpe deg med å få hotellrom. Ikke gå glipp av Nord-Europas beste utviklerkonferanse!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=0jYu0nUg1UM:EcVka7AM3og:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=0jYu0nUg1UM:EcVka7AM3og:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=0jYu0nUg1UM:EcVka7AM3og:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/0jYu0nUg1UM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/05/16/nodejs-vs-asp-net/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/05/16/nodejs-vs-asp-net/</feedburner:origLink></item>
		<item>
		<title>Pulten min..</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/ZgfN5-8ScuI/</link>
		<comments>http://blog.kjempekjekt.com/2012/05/14/pulten-min/#comments</comments>
		<pubDate>Mon, 14 May 2012 18:23:33 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[Off topic]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/2012/05/14/pulten-min/</guid>
		<description><![CDATA[Lyst å se hvordan jeg har det? Her er et innblikk i hva jeg ser hele dagen.]]></description>
			<content:encoded><![CDATA[<p>Lyst å se hvordan jeg har det? Her er et innblikk i hva jeg ser hele dagen.</p>
<p><a href="http://blog.kjempekjekt.com/wp-content/uploads/2012/05/desktop_with_legend.png"><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; margin-left: auto; border-top: 0px; margin-right: auto; border-right: 0px; padding-top: 0px" title="desktop_with_legend" border="0" alt="desktop_with_legend" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/05/desktop_with_legend_thumb.png" width="500" height="463"></a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=ZgfN5-8ScuI:zA1bj-PM1Uc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=ZgfN5-8ScuI:zA1bj-PM1Uc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=ZgfN5-8ScuI:zA1bj-PM1Uc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/ZgfN5-8ScuI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/05/14/pulten-min/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/05/14/pulten-min/</feedburner:origLink></item>
		<item>
		<title>No ifs and buts</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/KgQRcqwt4GA/</link>
		<comments>http://blog.kjempekjekt.com/2012/05/13/no-ifs-and-buts/#comments</comments>
		<pubDate>Sun, 13 May 2012 05:20:15 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[NNUG / community]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[WTF]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/2012/05/13/no-ifs-and-buts/</guid>
		<description><![CDATA[For noen dager siden hadde vi en ny CodingDojo i Bergen. Oppgaven denne gangen var å presse objektorientering til det ytterste og trene på polymorfi gjennom å skrive kode helt uten bruk av IF, SWITCH eller tilsvarende konstruksjoner. Er du interessert i bakgrunnen for denne øvelsen kan du ta en titt her på bloggen til [...]]]></description>
			<content:encoded><![CDATA[<p>For noen dager siden hadde vi en ny <a href="http://www.meetup.com/BergenCodingDojo/">CodingDojo i Bergen</a>. Oppgaven denne gangen var å presse objektorientering til det ytterste og trene på polymorfi gjennom å skrive kode helt uten bruk av IF, SWITCH eller tilsvarende konstruksjoner. Er du interessert i bakgrunnen for denne øvelsen kan du <a href="http://www.cs.uni.edu/~wallingf/blog/archives/monthly/2012-02.html#e2012-02-19T12_17_41.htm">ta en titt her på bloggen til professor Eugene Wallingford</a>. Du bør også sjekke ut <a href="http://www.antiifcampaign.com/">the Anti-If Campaign</a>.</p>
<p>Jeg jobbet sammen med <a href="https://twitter.com/#!/olsenius">@Olsenius</a> for anledningen. Vi brukte Ruby. Oppgaven vi forsøkte å implementere var en billett-automat. Desverre ble dette mer et eksperiment i hvilke Ruby-triks vi kunne missbruke for å unngå IF enn en trening i god objektorientering. Koden vi produserte er <strong>noe av det værste jeg kan huske å ha laget :)</strong></p>
<p>Vi ble ikke helt ferdige – jeg måtte gå litt tidlig – men koden vi produserte er gjengitt i sin helhet nedenfor. Vi brukte TDD, men testene har jeg droppet her.</p>
<p>Ser du hvordan vi har oppfunnet et nytt pattern både for IF og for UNLESS (altså &#8220;not if&#8221;)?</p>
<pre style="padding-bottom: 6px; background-color: #242424; padding-left: 6px; padding-right: 6px; font-family: monospace; margin-bottom: 16px; color: #f6f3e8; padding-top: 6px"><span class="lnr">10 </span><span class="Comment"># Monkey patch: Just adding a convenient sum-method to arrays</span>
<span class="lnr">11 </span><span class="PreProc">class</span> <span class="Type">Array</span>
<span class="lnr">12 </span>  <span class="PreProc">def</span> <span class="Function">sum</span>
<span class="lnr">13 </span>    <span class="Constant">self</span>.inject(<span class="Number">0</span>){|<span class="Identifier">x</span>, <span class="Identifier">y</span>| x + y}
<span class="lnr">14 </span>  <span class="PreProc">end</span>
<span class="lnr">15 </span><span class="PreProc">end</span>
<span class="lnr">16 </span>
<span class="lnr">17 </span><span class="PreProc">class</span> <span class="Type">TicketMachine</span>
<span class="lnr">18 </span>  <span class="PreProc">def</span> <span class="Function">initialize</span>
<span class="lnr">19 </span>    <span class="Identifier">@balance</span>, <span class="Identifier">@total</span> = [], []
<span class="lnr">20 </span>    <span class="Identifier">@printers</span> = { <span class="Special">"</span><span class="String">total=5</span><span class="Special">"</span> =&gt; <span class="Type">ValidTicket</span>.new }
<span class="lnr">21 </span>    <span class="Identifier">@money_validators</span> = { <span class="Special">"</span><span class="String">-</span><span class="Special">"</span> =&gt; <span class="Type">InvalidMoney</span>.new }
<span class="lnr">22 </span>  <span class="PreProc">end</span>
<span class="lnr">23 </span>
<span class="lnr">24 </span>  <span class="Comment"># Properties:</span>
<span class="lnr">25 </span>  <span class="PreProc">def</span> <span class="Function">balance</span>; <span class="Identifier">@balance</span>.sum; <span class="PreProc">end</span>
<span class="lnr">26 </span>  <span class="PreProc">def</span> <span class="Function">total</span>; <span class="Identifier">@total</span>.sum; <span class="PreProc">end</span>
<span class="lnr">27 </span>
<span class="lnr">28 </span>  <span class="Comment"># Lets user print his ticket,</span>
<span class="lnr">29 </span>  <span class="Comment"># but raises an Exception unless @balance is 5 !!!</span>
<span class="lnr">30 </span>  <span class="PreProc">def</span> <span class="Function">print_ticket</span>
<span class="lnr">31 </span>    <span class="Identifier">@printers</span>[<span class="Special">"</span><span class="String">total=</span><span class="Special">#{</span><span class="Identifier">@balance</span>.sum<span class="Special">}</span><span class="Special">"</span>].print
<span class="lnr">32 </span>    <span class="Identifier">@balance</span> = []
<span class="lnr">33 </span>  <span class="PreProc">end</span>
<span class="lnr">34 </span>
<span class="lnr">35 </span>  <span class="Comment"># Lets user insert money into the machine</span>
<span class="lnr">36 </span>  <span class="Comment"># Will raise exception if money is a negative number !!!</span>
<span class="lnr">37 </span>  <span class="PreProc">def</span> <span class="Function">add</span> money
<span class="lnr">38 </span>    <span class="Statement">begin</span>
<span class="lnr">39 </span>      <span class="Identifier">@money_validators</span>[money.to_s[<span class="Number">0</span>]].fail_if_valid
<span class="lnr">40 </span>      <span class="Statement">raise</span> <span class="Special">"</span><span class="String">INVALID MONEY</span><span class="Special">"</span>
<span class="lnr">41 </span>    <span class="Statement">rescue</span> <span class="Type">NoMethodError</span>
<span class="lnr">42 </span>      <span class="Identifier">@balance</span> &lt;&lt; money
<span class="lnr">43 </span>      <span class="Identifier">@total</span> &lt;&lt; money
<span class="lnr">44 </span>    <span class="Statement">end</span>
<span class="lnr">45 </span>  <span class="PreProc">end</span>
<span class="lnr">46 </span><span class="PreProc">end</span>
<span class="lnr">47 </span>
<span class="lnr">48 </span><span class="PreProc">class</span> <span class="Type">ValidTicket</span>
<span class="lnr">49 </span>  <span class="PreProc">def</span> <span class="Function">print</span>
<span class="lnr">50 </span>    puts <span class="Special">"</span><span class="String">THE TICKET</span><span class="Special">"</span>
<span class="lnr">51 </span>  <span class="PreProc">end</span>
<span class="lnr">52 </span><span class="PreProc">end</span>
<span class="lnr">53 </span>
<span class="lnr">54 </span><span class="PreProc">class</span> <span class="Type">InvalidMoney</span>
<span class="lnr">55 </span>  <span class="PreProc">def</span> <span class="Function">fail_if_valid</span>; <span class="PreProc">end</span>
<span class="lnr">56 </span><span class="PreProc">end</span>
</pre>
<p>That&#8217;s all!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=KgQRcqwt4GA:ht3Au2drrs0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=KgQRcqwt4GA:ht3Au2drrs0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=KgQRcqwt4GA:ht3Au2drrs0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/KgQRcqwt4GA" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/05/13/no-ifs-and-buts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/05/13/no-ifs-and-buts/</feedburner:origLink></item>
		<item>
		<title>Community-fiskebolle på ROOTS 2012</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/OzcD633qgQQ/</link>
		<comments>http://blog.kjempekjekt.com/2012/04/27/community-fiskebolle-p-roots-2012/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 12:52:06 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[NNUG / community]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/2012/04/27/community-fiskebolle-p-roots-2012/</guid>
		<description><![CDATA[I forbindelse med ROOTS-konferansen, som pågår i Bergen akkurat nå, arrangerte NNUG og JavaBin i går kveld et community fishbowl-møte. Dette er en form for paneldebatt hvor hverken temaene det skal snakkes om eller hvem som skal snakke er avtalt på forhånd. Formatet ble prøvd ut i fjor, og fungerte da så bra at det [...]]]></description>
			<content:encoded><![CDATA[<p>I forbindelse med <a href="http://rootsconf.no/">ROOTS-konferansen</a>, som pågår i Bergen akkurat nå, arrangerte NNUG og JavaBin i går kveld et community fishbowl-møte. Dette er en form for paneldebatt hvor hverken temaene det skal snakkes om eller hvem som skal snakke er avtalt på forhånd. Formatet ble prøvd ut i fjor, og fungerte da så bra at det ble gjentatt i år. </p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="WP_000369" border="0" alt="WP_000369" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/04/WP_000369.jpg" width="504" height="314"></p>
<p>Og resultatet var <strong>upåklagelig god stemning og friske diskusjoner fylt med sterke meninger</strong>. Utviklermiljøet har kanskje en høyere andel introverte og asosiale mennesker enn grupperinger flest, men det skjer ting når vi møtes og diskuterer det vi brenner for!</p>
<p>Jeg skal ikke gjengi spesielt mye av hva som ble sagt, men jeg satte blant annet pris på debatten rundt nødvendigheten av <em><a href="http://en.wikipedia.org/wiki/Outsourcing">outsourcing</a></em>, hva det krever/innebærer av omstillinger, og hvordan man gjør det effektivt.</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="WP_000365" border="0" alt="WP_000365" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/04/WP_000365.jpg" width="504" height="239"></p>
<p>En annen diskusjon som økte temperaturen i rommet startet med bruk av <a href="http://en.wikipedia.org/wiki/Object-relational_mapping">ORM</a>&#8216;er, og endte opp med å handle om <a href="http://martinfowler.com/eaaDev/EventSourcing.html"><strong>event sourcing</strong></a>, og hvordan det kan erstatte behovet for tradisjonelle databaser og totalt sett gir en bedre og mer fleksibel løsning.</p>
<p>Vi hadde også en meget kort diskusjon om LISP, og hvorfor folk ikke bruker det. Det ble sagt av flere at det som tiltrekker dem til programmering er at det er det nærmeste vi kommer <em>magi</em>; vi kan tenke på ting som ikke eksisterer, trykke litt på tastene, og så har vi laget de mest fantastiske ting som påvirker mennesker og hverden rundt oss. Mitt poeng med LISP er at det er det språket med størst magisk potensiale.</p>
<p>Det ble også litt flåsete sagt at det aldri har blitt laget noe fornuftig i LISP. Dette er selvfølgelig ikke tilfelle – jeg kom ikke på det i går, men jeg burde selvsagt ha påpekt at vi til og med har sendt kjørende LISP-kode ut i verdensrommet. NASA&#8217;s Remote Agent, programmert i Common Lisp, ble blant annet forsøkt portet til C++, men det måtte man gi opp etter ett år med utvikling. I 1999 kontrollerte programvaren <em>Deep Space 1</em>, og ble kåret til <em>&#8220;NASA Software of the Year&#8221;</em>. (<a href="http://www.flownet.com/gat/jpl-lisp.html">kilde</a>)</p>
<p>Mer om <a href="http://en.wikipedia.org/wiki/Fishbowl_(conversation)">Fishbowl-konseptet på WikiPedia</a>. Følg med på <a href="http://bergen.nnug.no/"><strong>bergen.nnug.no</strong></a> for fremtidige møter!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=OzcD633qgQQ:BiwE9V_RhTE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=OzcD633qgQQ:BiwE9V_RhTE:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=OzcD633qgQQ:BiwE9V_RhTE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/OzcD633qgQQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/04/27/community-fiskebolle-p-roots-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/04/27/community-fiskebolle-p-roots-2012/</feedburner:origLink></item>
		<item>
		<title>10 Podcasts du bør høre på</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/n5bX6v_fv7w/</link>
		<comments>http://blog.kjempekjekt.com/2012/04/26/10-podcasts-du-br-hre-p/#comments</comments>
		<pubDate>Thu, 26 Apr 2012 08:33:15 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[Podcasts]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/2012/04/26/10-podcasts-du-br-hre-p/</guid>
		<description><![CDATA[For tre år siden lagde jeg en liste over det jeg den gang mente var de 12 beste podcastene for programmerere. Det er på tide med en liten oppdatering! Det har ikke skjedd forferdelig mye i podcast-verden, og flere av showene jeg hører på er de samme som jeg anbefalte i starten av 2009. Hanselminutes, [...]]]></description>
			<content:encoded><![CDATA[<p>For tre år siden lagde jeg en liste over det jeg den gang mente var <a href="http://blog.kjempekjekt.com/2009/02/18/de-12-beste-podcastene-for-programmerere/">de 12 beste podcastene for programmerere</a>. Det er på tide med en liten oppdatering!</p>
<p>Det har ikke skjedd forferdelig mye i podcast-verden, og flere av showene jeg hører på er de samme som jeg anbefalte i starten av 2009. <em>Hanselminutes</em>, <em>.NET Rocks</em>, <em>Herding Code</em> og <em>Software Engineering Radio</em> har vært med meg hele veien. Sistnevnte har også blitt betraktelig mere interessant de siste årene.</p>
<p>Så uten noe mer &#8220;om og men&#8221;, her er listen over podcasts jeg lytter til gjevnlig, og hva jeg synes om dem. Og jeg begynner med de middelmådige, og ender med de helt suverene:</p>
<table cellspacing="20">
<tbody>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/three-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://javaposse.com/">The Java Posse</a></strong><br />Fire utviklere som egentlig skal snakke om Java, men som ender opp med å snakke om alt mulig annet. Java Posse er helt uten struktur, og minner mer om en typisk pub-samtale mellom geeks. Kan sammenlignes med program som <em>Nytt På Nytt</em> eller <em>Trygdekontoret</em> på NRK. Selv om jeg ikke interesserer meg for Java er dette podcastet underholdende nok når jeg ikke orker å høre på noe annet.</td>
</tr>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/four-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://pragprog.com/podcasts">Pragmatic Podcasts</a></strong><br />Et podcast fra The Pragmatic Programmers. Veldig bra intervjuer, men veldig få publikasjoner – fem stykk i løpet a 2011, og ingen sålangt i år. Du finner shows om smidig og craftsmanship, Ruby, CoffeeScript, webutvikling m.m.</td>
</tr>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/four-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://www.brainsciencepodcast.com/">Brain Science Podcast</a></strong><br />Ikke akkurat et podcast for utviklere, men det er viktig å få inpulser fra mange ulike kilder, og dette er for dem som vil få et bedre innblikk i hva vi vet om hvordan hjernen fungerer.</td>
</tr>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/four-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://drunkandretired.com/thepodcast/">Drunk And Retired</a></strong><br />Et ganske useriøst show om programmering og andre nerde-tema. Mye humor og relativt sterke meninger om industrien vår. Ganske underholdende, men ikke et podcast for dem som bare vil holde seg oppdatert.</td>
</tr>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/five-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://www.se-radio.net/">Software Engineering Radio</a></strong><br />Dette podcastet er litt &#8220;tørrere&#8221; enn de fleste andre, men går også dypere på ulike tema enn mange andre show. Altså ikke alltid så underholdende, men faglig veldig spennende. Tema i det siste har blant annet vært MongoDB, IBM Mainframes, domenespesifike språk, distribuert Scrum og quantum computing.</td>
</tr>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/five-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://www.dotnetrocks.com/">.NET Rocks!</a></strong><br />Sansynligvis det mest kjente utviklerpodcastet, med to nye show hver uke. Jeg irriterer meg ofte over at nivået er litt for lavt for meg, men kvaliteten på showet er likevel så bra at jeg stadig hører på det. Er du ikke allerede en <em>early adapter</em> vil du kunne holde deg veldig oppdatert på hva som skjer i .NET-verden med .NET Rocks.</td>
</tr>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/five-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://www.hanselminutes.com/">Hanselminutes</a></strong><br />Scott Hanselman er en instererssant fyr, og veldig pedagogisk. Han intervjuer folk både i og utenfor .NET-verden, og jeg føler jeg får endel ut av det. Lengden på ca 30 minutter pr show er akkurat passe. I det siste har det blant annet handlet om F#, startups, MonoTouch, Science Fiction-bøker og om ekteskap mellom geeks og ikke-geeks.</td>
</tr>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/five-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://herdingcode.com/">Herding Code</a></strong><br />Herding Code var lenge mitt favoritt-cast; en uformell diskusjon mellom fire geeks. Ikke så ustrukturert og mer &#8220;on topic&#8221; enn The Java Posse. I det siste har de blant annet snakket om ASP.NET MVC og WEB API, JavaScript-bibloteker, Code52, Contiuous Testing og Git, og intervjuet folk som Roy Osherove og Douglas Crockford.</td>
</tr>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/six-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://thisdeveloperslife.com/">This Developer&#8217;s Life</a></strong><br />Et anderledes og estetisk vakkert podcast for utviklere isped mye bra musikk. Det er Scott Hanselman og Rob Conery som står bak dette, og de snakker mye om hvordan det er å være en utvikler, og hvordan de forholder seg til læring, stress, kritikk, og mye annet. De presenterer historier fra virkeligheten, og intervjuer mange spennende mennesker. Anbefales på det sterkeste!</td>
</tr>
<tr>
<td style="padding-top: 5px" valign="top"><img src="http://www.kjempekjekt.com/images/six-dice.gif" width="15" height="15"></td>
<td><strong><a href="http://thinkrelevance.com/blog/tags/podcast">ThinkRelevance: The Podcast</a></strong><br />ThinkRelevance er et veldig spennende firma – tradisjonelt har de drevet med Ruby-utvikling, men er nå også sterke på Clojure. Det jobber et hav av ekstremt dyktige utviklere der, og i dette podcastet intervjues de <em>en etter en</em>. De snakker om hva de holder på med, hvordan de jobber, og hvilke prinsipper som ligger til grunn hos alle som jobber her. Meget inspirerende!</td>
</tr>
</tbody>
</table>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=n5bX6v_fv7w:101bTcZI1w0:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=n5bX6v_fv7w:101bTcZI1w0:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=n5bX6v_fv7w:101bTcZI1w0:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/n5bX6v_fv7w" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/04/26/10-podcasts-du-br-hre-p/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/04/26/10-podcasts-du-br-hre-p/</feedburner:origLink></item>
		<item>
		<title>NDC2012 wallpaper</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/31Lu6xzReIc/</link>
		<comments>http://blog.kjempekjekt.com/2012/04/21/ndc2012-wallpaper/#comments</comments>
		<pubDate>Sat, 21 Apr 2012 06:09:37 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[NDC]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/2012/04/21/ndc2012-wallpaper/</guid>
		<description><![CDATA[Gleder du deg til Norwegian Developers Conference? Mens du venter på at det skal bli juni kan du laste ned min nye NDC2012 Wallpaper, som viser den fantastiske samlingen med over 100 profilerte utviklere og forelesere vi har fått tak i til konferansen. Klarte ikke å motstå fristelsen til å plassere mitt eget bilde der [...]]]></description>
			<content:encoded><![CDATA[<p>Gleder du deg til <a href="http://www.ndcoslo.com/">Norwegian Developers Conference</a>? Mens du venter på at det skal bli juni kan du laste ned min nye NDC2012 Wallpaper, som viser den fantastiske samlingen med over 100 profilerte utviklere og forelesere vi har fått tak i til konferansen.</p>
<p><a href="http://www.kjempekjekt.com/images/ndc2012/"><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" border="0" src="http://www.kjempekjekt.com/images/ndc2012/NDC2012Wallpaper_small.jpg"></a></p>
<p>Klarte ikke å motstå fristelsen til å plassere mitt eget bilde der også :D</p>
<p>Det var mye å få oversikt over, så om jeg har glemt noen eller gjort noen andre feil så er det bare til å si fra! Enjoy!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=31Lu6xzReIc:MqVMfYWCKYI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=31Lu6xzReIc:MqVMfYWCKYI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=31Lu6xzReIc:MqVMfYWCKYI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/31Lu6xzReIc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/04/21/ndc2012-wallpaper/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/04/21/ndc2012-wallpaper/</feedburner:origLink></item>
		<item>
		<title>Vakker kode fungerer bedre</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/bWeI2q0US8k/</link>
		<comments>http://blog.kjempekjekt.com/2012/04/02/vakker-kode-fungerer-bedre/#comments</comments>
		<pubDate>Mon, 02 Apr 2012 20:19:38 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[OO-design/clean code]]></category>
		<category><![CDATA[Softwareutvikling]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/2012/04/02/vakker-kode-fungerer-bedre/</guid>
		<description><![CDATA[Jeg er en sånn programmerer som bruker mye magefølelse og intuisjon. Kode skal se bra ut, den skal føles riktig. For noen dager siden hadde Computerworld en artikkel hvor de skrev om Vakker programvarekode. De fortalte at det er svært vanlig å vurdere hvor vakker kode er, og at de mest erfarne utviklerne er de [...]]]></description>
			<content:encoded><![CDATA[<p><img style="background-image: none; border-right-width: 0px; margin: 0px 25px 0px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px" title="beautyeye" border="0" alt="beautyeye" align="left" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/04/beautyeye.jpg" width="200" height="335">Jeg er en sånn programmerer som bruker mye magefølelse og intuisjon. Kode skal se bra ut, den skal <em>føles</em> riktig. </p>
<p>For noen dager siden hadde Computerworld en artikkel hvor de skrev om <a href="http://www.idg.no/computerworld/article242008.ece">Vakker programvarekode</a>. De fortalte at det er svært vanlig å vurdere hvor vakker kode er, og at de mest erfarne utviklerne er de mest estetikk-orienterte. Artikkelen snakket om studier som viser at vi vurderer estetiske kvaliteter i kode før vi vurderer korrekthet, og at mye tyder på at identifikasjon av stygg kode brukes som indikator på problematisk kode.</p>
<p>Men artikkelen skraper bare i overflaten av <em>hvorfor</em> estetikk er viktig – hvorfor eksperter dømmer kode ut i fra hvor vakker den er. For skal ikke kode bare gjøre jobben sin.., spiller det noen rolle hvordan den ser ut? Datamaskinen bryr seg jo ikke. I går kom jeg til eksempel over <a href="http://www.newfangled.com/your_ego_is_a_bad_designer">en blogpost</a> som hardnakket hevder:</p>
<p style="background-color: #eeeeee; padding-left: 20px; padding-right: 15px; font-size: 110%"><em>&#8220;Your job is to solve a business problem, not to create a thing of beauty. Your ideals—what you feel is attractive, innovative, or effective—are secondary to what your client needs.&#8221;</em></p>
<p>Det er flere grunner til at vakker kode er viktig. Men det jeg synes er mest interessant er hva &#8220;vakkert&#8221; <u>er</u> for noe. Siden vi mennesker gjennom evolusjonen har utviklet denne egenskapen – <em>å synes at noe er fint</em> – så må det jo nesten ha en funksjon.</p>
<p>Og dette vet vi faktisk en god del om. Når du synes noe er vakkert så kan du se på det som at intuisjonen din forsøker å fortelle deg at det du ser er bra. Noe som er &#8220;riktig&#8221;, noe som vil fungere godt. Studier har gang på gang vist at vakre utgaver av fremkomstmidler, redskaper o.l. er bedre enn de mindre vakre utgavene (se linker nederst). Tiltalende websider er enklere å bruke enn stygge websider. Dette er ikke fordi vakkerhet gjør ting bedre, men <strong>fordi vi synes at velfungerende ting er vakre!</strong></p>
<p>Hjernen vår har <a href="http://www.drawright.com/theory.htm">to moduser</a> som fungerer side ved side. L-modusen (det vi tradisjonelt har kalt venstre hjernehalvdel) er sekvensiell og analytisk. Det er den vi resonerer med, det er den som er vår indre monolog. R-modusen derimot (trad: høyre) kan du se på som en prossess av veldig mange parallelle tråder. Den er utrolig flink til å søke i hukommelsen vår og <strong>finne mønstre</strong> blant alle våre erfaringer, og gjennom det løse problemer. </p>
<p>Men R-modusen har ikke noe språk &#8211; den bruker ikke ord – og for at vi skal bli bevisste på hva R-modusen kommer opp med må det kommuniseres gjennom andre kanaler. Bilder. Følelser. Intuisjon. Estetikk!</p>
<p><img style="background-image: none; border-right-width: 0px; padding-left: 0px; padding-right: 0px; display: block; float: none; border-top-width: 0px; border-bottom-width: 0px; margin-left: auto; border-left-width: 0px; margin-right: auto; padding-top: 0px" title="Brain2" border="0" alt="Brain2" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/04/Brain2.jpg" width="500" height="409"></p>
<p>Dyktige utviklere (og dyktige utøvere innen de fleste andre felt) lærer seg å bruke R-modusen som en viktig ressurs for å løse problemer. Gjennom erfaring har de opparbeidet seg det man kaller en intuitiv forståelse. I foredraget <a href="http://blip.tv/clojure/hammock-driven-development-4475586">Hammock-driven Development</a> forklarte Rich Hickey i 2010 hvordan han laster opp hjernen sin med så mye informasjon som mulig om et problem, for så å slappe av (i hengekøyen) og bevisst la være å tenke på problemet. Å <em>&#8220;la være å tenke&#8221;</em> vil si å roe ned L-modusen, slik at R-modusen får jobbe i fred. Da kommer løsningene raskere, helt &#8220;av seg selv&#8221;.</p>
<p>Andre kjente teknikker for å aktivere R-modusen er å gå seg en tur, spille foosball på pauserommet, eller på andre måter aktivere kroppen og distrahere den indre monologen. Å sitte stille forran PC-skjermen er ikke den beste måten å løse komplekse problemer på.</p>
<p style="font-size:110%;">Så skjønnhet er viktig! Når du synes kode er vakker er det kanskje hjernen din som bruker en snarvei til å fortelle deg at den er bra.</p>
<p>Men du skal vær bare klar over at R-modusen ikke er feilfri. Vi har alle våre bugs, og intuisjonen vår tar ofte feil. Kjente forelesere i software craftsmanship-bevegelsen som for eksempel Dan North snakker om såkalte <a href="http://en.wikipedia.org/wiki/Cognitive_bias">cognitive biases</a> (vurderings-skjevhet). R-modus kan brukes til å komme opp med løsningsforslag eller forslag til sannheter, men så bør man analysere (bruke L-modus, bevisst logikk) for å verifisere. I <a href="http://pragprog.com/book/ahptl/pragmatic-thinking-and-learning">Pragmatic Thinking &amp; Learning</a><em></em> (som jeg på det sterkeste vil anbefale) sier Andy Hunt: </p>
<p style="background-color: #eeeeee; padding-left: 20px; padding-right: 15px; font-size: 110%"><em>&#8220;Lead with R-mode; follow with L-mode.&#8221;</em></p>
<p>I den moderne, vitenskapsbaserte verden – og kanskje spesielt i Vesten – er vi veldig fokusert på L-modusen. Det er den vi aktiviserer på skolen, og vi lærer svært lite om hvordan vi kan utvikle intuisjonen vår. Men skal man bli virkelig dyktig er det ingen vei utenom om tappe potensialet som ligger &#8220;i høyresiden&#8221;.</p>
<p>Vakker kode er ikke bedre i seg selv. Men utviklere synes at kode som kommuniserer godt, er fleksibel og har lav kompleksitet, er vakrere enn annen kode. Og dette kan man bruke som en snarvei; men kan skrive kode man synes er fin, mens det som egentlig skjer er at underbevisstheten hjelper deg og passer på at du gjør ting så godt som mulig, basert på dine tidligere erfaringer.</p>
<p>Så forsøk å gjøre koden din vakker – for det er en grunn til at du har en estetisk sans. </p>
<p>Vakker kode <em>er</em> som regel bedre!</p>
<p><strong>Referanser:</strong><br />* <a href="http://www.amazon.com/Emotional-Design-Love-Everyday-Things/dp/0465051359">Emotional Design: Why We Love (or Hate) Everyday Things</a><br />* <a href="http://www.sigchi.org/chi95/proceedings/shortppr/mk_bdy.htm">Apparent Usability vs. Inherent Usability</a><br />* <a href="http://www.sigchi.org/chi97/proceedings/paper/nt.htm">Aesthetics and Apparent Usability</a><br />* <a href="http://www.psych.ucsb.edu/~ashby/rev10635.pdf">A Neuropsychological Theory of Positive Affect and Its Influence on Cognition</a><br />* <a href="http://faculty.fuqua.duke.edu/~gavan/bio/GJF_articles/apple_ibm_jcr_08.pdf">Automatic Effects of Brand Exposure on Motivated Behavior: How Apple Makes You “Think Different”</a></p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=bWeI2q0US8k:lmgKOV4LLy4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=bWeI2q0US8k:lmgKOV4LLy4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=bWeI2q0US8k:lmgKOV4LLy4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/bWeI2q0US8k" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/04/02/vakker-kode-fungerer-bedre/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/04/02/vakker-kode-fungerer-bedre/</feedburner:origLink></item>
		<item>
		<title>NDC 2012 agendaen: Agile &amp; Craftsmanship</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/C_LZ4nLmXi8/</link>
		<comments>http://blog.kjempekjekt.com/2012/03/19/ndc-2012-agendaen-agile-craftsmanship/#comments</comments>
		<pubDate>Mon, 19 Mar 2012 07:50:23 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[NDC]]></category>
		<category><![CDATA[Softwareutvikling]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/2012/03/19/ndc-2012-agendaen-agile-craftsmanship/</guid>
		<description><![CDATA[Det kan være vanskelig å skaffe seg den komplette oversikten over agendaen for Norwegian Developers Conference 2012 – det er jo så mange tema og navn å holde orden på. Jeg gjør mitt beste for å vise vei i mylderet av presentasjoner, og har nå kommet til det andre av konferansens hovedtema&#8230; NDC er en [...]]]></description>
			<content:encoded><![CDATA[<p>Det kan være vanskelig å skaffe seg den komplette oversikten over agendaen for <a href="http://ndcoslo.com/">Norwegian Developers Conference 2012</a> – det er jo så mange tema og navn å holde orden på. Jeg gjør mitt beste for å vise vei i mylderet av presentasjoner, og har nå kommet til det andre av konferansens hovedtema&#8230;</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="agenda_agile" border="0" alt="agenda_agile" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/03/agenda_agile.png" width="477" height="85"></p>
<p>NDC er en smidig konferanse, og tiltrekker seg noen store navn på dette feltet. Her har jeg valgt ut de mest spennende foredragene og foredragsholderne.</p>
<h4>Smidige teams og prosjekter</h4>
<p><a href="http://ndcoslo.oktaset.com/p-2875">Dan North</a> er en fyr du absolutt ikke bør gå glipp av. I foredraget <em>Embracing Uncertainty</em> vil han snakke om kjernen i smidig utvikling. Dette kommer til å bli et av høydepunktene om du spør meg.</p>
<p><a href="http://ndcoslo.oktaset.com/p-2837">Jonathan Rasmusson</a>, forfatteren av boken <a href="http://pragprog.com/refer/pragpub16/titles/jtrap/the-agile-samurai"><em>The Agile Samurai</em></a>, er også en veldig spennende foreleser. Han vil holde to foredrag om smidig ledelse under konferansen.</p>
<p>Konferansedeltagere som vil lære mer om <strong>Scrum</strong> får også muligheten til å tilbringe en hel dag med <a href="http://ndcoslo.oktaset.com/p-405">Mike Cohn</a>. I år vil han blant annet fokusere på ting som estimering, planlegging, user stories, og hvordan man skalerer scrum til distribuerte team.</p>
<p>I tillegg vil jeg nevne at <a href="http://ndcoslo.oktaset.com/p-2867">Cory Foy</a> vil snakke om <strong>Kanban</strong>, og at <a href="http://ndcoslo.oktaset.com/p-2880">Paul Goddard</a> og <a href="http://ndcoslo.oktaset.com/p-365">Geoff Watts</a> vil holde en tre timers lang workshop de har valgt å kalle <em>Game Oriented Agile Learning</em>.</p>
<h4>Bli en bedre utvikler</h4>
<p><strong>Craftsmanship</strong> handler om hvordan vi enkeltvis utøver faget vårt, og hvordan vi blir bedre utviklere. <a href="http://ndcoslo.oktaset.com/p-403">Robert C. Martin</a>&#8216;s sesjoner representerer som regel høydepunktene for meg på konferanser som dette, og i <a href="http://ndcoslo.oktaset.com/t-4883"><em>Professional Software Development</em></a> vil han snakke om hva det vil si å være en profesjonell utvikler i 2012.</p>
<p>I følge ryktene er <a href="http://ndcoslo.oktaset.com/p-2860">Venkat Subramaniam</a> en utrolig dyktig og populær foreleser. Han vil blant annet snakke om betydningen av kodekvalitet. <a href="http://ndcoslo.oktaset.com/p-2718">Roy Osherove</a> er også med, og vil i år fortelle deg hvordan du kan bli en bedre utvikler ved å bryte ut av din komfort-sone.</p>
<p>Og så er du nesten nødt til å få med deg <a href="http://ndcoslo.oktaset.com/p-397">Greg Young</a>. Jeg vurderer faktisk å delta på hans <a href="http://www.ndcoslo.com/Workshop/Workshops">pre-conference workshop</a> også. Under konferansen vil han snakke om hvordan man raskest mulig kommer igang med å levere reell verdi på et nytt prosjekt. </p>
<h4>Når utviklerne tar kontrollen</h4>
<p>NDC 2012 vil også gi deg et par foredrag som snakker om hva som skjer når utviklerne kaster bort alle formaliteter og tar styringen selv. I <a href="http://ndcoslo.oktaset.com/t-4858"><strong>Programmer Anarchy</strong></a> vil <a href="http://ndcoslo.oktaset.com/p-2808">Fred George</a> fortelle om steget <em>etter</em> Agile, og morromannen <a href="http://ndcoslo.oktaset.com/p-2868">Zach Holman</a> vil gi oss et innblikk i hvordan ting fungerer internt hos GitHub.</p>
<p align="left">Det blir også flere <strong><a href="http://en.wikipedia.org/wiki/DevOps">DevOps</a></strong>-relaterte sesjoner. David Farley er en av forfatterne bak boken <em><a href="http://continuousdelivery.com/">Continuous Deliver</a></em>, som ble kåret til den aller viktigste og beste boken for utviklere i fjor. Han kommer til NDC for å snakke om dette.</p>
<h4>Noen andre potensielle høydepunkt</h4>
<p>En sesjon jeg er litt spent på er <a href="http://ndcoslo.oktaset.com/p-2744">Hadi Hariri</a>&#8216;s <a href="http://ndcoslo.oktaset.com/t-4863"><strong><em>Developers: The Prima Donnas of the 21st Century</em></strong></a>. Det høres ut som om han vil provosere litt, og det kan jo bli gøy. Ellers vil jeg nok ta turen innom <a href="http://ndcoslo.oktaset.com/t-4942"><strong><em>You had me at Halo</em></strong></a>, et foredrag om hva vi kan lære av <em>online gaming</em> for å skape bedre kommunikasjon og samarbeid i distribuerte utviklerteam.</p>
<p>Som du ser er det nok av sesjoner som vil fortelle deg hvordan du både som individuell utvikler og som teammedlem bør forholde deg til softwareutvikling. Dette er presentasjoner som vil gi både nyttige tips og inspirasjon til å bli bedre utviklere, og jeg gleder meg sykt mye til noen av disse.</p>
<p>Tidligere poster om de røde trådene: <a href="http://blog.kjempekjekt.com/2012/03/17/ndc-2012-agendaen-webutvikling/">Webutvikling på NDC 2012</a>.</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=C_LZ4nLmXi8:2siwDS645GQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=C_LZ4nLmXi8:2siwDS645GQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=C_LZ4nLmXi8:2siwDS645GQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/C_LZ4nLmXi8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/03/19/ndc-2012-agendaen-agile-craftsmanship/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/03/19/ndc-2012-agendaen-agile-craftsmanship/</feedburner:origLink></item>
		<item>
		<title>NDC 2012 agendaen: Webutvikling</title>
		<link>http://feedproxy.google.com/~r/kjempekjektcom/~3/33r-Q9dSnnI/</link>
		<comments>http://blog.kjempekjekt.com/2012/03/17/ndc-2012-agendaen-webutvikling/#comments</comments>
		<pubDate>Fri, 16 Mar 2012 23:15:50 +0000</pubDate>
		<dc:creator>Torbjørn</dc:creator>
				<category><![CDATA[NDC]]></category>
		<category><![CDATA[Webutvikling]]></category>

		<guid isPermaLink="false">http://blog.kjempekjekt.com/2012/03/17/ndc-2012-agendaen-webutvikling/</guid>
		<description><![CDATA[I fjor var jeg (som nevnt tidligere) så heldig å bli invitert til å få være med å forme 2012-utgaven av Norwegian Developers Conference. Vi har jobbet hardt med å velge ut de beste av over 500 foreslåtte foredrag, og nå er endelig agendaen lansert. Vi har forsøkt å fokusere agendaen rundt noen tydelige tema, [...]]]></description>
			<content:encoded><![CDATA[<p>I fjor var jeg (<a href="http://blog.kjempekjekt.com/2012/02/22/tanker-om-ndc-2012/">som nevnt tidligere</a>) så heldig å bli invitert til å få være med å forme 2012-utgaven av <a href="http://ndcoslo.com/">Norwegian Developers Conference</a>. Vi har jobbet hardt med å velge ut de beste av over 500 foreslåtte foredrag, og nå er endelig agendaen lansert.</p>
<p>Vi har forsøkt å fokusere agendaen rundt noen tydelige tema, men innholdet er likevel ganske variert, og det kan nok være vanskelig å få en god oversikt. Det er jo tross alt tre fulle dager med i år <em>åtte</em> tracks hver dag, pluss workshops. Derfor vil jeg nå skrive en rekke blogposter som tar for seg de ulike hovedtemaene for konferansen – <em>de røde trådene</em> – og trekke frem noen av de forelesere og foredragene jeg mener folk bør få med seg.</p>
<p>Og her kommer den første&#8230;</p>
<p><img style="background-image: none; border-bottom: 0px; border-left: 0px; padding-left: 0px; padding-right: 0px; display: inline; border-top: 0px; border-right: 0px; padding-top: 0px" title="agenda_web" border="0" alt="agenda_web" src="http://blog.kjempekjekt.com/wp-content/uploads/2012/03/agenda_web.png" width="477" height="85"></p>
<p>Webben er en sentral plattform for de aller fleste utviklere, og er selvfølgelig også et av de viktigste fokusområdene for NDC 2012. Det skjer mye på denne fronten, og det kan være vanskelig å henge med. NDC vil forsøke å gi deg en god oversikt over mulighetene som finnes, og det blir flere muligheter for dypdykk i utvalgte teknologier.</p>
<h4>ASP.NET</h4>
<p>Det er mange som kommer til Oslo i sommer får å høre hva som er nytt for webutviklere på .NET-plattformen. Og vi har vært så heldige å få med oss <a href="http://ndcoslo.oktaset.com/p-2870">Brad Wilson</a>, som er utvikler på ASP.NET MVC-teamet hos Microsoft. Han vil introdusere deg for det som nå heter <strong>ASP.NET Web API</strong>, som gjør det enklere å lage gode html-baserte API&#8217;er. <a href="http://ndcoslo.oktaset.com/p-2786">Dominick Baier</a> vil så fortelle deg alt du trenger å vite om sikkerhet knyttet til Web API.</p>
<h4>HTML5 og CSS3</h4>
<p>Alle snakker om HTML5 for tiden, og det vil man gjøre under konferansen også. Jeg vil trekke frem <a href="http://ndcoslo.oktaset.com/p-2857">Lea Verou</a>, som er spesielt dyktig på og kjent for sine presentasjoner om CSS. <a href="http://ndcoslo.oktaset.com/p-1883">Bruce Lawson</a> er også med, og vil blant annet holde et foredrag om HTML5 Multimedia. Og <a href="http://ndcoslo.oktaset.com/p-2778">Jon Galloway</a> (kjent fra podcastet <em>Herding Code</em>) vil lære <em>&#8220;gamle grinebitere&#8221;</em> å bli glad i HTML og CSS.</p>
<p><a href="http://ndcoslo.oktaset.com/p-376">Remy Sharp</a> fra jQuery-teamet er det nok også spennende å få med seg. Han vil kaste lys over noen av de delene av HTML5 som folk ikke snakker så mye om, men som likevel er viktige.</p>
<h4>Grafikk og Canvas</h4>
<p><a href="http://ndcoslo.oktaset.com/p-2760">Rob Ashton</a> er også tilbake i år, og vil nå snakke om noe han brenner veldig for – nemlig <strong>WebGL</strong>, et subset av OpenGL for browseren. <a href="http://ndcoslo.oktaset.com/p-2834">David Geary</a> er også en interessant fyr med de spennende sesjonene: <strong>Mind-blowing Apps with HTML5 Canvas</strong> og <strong>HTML5 Game Development</strong>. Hvem har vel ikke lyst til å lære å lage kule spill for web?</p>
<h4>Node.js</h4>
<p>Node.js lar deg kode JavaScript på serveren, og har vært veldig populært en stund nå. <a href="http://ndcoslo.oktaset.com/p-2815">Sara Chipps</a>, kjent fra <em><a href="http://girldevelopit.com/">Girl Develop It</a></em>, vil vise nybegynnere hvordan man lager en webapplikasjon med Node.js på 60 minutter. <a href="http://ndcoslo.oktaset.com/p-2863">Rob Conery</a> er tilbake i år også, og vil følge opp med et noe mer avansert node.js-foredrag.</p>
<h4>Web Sockets</h4>
<p><a href="http://ndcoslo.oktaset.com/p-2738">Guillermo Rauch</a> er mannen bak JavaScript-bibloteket <strong>Socket.io</strong>. Å få ham til Norge er ganske stort! Guillermo vil holde sesjoner om både web sockets og node.js. Konferansen vil dessuten ha foredrag som omfatter <strong>SignalR</strong> – et .NET-rammeverk for full duplex mellom browser og webserver uten å nødvendigvis kreve støtte for web sockets.</p>
<h4>Konklusjon</h4>
<p>Som du forstår er programmet tettpakket med innhold om webutvikling, og om du ønsker å få med deg alt i denne røde tråden så rekker du ikke stort annet. Personlig er jeg veldig interessert i web sockets, så det må jeg få med meg. Og så har jeg veldig lyst å bli inspirert av David Geary&#8217;s presentasjoner.</p>
<p>Lykke til med dine egne valg, og følg med videre for flere poster om agendaen for NDC 2012!</p>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=33r-Q9dSnnI:QazRBdugKMs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?i=33r-Q9dSnnI:QazRBdugKMs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/kjempekjektcom?a=33r-Q9dSnnI:QazRBdugKMs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/kjempekjektcom?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/kjempekjektcom/~4/33r-Q9dSnnI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://blog.kjempekjekt.com/2012/03/17/ndc-2012-agendaen-webutvikling/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://blog.kjempekjekt.com/2012/03/17/ndc-2012-agendaen-webutvikling/</feedburner:origLink></item>
	</channel>
</rss>

