<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	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/"
	>

<channel>
	<title>Blogg - Athega AB &#187; Peter Hellberg</title>
	<atom:link href="http://blogg.athega.se/author/peter/feed/" rel="self" type="application/rss+xml" />
	<link>http://blogg.athega.se</link>
	<description>...</description>
	<lastBuildDate>Thu, 18 Nov 2010 22:17:36 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Warden</title>
		<link>http://blogg.athega.se/2010/10/30/warden/</link>
		<comments>http://blogg.athega.se/2010/10/30/warden/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 20:48:03 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Utbildning]]></category>
		<category><![CDATA[Öppen källkod]]></category>
		<category><![CDATA[Rack]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Warden]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=935</guid>
		<description><![CDATA[Igår höll jag i internutbildningen på vårt månadsmöte, denna gång berättade jag om autentiseringsramverket Warden och lite kort om Rack. .prezi-player { width: 750px; } .prezi-player-links { text-align: center; } Warden on Prezi]]></description>
			<content:encoded><![CDATA[<p>Igår höll jag i internutbildningen på vårt månadsmöte, denna gång berättade jag om autentiseringsramverket <a href="http://github.com/hassox/warden/wiki">Warden</a> och lite kort om <a href="http://rack.rubyforge.org/">Rack</a>.</p>
<div class="prezi-player">
<style type="text/css" media="screen">.prezi-player { width: 750px; } .prezi-player-links { text-align: center; }</style>
<p><object id="prezi_2dfftawbzg9y" name="prezi_2dfftawbzg9y" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="750" height="500"><param name="movie" value="http://prezi.com/bin/preziloader.swf"/><param name="allowfullscreen" value="true"/><param name="allowscriptaccess" value="always"/><param name="bgcolor" value="#ffffff"/><param name="flashvars" value="prezi_id=2dfftawbzg9y&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"/><embed id="preziEmbed_2dfftawbzg9y" name="preziEmbed_2dfftawbzg9y" src="http://prezi.com/bin/preziloader.swf" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="750" height="600" bgcolor="#ffffff" flashvars="prezi_id=2dfftawbzg9y&amp;lock_to_path=0&amp;color=ffffff&amp;autoplay=no&amp;autohide_ctrls=0"></embed></object>
<div class="prezi-player-links">
<p><a title="Warden is a Rack-based middleware, designed to provide a mechanism for authentication in Ruby web applications. It is a common mechanism that fits into the Rack Machinery to offer powerful options for authentication." href="http://prezi.com/2dfftawbzg9y/warden/">Warden</a> on <a href="http://prezi.com">Prezi</a></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2010/10/30/warden/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>lunch.athega.se</title>
		<link>http://blogg.athega.se/2010/10/30/lunch-athega-se/</link>
		<comments>http://blogg.athega.se/2010/10/30/lunch-athega-se/#comments</comments>
		<pubDate>Sat, 30 Oct 2010 20:23:59 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Athega Code Base]]></category>
		<category><![CDATA[Kod]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=927</guid>
		<description><![CDATA[Under Athega Code Base byggde jag en helt ny version av en webbapplikation som jag för två år sedan byggde i Ruby on Rails och Geokit. Denna gång valde jag att använda ramverket Sinatra, databasen MongoDB (genom Mongomatic) samt att hosta allt på Heroku och MongoHQ. Vad jag blev mest imponerad över var det inbyggda [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://lunch.athega.se/"><img class="size-full wp-image-929 alignleft" title="Lunch" src="http://blogg.athega.se/wp-content/uploads/2010/10/lunch-start-page.png" alt="Lunch, startsida" width="331" height="616" /></a></p>
<p><a href="http://lunch.athega.se/#/restaurants/matmekka"><img class="alignright size-full wp-image-928" title="Matmekka" src="http://blogg.athega.se/wp-content/uploads/2010/10/lunch-matmekka.png" alt="Matmekka" width="331" height="616" /></a></p>
<p style="clear: both; margin-top: 1em;">
Under Athega Code Base byggde jag en helt ny version av en webbapplikation som jag för två år sedan byggde i <a href="http://rubyonrails.org/">Ruby on Rails</a> och Geokit. Denna gång valde jag att använda ramverket <a href="http://www.sinatrarb.com/">Sinatra</a>, databasen <a href="http://www.mongodb.org/">MongoDB</a> (genom <a href="http://mongomatic.com/">Mongomatic</a>) samt att hosta allt på <a href="http://heroku.com/">Heroku</a> och <a href="https://mongohq.com/home">MongoHQ</a>.</p>
<p>Vad jag blev mest imponerad över var det inbyggda stödet för <a href="http://www.mongodb.org/display/DOCS/Geospatial+Indexing"><em>geospatial indexing</em></a> i MongoDB samt hur enkelt det var att jobba med Heroku.</p>
<p>Gränssnittet är utvecklat med hjälp av biblioteket <a href="http://jquerymobile.com/">jQuery Mobile</a> och det har visat sig fungera mycket bättre än <a href="http://www.jqtouch.com/">jQTouch</a> som jag tidigare har använt. Vad jag speciellt gillade var den inbyggda routern.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2010/10/30/lunch-athega-se/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mountain.rb &#8211; Dag 2</title>
		<link>http://blogg.athega.se/2010/10/19/mountain-rb-2/</link>
		<comments>http://blogg.athega.se/2010/10/19/mountain-rb-2/#comments</comments>
		<pubDate>Tue, 19 Oct 2010 16:42:08 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Konferens]]></category>
		<category><![CDATA[Programmeringsspråk]]></category>
		<category><![CDATA[Öppen källkod]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=786</guid>
		<description><![CDATA[Jim Weirich (@jimweirich) &#8211; “To Infinity And Beyond” Jim höll i konferensens första keynote, titeln löd  och innehöll allt från Speciella relativitetsteorin, rymdresor och Jims släktskap med folkgruppen Amish. Our world is stranger than we think Jim identifierade några områden som går att förbättra: Testning/Expressiveness (Han har börjat jobba på ramverket Given) Parallellism och stöd [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright size-full wp-image-890" style="margin-bottom: 1em;" title="Boulder Theater" src="http://blogg.athega.se/wp-content/uploads/2010/10/mountain-rb-theater.jpg" alt="" width="750" height="189" /><img class="size-medium wp-image-816    alignright" style="float: right;" title="mountain-rb-wave" src="/wp-content/uploads/2010/10/mountain-rb-wave-300x81.png" alt="" width="240" height="65" /></p>
<h2>Jim Weirich (<a href="http://twitter.com/jimweirich">@jimweirich</a>) &#8211; “<a href="http://github.com/jimweirich/presentation_to_infinity">To Infinity And Beyond</a>”</h2>
<p>Jim höll i konferensens första keynote, titeln löd <a href="http://github.com/jimweirich/presentation_to_infinity"><em> </em></a> och innehöll allt från Speciella relativitetsteorin, rymdresor och Jims släktskap med folkgruppen Amish.</p>
<blockquote><p>Our world is stranger than we think</p></blockquote>
<p>Jim identifierade några områden som går att förbättra:</p>
<ul>
<li>Testning/Expressiveness (Han har börjat jobba på ramverket Given)</li>
<li>Parallellism och stöd för flera CPU-kärnor</li>
<li>Message passing mellan Ruby VMs</li>
</ul>
<h2>Tech Block #1</h2>
<h3>Jay McGavren (<a href="http://twitter.com/jaymcgavren">@jaymcgavren</a>) &#8211; “Ruby on Android with Ruboto”</h3>
<p><img class="size-medium wp-image-811 alignleft" title="mountain-rb-robot" src="/wp-content/uploads/2010/10/mountain-rb-robot-174x300.png" alt="" width="88" height="151" /></p>
<p>Jay berättade om <a href="http://ruboto.org/">Ruboto</a> vilket är ett projekt som gör det möjligt att köra Ruby under Android.</p>
<p>Som demonstration körde han en <a href="http://ruby-doc.org/stdlib/libdoc/drb/rdoc/index.html">DRb</a> server med <a href="http://github.com/jashkenas/ruby-processing">Ruby Processing</a> som han sedan fjärrstyrde från sin Androidmobil.</p>
<p>Tydligen har <a href="http://en.wikipedia.org/wiki/Dalvik_%28software%29">Dalvik</a> en väldigt långsam <a href="http://en.wikipedia.org/wiki/Reflection_(computer_science)">reflektion</a>, men det är något man aktivt jobbar med att lösa.</p>
<h3 style="margin-top: 1em; text-align: left; clear: both; display: block;">Wayne Seguin (<a href="http://twitter.com/wayneeseguin">@wayneeseguin</a>) &#8211; “Do not Bring a Sword to a Gun Fight”</h3>
<p><img class="size-medium wp-image-813  alignright" title="mountain-rb-sword" src="/wp-content/uploads/2010/10/mountain-rb-sword-300x71.png" alt="" width="216" height="51" />Kortfattat kan man säga att föreläsningen handlade om att välja rätt verktyg för jobbet.</p>
<blockquote><p>Common sense isnt’t that common</p></blockquote>
<p>De steg som Wayne gick igenom var:</p>
<ul>
<li>Definiera problemet</li>
<li>Förstå problemet</li>
<li>Hitta möjliga lösningar på problemet</li>
<li>Utvärdera de olika lösningarna</li>
<li>Lös problemet</li>
</ul>
<p>Wayne är kanske mest känd för att ha skapat versionshanteraren <a href="http://rvm.beginrescueend.com/">RVM</a>.</p>
<h3>Tony Arcieri (<a href="http://twitter.com/bascule">@bascule</a>) &#8211; “Reia: Ruby Evolved”</h3>
<p>Tony berättade om <a href="http://wiki.reia-lang.org/wiki/Reia_Programming_Language">Reia</a> (uttalas RAY-uh), vilket är ett Ruby/Python-liknande språk som körs under <a href="http://erlang.org/">Erlangs</a> VM (BEAM)</p>
<p>Projektet är i sin linda, men källkoden ligger självklart på <a href="http://github.com/tarcieri/reia">GitHub</a> så det är bara att sätta igång och experimentera om man känner att man behöver en något trevligare syntax än vad Erlang erbjuder. En trevlig liten detalj är att en <a href="http://json.org/">JSON</a>-parser finns inbyggd i språket. Stränghanteringen är även helt OK, men inte direkt snabb.</p>
<blockquote><p>The fun syntax isn’t that <strong>FUN</strong> in Erlang</p></blockquote>
<h2>Lunch</h2>
<p>Under lunchen snackade jag lite med Joshua Timberman (<a href="http://twitter.com/jtimberman">@jtimberman</a>) från <a href="http://opscode.com/">Opscode</a>. De utvecklar verktyget <a href="http://www.opscode.com/chef/">Chef</a> vilket används för deployment och konfiguration av servrar på infrastrukturnivå (Server configuration management). Som alternativ kan man nämna <a href="http://www.puppetlabs.com/puppet/introduction/">Puppet</a> från Puppet Labs.</p>
<h2>Evan Phoenix (<a href="http://twitter.com/evanphx">@evanphx</a>) &#8211; “Staking your Claim in OSS”</h2>
<p>Evan gick igenom hur man driver ett lyckat open source-projekt. Fyra av de viktigaste poängerna var:</p>
<ul>
<li>Karma</li>
<li>Open source är ett socialt fenomen</li>
<li>Kommunicera!</li>
<li>Var trevlig och håll en sansad ton, även om du inte vill acceptera vissa patchar.<img class="alignright size-medium wp-image-807" title="mountain-rb-forks" src="/wp-content/uploads/2010/10/mountain-rb-forks-176x300.png" alt="" width="123" height="210" /></li>
</ul>
<blockquote><p>Fork for LOVE!</p></blockquote>
<p>Det självklara exempelprojektet var hans eget heltidsprojekt <a href="http://rubini.us/">Rubinius</a>. (En implementation av Ruby, <a href="http://www.engineyard.com/">Engine Yard</a> sponsrar utvecklingen)</p>
<h3 style="text-align: left; display: inline;">Rubinius</h3>
<p>Projektet har många utvecklare då man från början bestämt att det räcker med en enda patch för att få commit-rättigheter. Evan beskrev lätta buggfixar som lågt hängande frukt och en “gateway drug” för nya utvecklare.</p>
<p>De har haft färre än 10 reverts under de tre år som projektet har funnits. Mycket beroende på det sociala kontraktet mellan utvecklarna.</p>
<p><img class="size-medium wp-image-812 " title="mountain-rb-social-contract" src="/wp-content/uploads/2010/10/mountain-rb-social-contract-160x300.png" alt="" width="96" height="180" /></p>
<h2 class="clear: both; display: block;">Joe O&#8217;Brien (<a href="http://twitter.com/objo">@objo</a>) &#8211; “Everyone should know a little about Sales”</h2>
<p>Joe berättade om sina erfarenheter som säljare och varför försäljning fått ett så dåligt rykte. Hans poäng var att försäljning handlar om att identifiera behov och hitta lösningar som passar båda parter. (Ganska likt det vi utvecklare gör) Han fortsatte även med att <strong>alla</strong> anställda är säljande, oavsett yrkesroll.</p>
<h2 class="clear: both; display: block;">Peter Jackson (<a href="http://twitter.com/peteonrails">@peteonrails</a>) &#8211; “Introduction to Geospatial Programming with GeoRuby, PostGIS, and OpenLayers”</h2>
<p>Peter hade en ganska generell genomgång av geospatiell mappning (projektion/geometri) samt en snabb genomgång av projekten <a href="http://georuby.rubyforge.org/">GeoRuby</a>, <a href="http://postgis.refractions.net/">PostGIS</a> och <a href="http://openlayers.org/">OpenLayers</a>.</p>
<h2 class="clear: both; display: block;">Jay Zeschin (<a href="http://twitter.com/jayzes">@jayzes</a>) &#8211; “Avoiding the Seven Year Itch”<img class="alignright size-medium wp-image-805" style="margin-top: 2em;" title="mountain-rb-complexity" src="/wp-content/uploads/2010/10/mountain-rb-complexity-300x139.png" alt="" width="210" height="97" /></h2>
<p>Jay från <a href="http://www.factorylabs.com/">Factory Design Labs</a> avslutade dagens föreläsningar med lite tips för de som sitter fast i långtgående projekt, föråldrade projektmodeller eller legacy-system. Han nämnde även den stora tekniska skuld som (oftast) finns i projekt av den typen.</p>
<blockquote><p>A project is a relationship</p></blockquote>
<ul>
<li>Uppbrott</li>
<li>Tyst lidande</li>
<li>Ta lärdom och gå vidare</li>
</ul>
<blockquote><p>Developers have a vast amount of domain knowledge</p></blockquote>
<p>Jay hade även en lista på vad man bör göra för att rädda ett projekt av denna typ:</p>
<ul>
<li>Snabb återkoppling (<em>test/deploy</em>)</li>
<li>Var hänsynslös</li>
<li>Spikes regelbundet + En titt på verkligheten</li>
<li>Driv engagemang</li>
<li>Sälj in fördelarna</li>
<li>Bygg upp ett förtroende</li>
</ul>
<h2>Quick Left Hackfest</h2>
<p>På kvällen gick vi till <a href="http://quickleft.com/">Quick Left</a> och fortsatte diskussionerna, kodade lite och käkade pizza.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2010/10/19/mountain-rb-2/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Nordic Ruby</title>
		<link>http://blogg.athega.se/2010/05/28/nordic-ruby/</link>
		<comments>http://blogg.athega.se/2010/05/28/nordic-ruby/#comments</comments>
		<pubDate>Fri, 28 May 2010 01:00:38 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Konferens]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=722</guid>
		<description><![CDATA[Förra fredagen åkte jag, Robert och Mats ner till Göteborg för att gå på konferensen Nordic Ruby. Lördag Standing On the Shoulders of Giants Corey Haines inledde konferensen med en uppmaning om att reflektera över hur och varför man arbetar som man gör. “Message passing, not objects” “Lotus notes is a good document database” Cucumber [...]]]></description>
			<content:encoded><![CDATA[<p>Förra fredagen åkte jag, Robert och Mats ner till Göteborg för att gå på konferensen <a href="http://nordicruby.org">Nordic Ruby</a>.</p>
<h2 id="lrdag">Lördag</h2>
<h3 id="standing_on_the_shoulders_of_giants">Standing On the Shoulders of Giants</h3>
<p><a href="http://twitter.com/coreyhaines">Corey Haines</a> inledde konferensen med en uppmaning om att reflektera över hur och varför man arbetar som man gör.</p>
<blockquote>
<p style="text-align: left;">“Message passing, not objects”<br />
“Lotus notes is a good document database”</p>
</blockquote>
<h3 id="cucumber_inside">Cucumber Inside</h3>
<p><a href="http://twitter.com/aslak_hellesoy">Aslak Hellesøy</a> höll konferensens andra föreläsning och ämnet var inte helt oväntat testramverket <a href="http://cukes.info/">Cucumber</a> samt dess språk Gherkin vilket nu har extraherats till en <a href="http://rubygems.org/gems/gherkin">gem</a>.</p>
<p>Den imponerande prestandaökningen i Cucumber den senaste tiden beror på att man har bytt ut <a href="http://treetop.rubyforge.org/">TreeTop</a> mot <a href="http://www.complang.org/ragel/">Ragel</a>.</p>
<p>Aslak nämnde även hur <a href="http://wiki.github.com/aslakhellesoy/cucumber/hooks">hooks</a> i Cucumber fungerar.</p>
<h3 id="neo4jrb_the_benefits_of_graph_database">Neo4j.rb &#8211; The Benefits of Graph Database</h3>
<p><a href="http://twitter.com/ronge">Andreas Ronge</a> berättade om sitt projekt <a href="http://github.com/andreasronge/neo4j">Neo4j.rb</a> vilket är en grafdatabas för <a href="http://jruby.org/">JRuby</a>.</p>
<ul>
<li>Inbäddad</li>
<li>ACID</li>
<li>Inga scheman</li>
<li>Inga externa beroenden</li>
<li>Enbart skrivlås</li>
</ul>
<p>De två javabibliotek som är inblandade är <a href="http://neo4j.org/">Neo4j</a> samt <a href="http://lucene.apache.org/">Lucene</a>. Neo4j inkluderar ett flertal algoritmer, t.ex. <a href="http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm">Dijkstra</a>.</p>
<p>Möjligheten att traversera djupa relationsgrafer verkar ha ett ganska begränsat användningsområde, men när man väl behöver göra det så är det säkerligen mycket kraftfullt.</p>
<h3 id="rubyists_you_can_write_javascript_again">Rubyists, you can write JavaScript again</h3>
<p>Priset för konferensens effektfullaste introduktion måste gått till <a href="http://twitter.com/drnic">Dr Nic</a> a.k.a. Iron Man.</p>
<p>Han började med att nämna att man kan köra JavaScript i Ruby med hjälp av <a href="http://github.com/jbarnette/johnson">Johnson</a> (<a href="http://www.mozilla.org/js/spidermonkey/">Mozilla SpiderMonkey</a>) och att man kan använda <a href="http://github.com/smparkes/capybara-envjs">capybara-envjs</a> för att testa sina javascript på serversidan. Men efter det var det CoffeeScript som gällde.</p>
<blockquote>
<p style="text-align: left;">“Capybara because it’s AWESOME”</p>
</blockquote>
<p><a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a> är i korta drag:</p>
<ul>
<li>De bra delarna i JavaScript</li>
<li>Det <a href="http://haml-lang.com/">Haml</a> är för HTML och <a href="http://sass-lang.com/">Sass</a> är för CSS</li>
<li>Går att kombinera med alla JavaScript-bibliotek (<a href="http://jquery.com/">jQuery</a>!)</li>
<li>Kompilatorn är skriven i CoffeeScript! (Går alltså att köra i en webbläsare)</li>
<li>Implicita returvärden</li>
<li>Inga onödiga tecken</li>
<li>Går att köra i <a href="http://nodejs.org/">Node.js</a></li>
</ul>
<h3 id="enough_design">Enough Design</h3>
<p><a href="http://twitter.com/imf">Ian McFarland</a> från <a href="http://pivotallabs.com/">Pivotal Labs</a> pratade om agila designprocesser och hur viktigt det är med en kort “feedback loop”.</p>
<p>Han påpekade att det är viktigt att iterera över problem, oavsett storlek.</p>
<p>En bra design är:</p>
<ul>
<li>Modulär</li>
<li>Principfast</li>
<li>Regelbaserad</li>
<li>UX &gt; Pixlar!</li>
</ul>
<h3 id="the_ruby_advantage_metaprogramming_and_dsls_pdf_22mb">The Ruby advantage &#8211; metaprogramming and DSLs (<a href="http://github.com/niclasnilsson/presentation_ruby_metaprog_dsls/raw/master/dsl-metaprogramming-ruby.pdf">.pdf</a>, 22MB)</h3>
<p>Man kan inte bli annat än imponerad av <a href="http://twitter.com/niclasnilsson">Niclas Nilsson</a> när han så “vårdslöst” tvingar Ruby att bete sig som han vill.</p>
<p>Han berättade om hur man med lite fantasi kan bygga ett internt DSL utan att för den skull ha tillgång till Rubys <a href="http://en.wikipedia.org/wiki/Abstract_syntax_tree">AST</a>.</p>
<p>Han visade även sin gem <a href="http://github.com/niclasnilsson/properties">properties</a>.</p>
<h2 id="middag_p_soho">Middag på SoHo</h2>
<p>Lördagskvällen spenderade jag med att diskutera <a href="http://hackerspaces.org/">hackerspaces</a>, användning av <a href="http://rad.rubyforge.org/">Ruby</a> för utveckling mot <a href="http://www.arduino.cc/">Arduino</a>, mikrobryggerier i USA och mycket annat.</p>
<h2 id="sndag">Söndag</h2>
<h3 id="from_artist_to_programmer">From artist to programmer</h3>
<p>Dagens första föreläsning stod <a href="http://twitter.com/keavy">Keavy McMinn</a> för, och hon pratade om likheter (och skillnader) mellan konstnärskap och programmering.</p>
<blockquote>
<p style="text-align: left;">“Just make”</p>
</blockquote>
<h4 id="ngra_av_hennes_punkter">Några av hennes punkter</h4>
<ul>
<li>Var öppen för förändringar</li>
<li>Det går att bygga något utan initial finansiering</li>
<li>Vi utvecklas genom reflektion</li>
</ul>
<h3 id="the_mongodb_effect">The MongoDB Effect</h3>
<p>Jag hade gärna sett att <a href="http://twitter.com/modetojoy">Durran Jordan</a> och <a href="http://twitter.com/leshill">Les Hill</a> hade fokuserat lite mer på <a href="http://mongoid.org/">Mongoid</a> än vad de gjorde. Vi vet redan att <a href="http://www.mongodb.org/">MongoDB</a> är häftigt.</p>
<p>Enligt Durran borde man ALLTID använda MongoDB.</p>
<h4 id="mongoid">Mongoid</h4>
<ul>
<li>Rails 2 och Rails 3</li>
<li>Atomiska operationer</li>
<li>Stora dataset</li>
<li>Grymt kriterie API</li>
<li>Scopes som tar block</li>
<li>Master/Slave</li>
</ul>
<h3 id="solid_ruby">SOLID Ruby</h3>
<p>Jag hade verkligen sett fram emot <a href="http://twitter.com/jimweirich">Jim Weirich</a> föreläsning om <a href="http://en.wikipedia.org/wiki/Solid_%28object-oriented_design%29">SOLID</a> och jag blev inte besviken.</p>
<h4 id="ngra_av_hans_punkter">Några av hans punkter</h4>
<ul>
<li>Fördela ansvaret</li>
<li>Monkey patchning i bibliotek är dåligt (Arv framför öppna klasser)</li>
<li>Protokoll är viktiga</li>
</ul>
<h3 id="artificial_stupidity_adding_smarts_to_yer_kode_with_a_little_machine_learning">Artificial stupidity, adding smarts to yer kode with a little machine learning</h3>
<p>Konferensens tyngsta föreläsning (med råge) stod <a href="http://twitter.com/daksis">Randall Thomas</a> från <a href="http://www.engineyard.com/">Engine Yard</a> för.</p>
<p><img class="alignnone size-full wp-image-730" title="The future is about information, not data" src="http://blogg.athega.se/wp-content/uploads/2010/05/the_future_is_about_information.jpg" alt="" width="750" height="376" /></p>
<p>Ämnet var datautvinning genom att använda statistikspråket <a href="http://www.r-project.org/">R</a> och <a href="http://rubyforge.org/projects/rsruby/">RSRuby</a>. Den enligt mig intressantaste delen av föreläsningen bestod i användningen av en <a href="http://en.wikipedia.org/wiki/Support_vector_machine">support vector machine</a> (KSVM i R) för att gruppera data och sedan använda detta för rekomendationer.</p>
<p>Böcker: Super Crunchers, Introductory Statistics with R</p>
<h3 id="software_for_the_human_animal">Software for the Human Animal</h3>
<p><a href="http://twitter.com/hcatlin">Hampton Catlin</a> pratade om skillnaderna mellan manlig och kvinnlig design. Att vi inte är mycket mer än djur och att Internet är den nya vildmarken.</p>
<p>Han hävdade att vi människor generellt sett är självorganiserande och framförallt trevliga. Vi borde alltså sluta motverka på de fåtal användare som förstör och istället uppmuntra och belöna de användare som uppför sig.</p>
<p>Det finns inga dumma användare, bara dåliga gränssnitt som gör dem dumma.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2010/05/28/nordic-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Frozen Rails</title>
		<link>http://blogg.athega.se/2010/05/09/frozen-rails/</link>
		<comments>http://blogg.athega.se/2010/05/09/frozen-rails/#comments</comments>
		<pubDate>Sun, 09 May 2010 21:53:46 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Konferens]]></category>
		<category><![CDATA[CouchDB]]></category>
		<category><![CDATA[Cucumber]]></category>
		<category><![CDATA[Frozen Rails]]></category>
		<category><![CDATA[Helsingfors]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[Rack]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=655</guid>
		<description><![CDATA[I fredags gick konferensen Frozen Rails av stapeln i Helsingfors och Athega var självklart representerade. Rails at GitHub (Chris Wanstrath, @defunkt) Konferensen inleddes av Chris Wanstrath som gick igenom hur Ruby on Rails används på GitHub. Vi fick även reda på hur de använder Git (grit, smoke, chimney) och hur de hanterar meddelandeköer (resque). Några [...]]]></description>
			<content:encoded><![CDATA[<p>I fredags gick konferensen <a href="http://frozenrails.eu">Frozen Rails</a> av stapeln i Helsingfors och Athega var självklart representerade.</p>
<h2><a href="http://www.slideshare.net/err/inside-github">Rails at GitHub</a> (Chris Wanstrath, <a href="http://twitter.com/defunkt">@defunkt</a>)</h2>
<p>Konferensen inleddes av <a href="http://chriswanstrath.com/">Chris Wanstrath</a> som gick igenom hur Ruby on Rails används på <a href="http://github.com/">GitHub</a>. Vi fick även reda på hur de använder Git (<a href="http://github.com/mojombo/grit">grit</a>, smoke, chimney) och hur de hanterar meddelandeköer (<a href="http://github.com/defunkt/resque">resque</a>).</p>
<p>Några av projekten som nämndes:</p>
<ul>
<li><a href="http://github.com/github/albino/">albino</a> för syntax highlighting genom (front för <a href="http://pygments.org/docs/cmdline/">pygmentize</a>)</li>
<li><a href="http://faker.rubyforge.org/">faker</a> för att generera påhittad data: namn, adresser, telefonnummer</li>
<li>Rack HTTP servern <a href="http://unicorn.bogomips.org/">Unicorn</a></li>
</ul>
<h2>The Plataforma Way (José Valim, <a href="http://twitter.com/josevalim">@josevalim</a>)</h2>
<p>Dagens andra föreläsning hölls av <a href="http://twitter.com/josevalim">José Valim</a> från Plataforma tecnologia. José pratade om autentiseringslösningen <a href="http://blog.plataformatec.com.br/tag/devise/">Devise</a> (bygger på <a href="http://wiki.github.com/hassox/warden/">Warden</a>), domänspråket simple_form (inspirerat av <a href="http://github.com/justinfrench/formtastic">Formtastic</a>) samt <a href="http://github.com/plataformatec/responders">Responders</a> vilket är en utbyggnad av respond_with i Rails 3. Lite rörig föreläsning men med många intressanta projekt, kommer speciellt hålla koll på Devise.</p>
<div>
<h2><a href="http://www.slideshare.net/mdirolf/mongodb-at-frozenrails">An Introduction to MongoDB</a> (Mike Dirolf, <a href="http://twitter.com/mdirolf">@mdirolf</a>)</h2>
</div>
<p>Jag har sedan jag bloggade om MongoDB <a href="http://blogg.athega.se/2009/07/06/mongodb/">första gången</a> varit intresserad av projektet och nu fick vi verkligen en bra genomgång av <a href="http://www.10gen.com/">10gen</a>’s Michael Dirolf.</p>
<p>Översikt av MongoDB:</p>
<ul>
<li>Atomiska operationer per dokument <em>(:$push)</em></li>
<li>Dynamiska frågor</li>
<li>Hög prestanda (10% långsammare än <a href="http://memcached.org/">memcached</a>, snabbare än <a href="http://couchdb.apache.org/">CouchDB</a>)</li>
<li>Master/Slave failover</li>
<li>Auto-sharding <em>(snart)</em></li>
<li>Servern har en <a href="http://www.mongodb.org/display/DOCS/Server-side+Code+Execution#Server-sideCodeExecution-Storingfunctionsserverside">JavaScript parser</a></li>
</ul>
<h2>Mobile Web Apps with Rails 3 (Yehuda Katz, <a href="http://twitter.com/wycats">@wycats</a>)</h2>
<p><img class="alignnone size-full wp-image-661" title="Yehuda Katz på Frozen Rails" src="http://blogg.athega.se/wp-content/uploads/2010/05/Screen-shot-2010-05-09-at-23.34.43-.png" alt="Yehuda Katz på Frozen Rails" width="750" height="493" /></p>
<p>Även om jag sett föreläsningen tidigare (Efter <a href="http://phillyemergingtech.com/">Philly ETE, Emerging Technologies for the Enterprise</a>) så var det bra att få se den live så att säga.</p>
<p>Några av punkterna som <a href="http://yehudakatz.com/">Yehuda</a> berörde:</p>
<ul>
<li>HTML 5 LocalStorage (samt Offline API)</li>
<li>Föredra gammal data</li>
<li>HTML == static asset</li>
<li>Betrakta webbläsaren som en API-klient</li>
<li>“Sip, don’t gulp”</li>
</ul>
<p>Projekt:</p>
<ul>
<li><a href="http://github.com/wycats/rack-offline">Rack::Offline</a></li>
<li><a href="http://github.com/wycats/jquery-offline">jQuery Offline</a></li>
<li><a href="http://github.com/jquery/jquery-tmpl">jQuery tmpl</a></li>
<li><a href="http://github.com/janl/mustache.js">Mustache.js</a></li>
</ul>
<h2>Cucumbered (Joseph Wilk, <a href="http://twitter.com/josephwilk">@josephwilk</a>)</h2>
<p style="text-align: right;">
<img class="size-full" title="Frozen Rails Cucumbered" src="http://blogg.athega.se/wp-content/uploads/2010/05/frozen_rails_cucumbered.jpg" alt="Frozen Rails Cucumbered" width="750" height="258" /><br />
<small>(Foto: <a href="http://twitter.com/chrisco">Chris Comella</a>)</small>
</p>
<p>Den bästa föreläsningen på hela konferensen stod <a href="http://blog.josephwilk.net/">Joseph Wilk</a> för, ämnet var <a href="http://cukes.info/">Cucumber</a> och mer specifikt hur man ser till att testerna går så fort som möjligt. (Cucumber 0.7 är för övrigt så galet snabb att det inte ens är roligt nu när de bytt från <a href="http://treetop.rubyforge.org/">TreeTop</a> till <a href="http://www.complang.org/ragel/">Ragel</a>)</p>
<p>Några av Josephs punkter:</p>
<ul>
<li>Cukover vs. Autotest</li>
<li><a href="http://github.com/mynyml/harmony">Harmony</a> (Frontar Trace/SpiderMonkey i Ruby)</li>
<li>cucumber &#8211;format</li>
</ul>
<h2><a href="http://www.slideshare.net/jweiss/couchdb-on-rails-frozenrails-2010">CouchDB on Rails</a> (Jonathan Weiss, <a href="http://twitter.com/jweiss">@jweiss</a>)</h2>
<p>Jonathan hade ett digert uppdrag framför sig då konferensdeltagarna direkt jämförde allt med hur det fungerar i MongoDB. Tyvärr var exemplen lite för enkla och visade inte riktigt på styrkan i CouchDB, snarare att det är “svårare” att ställa enkla frågor än med SQL då man måste implementera map/reduce i JavaScript själv. (Vilket är en <strong>BRA</strong> grej när man gör lite mer avancerade saker)</p>
<p>Några av punkterna:</p>
<ul>
<li>“Built for the web”</li>
<li>Skalar bra</li>
<li>Inga konstigheter: HTTP, JavaScript, JSON</li>
<li>Revisioner (id + rev)</li>
<li>Inga collections (på gott och ont)</li>
<li>“JavaScript, easier than SQL”</li>
<li>Värdet kan vara komplex JSON</li>
<li>Nycklarna kan vara arrayer</li>
<li>Statiska frågor (map/reduce)</li>
<li>Compaction of B-tree via HTTP request (tänker inte ens försöka översätta <img src='http://blogg.athega.se/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
<li>HTTP cache (<a href="http://varnish-cache.org/">Varnish</a>) och lastbalansering (<a href="http://haproxy.1wt.eu/">HAProxy</a>, <a href="http://nginx.org/">nginx</a>)</li>
<li>Inbäddad <a href="http://lucene.apache.org">Lucene</a> (<strong>Killer feature?</strong>)</li>
</ul>
<h2><a href="http://www.slideshare.net/carllerche/frozen-rails-slides">Rails 3: Tasty Burgers</a> (Carl Lerche, <a href="http://twitter.com/carllerche">@carllerche</a>)</h2>
<ul>
<li><a href="http://gembundler.com/">Bundler</a> (Isolation av gems)</li>
<li>Möjligt att använda <a href="http://jquery.com">jQuery</a> i Rails!</li>
<li>Routern kan nu ha valfria segment, scopes och HTTP verb</li>
<li>Rack överallt!</li>
<li><a href="http://github.com/rails/rails_upgrade">rails_upgrade</a></li>
</ul>
<h2>Perfectionism (Jarkko Laine, <a href="http://twitter.com/jarkko">@jarkko</a>)</h2>
<p>Priset för den nervösaste killen på hela konferensen måste ha gått till Jarkko. Förutom detta var det en grym sista föreläsning om hur vi perfektionister ofta har problem med att skeppa något innan det är helt <strong>perfekt</strong>. (vilket det kanske aldrig blir) Han rekomenderade även boken <a href="http://www.cluetrain.com/book/index.html">The Cluetrain Manifesto</a> (hela bokens text)</p>
<p><a href="http://blogg.athega.se/wp-content/uploads/2010/05/perfection.png"><img class="alignnone size-full wp-image-656" title="SHIP!" src="http://blogg.athega.se/wp-content/uploads/2010/05/perfection.png" alt="Perfection, Minimally Viable Product, Markets are conversations, Ship!" width="750" height="690" /></a></p>
<p><span style="color: #999999;">Oh, hela konferensen filmades så när filmerna dyker upp på nätet så länkar jag dem här.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2010/05/09/frozen-rails/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Athega sponsrar Nordic Ruby</title>
		<link>http://blogg.athega.se/2010/04/09/athega-sponsrar-nordic-ruby/</link>
		<comments>http://blogg.athega.se/2010/04/09/athega-sponsrar-nordic-ruby/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 01:10:40 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Konferens]]></category>
		<category><![CDATA[Marknadsföring]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=610</guid>
		<description><![CDATA[I slutet av maj kommer några av oss att befinna sig i Göteborg för att delta i konferensen Nordic Ruby. Under två dagar hålls föreläsningar om så vitt skilda ämnen som den dokumentorienterade databasen MongoDB, spelmekanik, en introduktion till maskininlärning samt metaprogrammering i Ruby. Hoppas att vi syns där!]]></description>
			<content:encoded><![CDATA[<p><a title="Nordic Ruby" href="http://nordicruby.org"><img class="alignright" title="Nordic Ruby" src="http://blogg.athega.se/wp-content/uploads/2010/04/nordicruby_logo_256x256.png" alt="Nordic Ruby" width="256" height="256" /></a></p>
<p>I slutet av maj kommer några av oss att befinna sig i Göteborg för att delta i konferensen <a href="http://nordicruby.org">Nordic Ruby</a>. Under två dagar hålls föreläsningar om så vitt skilda ämnen som den dokumentorienterade databasen <a href="http://www.mongodb.org">MongoDB</a>, spelmekanik, en introduktion till maskininlärning samt metaprogrammering i Ruby.</p>
<p>Hoppas att vi syns där!</p>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2010/04/09/athega-sponsrar-nordic-ruby/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Att ta sig in i Zonen som systemutvecklare</title>
		<link>http://blogg.athega.se/2009/08/12/in-i-zonen-som-systemutvecklare/</link>
		<comments>http://blogg.athega.se/2009/08/12/in-i-zonen-som-systemutvecklare/#comments</comments>
		<pubDate>Wed, 12 Aug 2009 21:11:52 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Arbetsmiljö]]></category>
		<category><![CDATA[Getting Real]]></category>
		<category><![CDATA[Lifehacks]]></category>
		<category><![CDATA[The Zone]]></category>
		<category><![CDATA[Tips]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=344</guid>
		<description><![CDATA[Jag har skrivit denna bloggpost utifrån mitt eget perspektiv som systemutvecklare, men jag hoppas att även andra kan ha nytta av det jag skrivit. Zonen eller “The Zone” är den tid då man glömmer bort tid och rum, när man kan arbeta med ett problem och komma fram till en lösning utan onödiga avbrott. För [...]]]></description>
			<content:encoded><![CDATA[<p style="padding: 1em; border: 1px solid #C96823; font-size: 1.2em; background: #FFF5AE; color: #BE3100;">Jag har skrivit denna bloggpost utifrån mitt eget perspektiv som systemutvecklare, men jag hoppas att även andra kan ha nytta av det jag skrivit.</p>
<p>Zonen eller “The Zone” är den tid då man glömmer bort tid och rum, när man kan arbeta med ett problem och komma fram till en lösning utan onödiga avbrott. För min egen del inträffar denna oftast sent på natten.</p>
<h2 id="frebyggande">Förebyggande</h2>
<h3 id="sov">Sov</h3>
<p>Jag tycker att det absolut viktigaste när det kommer till förebyggande åtgärder är att sova tillräckligt. Hur länge man sover är inte speciellt viktigt, bara man sover effektivt.</p>
<p>Att skaffa en bättre säng (utvald baserat på min längd, vikt och sovstil) samt ergonomiska kuddar har gjort underverk för min nattsömn.</p>
<h3 id="t_ordentligt">Ät ordentligt!</h3>
<p>Det har sagts tidigare och det tål att sägas igen, frukosten är det absolut viktigast målet på dagen.</p>
<p>Jag märker direkt att jag inte är lika skärpt om jag inte ätit en ordentlig frukost, redan där har man “slösat bort” halva arbetsdagen.</p>
<p>Jag äter oftast lunch ute på restaurang då det blir ett distinkt avbrott i arbetsdagen, detta gör att man återkommer till sina arbetsuppgifter med nya ögon och ökad energi.</p>
<p><a title="Sandwiches with milk by Peter Hellberg, on Flickr" href="http://www.flickr.com/photos/peterhellberg/3418783140/"><img src="http://farm4.static.flickr.com/3301/3418783140_06866e6e8a.jpg" alt="Sandwiches with milk" width="500" height="375" /></a></p>
<h3 id="klttra">Klättra</h3>
<p>Min stora passion just nu är att klänga på stenblock, en sport (<a href="http://sv.wikipedia.org/wiki/Kl%C3%A4ttring#Bouldering">Bouldering</a>) där man tävlar med och mot sig själv. Oavsett vilken sport det är man utövar så anser jag att det är mycket viktigt att bli fysiskt utmattad för att må riktigt bra samt förbättra sin arbetsprestation.</p>
<h4 id="vidare_lsning">Vidare läsning</h4>
<ul>
<li><a href="http://zentofitness.com/">Zen to Fitness</a></li>
</ul>
<h3 id="rensa_skrivbordet">Rensa skrivbordet</h3>
<p>Något jag hela tiden har förespråkat i mitt privatliv likväl arbetsliv så är det att ju färre prylar man har runt omkring sig desto mindre är chansen att man distraheras. Därför försöker jag hålla mitt skrivbord så tomt som möjligt, för att sedan under korta perioder belamra det med de anteckningar, dokument och böcker som rör mitt nuvarande arbete.</p>
<p><a title="Athega, My desk by Peter Hellberg, on Flickr" href="http://www.flickr.com/photos/peterhellberg/2848071666/"><img src="http://farm4.static.flickr.com/3134/2848071666_2d30a2c484.jpg" alt="Athega, My desk" width="500" height="375" /></a></p>
<h4 id="vidare_lsning">Vidare läsning</h4>
<ul>
<li><a href="http://unclutterer.com/">Unclutterer</a></li>
</ul>
<h3 id="diska">Diska</h3>
<p>Att göra något så tråkigt som att diska får mig direkt att börja fundera på annat, ofta relaterat till något problem jag försökt lösa tidigare under dagen.</p>
<h2 id="irritationsmoment">Irritationsmoment</h2>
<h3 id="minimera_antal_irritationsmoment">Minimera antal irritationsmoment</h3>
<p>Jag har för vana att skriva startscript för de olika projekt jag arbetar med så att jag snabbt och enkelt kan komma igång och jobba på morgonen, de startar oftast min texteditor (TextMate) och drar igång en eller flera servrar. (Thin, Apache/Passenger)</p>
<p>Ett annat litet irritationsmoment är strömförsörjningen till laptopen, laddare till mobilen, osv. Detta löser jag genom att ALLTID ha ett 3-vägs grenuttag på skrivbordet bredvid skärmen. Jag har även en extra eladapter hemma så att jag slipper packa upp den jag har i väskan.</p>
<h3 id="stng_ner_im_klienten">Stäng ner IM-klienten</h3>
<p>Ett bra och relativt självklart tips är att stänga ner IM-klienten. Nuförtiden använder jag nästan uteslutande chatten i GMail för att hålla kontakten med mina kollegor och andra utvecklare, detta gör att jag undermedvetet flyttar över det mesta av chattandet till de tillfällen då jag kollar min mail. (Jag har självklart ingen mailklient igång som kan störa)</p>
<p>Passiv kommunikation som Twitter är att föredra framför IM då man själv styr över vilka tillfällen man aktivt deltar.</p>
<h2 id="under_tiden_du_arbetar">Under tiden du arbetar</h2>
<h3 id="omgivning">Omgivning</h3>
<p>Det är viktigt att man har en bekväm arbetsmiljö, vad som är bekvämt varierar självklart och man ska vara uppmärksam på detta. Under vissa perioder står jag upp (Höj och sänkbart skrivbord) och någon gång ibland tycker jag att det bästa sättet att ta sig in i Zonen är att sitta i soffan (helt oergonomiskt) med laptopen i knät och hacka kod. Övergripande är att få tid till att vara helt för sig själv. (Förutom planerade sessioner av parprogrammering och KORTA möten)</p>
<h4 id="vidare_lsning">Vidare läsning</h4>
<ul>
<li><a href="http://gettingreal.37signals.com/ch07_Alone_Time.php">Getting Real: Alone Time</a></li>
</ul>
<h3 id="stng_av_datorn">Stäng av datorn</h3>
<p>Något av det bästa jag kan göra för att komma in i Zonen är helt enkelt att stänga av datorn. (Eller inte fullt lika drastiskt, flytta sig från datorn)</p>
<p>När jag har oklara krav, dåligt med idéer eller helt enkelt kört fast av någon annan anledning så brukar jag ta fram penna och papper och börja skissa. (Gillar att använda PILOT Fineliners och linjerade A5-kollegieblock)</p>
<p>Det är ofta enklast om man inte är så precis i det man ritar, om det är vyer man arbetar med så räcker det fint att rita fyrkanter och andra geometriska former.</p>
<p>Jag brukar skissa rätt grovt och sedan annotera med pilar kors och tvärs, ofta kommer jag fram till vad som fungerar och inte fungerar innan jag hunnit tillbaka till datorn. Det är oftast mycket lättare att ta sig in i Zonen om man har en mental bild av vad som ska göras.</p>
<p><a title="Designing a new feature, with jQuery! by Peter Hellberg, on Flickr" href="http://www.flickr.com/photos/peterhellberg/3777750788/"><img src="http://farm4.static.flickr.com/3527/3777750788_16272d18dd.jpg" alt="Designing a new feature, with jQuery!" width="500" height="375" /></a></p>
<h3 id="byt_arbetstid">Byt arbetstid</h3>
<p>Jag har oftast mycket lättare att ta mig in i Zonen på kvällar och nätter, om du är likadan som mig samt har möjlighet så kan det vara en bra idé att lägga om dina arbetstider så att de bättre reflekterar den tid som passar dig bäst.</p>
<p>Det är även naivt att tro man får dubbelt så mycket gjort på 40 timmar jämfört med 20 timmar. Det är den effektiva tiden vi vill maximera, inte den totala arbetstiden. Jobba ALDRIG övertid, det blir ingen lyckligare av.</p>
<h3 id="lyssna_p_musik">Lyssna på musik</h3>
<p>Jag är en av många som inte kan jobba utan musik, det spelar inte så stor roll vilken genre det är, bara det inte är för “komplicerad” musik.</p>
<p>För min egen del betyder det att jag lyssnar på mycket minimal tech, ambient eller psytrance, när jag väl är inne i Zonen så lyssnar jag knappt på musiken, den blir snarare ett filter mot omvärlden. (Helst ska man ha ett par stora<br />
hörlurar på sig, då noterar folk att man inte hör vad de säger)</p>
<p style="padding: 1em; border: 1px solid #C96823; font-size: 1.2em; background: #FFF5AE; color: #BE3100;">Som ett litet incitament så belönar jag de två bästa kommentarerna till denna bloggpost med varsin invite till <strong>Spotify</strong>. Det enda kravet är att du skriver lite kort om hur du tar dig in i Zonen.</p>
<h3 id="vidare_lsning">Vidare läsning</h3>
<ul>
<li><a href="http://www.techurbia.com/2009/02/how-to-get-into-the-zone-as-a-programmer.html">How to Get Into the Zone as a Programmer</a></li>
<li><a href="http://www.thatvoodooyoudo.com/best-practice/flow/">Flow: Get into the Zone at Work</a></li>
<li><a href="http://www.computus.org/journal/?p=982">7 Tips for programming in The Zone</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2009/08/12/in-i-zonen-som-systemutvecklare/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>MongoDB</title>
		<link>http://blogg.athega.se/2009/07/06/mongodb/</link>
		<comments>http://blogg.athega.se/2009/07/06/mongodb/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 01:50:58 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Databaser]]></category>
		<category><![CDATA[Kod]]></category>
		<category><![CDATA[Öppen källkod]]></category>
		<category><![CDATA[BSON]]></category>
		<category><![CDATA[C++]]></category>
		<category><![CDATA[Databas]]></category>
		<category><![CDATA[JSON]]></category>
		<category><![CDATA[MongoDB]]></category>
		<category><![CDATA[Ruby]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=268</guid>
		<description><![CDATA[MongoDB är en blandning av nyckel-värde databas (t.ex. Scalaris), dokumentdatabas (t.ex. CouchDB) och relationsdatabas (t.ex. MySQL). Den är skriven i C++ och passar bra för realtidsanalys av webbstatistik (sidvisningar, unika besökare, osv), Sessionsobjekt, Datacachning och mycket mer. Den har inbyggd replikering, automatisk failover och sharding, hög prestanda och den är open source. Internt så sparas [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignright" title="MongoDB - Scalability/Performance - Depth of Functionality" src="http://blogg.athega.se/wp-content/uploads/2009/07/MongoDB-Scalability_Performance-Depth-of-Functionality.png" alt="MongoDB - Scalability/Performance - Depth of Functionality" width="301" height="210" /></p>
<p>MongoDB är en blandning av nyckel-värde databas (t.ex. <a href="http://code.google.com/p/scalaris/">Scalaris</a>), dokumentdatabas (t.ex. <a href="http://couchdb.apache.org/">CouchDB</a>) och relationsdatabas (t.ex. <a href="http://www.mysql.com/">MySQL</a>).</p>
<p>Den är skriven i C++ och passar bra för realtidsanalys av webbstatistik<br />
(sidvisningar, unika besökare, osv), Sessionsobjekt, Datacachning och mycket mer.</p>
<p>Den har inbyggd replikering, automatisk failover och sharding, hög prestanda och den är open source.</p>
<p>Internt så sparas datan i formatet BSON, vilket är JSON med ett datumformat och möjlighet att spara binärdata.</p>
<h2 id="installation">Installation</h2>
<p>Jag kommer som vanligt att använda Mac OS X och Ruby men det finns förkompilerade paket för de vanligaste operativsystemen:</p>
<ul>
<li>OS X 32 bit</li>
<li>OS X 64 bit</li>
<li>Linux 32 bit</li>
<li>Linux 64 bit</li>
<li>Windows 32 bit</li>
<li>Solaris i86pc (EXPERIMENTAL)</li>
</ul>
<p>Det finns även bindningar till ett flertal olika språk, dock har jag inte sett någon för .NET</p>
<ul>
<li><a href="http://www.mongodb.org/pages/viewpage.action?pageId=133409">C++</a> (Inkluderas med databasen)</li>
<li><a href="http://www.mongodb.org/display/DOCS/Java+Language+Center">Java</a></li>
<li><a href="http://www.mongodb.org/display/DOCS/Perl+Language+Center">Perl</a></li>
<li><a href="http://www.mongodb.org/display/DOCS/PHP+Language+Center">PHP</a></li>
<li><a href="http://www.mongodb.org/display/DOCS/Python+Language+Center">Python</a></li>
<li><a href="http://www.mongodb.org/display/DOCS/Ruby+Language+Center">Ruby</a></li>
</ul>
<p>Installationen var helt smärtfri, bara att ladda ner senaste tarbollen (<a href="http://downloads.mongodb.org/osx/mongodb-osx-x86_64-0.9.5.tgz">mongodb-osx-x86_64-0.9.5</a>) och packa upp den på valfri plats.</p>
<p>Man behöver skapa en datakatalog (standard är <code>/data/db</code>) och sen starta servern med</p>
<p><code style="padding: 0 0.5em; color: #fff; background-color: #000;">./mongod --dbpath [DATAKATALOGEN]</code></p>
<p>Nu lyssnar databasen på port <code>27017</code> och det finns ett webbgränssnitt på port <code>28017</code>.</p>
<p>På Rubysidan behövde jag bara installera paketet <code>mongodb-mongo</code> från <a href="http://github.com/mongodb/mongo/tree/master">GitHub</a> med RubyGems:</p>
<p><code style="padding: 0 0.5em; color: #fff; background-color: #000;">sudo gem install mongodb-mongo</code></p>
<h2 id="dags_fr_lite_kod">Dags för lite kod</h2>
<p>Att ansluta till databasen:</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;">#!/usr/bin/env ruby</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'mongo'</span>
&nbsp;
db = <span style="color:#6666ff; font-weight:bold;">XGen::Mongo::Driver::Mongo</span>.<span style="color:#9900CC;">new</span>.<span style="color:#9900CC;">db</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;mydb&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>MongoDB har konceptet <code>collections</code> för likartade dokument. (Eller olikartade.. det bestämmer du helt själv) Man kan likna dem vid tabeller.</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#008000; font-style:italic;"># Hämtar en collection, den skapas om den inte redan finns</span>
coll = db.<span style="color:#9900CC;">collection</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">&quot;testCollection&quot;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Man kan stoppa in olika sorters dokument</span>
coll.<span style="color:#9900CC;">insert</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#ff3333; font-weight:bold;">:name</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;Peter&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:address</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#ff3333; font-weight:bold;">:city</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;Stockholm&quot;</span> <span style="color:#006600; font-weight:bold;">&#125;</span> <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
coll.<span style="color:#9900CC;">insert</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#ff3333; font-weight:bold;">:name</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;Velociraptor&quot;</span>, <span style="color:#ff3333; font-weight:bold;">:top_speed</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">&quot;25 m/s&quot;</span>,
              <span style="color:#ff3333; font-weight:bold;">:can</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#006600; font-weight:bold;">&#123;</span>
                <span style="color:#ff3333; font-weight:bold;">:open_doors</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span>,
                <span style="color:#ff3333; font-weight:bold;">:turn_at_any_angle_at_any_velocity</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">true</span>
              <span style="color:#006600; font-weight:bold;">&#125;</span>
            <span style="color:#006600; font-weight:bold;">&#125;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Man kan sedan hämta ut datat ur databasen med metoden find_first.</span>
peter  = coll.<span style="color:#9900CC;">find_first</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:name</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'Peter'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
raptor = coll.<span style="color:#9900CC;">find_first</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#ff3333; font-weight:bold;">:top_speed</span> <span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#996600;">'25 m/s'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
&nbsp;
<span style="color:#008000; font-style:italic;"># Man kan även hämta alla dokument i en collection</span>
coll.<span style="color:#9900CC;">find</span>.<span style="color:#9900CC;">each</span> <span style="color:#9966CC; font-weight:bold;">do</span> <span style="color:#006600; font-weight:bold;">|</span>doc<span style="color:#006600; font-weight:bold;">|</span>
  <span style="color:#CC0066; font-weight:bold;">puts</span> doc.<span style="color:#9900CC;">inspect</span>
<span style="color:#9966CC; font-weight:bold;">end</span></pre></div></div>

<h2 id="vidare_lsning">Vidare läsning</h2>
<p>Jag har bara skrapat lite lätt på ytan av allt som går att göra med MongoDB, om du tycker att det verkar intressant så rekomenderar jag följande länkar:</p>
<ul>
<li><a href="http://www.slideshare.net/pengwynn/mongodb-ruby-document-store-that-doesnt-rhyme-with-ouch">MongoDB &#8211; Ruby document store that doesn’t rhyme with ouch</a> (Presentation av Wynn Netherland)</li>
<li><a href="http://mongodb.org">MongoDB</a> (Wiki)</li>
<li><a href="http://en.wikipedia.org/wiki/BSON">BSON-formatet</a> (Wikipedia)</li>
<li><a href="http://twitter.com/mongodb">@mongodb</a> (Twitter)</li>
<li><a href="http://www.10gen.com/">10gen</a> (Företaget som sponsrar utvecklingen)</li>
<li><a href="http://www.mbeckler.org/velociraptors/">Solution to XKCD Velociraptors Problem #2</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2009/07/06/mongodb/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Potion, ett objekt- och mixin-orienterat språk</title>
		<link>http://blogg.athega.se/2009/07/02/potion/</link>
		<comments>http://blogg.athega.se/2009/07/02/potion/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 00:15:02 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Kod]]></category>
		<category><![CDATA[Programmeringsspråk]]></category>
		<category><![CDATA[Öppen källkod]]></category>
		<category><![CDATA[Mixin]]></category>
		<category><![CDATA[Objektorienterat]]></category>
		<category><![CDATA[Potion]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=220</guid>
		<description><![CDATA[Författaren, tecknaren, musikern, konstnären, och programmeraren Why the Lucky Stiff har under en tid jobbat med ett litet och snabbt språk som han döpt till Potion. Språket är inte på något sätt färdigt eller ens menat att tas på allvar, men jag tycker att det är roligt att experimentera med nya och annorlunda språk. Mantrat [...]]]></description>
			<content:encoded><![CDATA[<p><img class="size-full wp-image-223" title="Potion" src="http://blogg.athega.se/wp-content/uploads/2009/07/potion.png" alt="Why’s Potion" width="320" height="211" /></p>
<p>Författaren, tecknaren, musikern, konstnären, och programmeraren <a href="http://whytheluckystiff.net/">Why the Lucky Stiff</a> har under en tid jobbat med ett litet och snabbt språk som han döpt till<strong> </strong>Potion. Språket är inte på något sätt färdigt eller ens menat att tas på allvar, men jag tycker att det är roligt att experimentera med nya och annorlunda språk.</p>
<h2>Mantrat bakom Potion</h2>
<p>&#8221;Allt är ett objekt, men objekten är inte allt&#8221; samt tillägget &#8221;Oh, och allt är en funktion&#8221;</p>
<h2>Vad är speciellt med Potion?</h2>
<ul>
<li>Potion kompilerar ner programmen till maskinkod</li>
<li>Det inkluderar en liten &#8221;generational near-exact garbage collector&#8221;</li>
<li>Det är två språk i ett: ett för kod, ett för data</li>
<li>Det består av färre än 10.000 rader C</li>
</ul>
<p>Potion är inspirerat av språken <a href="http://www.iolanguage.com/">Io</a>, <a href="http://www.ruby-lang.org/en/">Ruby</a>, <a href="http://caml.inria.fr/ocaml/">OCaml</a>, <a href="http://www.lua.org/">Lua</a>, <a href="http://www.rebol.org">REBOL</a> och C. I den ordningen.</p>
<h2>Installation under Mac OS X</h2>
<p>Först måste man installera <a href="http://www.complang.org/ragel/">Ragel</a> och det gör man enklast genom <a href="http://www.macports.org/">MacPorts</a>:</p>
<p><code style="padding: 0 0.5em; color: #fff; background-color: #000;">sudo port install ragel</code></p>
<p>Och sedan klonar man källkoden med <a href="http://git-scm.com/">Git</a>:</p>
<p><code style="padding: 0 0.5em; color: #fff; background-color: #000;">git clone git://github.com/why/potion.git</code></p>
<p>Efter det kompilerar man koden:</p>
<p><code style="padding: 0 0.5em; color: #fff; background-color: #000;">make</code></p>
<h2>Dags att skriva lite kod</h2>
<h3>Enklast möjliga</h3>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#996600;">'Athega'</span> <span style="color:#CC0066; font-weight:bold;">print</span></pre></div></div>

<p>Kommer helt enkelt att skriva ut strängen &#8216;Athega&#8217; genom att man skickar meddelandet <code>print</code>.</p>
<h3>Något lite roligare</h3>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">loop</span>: <span style="color:#996600;">'Athega'</span> <span style="color:#CC0066; font-weight:bold;">print</span>.</pre></div></div>

<p>I Potion startar man block av kod med kolon och avslutar med punkt. Kommandot <code>loop</code> kommer att inte helt oväntat loopa över blocket (en oändlig loop). Meddelandet <code>print</code> sänds till strängen &#8216;Athega&#8217;. Strängar är objekt, som allt annat. De tar emot meddelanden. Meddelanden är separerade från objekt med mellanrum. (I de flesta programmeringsspråk använder man punkt för att separera meddelanden, här (precis som i Svenska) representerar punkt ett avslut på något.)</p>
<h3>Listor</h3>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'kaffet'</span>, <span style="color:#996600;">'på'</span>, <span style="color:#996600;">'h21'</span>, <span style="color:#996600;">'rockar'</span><span style="color:#006600; font-weight:bold;">&#41;</span> at <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006666;">2</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#CC0066; font-weight:bold;">print</span></pre></div></div>

<p>Nu skriver vi ut strängen &#8216;h21&#8242;. Allt inom parenteser är <strong>listor</strong>. Vi skickar meddelandet <code>at</code>. Alla listor har ett <code>at</code> meddelande som hämtar poster baserat på positionen i listan.</p>
<p>Notera att efter <code>at</code> meddelandet kommer det en till lista. <code>(2)</code> är ett argument till <code>at</code>. Den ser ut som en lista (och det <em>är</em> en lista,) men vi kallar den för ett argument eftersom den kommer efter ett meddelande.</p>
<h2>Den funktionella sidan</h2>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">  minus = <span style="color:#006600; font-weight:bold;">&#40;</span>x, y<span style="color:#006600; font-weight:bold;">&#41;</span>: x <span style="color:#006600; font-weight:bold;">-</span> y.
  <span style="color:#9900CC;">minus</span> <span style="color:#006600; font-weight:bold;">&#40;</span>y=<span style="color:#006666;">10</span>, x=<span style="color:#006666;">6</span><span style="color:#006600; font-weight:bold;">&#41;</span></pre></div></div>

<p>Här har vi en variabel som innehåller en funktion. Funktionen subtraherar <code>y</code> från <code>x</code>. I detta fall returneras -4.<br />
(Detta liknar hur nyckelordsargument fungerar i Lua och Python)</p>
<h2>Den objektorienterade sidan</h2>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">Person = <span style="color:#9966CC; font-weight:bold;">class</span>: <span style="color:#006600; font-weight:bold;">/</span>name, <span style="color:#006600; font-weight:bold;">/</span>age, <span style="color:#006600; font-weight:bold;">/</span>sex.
&nbsp;
<span style="color:#9900CC;">Person</span> <span style="color:#CC0066; font-weight:bold;">print</span> = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>: 
 <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'Mitt namn är '</span>, <span style="color:#006600; font-weight:bold;">/</span>name, <span style="color:#996600;">'.'</span><span style="color:#006600; font-weight:bold;">&#41;</span> join <span style="color:#CC0066; font-weight:bold;">print</span>.
&nbsp;
<span style="color:#CC0066; font-weight:bold;">p</span> = Person <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>
<span style="color:#CC0066; font-weight:bold;">p</span> <span style="color:#006600; font-weight:bold;">/</span>name = <span style="color:#996600;">'Peter'</span>
&nbsp;
<span style="color:#CC0066; font-weight:bold;">p</span> <span style="color:#CC0066; font-weight:bold;">print</span></pre></div></div>

<h3>En subklass</h3>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;">Developer = Person <span style="color:#9966CC; font-weight:bold;">class</span> <span style="color:#006600; font-weight:bold;">&#40;</span>language<span style="color:#006600; font-weight:bold;">&#41;</span>: <span style="color:#006600; font-weight:bold;">/</span>language = language.
&nbsp;
<span style="color:#9900CC;">Developer</span> <span style="color:#CC0066; font-weight:bold;">print</span> = <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>:
  <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'Mitt namn är '</span>, <span style="color:#006600; font-weight:bold;">/</span>name, <span style="color:#996600;">' och jag gillar '</span>, <span style="color:#006600; font-weight:bold;">/</span>language, <span style="color:#996600;">'.'</span><span style="color:#006600; font-weight:bold;">&#41;</span> join <span style="color:#CC0066; font-weight:bold;">print</span>.
&nbsp;
<span style="color:#9900CC;">u</span> = Developer <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#996600;">'Ruby'</span><span style="color:#006600; font-weight:bold;">&#41;</span>
u <span style="color:#006600; font-weight:bold;">/</span>name = <span style="color:#996600;">'Peter'</span>
&nbsp;
u <span style="color:#CC0066; font-weight:bold;">print</span></pre></div></div>

<h2>Licks</h2>
<p>Till sist har vi <strong>Lick</strong> vilket är dataspråket jag nämnde tidigare. Men varför skulle man vilja ha två språk i ett? En anledning är att det kan vara svårt att uttrycka data i kod. </p>
<p>Genom att ha ett separat litet dataspråk kan man bygga trädstrukturer av godtyckliga element, ungefär som i HTML. (Man kan se det som kod som har blivit tolkad men inte exekverad)</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006600; font-weight:bold;">&#91;</span>name <span style="color:#006600; font-weight:bold;">&#40;</span>attr1=<span style="color:#996600;">'string'</span>, attr2=<span style="color:#006666;">10</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#996600;">'TEXT HERE'</span><span style="color:#006600; font-weight:bold;">&#93;</span></pre></div></div>

<p>Varje <strong>lick</strong> kan ha ett namn, en tabell med attribut och en lista med barn. Listan med barn kan även vara av någon annan datatyp. (tex nummer eller sträng)</p>
<h2>Vidare läsning</h2>
<ul>
<li><a href="http://hackety.org/potion/">Potion, a Short Pamphlet</a></li>
<li><a href="http://github.com/why/potion/tree/master">why&#8217;s potion at master &#8211; GitHub</a></li>
<li><a href="http://en.wikipedia.org/wiki/Why_the_lucky_stiff">why the lucky stiff &#8211; Wikipedia</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2009/07/02/potion/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RailsConf: Torsdag</title>
		<link>http://blogg.athega.se/2009/05/08/railsconf-torsdag/</link>
		<comments>http://blogg.athega.se/2009/05/08/railsconf-torsdag/#comments</comments>
		<pubDate>Thu, 07 May 2009 22:28:14 +0000</pubDate>
		<dc:creator>Peter Hellberg</dc:creator>
				<category><![CDATA[Konferens]]></category>
		<category><![CDATA[Home Automation]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[RailsConf]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[SMS]]></category>

		<guid isPermaLink="false">http://blogg.athega.se/?p=201</guid>
		<description><![CDATA[Build an App, Start a Movement Wynn Netherland, Jim Mulholland och Bradley Joyce (Squeejee) visade hur de byggde Tweet Congress och hur de använder Twitters API och Twitters API för sökningar. Deras första tips var att inte vara rädd för att göra refaktureringar, det andra tipset var att se till att komma på Twitters whitelist. [...]]]></description>
			<content:encoded><![CDATA[<h2 id="build_an_app_start_a_movement">Build an App, Start a Movement</h2>
<p>Wynn Netherland, Jim Mulholland och Bradley Joyce (<a href="http://squeejee.com/">Squeejee</a>) visade hur de byggde <a href="http://tweetcongress.org/">Tweet Congress</a> och hur de använder Twitters API och Twitters API för sökningar.</p>
<p>Deras första tips var att inte vara rädd för att göra refaktureringar, det andra tipset var att se till att komma på Twitters whitelist.</p>
<p>Ett annat tips var att använda <a href="http://domai.nr/">Domainr</a> för att hitta bra domännamn.</p>
<h3 id="marknadsfringsstrategin">Marknadsföringsstrategin</h3>
<ul>
<li>Twitter!</li>
<li>Gick med i olika Webb-tävlingar (och vann sin kategori på SXSW)</li>
<li>Skapade relationer med folk utanför IT-industrin</li>
</ul>
<h3 id="floxee">Floxee</h3>
<p>En av bieffekterna av att göra Tweet Congress var att de kunde bryta ut <a href="http://floxee.com/">Floxee</a> både som en hostad tjänst och som öppen källkod. </p>
<h2 id="building_a_video_portal_in_rails">Building a Video Portal in Rails</h2>
<p>Ed Laczynski (<a href="http://www.zype.com/">Zype</a>) och Nathaniel Bibler  (<a href="http://www.rocketjumpindustries.com/">Rocket Jump Industries</a>) berättade om hur de arbetar med CDN&#8217;s och videoprocessing-tjänster. Hur de strukturerat sin databas och applikationslogik.</p>
<p>De har byggt ett Ruby-gränssnitt mot <a href="http://www.theplatform.com/">thePlatform</a> som hanterar hämtningen av metadata samt implementerar Factory-mönstret för att bygga olika produkt-objekt.</p>
<p>De använder memcached för att hantera cachningen.</p>
<h2 id="integrating_sms_messaging_with_your_rails_application">Integrating SMS Messaging with your Rails Application</h2>
<p>Blythe Dunham (<a href="http://spongecell.com/">Spongecell</a>) visade olika sätt att skicka och ta emot SMS genom Ruby. </p>
<p>Med <a href="http://mobilehacking.org/index.php/RubyGSM">RubyGSM</a> kan man skicka AT-kommandon till mobiltelefoner.</p>
<h2 id="r_house_rails_for_home_automation">R-House &#8211; Rails for Home Automation</h2>
<p>Fernand Galiana (<a href="http://liquidrail.com/">LiquidRail LLC</a>) har skapat projektet <a href="http://github.com/derailed/rhouse/tree/master">R-House</a> vilket är ett Ruby-lager ovanpå <a href="http://linuxmce.com/">LinuxMCE</a>.</p>
<p>Med R-House kan man kontrollera hårdvara, tex. dimma lampor, låsa upp dörrar, klimatkontroll eller styra mediacenter.</p>
<p>Han visade också hur han använder en iPhone som fjärrkontroll till sitt hus.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogg.athega.se/2009/05/08/railsconf-torsdag/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

