<?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>qvister</title>
	
	<link>http://qvister.se</link>
	<description />
	<lastBuildDate>Tue, 01 Nov 2011 12:56:04 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/qvister" /><feedburner:info uri="qvister" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://superfeedr.com/hubbub" /><item>
		<title>Loake</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/EAEWGAZ3XiM/</link>
		<comments>http://qvister.se/2011/08/15/loake/#comments</comments>
		<pubDate>Mon, 15 Aug 2011 16:37:07 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Loake]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[google maps]]></category>
		<category><![CDATA[heroku]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1270</guid>
		<description><![CDATA[Loake ett anrikt brittiskt skomärke som sedan urminnestider har tillverkat herrskor av högsta kvalité. Jag tillsammans med Tomas Måsviken (@masviken), som stod för designen, tog under en lugnare sommarvecka fram en enklare sajt åt företaget riktad mot den svenska marknaden. Sajten är byggd medhjälp av ramverket Ruby on Rails och driftas glädjeligen hos Heroku.]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://loake.se/"><img class="size-full wp-image-1279 aligncenter" src="http://qvister.se/wp-content/uploads/2011/08/Screen-Shot-2011-08-15-at-6.32.43-PM.png" alt="" width="500" height="387" /></a></p>
<p><a href="http://loake.se/">Loake</a> ett anrikt brittiskt skomärke som sedan urminnestider har tillverkat herrskor av högsta kvalité.<span id="more-1270"></span></p>
<p>Jag tillsammans med Tomas Måsviken (<a href="http://twitter.com/masviken">@masviken</a>), som stod för designen, tog under en lugnare sommarvecka fram en enklare sajt åt företaget riktad mot den svenska marknaden.</p>
<p>Sajten är byggd medhjälp av ramverket <a href="http://qvister.se/tag/rails/">Ruby on Rails</a> och driftas glädjeligen hos <a href="http://www.heroku.com/">Heroku</a>.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/EAEWGAZ3XiM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2011/08/15/loake/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2011/08/15/loake/</feedburner:origLink></item>
		<item>
		<title>Nordic Ruby day 2</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/AOzxWbTNbuY/</link>
		<comments>http://qvister.se/2011/06/18/nordic-ruby-day-2/#comments</comments>
		<pubDate>Sat, 18 Jun 2011 17:56:47 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[konferens]]></category>
		<category><![CDATA[nordicruby]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1240</guid>
		<description><![CDATA[Second day of Nordic Ruby and here&#8217;s a roundup of some talks I found interesting. Beyond Ruby Jakob Mattson from Burt talked about his view on Ruby as a language. Ruby is often titled as a fully dynamically typed language. Something the speaker wouldn&#8217;t  totally agree upon. Especially when it comes to the dynamic features. He [...]]]></description>
			<content:encoded><![CDATA[<p>Second day of <a href="http://nordicruby.org/">Nordic Ruby</a> and here&#8217;s a roundup of some talks I found interesting.<span id="more-1240"></span></p>
<h4>Beyond Ruby</h4>
<p><a href="http://twitter.com/jakobmattsson">Jakob Mattson</a> from Burt talked about his view on Ruby as a language. Ruby is often titled as a fully dynamically typed language. Something the speaker wouldn&#8217;t  totally agree upon. Especially when it comes to the dynamic features. He made his point clear and we all could agree that everything in Ruby isn&#8217;t dynamic. He did also bring up the false assumption that everything (really everything) is an object in Ruby. For instance the &#8220;<em>end</em>&#8221; statement or the booleans operators (also referred to as &#8220;<em>Chuck Norris</em>&#8221; operators) aren&#8217;t object therefor almost impossible to overwrite their behavior.</p>
<p>I liked the fact that someone had the curage to share a rather critical opinion after lots of Ruby embracing. New programming languages often arises from frustration over the current available ones.</p>
<p><span style="font-weight: bold;">Mountain Dew and My Trail of Tears</span></p>
<p>Aaron Patterson more commonly known as <a href="http://twitter.com/tenderlove">@tenderlove</a> held a real entertaining talk. This man knows how to get every single person in the audience attention during the whole talk. The topic was legacy code and what methods and techniques that can help us dealing with this phenomena on a regular basis.</p>
<p><a href="http://www.flickr.com/photos/mptre/5845997360/in/set-72157626983413604/"><img class="alignnone" src="http://farm6.static.flickr.com/5304/5845997360_c93fe7cbd1.jpg" alt="" width="500" height="666" /></a></p>
<p>Overall it was good stuff. A few notes that stuck:</p>
<ul>
<li>Appending the &#8220;<em>w</em>&#8221; flag when using the Ruby binary will output warnings. Ruby 1.9.3 will even inform you when there&#8217;s unused variabels in your code(!).</li>
<li>The &#8220;<em>I</em>&#8221; flag lets you specify the load path when running the Ruby binary from your console. Comes handy if you for instance want to overwrite some dependencies with your own code.</li>
<li>Aaron uses pure Ruby to mock objects during testing.</li>
<li>Deprecation warnings should be omitted if the $VERBOSE variable isn&#8217;t present.</li>
</ul>
<p><strong>&#8220;Legacy&#8221;</strong></p>
<p><a href="http://twitter.com/chadfowler">Chad Fowler</a> a respected and well-known person from the Ruby community did also talk about legacy. But from a totally different perspective.</p>
<p>Legacy isn&#8217;t by all definitions a bad thing. Legacy also means inheritance, gift or benefaction. Take Beethovens symphonies for instance. They&#8217;ve been around for ages by now and can therefor be classified as legacy by all means.</p>
<p>Keeping this definition in mind how do we then make software that stick? Statistics tells us the chances your code will still be around after a five year period of time is close to zero. Definitely worth thinking about.</p>
<p><a href="http://www.flickr.com/photos/mptre/5845446083/in/set-72157626983413604"><img class="alignnone" src="http://farm6.static.flickr.com/5108/5845446083_2f6be4ea11.jpg" alt="" width="500" height="666" /></a></p>
<p>Also worth mentioning. Nordic Ruby was one of the first conferences I attended that did have a fully mobile optimized website. It&#8217;s even <a href="http://qvister.se/tag/responsive-web-design">responsive</a>! Strangely enough this isn&#8217;t as common as you might assume.</p>
<p>Thanks to all the folks that made Nordic Ruby possible. I will definitely be back next year!</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/AOzxWbTNbuY" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2011/06/18/nordic-ruby-day-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://qvister.se/2011/06/18/nordic-ruby-day-2/</feedburner:origLink></item>
		<item>
		<title>Nordic Ruby day 1</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/ig2Bz3BEWY0/</link>
		<comments>http://qvister.se/2011/06/17/nordic-ruby-day-1/#comments</comments>
		<pubDate>Fri, 17 Jun 2011 17:27:04 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[konferens]]></category>
		<category><![CDATA[nordicruby]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1205</guid>
		<description><![CDATA[Nordic Ruby is a two day conference taking place in Gothenburg, Sweden. This is the second annual year and my first. I arrived yesterday and went straight for a run in the beautiful Slottsparken. Sadly enough I got to tired and had to skip the preparty. Instead I spent some time hacking CoffeeScript which I [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://nordicruby.org/">Nordic Ruby</a> is a two day conference taking place in Gothenburg, Sweden. This is the second annual year and my first.<span id="more-1205"></span></p>
<p>I arrived yesterday and went straight for a run in the beautiful Slottsparken. Sadly enough I got to tired and had to skip the preparty. Instead I spent some time hacking <a href="http://jashkenas.github.com/coffee-script/">CoffeeScript</a> which I recently became very found of.</p>
<p><a href="http://www.flickr.com/photos/mptre/5842984380/in/set-72157626983413604/"><img class="alignnone" src="http://farm6.static.flickr.com/5316/5842984380_c031d0f4e8.jpg" alt="" width="500" height="375" /></a></p>
<p>Below is a short summary of some of the talks that I found interesting.</p>
<h4>GitHub Flavored Ruby</h4>
<p><a href="http://twitter.com/mojombo">Tom Preston-Werner</a>, one of the founders of GitHub, talked about various techniques used internally at GitHub in order to avoid complexity. Which most often tend to grow into a invincibly battle when dealing with software development in general.</p>
<p>Most of techniques is essentially about opposing the <a href="http://en.wikipedia.org/wiki/Waterfall_model">Waterfall model</a> or &#8220;<em>cowboy coding</em>&#8221; as Tom put it.</p>
<p>One technique I did find interesting was <a href="http://tom.preston-werner.com/2010/08/23/readme-driven-development.html">Readme Driven Development</a>. The idea is basically to start of with the readme of your project. Which if often is the initial encounter for your end-users who&#8217;s starting to dig into your project.</p>
<p><a href="http://www.flickr.com/photos/mptre/5842437955/in/set-72157626983413604/"><img class="alignnone" src="http://farm4.static.flickr.com/3218/5842437955_186f328c42.jpg" alt="" width="500" height="666" /></a></p>
<p>Tom also mentioned <a href="http://tomdoc.org/">TomDoc</a> (named after Tom himself) which I hadn&#8217;t heard of before. Finally a &#8220;<em>non-bullshit</em>&#8221; specification for writing code-level documentation with humans and not machines in mind. Similiar specifications like RDoc or phpDoc is a good thing but it forces you to use this strict grammar in order to make it parser friendly. Just like one of the essential foundations of Ruby TomDoc puts the human in center of attention.</p>
<p>Some trivia about Tom to round of. He&#8217;s also the creator of <a href="http://semver.org/">Semantic Versioning</a> which I adopted in almost all of my work by now.</p>
<p>As you might concluded Tom&#8217;s and GitHub&#8217;s contributions to Open source is by far extremely impressive.</p>
<h4>The Limited Red Society</h4>
<p><a href="http://twitter.com/josephwilk">Joseph Wilk</a> from Songkick held an inspiring talk on the subject of testing. Where the &#8220;<em>red society</em>&#8221; is a reference to failing tests. He mentioned and demoed a few tools that can help you gather better insight about your test suite. And especially help you find the pitfalls who either tends to fail most often or consume most of your time.</p>
<p>Rounding of with a quote from the presentation which I found real compelling: &#8220;<em>to measure is to know</em>&#8220;.</p>
<h4>Lightning Talks</h4>
<p>The first day ended with five minutes talks from a bunch of attendees. This was probably the hilight of the day.</p>
<p>Stephen Sykes help a entertaining talk on <a href="http://www.stephensykes.com/obfu_lightening.pdf">obfuscated code</a> and showed of some crazy Ruby one-liners. Great fun!</p>
<p><a href="http://twitter.com/nikolayb">Nikolay</a> talked about what he thought started out as a bad idea. Namely to give all developers on a project the ability to deploy at any time. Doesn&#8217;t sound to bad does it. Well let me put you in to context. We&#8217;re not talking about a regular site. We&#8217;re talking about WordPress.com. Severing around 6 000 000 pageviews a day. Now you might start to realize why this is considered being a bad idea.</p>
<p>One prerequisite to even make this possible in practice is speed. Since the code needs to be deployed to around 1000 servers. This was simply solved by not running any kind of tests before deployment. For any Ruby developer this is considered pure madness. To spice things up he did also confessed that their only using one branch for all their code.</p>
<p>But even how paradoxical this might sound it turnes out this is one of the best decisions made at WordPress.com. Due to the rapid deployment cycle their able to test their code live and get instant feedback. Since deployment occurs that often the changes are quite small and bugs are therefor most often easily to track down.</p>
<p>Last but not least. Ruby is definitely hot stuff. Everybody seems to be hiring.</p>
<p><a href="http://www.flickr.com/photos/mptre/5842985142/in/set-72157626983413604/"><img class="alignnone" src="http://farm4.static.flickr.com/3632/5842985142_639104bacd.jpg" alt="" width="500" height="666" /></a></p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/ig2Bz3BEWY0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2011/06/17/nordic-ruby-day-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://qvister.se/2011/06/17/nordic-ruby-day-1/</feedburner:origLink></item>
		<item>
		<title>lastcred.fm</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/1N9uCHSSNAk/</link>
		<comments>http://qvister.se/2011/06/01/lastcred-fm/#comments</comments>
		<pubDate>Wed, 01 Jun 2011 19:42:34 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[music hack day]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1187</guid>
		<description><![CDATA[This weekend was spent hacking in Berlin at Music Hack Day. The concept of the event is as follows: gather hackers with a passion for music and try building something during 24 consecutive hours. Brilliant if you ask me. I decided to create a service called lastcred.fm. With the following tagline: last.fm without shame. Since I [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" src="http://farm4.static.flickr.com/3571/5787159167_9cbbe409b9.jpg" alt="" width="500" height="365" /></p>
<p>This weekend was spent hacking in Berlin at <a href="http://berlin.musichackday.org/2011/">Music Hack Day</a>. The concept of the event is as follows: gather hackers with a passion for music and try building something during 24 consecutive hours. Brilliant if you ask me.<span id="more-1187"></span></p>
<p>I decided to create a service called <a href="http://lastcred.fm/">lastcred.fm</a>. With the following tagline: last.fm without shame. Since I think we all at some point get ashamed of our last.fm profile lastcred.fm is here to help. The service simply lets you scrobble music from a given set of genres. I highly recommend you giving it a try and save your cluttered last.fm profile!</p>
<p>Built using my favorite framework Ruby on Rails and hosted on Heroku.</p>
<p>Last but not least thanks to <a href="http://www.adriantomic.se/">Adrian</a> for helping me out with the design, <a href="https://twitter.com/jonascarlsson">Jonas</a> for coming up with the tagline and <a href="http://twitter.com/freenerd">Johan</a> and <a href="http://twitter.com/roelven">Roel</a> for organizing a splending Music Hack Day.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/1N9uCHSSNAk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2011/06/01/lastcred-fm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://qvister.se/2011/06/01/lastcred-fm/</feedburner:origLink></item>
		<item>
		<title>Toca Boca</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/iPKV-hiRGA0/</link>
		<comments>http://qvister.se/2011/03/16/toca-boca/#comments</comments>
		<pubDate>Wed, 16 Mar 2011 15:00:57 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Brickmark]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[Bonnier]]></category>
		<category><![CDATA[frontend]]></category>
		<category><![CDATA[mobil]]></category>
		<category><![CDATA[responsive web design]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1171</guid>
		<description><![CDATA[Toca Boca är nystartad spelstudio med fokus främst på spel för barn. Under början av året har jag tillsammans med The Brewery tagit fram Toca Bocas sajt. Ett krav från starten var att sajten skulle fungera minst lika bra i telefonen som på datorn. Vilket förefaller sig naturligt i.o.m. Toca Boca har valt att främst [...]]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-medium wp-image-1179" title="Screen shot 2011-03-16 at 8.59.21 AM" src="http://qvister.se/wp-content/uploads/2011/03/Screen-shot-2011-03-16-at-8.59.21-AM-500x327.jpg" alt="" width="500" height="327" /></p>
<p><a href="http://tocaboca.com/" target="_blank">Toca Boca</a> är nystartad spelstudio med fokus främst på spel för barn.<span id="more-1171"></span></p>
<p>Under början av året har jag tillsammans med <a href="http://thebrewery.se/" target="_blank">The Brewery</a> tagit fram Toca Bocas sajt. Ett krav från starten var att sajten skulle fungera minst lika bra i telefonen som på datorn. Vilket förefaller sig naturligt i.o.m. Toca Boca har valt att främst producera spel för iOS-plattformen. För att lösa detta använda vi oss av den relativt nya och populära tekniken vid namn <a href="http://www.alistapart.com/articles/responsive-web-design/" target="_blank">Responsive Web Design</a>. I kombination med CSS ramverket <a href="http://lessframework.com/" target="_blank">Less</a>.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/iPKV-hiRGA0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2011/03/16/toca-boca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2011/03/16/toca-boca/</feedburner:origLink></item>
		<item>
		<title>Why Ruby makes my heart go Boom Boom</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/2PfO55AC7cs/</link>
		<comments>http://qvister.se/2011/02/18/why-ruby-makes-my-heart-go-boom-boom/#comments</comments>
		<pubDate>Fri, 18 Feb 2011 15:36:53 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[keynote]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1157</guid>
		<description><![CDATA[Today I held a presentation about a real passion of mine which is Ruby. The programing language. The presentation was held at a company called Improove. I came in contact with the company through @andk. A friend of mine. Improove invites speakers on a montly basis to talk about web related topics. The presentation hilights a selection [...]]]></description>
			<content:encoded><![CDATA[<p>Today I held a presentation about a real passion of mine which is Ruby. The programing language.<span id="more-1157"></span></p>
<p>The presentation was held at a company called <a href="http://www.improove.se/" target="_blank">Improove</a>. I came in contact with the company through <a href="http://twitter.com/andk">@andk</a>. A friend of mine. Improove invites speakers on a montly basis to talk about web related topics.</p>
<p>The presentation hilights a selection of features I became very found of in Ruby. All in all the presentation went well and I hopefully inspired a few to start digging into the world of Ruby.</p>
<div id="__ss_6973792" style="width: 500px;"><object id="__sse6973792" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="420" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ruby-110218085603-phpapp01&amp;stripped_title=why-ruby-makes-my-heart-go-boom-boom&amp;userName=mptre" /><param name="name" value="__sse6973792" /><param name="allowfullscreen" value="true" /><embed id="__sse6973792" type="application/x-shockwave-flash" width="500" height="420" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ruby-110218085603-phpapp01&amp;stripped_title=why-ruby-makes-my-heart-go-boom-boom&amp;userName=mptre" name="__sse6973792" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<img src="http://feeds.feedburner.com/~r/qvister/~4/2PfO55AC7cs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2011/02/18/why-ruby-makes-my-heart-go-boom-boom/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2011/02/18/why-ruby-makes-my-heart-go-boom-boom/</feedburner:origLink></item>
		<item>
		<title>My christmas gift to open source and why you should do the same</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/m0cJ-3I_E7A/</link>
		<comments>http://qvister.se/2010/12/22/my-christmas-gift-to-open-source-and-why-you-should-do-the-same/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 14:32:22 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[christmas]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[gift]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[rails]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1119</guid>
		<description><![CDATA[Everyday in both private and workwise matters I encounter and utilize open source solutions. These tools and solutions are made possible by a fantastic bunch of people. Since christmas is just around the corner I want to share the joy with a few of these people. This year I decided to donate a total of $300 [...]]]></description>
			<content:encoded><![CDATA[<p>Everyday in both private and workwise matters I encounter and utilize open source solutions. These tools and solutions are made possible by a fantastic bunch of people. Since christmas is just around the corner I want to share the joy with a few of these people.<span id="more-1119"></span></p>
<p>This year I decided to donate a total of $300 to two people I think have embraced and contributed to the world of open source in a outstanding way. It ain&#8217;t that much but hopefully something.</p>
<p><a href="http://www.flickr.com/photos/atxjen/2626107257/"><img class="alignnone" src="http://farm4.static.flickr.com/3080/2626107257_5e49b18103.jpg" alt="" width="500" height="375" /></a></p>
<h3>Ryan Bates</h3>
<p>Ryan is the author of a fanatstic resource called <a href="http://railscasts.com/" target="_blank">Railscasts</a>. Every week a new screencast if being released where Ryan covers something from the world of Ruby on Rails which he finds interesting. By now almost 250 episodes have been released. Therefor the chance of that gem or functionality you&#8217;re seeking isn&#8217;t yet covered by Ryan is close to nonexistent.</p>
<h3>FUEL PHP5 Framework</h3>
<p>The <a href="http://fuelphp.com/" target="_blank">FUEL framework</a> is definitely the most promising PHP framework out there. I&#8217;ve spent quite an amount of time working with <a href="http://qvister.se/tag/codeigniter/" target="_blank">CodeIgniter</a> during this year. Don&#8217;t get me wrong I really like CodeIgniter but once I tried Ruby on Rails I&#8217;ve been looking for something equivalent written in PHP. FUEL might be the answer to my prayers.</p>
<p>Almost all my work I do for my clients are based upon open source tools. Contributing back is an important matter of keeping this ecosystem healthy and fair. I&#8217;m not asking you to donate cash. But giving somekind back is a nice gesture especially since it&#8217;s christmas.</p>
<p>I&#8217;ve borrowed Ryan Bates <a href="http://railscasts.com/give_back" target="_blank">list</a> filled with ideas on how to contribute back to open source. Slightly modified.</p>
<p>Start of by choosing one tool or solution you&#8217;ve been using alot during the last year. Contribute back by:</p>
<ul>
<li>Making a donation.</li>
<li>Fixing a bug.</li>
<li>Adding documentation.</li>
<li>Or simply thanking them.</li>
</ul>
<p>Go out there and start contributing back to open source!</p>
<p><em>The image in this post is borrowed from <a href="http://www.flickr.com/photos/atxjen/" target="_blank">Jen</a>.</em></p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/m0cJ-3I_E7A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/12/22/my-christmas-gift-to-open-source-and-why-you-should-do-the-same/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/12/22/my-christmas-gift-to-open-source-and-why-you-should-do-the-same/</feedburner:origLink></item>
		<item>
		<title>Beckers Group</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/VUz2R55g5VQ/</link>
		<comments>http://qvister.se/2010/11/25/beckers-group/#comments</comments>
		<pubDate>Thu, 25 Nov 2010 12:17:57 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Beckers Group]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[960gs]]></category>
		<category><![CDATA[bkcsthlm]]></category>
		<category><![CDATA[frontend]]></category>
		<category><![CDATA[jquery]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1027</guid>
		<description><![CDATA[Nyligen lanserades Beckers Group nya webbplats där jag har ansvarat all frontend-kod (HTML, CSS och JavaScript). Till detta projekt använde jag mig delvis av 960gs, jQuery och jCarousel. Sajten drivs på baksidan av EPiServer. Koncept, form och programmering (backend) togs fram av BKC STHLM.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.becker.se"><img class="aligncenter size-medium wp-image-1041" title="beckers" src="http://qvister.se/wp-content/uploads/2010/10/beckers-500x359.jpg" alt="" width="500" height="359" /></a></p>
<p>Nyligen lanserades <a href="http://www.becker.se/" target="_blank">Beckers Group</a> nya webbplats där jag har ansvarat all frontend-kod (HTML, CSS och JavaScript).<span id="more-1027"></span></p>
<p>Till detta projekt använde jag mig delvis av <a href="http://qvister.se/tag/960gs/">960gs</a>, <a href="http://qvister.se/tag/jquery/">jQuery</a> och <a href="http://sorgalla.com/jcarousel/" target="_blank">jCarousel</a>. Sajten drivs på baksidan av EPiServer.</p>
<p>Koncept, form och programmering (backend) togs fram av <a href="http://www.bkcsthlm.se/ny-site-at-beckersgruppen/" target="_blank">BKC STHLM</a>.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/VUz2R55g5VQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/11/25/beckers-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/11/25/beckers-group/</feedburner:origLink></item>
		<item>
		<title>Updated SoundCloud API wrapper with OAuth 2.0 support</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/iOX6NtRqzok/</link>
		<comments>http://qvister.se/2010/11/23/updated-soundcloud-api-wrapper-with-oauth-2-0-support/#comments</comments>
		<pubDate>Tue, 23 Nov 2010 06:56:03 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[release]]></category>
		<category><![CDATA[soundcloud]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1090</guid>
		<description><![CDATA[I&#8217;m glad to announce the release of version 2.0 of the SoundCloud PHP API wrapper. The wrapper got a complete overhaul including support for authentication using OAuth 2.0. As stated above the wrapper now uses the OAuth 2.0 protocol instead of 1.0. The new shiny updated protocol is in my opinion a huge step forward [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/pollas/2645709212/"><img class="alignnone" src="http://farm4.static.flickr.com/3027/2645709212_ed85a8d5e9.jpg" alt="" width="500" height="375" /></a></p>
<p>I&#8217;m glad to announce the release of version 2.0 of the SoundCloud PHP API wrapper. The wrapper got a complete overhaul including support for authentication using <a href="http://oauth.net/2/" target="_blank">OAuth 2.0</a>.<span id="more-1090"></span></p>
<p>As stated above the wrapper now uses the OAuth 2.0 protocol instead of 1.0. The new shiny updated protocol is in my opinion a huge step forward and the authentication flow isn&#8217;t that much of a hazzle anymore.</p>
<p>The wrapper has been written with <a href="http://pear.php.net/" target="_blank">PEAR</a> in mind and can easily be distributed as a PEAR package. The <a href="http://pear.php.net/manual/en/standards.php" target="_blank">PEAR coding standard</a> is also adapted.</p>
<p>Also worth mentioning is that most of the code is now covered by unit tests which makes maintaning and contributing to the project a more gentle matter.</p>
<p>Check out the new <a href="http://soundcloud.qvister.se" target="_blank">demo application</a> or go grab the updated wrapper over at <a href="http://github.com/mptre/php-soundcloud" target="_blank">GitHub</a>.</p>
<p>Happy hacking!</p>
<p><em>Image borrowed from <a href="http://www.flickr.com/photos/pollas/" target="_blank">Anders Pollas</a>.</em></p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/iOX6NtRqzok" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/11/23/updated-soundcloud-api-wrapper-with-oauth-2-0-support/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/11/23/updated-soundcloud-api-wrapper-with-oauth-2-0-support/</feedburner:origLink></item>
		<item>
		<title>Stockholm Ruby User Group (#shrug) oktober 2010</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/AOwnOCg_08g/</link>
		<comments>http://qvister.se/2010/10/26/stockholm-ruby-user-group-shrug-oktober-2010/#comments</comments>
		<pubDate>Tue, 26 Oct 2010 10:29:22 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[konferens]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[stockholm]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1060</guid>
		<description><![CDATA[Igår arrangerades årets tredje SHRUG (Stockholm Ruby User Group). För mig även den första jag besökte. Konceptet är väldigt enkelt. Samla Ruby intresserade personer under samma tak. Bjud på öl (tack Bukowskis) och utbytt kunskap. Klockrent om du frågar mig. Eventet inleddes med tre presentationer som sammanfattas nedan. Creating RubyGems David Backeus från Streamio visade [...]]]></description>
			<content:encoded><![CDATA[<p>Igår arrangerades årets tredje <a href="http://rails.se/" target="_blank">SHRUG</a> (Stockholm Ruby User Group). För mig även den första jag besökte.<span id="more-1060"></span></p>
<p>Konceptet är väldigt enkelt. Samla Ruby intresserade personer under samma tak. Bjud på öl (tack <a href="http://bukowskis.se" target="_blank">Bukowskis</a>) och utbytt kunskap. Klockrent om du frågar mig.</p>
<p>Eventet inleddes med tre presentationer som sammanfattas nedan.</p>
<h4>Creating RubyGems</h4>
<p><a href="http://www.flickr.com/photos/moonhouse/5116017204/"><img class="alignnone" src="http://farm2.static.flickr.com/1402/5116017204_42af4f0af3.jpg" alt="" width="500" height="333" /></a></p>
<p><a href="http://github.com/dbackeus" target="_blank">David Backeus</a> från <a href="http://www.streamio.se/" target="_blank">Streamio</a> visade hur man enkelt på egenhand utan hjälpmedel kan skapa egna s.k. &#8220;<em>gems</em>&#8220;. Kontentan är att din gemspec inte alls är lika skrämmande som den kan framstå vid första anblick. Istället visade David live om hur man enkelt kan generera grundstommen för ett gem och redigera ens gemspec väldigt enkelt. Allt detta utan att använda verktyg som t.ex. <a href="http://github.com/technicalpickles/jeweler" target="_blank">Jeweler</a>. Det finns givetvis ett värde i att låta ens gem vara oberoende av ett annat gem.</p>
<p>Utöver detta bjud även David på en del personliga och i mina ögon väldigt vettiga tips om hur man ska tänka kring vad man inkluderar och inte i sitt gem. Särskilt vid release. Som att t.ex. exkludera enhetstesterna. Detta p.g.a. ett problem som uppstod på Davids arbetsplats där enhetstesterna ofta kräver faktiska videoklipp som gör ens gem onödigt &#8220;<em>tungt</em>&#8221; sett till antalet megabytes. Detta kan tyckas enbart vara applicerbart på en tjänst likt Streamio men kontentan tåls att tänka på.</p>
<p>Gem:et som skapades under presentationen finns tillgängligt för allmän beskådan på <a href="http://github.com/dbackeus/awesome" target="_blank">GitHub</a>.</p>
<h4>Minimizing Library Dependencies</h4>
<p><a href="http://www.flickr.com/photos/moonhouse/5115423275/"><img class="alignnone" src="http://farm2.static.flickr.com/1136/5115423275_9a1021c6b2.jpg" alt="" width="500" height="333" /></a></p>
<p>Rails-konsulten <a href="http://marklunds.com/" target="_blank">Peter Marklund</a> pratade om vikten av att försöka hålla ner antalet plugin och gems i ens Rails-applikation. Den initiala vinningen i tid betalar ofta tillbaka sig på lång sikt.</p>
<p>Istället förespråkar Peter att man försöker skriva funktionaliteten på egenhand alternativt extrahera de väsentliga delarna ur biblioteket som krävs för just din applikation.</p>
<p>Jag som själv är i färd att lära mig Ruby on Rails upplever det oerhört enkelt att komma igång eftersom det finns så pass mycket färdig funktionalitet att implementera på nolltid. Dock får man nog se så att man inte hamnar i &#8220;<em>dependency hell</em>&#8220;.</p>
<p>Hela presentation finns tillgänglig <a href="http://marklunds.com/s5/library_dependencies/html/all.html" target="_blank">här</a>.</p>
<h4>The Front End Testing Frontier</h4>
<p><a href="http://www.flickr.com/photos/moonhouse/5115426953/"><img class="alignnone" src="http://farm2.static.flickr.com/1379/5115426953_446ae06634.jpg" alt="" width="500" height="333" /></a></p>
<p>Carl-Johan Kihlbom från <a href="http://elabs.se/" target="_blank">Elabs</a> pratade om vikten av att testa ens JavaScript. Ruby- och Rails-världen är överlag väldigt duktiga på att skriva enhetstester för backend-koden. Dock har inte denna positiva trend smittat av sig på frontend-koden, än.</p>
<p>Carl-Johan presenterade ett flertal alternativ för testning. Bl.a. <a href="http://github.com/jnicklas/capybara" target="_blank">Capybara</a> som utvecklats av en kollega på Elabs.</p>
<p>Av publikens frågor att döma verkar flera tycka att Behavior Driven Development fortfarande är en omständlig syssla. Något som jag själv instämmer i. Dock får vi hoppas att det blir bättre med verktyg som <a href="http://github.com/jnicklas/capybara" target="_blank">Capybara</a> och <a href="http://cukes.info/" target="_blank">Cucumber</a>.</p>
<p>Koden som demonstrerades finns även den tillgänglig på <a href="http://github.com/elabs/front_end_testing" target="_blank">GitHub</a>.</p>
<p>Presentationerna var väldigt givande och intressanta. Nivån kändes även den lagom.</p>
<p>Något som man ganska snabbt kan konstatera efter att ha besökt SHRUG är att den svenska marknaden skriker efter Ruby- och främst Rails-kunniga utvecklare. I stort sätt alla företag som var närvarande under kvällen sökte utvecklare i någon form. En bra start är att hålla koll på <a href="http://railsjobb.se/" target="_blank">RailsJobb.se</a>.</p>
<p>Bilderna tillhörande detta inlägg är lånade ifrån <a href="http://www.flickr.com/photos/moonhouse" target="_blank">David Hall</a> (<a href="http://twitter.com/moonhouse" target="_blank">@moonhouse</a>).</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/AOwnOCg_08g" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/10/26/stockholm-ruby-user-group-shrug-oktober-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/10/26/stockholm-ruby-user-group-shrug-oktober-2010/</feedburner:origLink></item>
		<item>
		<title>WordCamp Stockholm</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/a9LDg3EQaXg/</link>
		<comments>http://qvister.se/2010/10/24/wordcamp-stockholm/#comments</comments>
		<pubDate>Sun, 24 Oct 2010 19:48:17 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[konferens]]></category>
		<category><![CDATA[stockholm]]></category>
		<category><![CDATA[wordcamp]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1001</guid>
		<description><![CDATA[I helgen ägde konferensen WordCamp rum på Tekniska museet i Stockholm. WordCamp är ett välkänt fenomen runt om i världen. Tack vare initiativtagaren Thord Daniel Hedengren fick Sverige nu sitt första egna WordCamp. Konferensen inleddes under lördagen med traditionella föreläsningar leda av flera välkända svenska WordPress profiler. Nedan följer en sammanfattning av tre föreläsningar jag både [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mptre/5111017531/"><img class="alignnone" src="http://farm5.static.flickr.com/4131/5111017531_ccfeaee9d4.jpg" alt="" width="500" height="375" /></a></p>
<p>I helgen ägde konferensen <a href="http://se.wordcamp.org/" target="_blank">WordCamp</a> rum på Tekniska museet i Stockholm. WordCamp är ett välkänt fenomen runt om i världen. Tack vare initiativtagaren <a href="http://tdh.se/" target="_blank">Thord Daniel Hedengren</a> fick Sverige nu sitt första egna WordCamp.<span id="more-1001"></span></p>
<p>Konferensen inleddes under lördagen med traditionella föreläsningar leda av flera välkända svenska WordPress profiler. Nedan följer en sammanfattning av tre föreläsningar jag både fann givande och intressanta.</p>
<h4>Jonatan Fried</h4>
<p><a href="http://www.flickr.com/photos/moonhouse/5108767194/in/set-72157625101190349/"><img class="alignnone" src="http://farm2.static.flickr.com/1131/5108767194_112454ed29.jpg" alt="" width="500" height="333" /></a></p>
<p><a href="http://www.fokus.se/author/jonatan/" target="_blank">Jonatan Fried</a> från den både prisbelönta tidningen och sajten <a href="http://www.fokus.se" target="_blank">Fokus</a> pratade om hur de arbetar med WordPress. Sajten består av en hel del dynamiskt innehåll som redaktörerna själva kan styra över. Detta tack vare ett frekvent användande av dynamiska sidebars. Dessa sidebars populeras sedan med <a href="http://wordpress.org/extend/plugins/query-posts/" target="_blank">Query Posts</a> widgets. Tack vare denna lösning har man helt och hållet ersatt den traditionella loopen och istället flyttat filtreringen av innehållet i händerna på redaktörerna. En smart lösning som gör det möjligt att flytta och lyfta fram innehåll bäst man vill.</p>
<p>En annan funktion som får Fokus WordPress installation att sticka ut är deras konsekventa tänk kring deras egna taxonomier. Flera smarta egna taxonomier finns tillgängliga för att göra strukturen av innehållet mer logiskt. Bl.a. en som gör det möjligt att filtrera på papperstidningens nummer.</p>
<p>Systersajten <a href="http://www.makthavare.se/" target="_blank">Makthavare</a> drivs även den av samma grundtema.</p>
<p>Hela presentationen finns tillgänglig <a href="fokus.se/wpsthlm" target="_blank">här</a>.</p>
<h4>Thord Daniel Hedengren</h4>
<p><a href="http://www.flickr.com/photos/moonhouse/5108777114/in/set-72157625101190349/"><img class="alignnone" src="http://farm2.static.flickr.com/1143/5108777114_e91959ce3c.jpg" alt="" width="500" height="333" /></a></p>
<p>WordPress gurun och författaren av boken <a href="http://www.adlibris.com/se/product.aspx?isbn=0470684151" target="_blank">Smashing WordPress</a> <a href="http://twitter.com/tdhedengren" target="_blank">Thord Daniel Hedengren</a> pratade om hur man kan strukturera sina WordPress teman enligt parent och child principen.</p>
<p>Det hela går ut på att skapa ett parent tema som sedan ett flertal child teman kan baseras på. På så sätt kan man samla delad logik och funktionalitet i ens parent tema för att sedan hålla temaspecifik funktionalitet och logik i child temat. Den som tidigare är bekant med något form av ramverk inser säkerligen vinningen med denna princip.</p>
<p>Något som var nytt för mig var möjligheten att lyfta ut looparna till separata filer. Dessa filer kan sedan inkluderas medhjälp av funktionen <a href="http://codex.wordpress.org/Function_Reference/get_template_part" target="_blank">get_template_part</a>. Tidigare har jag använt en egen lösning för att åstadkomma precis detta. Nu är det dock givetvis dags att slänga ut min egna lösning till fördel för den nya befintliga funktionen.</p>
<p>Jag har i ärlighetens namn inte utforskat parent och child teman tillräckligt. Att separera logik och slippa upprepningar är alltid något som tilltalar mig.</p>
<p><!-- p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px 'Lucida Grande'} --></p>
<h4>Isaac Keyet</h4>
<p><a href="http://www.flickr.com/photos/moonhouse/5108196387/in/pool-1525632@N20/"><img class="alignnone" src="http://farm5.static.flickr.com/4085/5108196387_ba7095458a.jpg" alt="" width="500" height="333" /></a></p>
<p><a href="http://twitter.com/isaackeyet" target="_blank">Isaac Keyet</a> som i sig är en oerhört spännande och inspirerande person var även han påplats. Efter gymnasiet startade han ett flertal webbrelaterade projekt varav ett vid namn <a href="http://intensedebate.com/" target="_blank">IntenseDebate</a> vart uppköpt av <a href="http://automattic.com/" target="_blank">Automattic</a>. Idag jobbar han som projektledare för WordPress i mobilen vilket också var det ämne hans presentation berörde.</p>
<p>WordPress har idag applikationer för både Android, BlackBerry, iOS samt Nokia. Detta kompletteras med ett mobilanpassat tema som finns förinstallerat på alla WordPress.com bloggar. Temat finns i två versioner som alterneras beroende på telefonen du använder. I dagsläget är fördelningen av s.k. smartphones och &#8220;<em>vanliga</em>&#8221; telefoner lika. Dock ser Automattic en dramatiskt ökning av smartphones vilket inte gör det omöjligt att den inom en snar framtid dominerar användandet.</p>
<p>Temat som Automattic själva använder vid namn <a href="http://wordpress.org/extend/plugins/wptouch/" target="_blank">WPtouch</a> kan du givetvis aktivera på din egen blogg.</p>
<p>WordCamp:et fortsatte långt in på natten med ett s.k. &#8220;<em>hackathon</em>&#8220;. Dagen därpå bestod av workshops och livesändning av <a href="http://sweetsundaywebcrunch.com/" target="_blank">Sweet Sunday Web Crunch</a>. Dessvärre var jag själv tvungen att avvika efter föreläsningarna på lördagen. Dock är jag nöjd med sveriges första WordCamp och ser fram emot nästa års tillställning!</p>
<p>Bilderna tillhörande detta inlägg är lånade ifrån <a href="http://www.flickr.com/photos/moonhouse/sets/72157625101190349/" target="_blank">David Hall</a> (<a href="http://twitter.com/moonhouse" target="_blank">@moonhouse</a>).</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/a9LDg3EQaXg" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/10/24/wordcamp-stockholm/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/10/24/wordcamp-stockholm/</feedburner:origLink></item>
		<item>
		<title>Disruptive Code dag 2 (#dcode)</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/d8nvWsHTJoM/</link>
		<comments>http://qvister.se/2010/09/22/disruptive-code-dag-2-dcode/#comments</comments>
		<pubDate>Wed, 22 Sep 2010 21:04:53 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[dcode]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[konferens]]></category>
		<category><![CDATA[stockholm]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=968</guid>
		<description><![CDATA[Andra och sista dagen på Disruptive Code bjöd även den på föredag av hög klass. Nedan följer i stil med förra dagens inlägg en sammanfattning av de fyra föredragen jag fann mest intressanta utan någon som helst rangordning. What makes Cassandra tick Ingen mindre än Eric Evans höll i dagens inledande föredrag. För er som inte [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mptre/sets/72157624881264461/"><img class="alignnone" src="http://farm5.static.flickr.com/4103/5015650746_a8d27e9c7e.jpg" alt="" width="500" height="375" /></a></p>
<p>Andra och sista dagen på Disruptive Code bjöd även den på föredag av hög klass.<span id="more-968"></span> Nedan följer i stil med förra dagens inlägg en sammanfattning av de fyra föredragen jag fann mest intressanta utan någon som helst rangordning.</p>
<h4>What makes Cassandra tick</h4>
<p><a href="http://www.flickr.com/photos/mptre/sets/72157624881264461/"><img class="alignnone" src="http://farm5.static.flickr.com/4126/5015315483_c2a0f04608.jpg" alt="" width="500" height="375" /></a></p>
<p>Ingen mindre än <a href="http://twitter.com/jericevans" target="_blank">Eric Evans</a> höll i dagens inledande föredrag. För er som inte är bekant med Eric sen tidigare var han mannen som myntade uttrycket NoSQL.</p>
<p>Det hela handlade om databasen Cassandra som den senaste tiden har varit på tapeten. Föredraget var ganska tekniskt orienterat och bjöd på en hel praktiska exempel i form användningsområden och ren kod.</p>
<p>Något som fångade min uppmärksamhet var den s.k. <a href="http://en.wikipedia.org/wiki/CAP_theorem" target="_blank">CAP theorem</a>. En sats som tar fasta på att ett distribuerat datasystem inte samtidigt kan garantera: konsistens, tillgänglighet samt tålighet mot partitionering (en databas som är uppdelad på flera servrar). Enligt satsen kan en databas inte leverera mer än två av dessa önskvärda egenskaper samtidigt.</p>
<h4>Rockin&#8217; API. How to get third party developers to use and promote your services</h4>
<p><a href="http://www.flickr.com/photos/mptre/sets/72157624881264461/"><img class="alignnone" src="http://farm5.static.flickr.com/4088/5015315825_0ee425cd9b.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="http://twitter.com/ericw" target="_blank">Eric Wahlforss</a> från SoundCloud höll ett oerhört intressant föredrag kring hur hans startup SoundCloud lyckats bygga upp ett alldelses eget ekosystem kring deras API.</p>
<p>För er som inte är bekanta med SoundCloud väljer Eric att likna det med vad Flickr gjorde för bilder, vad YouTube gjorde för video fast i detta fall för musik. SoundCloud har idag över två miljoner användare och över tre miljoner uppladdade låtar.</p>
<p>Som titeln avslöjar bjöd Eric på en del lärdomar kring hur de lyckats locka till sig smart folk till just deras API.</p>
<p>Den första lärdomen är att utvecklare har en förkärlek till nya tekniker. Något som jag gladeligen bekräftar. Därav förefaller det naturligt att använda sig av de senaste teknikerna för att ligga i framkant och erbjuda något nytt till denna skara vetgiriga utvecklare. Exempel på nya tekniker idag t.ex. <a href="http://oauth.net/" target="_blank">OAuth</a> och <a href="http://code.google.com/p/pubsubhubbub/" target="_blank">pubsubhubbub</a>.</p>
<p>Den andra lärdomen var att använd själv sitt eget API. På så sätt kan du redan tidigt hitta buggar och putsa på det som behövs. Om du själv inte är nöjd med vad ditt eget API kan åstadkomma och inte är det föga orimligt att andra kommer känna sig manade att börja använda API:et.</p>
<p>Försök initialt själv att skapa skriverier kring ditt API genom att utveckla egna tjänster baserat på API:et. Ett annat exempel på hur man kan få upp andras ögon för just ditt API är att arrangera s.k. &#8220;<em>hackdays</em>&#8220;. SoundCloud var initiativtagare till <a href="http://musichackday.org/" target="_blank">Music Hack Day</a>. En tillställning som jag själv besökte här i Stockholm tidigare i år.</p>
<p>Så här i efterhand konstaterar även Eric att versionering av ditt API är en bra sak. Du kommer hur den än gör komma till en punkt där det är dags för förändring. Med versionering kan man försäkra sig om att alla befintliga tjänster byggda &#8220;<em>på toppen</em>&#8221; av ditt API fortsätter fungera.</p>
<p>Den fullständiga presentation kan hittas <a href="http://www.slideshare.net/ericw/soundcloud-api-learnings" target="_blank">här</a>.</p>
<h4>IE9 &#8211; the good, the bad and the ugly</h4>
<p><a href="http://www.flickr.com/photos/mptre/sets/72157624881264461/"><img class="alignnone" src="http://farm5.static.flickr.com/4108/5015924416_da649f9f59.jpg" alt="" width="500" height="375" /></a></p>
<p>Danwei Tran, utvecklarevangelist på Microsoft, pratade om den nyligen släppta betaversionen av webbläsaren Internet Explorer 9.</p>
<p>Utvecklingen av denna webbläsare ska till skillnad från tidigare versioner vara mer öppen. Med det menas en öppen dialog mellan utvecklare och användare. Under utvecklingsfasen släpps en ny version för allmänheten var åttonde vecka.</p>
<p>Flera många nya funktioner visades upp. Vilket i ärlighetens namn kändes aningen konstigt eftersom majoriteten av publiken var utvecklare och var mer nyfikna på vad som händer &#8220;<em>under skalet</em>&#8220;. Tidigare versioner av Internet Explorer är en utvecklares värsta mardröm. Något som Microsoft tur nog även själva verkar vara medvetna om.</p>
<p>Som tur var övergick föredraget till att handla om vad som hänt &#8220;<em>under skalet</em>&#8220;. En ny grafik-accelererad JavaScript-motor vid namn Chakra introduceras. För att demonstrera motors kraft visades bl.a. demo:t <a href="http://ie.microsoft.com/testdrive/Performance/01FlyingImages/Default.html" target="_blank">Flying Images</a>.</p>
<p>Stöd för HTML5 är även något som den stundande versionen stödjer. Dock blir det hela aningen tvetydigt när väsentlig funktionalitet så som Geolocation och WebSockets inte finns med på listan över prioriteringar.</p>
<p>Jag ställde själv frågan till Danwei om hur planen att få alla befintliga Internet Explorer användare att uppgradera deras webbläsare såg ut. En plan som idag tyvärr inte existerar. Ur ett perspektiv är det förståeligt eftersom ett företag av Microsofts storlek inte kan påtvinga deras kunder nya lösningar utan möjligheten att tacka nej. Vad som dock är lite konstigt är att Danwei menar att detta främst är en uppgift för oss utvecklare. Genom att använda oss av de senaste teknikerna kan vi påvisa värdet i att uppgradera webbläsaren för användaren. Spontant vill man aldrig låsa ut en användare p.g.a. webbläsaren inte stödjer det allra senaste. Värt att notera är att Internet Explorers marknadsandel är oerhört stor i större delar av världen. Vilket i praktiken resulterar i att man dessvärre lämnar många användare utanför förens webbläsaren är uppgraderad till senaste versionen. Om detta ska gå att genomföra i praktiken måste nog hela uppgraderingsflödet bli så pass smidigt och intuitivt som möjligt. Där verkar vi tyvärr inte vara idag. En åskadare i publiken poängterade att hon fann det omöjligt att ladda ned den senaste stabila versionen av Internet Explorer (version 8). Istället hänvisades hon gång på gång till nedladdningssidan för beta-versionen av Internet Explorer 9.</p>
<h4>Panel: The do&#8217;s and don&#8217;ts of scaling</h4>
<p><a href="http://www.flickr.com/photos/mptre/sets/72157624881264461/"><img class="alignnone" src="http://farm5.static.flickr.com/4105/5015924984_f303aa5a01.jpg" alt="" width="500" height="375" /></a></p>
<p>Den avslutande panelen bestod av Eric Evans, Eric Wahlforss, <a href="http://twitter.com/perkovich" target="_blank">Per Åström</a> och <a href="http://twitter.com/tedvalentin">Ted Valentin</a>.</p>
<p>Eric E. inledde med att poängtera värdet av att tackla skalningsproblemen först när de uppstår. Den finns ingen vettig anledning till att skissa upp ett flertal skräckscenarion och hitta en lösning förens de faktiskt inträffar. Skalningsproblem är som Eric W. förklarar långt ifrån homogena och kräver i majoriteten av fallen en helt egen lösning. Nyckeln är i många fall att hitta rätt verktyg till rätt uppgift. Att genast hoppa på den senaste och hetaste tekniken är något som på sikt inte håller.</p>
<p>Per som tillskillnad från t.ex. Eric W. och hans SoundCloud kan i förtid gardera sig emot stora trafikpeak:ar eftersom deras trafik går helt i linje med vad som finns med i dagens tv-tablå.</p>
<p>Ted har tillskillnad från de andra tre panelmedlemmarna inte upplevts några direkta skalningsproblem än. En lärdom han delade med sig av från utvecklandet av <a href="http://blogipedia.com" target="_blank">Blogipedia</a> var att databasfrågor innehållandes s.k. <a href="http://www.tizag.com/mysqlTutorial/mysqljoins.php" target="_blank">JOINS</a> inte var en god idé när din databas börjar nå en kritisk storlek.</p>
<p>Eric W. passade även på dela med sig lite om SoundClouds senaste skalningsproblem. Som inloggad användare på SoundCloud möts du av en dina vänners senaste aktivitet i form av en interaktiv ström. Oerhört lik en vanlig Twitter-ström. Denna aktivitetsström lagrades i en traditionell relationsdatabas som växte sig så stor att den praktiskt taget var omöjligt att arbeta med. Ut åkte MySQL till fördel för Cassandra som visade presterade något extra ordinärt. Idag kör SoundCloud en Cassandra databas fördelad på åtta noder. Sett till NoSQL använder sig även SoundCloud av MongoDB för realtidsstatistik.</p>
<p>Så här i efterhand kan jag konstatera att Disruptive Code var riktigt lärorikt och kommer även se till att gå på nästa års event!</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/d8nvWsHTJoM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/09/22/disruptive-code-dag-2-dcode/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/09/22/disruptive-code-dag-2-dcode/</feedburner:origLink></item>
		<item>
		<title>Disruptive Code dag 1 (#dcode)</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/nGGt9d1scGc/</link>
		<comments>http://qvister.se/2010/09/21/disruptive-code-dag-1-dcode/#comments</comments>
		<pubDate>Tue, 21 Sep 2010 21:42:04 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[dcode]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[konferens]]></category>
		<category><![CDATA[stockholm]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=906</guid>
		<description><![CDATA[Idag inleddes två dagars konferensen Disruptive Code (även känt under hashtaggen #dcode på Twitter) på Tekniska museet här i Stockholm. Konferensen kretsar kring programmering och webbutveckling med nya intressanta tekniker och lösningar i fokus. Som t.ex. NoSQL, HTML5, CSS3 och molnbaserade tjänster. Bland dagens talare fanns en rad välkända namn så som Andreas Ehn, Bruce Lawson [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mptre/sets/72157624881264461/"><img class="alignnone" src="http://farm5.static.flickr.com/4106/5012709578_aacd28173d.jpg" alt="" width="500" height="375" /></a></p>
<p>Idag inleddes två dagars konferensen <a href="http://disruptivecode.com/" target="_blank">Disruptive Code</a> (även känt under hashtaggen <a href="http://search.twitter.com/search?q=%23dcode" target="_blank">#dcode</a> på Twitter) på Tekniska museet här i Stockholm.<span id="more-906"></span></p>
<p>Konferensen kretsar kring programmering och webbutveckling med nya intressanta tekniker och lösningar i fokus. Som t.ex. NoSQL, HTML5, CSS3 och molnbaserade tjänster.</p>
<p>Bland dagens talare fanns en rad välkända namn så som Andreas Ehn, Bruce Lawson och Robert Nyman. Nedan följer en sammanfattning av de tre föredrag som jag fann mest intressanta utan någon form av rangordning.</p>
<h4>High performance web sites with ads: don&#8217;t let third parties make you slow</h4>
<p><a href="http://www.flickr.com/photos/mptre/5013060350/in/set-72157624881264461/"><img class="alignnone" src="http://farm5.static.flickr.com/4088/5013060350_078d1092f9.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="http://twitter.com/jarlund" target="_blank">Tobias Järlund</a> från Aftonbladet har under den senaste tiden drivit ett projekt vars mål är att förbättra annonsernas prestanda på Aftonbladet.se. Med prestanda syftar jag givetvis på laddningstiden för slutanvändaren.</p>
<p>Personligen har jag varit oerhört nyfiken på Tobias arbete sedan det nämndes tidigare i våras på konferensen <a href="http://www.internetdagarna.se/pages/seminarier/optimera-sthlm" target="_blank">Optimera STHLM</a>. Den utlovade bloggposten har även den lyst med sin frånvaro. Bortsett från <a href="http://blogg.aftonbladet.se/dev/2010/06/varfor-ar-annonser-sa-langsamma-annonsladdning-del-1" target="_blank">posten</a> som introducerar oss till ämnet och problematiken givetvis. Därav var det extra roligt att få höra Tobias i egen hög person prata kring ämnet.</p>
<p>Annonser har sedan urminnes tider laddats in medhjälp av JavaScript. Förenklat sett har flödet bestått av ett vanligt script-element som efter att skriptet som det refereras till i src-attributet hämtats hem exekverar några rader JavaScript som hämtar annonsen från annonsören i fråga. Därav presenteras annonsen rent visuellt för användaren genom att använda sig av JavaScript metoden document.write. En metod som Tobias lite skämtsamt refererar till som &#8220;<em>the Jimmy Åkesson of JavaScript methods</em>&#8220;. Detta tillvägagångssätt har både sina för- och nackdelar. Den största fördelen är att annonsen kan bestå av i stort sätt vad som helst utan att orsaka problem eller försvåra implementationen. Den största nackdelen är att script-elementet fryser laddningen av sidan tills att skriptet hämtats hem och exekverats. Något som inte helt oväntat hämmar laddtiden och framförallt ger sajten i fråga en känsla av att vara allmänt långsam sett ur ett användarperspektiv.</p>
<p>Tobias har hittat hela 16 lösningar på detta problem. Varav hela 14 var trasiga. Den 15:onde passade inte deras verksamhet. Kvar har vi då den 16:onde och sista lösningen som består av något så kontroversiellt som iframes. Flera inklusive mig själv vred mig av ren förvåning när just iframes kom in i bilden. Har man på något sätt sysslat med webbutveckling vet man säkerligen att iframes är bland det mest &#8220;<em>kostsamma</em>&#8221; HTML-elementet man kan använda sig av.</p>
<p>Tekniken går under beteckningen &#8220;<em><a href="http://www.iab.net/ajaxrichmedia" target="_blank">friendly iframes</a></em>&#8220;. Implementation verkar vara löjligt enkel om ni frågar mig. Det traditionella skript-elementet byts ut mot en iframe som i sin tur inkluderar en statisk HTML-sida vars innehåll bl.a. består av ett script-element. Detta resulterar att flödet för att hämta annonsen inuti iframe:n är precis detsamma jämfört med den gamla välbeprövade metoden som beskrivs ovan. Den enda egentliga skillnaden man gör i implementationen är att skicka med en variabel, vid namn &#8220;<em>inDapIF</em>&#8220;, som berättar för annonsören att annonsen laddas in via en iframe. På så sätt kan annönsoren se till att justera storleken på iframe:n när annonsen väl har laddats in. Detta är givetvis endast möjligt om den statiska HTML-sidan levereras från samma domän som sajten i fråga. Den största fördelen med denna metod är att laddningen av en iframes innehåll kan ske parallellt medans andra resurser hämtas hem.</p>
<p>Om man tidigare bekantat sig med några &#8220;<em>best-practices</em>&#8221; när det kommer till optimering av klientkod i webbläsaren vet man säkerligen att iframes är inget att rekommendera. Vad som gör detta ännu mer intressant är att självaste guden av optimering <a href="http://stevesouders.com/bio.php" target="_blank">Steve Souders</a> själv har uttalat sig kring denna lösning med en kommentar i stil med: &#8220;<em>it&#8217;s not good but it&#8217;s the best option we have today</em>&#8220;.</p>
<p>Vad som även är intressant är att denna lösning inte säker den totala laddningstiden avsevärt för användaren. Vad den dock gör är att ge sajten i fråga intrycket av att ladda markant mycket snabbare.</p>
<p>Tobias bjöd även lite på intressanta siffror som nog talar för sig själv. Antalet besök i veckan steg med 7 procent. Antalet visade sidor per besök ökade med 16 procent. Slutligen minskade den genomsnittliga laddningstiden med 30 procent för användaren. Minst sagt imponerande siffror. Andra sajter som implementerat samma lösning har noterat att genomklickningsfrekvensen har minskat sedan iframe:n kom in i bilden. Något som Aftonbladet konstigt nog inte alls har märkt av. Någon förklaring på detta avvikande beteende har tyvärr inte Tobias i dagsläget.</p>
<p>Tobias nämnde även att Aftonbladet möjligtvis i framtiden hade planer på att släppa koden för att läsa in annonser i iframes fri. Något som jag verkligen hoppas de gör!</p>
<p>Hela presentation hittar du <a href="http://www.slideshare.net/jarlund/hign-performance-web-sites-with-ads-dont-let-third-parties-make-you-slow" target="_blank">här</a>.</p>
<h4>Designing for NoSQL Databases: a case study to get you started</h4>
<p><a href="http://www.flickr.com/photos/mptre/5013062472/in/set-72157624881264461/"><img class="alignnone" src="http://farm5.static.flickr.com/4147/5013062472_aaf9ac5b8b.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="adamskogman" target="_blank">Adam Skogman</a> från Springsource bjöd tidigare under dagen på en introduktion till fenomenet NoSQL. För er som inte är bekanta med uttrycket handlar det om nya typer av databaser som i uppbyggnaden skiljer sig avsevärt från den traditionella relationsdatabasen som har en tendens att inte skala upp i takt med att den lagrade datan växer.</p>
<p>Hela fyra olika kategorier av NoSQL-lösningar presenterades. Key-value, column, document samt graph databaser. De lösningar som tilltalar mig är främst <a href="http://code.google.com/p/redis/" target="_blank">Redis</a> (key-value) och <a href="http://www.mongodb.org/" target="_blank">MongoDB</a> (document).</p>
<p>Redis fick jag nyligen chansen att experimentera med i mitt dagliga arbete. I detta fall handlade det om att avlasta en traditionell relationsdatabas vid stora trafikpekar som innefattade bl.a. skrivningar till databasen. Ett område där Redis verkligen får chansen att skina med full kraft.</p>
<p>Prestandatest av Redis är minst sagt imponerande. Inte mindre än 110000 skrivningar i sekunden och 81000 hämtningar i sekunden har uppmätts på en vanlig konsumentdator med Linux installerat. Läs mer kring <a href="http://code.google.com/p/redis/wiki/Benchmarks" target="_blank">prestandatest</a> av Redis.</p>
<p>Efter denna gedigna introduktion bjöds det på ännu en föreläsning som visade på hur man faktiskt kan använda sig av dessa databaser i praktiken. Flera andra intressanta lösningar och tekniker så som <a href="http://en.wikipedia.org/wiki/Shard_(database_architecture)" target="_blank">sharding</a> och <a href="http://www.allthingsdistributed.com/2007/10/amazons_dynamo.html">Amazons Dynamo Model</a> diskuterades.</p>
<p>En annan databas som även nämndes i den andra föreläsning var <a href="http://cassandra.apache.org/" target="_blank">Cassandra</a> som under den senaste tiden fått en hel del uppmärksamhet. Inte minst p.g.a. att den initialt utvecklats av Facebook och används av både Digg och Twitter. Mer om detta imorgon när självaste Eric Evans ska prata om just Cassandra.</p>
<h4>10 things the cloud has taught us</h4>
<p><a href="http://www.flickr.com/photos/mptre/5012458211/in/set-72157624881264461/"><img class="alignnone" src="http://farm5.static.flickr.com/4142/5012458211_30b2fac31e.jpg" alt="" width="500" height="375" /></a></p>
<p><a href="http://twitter.com/perkovich" target="_blank">Per Åström</a> från TV4 delade med sig av 10 lärdomar från att använda sig av molnbaserade lösningar.</p>
<p>TV4 använder redan idag ett imponerade antal nya tekniker samt molnbaserade tjänster. Akamai, Disqus, AddThis, Polldaddy, Heroku och WordPress för att nämna några.</p>
<p>Presentationen bjöd även på en kort introduktion till <a href="http://heroku.com/" target="_blank">Heroku</a> som även jag fattat tycke för den senaste tiden. Ett enklare sätt att få ut en ruby eller node.js baserad applikation finns inte.</p>
<p>Något som jag fann underhållande var Pers egna beskrivning av hur de svenska mediehusen gått från epok till epok. Det började under tidigt 1990-talet med fullkomligt statiska HTML-sidor. För att sedan utveckla egna CMS. Som i sin tur fick ge plats för ett proprietärt CMS som köpts in. Per jämförde dessa CMS med en schweizisk armekniv. De gjorde väldigt mycket ganska halvdant. Vilket inte helt osökt för mina tankar till ett kapitel i <a href="http://37signals.com/" target="_blank">37signals</a> bok <a href="http://37signals.com/rework/" target="_blank">Rework</a> med titeln &#8220;<em>you&#8217;re better of with a kick-ass half than a half-assed whole</em>&#8220;.</p>
<p>Idag har utbudet av tjänster ökat explosionsartat vilket gör att plötsligt har flera olika alternativ uppdukade framför sig. Alla löser sin specifika uppgift på ett bra sätt. Frågan är bara vilken man ska välja. En diskussion som Per öppet för med sina kollegor.</p>
<p>Intrycket av Disruptive Code är så här långt mycket bra. Jag håller tummarna för en minst lika inspirerande dag imorgon.</p>
<p>Om ni vill följa konferensen i aningen mer realtid rekommenderar jag <a href="http://www.lindqvist.com/tag/disruptive-code/" target="_blank">Nikke Lindqvist</a> blogg där han löpande skriver om alla föredrag han närvarar på.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/nGGt9d1scGc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/09/21/disruptive-code-dag-1-dcode/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/09/21/disruptive-code-dag-1-dcode/</feedburner:origLink></item>
		<item>
		<title>Nyhetskanalen i mobilen</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/x8OCv6XOR_Q/</link>
		<comments>http://qvister.se/2010/09/06/nyhetskanalen-i-mobilen/#comments</comments>
		<pubDate>Mon, 06 Sep 2010 12:03:10 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[tv4]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[mobil]]></category>
		<category><![CDATA[mobilab]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=887</guid>
		<description><![CDATA[Nyligen släpptes en uppdaterat version av Nyhetskanalens mobila sajt. Hela sajten har fått sig ett lyft rent grafiskt och en helt ny kodbas. Jag ansvarade för den tekniska plattformen samt utförandet. I stil med mina andra uppdrag för Mobilabs räkning valde jag ramverket CodeIgniter som grund. Design togs fram av @jkuno och @granding ansvarade för [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter size-medium wp-image-894" title="pressbild" src="http://qvister.se/wp-content/uploads/2010/08/pressbild-360x500.jpg" alt="" width="360" height="500" /></p>
<p>Nyligen släpptes en uppdaterat version av <a href="http://m.nyhetskanalen.se/" target="_blank">Nyhetskanalens</a> mobila sajt. Hela sajten har fått sig ett lyft rent grafiskt och en helt ny kodbas.<span id="more-887"></span></p>
<p>Jag ansvarade för den tekniska plattformen samt utförandet. I stil med mina andra uppdrag för <a href="http://qvister.se/tag/mobilab/">Mobilabs</a> räkning valde jag ramverket CodeIgniter som grund.</p>
<p>Design togs fram av <a href="http://twitter.com/jkuno" target="_blank">@jkuno</a> och <a href="http://twitter.com/granding" target="_blank">@granding</a> ansvarade för koncept och projektledning.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/x8OCv6XOR_Q" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/09/06/nyhetskanalen-i-mobilen/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/09/06/nyhetskanalen-i-mobilen/</feedburner:origLink></item>
		<item>
		<title>Väderkanalen i mobilen</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/C-4eBYbsvwM/</link>
		<comments>http://qvister.se/2010/07/10/vaderkanalen-i-mobilen/#comments</comments>
		<pubDate>Sat, 10 Jul 2010 09:25:49 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[tv4]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[mobil]]></category>
		<category><![CDATA[mobilab]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=1043</guid>
		<description><![CDATA[Nyligen lanserades version 2 av Väderkanalen. Denna version bjuder på en rad förbättringar. Väderdatan som presenteras på sajten hämtas direkt via ett nytt API som SMHI själva tillhandahåller. Detta kompletteras med en positioneringstjänst som fungerar på i stort sätt alla telefoner. Väderkanalen utnyttjar Geolocation API:et på nyare s.k. &#8220;smartphones&#8221; och faller tillbaka på tjänsten Visibilly [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://m.vaderkanalen.se"><img class="size-medium wp-image-1051 alignleft" title="vaderkanalen" src="http://qvister.se/wp-content/uploads/2010/07/vaderkanalen-500x375.jpg" alt="" width="500" height="375" /></a></p>
<p>Nyligen lanserades version 2 av <a href="http://m.vaderkanalen.se">Väderkanalen</a>. Denna version bjuder på en rad förbättringar.<span id="more-1043"></span></p>
<p>Väderdatan som presenteras på sajten hämtas direkt via ett nytt API som SMHI själva tillhandahåller. Detta kompletteras med en positioneringstjänst som fungerar på i stort sätt alla telefoner. Väderkanalen utnyttjar Geolocation API:et på nyare s.k. &#8220;<em>smartphones</em>&#8221; och faller tillbaka på tjänsten <a href="http://www.lociloci.com">Visibilly</a> på äldre telefoner. På så sätt kan du få fram vädret för orten där du befinner dig just nu.</p>
<p>Designen har även den fått sig en rejäl uppdatering tack vare <a href="http://semara.nu/">Johan Kuno</a>.</p>
<p>Konceptet ansvarade Josefine Granding Larsson för.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/C-4eBYbsvwM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/07/10/vaderkanalen-i-mobilen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/07/10/vaderkanalen-i-mobilen/</feedburner:origLink></item>
		<item>
		<title>Hyper Island Master Class</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/82rZ6rDGNio/</link>
		<comments>http://qvister.se/2010/05/31/hyper-island-master-class/#comments</comments>
		<pubDate>Mon, 31 May 2010 21:23:17 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Hyper Island]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[goodold]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=872</guid>
		<description><![CDATA[Hyper Island erbjuder ett flertal intensiva Master Class utbildningar som fokuserar på digital och interaktiv kommunikation. Kurserna riktar sig främst mot strateger och projektledare som på ett eller annat sätt sysslar med kommunikation och marknadsföring. Till årets ansökningsperiod valde Hyper Island att ta fram en ny sajt. Sajten innehåller främst information om de olika kurserna. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mptre/4657126313/"><img class="alignnone" src="http://farm5.static.flickr.com/4012/4657126313_1d2bdac42c.jpg" alt="" width="500" height="352" /></a></p>
<p>Hyper Island erbjuder ett flertal intensiva <a href="http://masterclass.hyperisland.se/" target="_blank">Master Class </a>utbildningar som fokuserar på digital och interaktiv kommunikation.<span id="more-872"></span> Kurserna riktar sig främst mot strateger och projektledare som på ett eller annat sätt sysslar med kommunikation och marknadsföring. Till årets ansökningsperiod valde Hyper Island att ta fram en ny sajt.</p>
<p>Sajten innehåller främst information om de olika kurserna. Detta kompletteras i sin tur med ett traditionellt bloggflöde och aggregerad data från ett flertal webbtjänster så som Twitter, YouTube och Flickr.</p>
<p>Koncept och design togs fram av <a href="http://goodold.se/" target="_blank">Good Old</a>. Utveckligen ansvarade jag för och det hela byggdes i WordPress.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/82rZ6rDGNio" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/05/31/hyper-island-master-class/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/05/31/hyper-island-master-class/</feedburner:origLink></item>
		<item>
		<title>Sverige – det nya matlandet</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/ma43-DIRCwo/</link>
		<comments>http://qvister.se/2010/05/18/sverige-det-nya-matlandet/#comments</comments>
		<pubDate>Tue, 18 May 2010 21:42:57 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[Visit Sweden]]></category>
		<category><![CDATA[960gs]]></category>
		<category><![CDATA[bkcsthlm]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=855</guid>
		<description><![CDATA[Sveriges jordbruksminister Eskil Erlandsson har en vision om att Sverige ska bli det nya matlandet i Europa. En vision som handlar om god mat, upplevelser i världsklass och en levande landsbygd. En viktig del i handlingsplanen är hur Sveriges matkultur ska marknadsföras. Bloggen Sverige det nya matlandet är ett första steg som bjuder in dig på [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mptre/4620036856/"><img class="alignnone" src="http://farm5.static.flickr.com/4009/4620036856_ea5956c3a5.jpg" alt="" width="500" height="392" /></a></p>
<p>Sveriges jordbruksminister Eskil Erlandsson har en vision om att Sverige ska bli det nya matlandet i Europa. En vision som handlar om god mat, upplevelser i världsklass och en levande landsbygd.<span id="more-855"></span></p>
<p>En viktig del i handlingsplanen är hur Sveriges matkultur ska marknadsföras. Bloggen <a href="http://bloggar.visitsweden.com/nyamatlandet/" target="_blank">Sverige det nya matlandet</a> är ett första steg som bjuder in dig på en resa till det matland som Visit Sweden vill förmedla. Genom intervjuer, reportage och dialog med alla som har en åsikt kring ämnet blir bloggen ett forum för alla matengagerade intressenter.</p>
<p><a href="http://www.bkcsthlm.se/" target="_blank">BKC STHLM</a> tog fram både koncept och form. Vilket resulterade i en WordPress driven blogg som jag tog fram.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/ma43-DIRCwo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/05/18/sverige-det-nya-matlandet/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/05/18/sverige-det-nya-matlandet/</feedburner:origLink></item>
		<item>
		<title>Expressen i mobilen</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/fq7oa3j5HEE/</link>
		<comments>http://qvister.se/2010/04/26/expressen-i-mobilen/#comments</comments>
		<pubDate>Mon, 26 Apr 2010 13:29:43 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[tv4]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[expressen]]></category>
		<category><![CDATA[mobil]]></category>
		<category><![CDATA[mobilab]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=833</guid>
		<description><![CDATA[Idag släpps Expressen nya mobilsajt. Utöver ett rejält ansiktslyft har även klipp ifrån Expressen TV gjorts tillgängliga för såväl vanliga mobiltelefoner som iPhone och iPad. Jag ansvarade för utveckling samt diverse tekniska bitar. Det hela är i sedvanlig Mobilab ordning byggd medhjälp av ramverket CodeIgniter och driftas i Amazons elastiska moln. Imponerande nog byggdes allt [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-837  aligncenter" title="expressen_mobilsajt_start_2010 - 1" src="http://qvister.se/wp-content/uploads/2010/04/expressen_mobilsajt_start_2010-1-268x500.png" alt="" width="268" height="500" /></p>
<p>Idag släpps Expressen nya <a href="http://mobil.expressen.se/">mobilsajt</a>. Utöver ett rejält ansiktslyft har även klipp ifrån Expressen TV gjorts tillgängliga för såväl vanliga mobiltelefoner som iPhone och iPad.<span id="more-833"></span></p>
<p>Jag ansvarade för utveckling samt diverse tekniska bitar. Det hela är i sedvanlig Mobilab ordning byggd medhjälp av ramverket <a href="http://qvister.se/tag/codeigniter/">CodeIgniter</a> och driftas i <a href="http://aws.amazon.com/ec2/">Amazons elastiska moln</a>.</p>
<p>Imponerande nog byggdes allt på 30 dagar, från idé till den faktiska slutprodukten. Detta hade inte vart möjligt utan <a href="http://twitter.com/jkuno" target="_blank">@jkuno</a> som tog fram designen, <a href="http://twitter.com/gunnarr" target="_blank">@gunnarr</a> som lett projektet och <a href="http://twitter.com/granding" target="_blank">@granding</a> som konceptutvecklare.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/fq7oa3j5HEE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/04/26/expressen-i-mobilen/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/04/26/expressen-i-mobilen/</feedburner:origLink></item>
		<item>
		<title>Recept.nu i mobilen</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/ss5vteMRHKo/</link>
		<comments>http://qvister.se/2010/04/21/recept-nu-i-mobilen/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 15:02:26 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[tv4]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobil]]></category>
		<category><![CDATA[mobilab]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=812</guid>
		<description><![CDATA[Idag släpps mobil.recept.nu med 17 000 recept, matinspiration och kupongerbjudanden rakt in i din mobil. Den TV4 ägda sajten recept.nu har äntligen fått sig en mobilsajt som förlänger deras minst sagt gedigna recept-databas ut till mobiltelefonen. Utöver sökfunktionen kan man inspireras av redaktionellt utvalda recept samt få tillgång till exklusiva rabattkuponger. Ett stort tack till [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-815 aligncenter" title="X10Front_start" src="http://qvister.se/wp-content/uploads/2010/04/X10Front_start-349x500.png" alt="" width="349" height="500" /></p>
<p>Idag släpps <a href="http://mobil.recept.nu">mobil.recept.nu</a> med 17 000 recept, matinspiration och kupongerbjudanden rakt in i din mobil.<span id="more-812"></span></p>
<p>Den TV4 ägda sajten recept.nu har äntligen fått sig en mobilsajt som förlänger deras minst sagt gedigna recept-databas ut till mobiltelefonen. Utöver sökfunktionen kan man inspireras av redaktionellt utvalda recept samt få tillgång till exklusiva rabattkuponger.</p>
<p>Ett stort tack till <a href="https://twitter.com/granding" target="_blank">@granding</a> som lett projektet, <a href="http://twitter.com/jkuno" target="_blank">@jkuno</a> som tog fram design, <a href="https://twitter.com/joachimalvarez" target="_blank">@joachimalvarez</a> som ansvarat för kupongerna, <a href="http://ivetti.com/" target="_blank">@mike</a> som utvecklats kupong API:et och sist men inte minst <a href="http://twitter.com/perkovich" target="_blank">@perkovich</a> och hans gäng som nyligen slängde ut Polopolys sökindex till fördel för Apache Solr. En förutsättning för att denna mobilsajt skulle bli av.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/ss5vteMRHKo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/04/21/recept-nu-i-mobilen/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/04/21/recept-nu-i-mobilen/</feedburner:origLink></item>
		<item>
		<title>PRI Pensionsgarantis webbtjänst</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/EDiq-NLqRM0/</link>
		<comments>http://qvister.se/2010/04/12/pri-pensionsgarantis-webbtjanst/#comments</comments>
		<pubDate>Mon, 12 Apr 2010 19:17:20 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[PRI Pensionstjänst]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[api]]></category>
		<category><![CDATA[applikation]]></category>
		<category><![CDATA[bkcsthlm]]></category>
		<category><![CDATA[frontend]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[scrum]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=803</guid>
		<description><![CDATA[Tillsammans med BKC STHLM och Fredrik Hansson har vi vidareutvecklat PRI Pensionsgarantis webbtjänst. Webbtjänsten baseras på EPiServer i grund och botten. Detta kompletteras med en proxy som sköter kommunikationen mellan PRIs databas och klienten (slutanvändaren). Min uppgift i det hela var att ta fram HTML-mallar, CSS samt en del JavaScript. Vi använde givetvis jQuery som [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mptre/4515733962/"><img class="alignnone" src="http://farm3.static.flickr.com/2775/4515733962_fa234fa79e.jpg" alt="" width="500" height="428" /></a></p>
<p>Tillsammans med <a href="http://www.bkcsthlm.se/uppdatering-av-pri-pensionsgarantis-webbtjanst/" target="_blank">BKC STHLM</a> och <a href="http://se.linkedin.com/in/fredrikhanssonsthlm" target="_blank">Fredrik Hansson</a> har vi vidareutvecklat PRI Pensionsgarantis webbtjänst.<span id="more-803"></span></p>
<p>Webbtjänsten baseras på EPiServer i grund och botten. Detta kompletteras med en proxy som sköter kommunikationen mellan PRIs databas och klienten (slutanvändaren).</p>
<p>Min uppgift i det hela var att ta fram HTML-mallar, CSS samt en del JavaScript. Vi använde givetvis jQuery som grund och skrev en hel del funktioner på detta gedigna bibliotek.</p>
<p>Utvecklingen har skett med projektmodellen SCRUM, tillsammans med PRIs egna utvecklare som har ansvarat för utvecklingen av tjänsterna som proxyn i sin tur kommunicerar med.</p>
<p>Är du sugen på att pröva på slutresultat så finns det ett <a href="https://www.pri.se/demo" target="_blank">demo</a> tillgängligt. Logga in med användarnamnet &#8220;<em>exempel</em>&#8221; och lösenordet &#8220;<em>exempel</em>&#8220;.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/EDiq-NLqRM0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/04/12/pri-pensionsgarantis-webbtjanst/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/04/12/pri-pensionsgarantis-webbtjanst/</feedburner:origLink></item>
		<item>
		<title>Björnberg webbkonsult</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/JrRWSoXeguc/</link>
		<comments>http://qvister.se/2010/04/07/bjornberg-webbkonsult/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 06:00:12 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Björnberg webbkonsult]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[960gs]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=787</guid>
		<description><![CDATA[Margareta Björnberg startade nyligen en ny verksamhet under namnet Björnberg webbkonsult. Detta i syfte att hjälpa företag att bli bättre beställare av webbtjänster. Margareta har tidigare arbetat som utvecklingsansvarig och projektledare för Visit Sweden men bestämde sig nu i april för att starta denna nya verksamhet. Tillsammans med Linus Eriksson, som ansvarade för det grafiska, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/mptre/4497278121/"><img class="alignnone" src="http://farm5.static.flickr.com/4037/4497278121_272ff06863.jpg" alt="" width="500" height="379" /></a></p>
<p>Margareta Björnberg startade nyligen en ny verksamhet under namnet <a href="http://bjornbergkonsult.se/" target="_blank">Björnberg webbkonsult</a>. Detta i syfte att hjälpa företag att bli bättre beställare av webbtjänster.<span id="more-787"></span></p>
<p>Margareta har tidigare arbetat som utvecklingsansvarig och projektledare för<a href="http://www.visitsweden.se/" target="_blank"> Visit Sweden</a> men bestämde sig nu i april för att starta denna nya verksamhet.</p>
<p>Tillsammans med <a href="http://portfolio.linu.se/" target="_blank">Linus Eriksson</a>, som ansvarade för det grafiska, tog vi fram en ny webbplats baserat på WordPress åt Margareta.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/JrRWSoXeguc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/04/07/bjornberg-webbkonsult/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/04/07/bjornberg-webbkonsult/</feedburner:origLink></item>
		<item>
		<title>Deploy almost anything using Capistrano</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/ol3GjSAmQXs/</link>
		<comments>http://qvister.se/2010/04/06/deploy-almost-anything-using-capistrano/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 07:33:42 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[codeigniter]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=737</guid>
		<description><![CDATA[I recently started digging into the world of Ruby on Rails and quite early came across Capistrano. The whole idea and concept of Capistrano could be explained with their own quite catchy tagline &#8220;Welcome to easyish deployment&#8220;. I&#8217;ve been doing deployment using Git for a while by now. But I find Capistrano more flexible and reliable. [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/heyskinny/1464641723/"><img class="alignnone" src="http://farm2.static.flickr.com/1414/1464641723_bbeb07d856.jpg" alt="" width="500" height="411" /></a></p>
<p>I recently started digging into the world of Ruby on Rails and quite early came across <a href="http://www.capify.org/">Capistrano</a>. The whole idea and concept of Capistrano could be explained with their own quite catchy tagline &#8220;<em>Welcome to easy<span style="text-decoration: line-through;">ish</span> deployment</em>&#8220;.<span id="more-737"></span></p>
<p>I&#8217;ve been doing deployment using Git for a while by now. But I find Capistrano more flexible and reliable. Since Capistrano is intended to be used with Ruby on Rails it doesn&#8217;t work with other platforms &#8220;<em>out-of-the-box</em>&#8220;. But magic can still occur with a few lines of code.</p>
<p>Below you&#8217;ll a &#8220;<em>step-by-step</em>&#8221; tutorial on how the get started using Capistrano for easier deployment. The whole idea for this post came in mind during a Capistrano setup for a <a href="http://qvister.se/tag/codeigniter/">Codeigniter</a> application I did recently. But I don&#8217;t see why this deployment process wouldn&#8217;t be applicable on any other platform or framework.</p>
<p>This tutorial assumes you already got your code hosted using either SVN or Git. You preferaly have setup <a href="http://www.linuxquestions.org/linux/answers/Networking/Public_key_authentication_with_ssh">public ssh keys</a> between your computer and the server you&#8217;re deploying to. You&#8217;re using the same directory structure as below for your applications on your server (feel free to change the Capfile in order to match your existing structure).</p>
<pre>/var/www/example.com
/var/www/example.com/www.example.com
/var/www/example.com/www.example.com/logs
/var/www/example.com/www.example.com/public</pre>
<p>Start of by installing Capistrano on your computer. Capistrano is distributed as a Ruby gem.</p>
<pre>$ sudo gem install capistrano</pre>
<p>Next up clone my default Capfile (Capistrano config file) using cURL. Or use the Gist below.</p>
<pre>$ curl "http://gist.github.com/raw/353124/ceda1eccacee7604d7180b23ff20cb618cb760af/capfile.rb" &gt; Capfile</pre>
<p><script src="http://gist.github.com/353124.js?file=capfile.rb"></script></p>
<p>There are some variabels you need to change in order to make this Capfile work with your setup. Basically look through all lines that begins with &#8220;<em>set</em>&#8221; and change the corresponding value. Also make sure to change the server domain on line 10.</p>
<p>A typical Capistrano deployment is loaded with different kind of tasks. Since Capistrano is awesome it allows you to setup own tasks and even overwrite existing tasks.</p>
<p>As mentioned earlier Capistrano was invented with Ruby on Rails in mind, therefor we need to overwrite a few Rails specific tasks (<em>migrate</em>, <em>restart</em>, <em>start</em>). These default tasks are probably not compatible with your application. But feel free to rewrite them if needed.</p>
<p>As you might noticed by now the task &#8220;<em>copy_config</em>&#8221; inside Capfile isn&#8217;t a default task. My Codeigniter applications usually include some setup specific config files that shouldn&#8217;t be included in the repository by obvious reasons. For instance a config file including all necessary MySQL credentials. Therefor these files needs to be setup and edited manually in order to get the application running. But there&#8217;s one problem using this method with Capistrano.</p>
<p>Everytime you deploy using Capistrano a fresh copy of your latest application is being cloned/checkout from the repository and stored inside a new folder on the server. Since Capistrano doesn&#8217;t proceed from the previous deployed release all files that isn&#8217;t included in the repository will <strong>not</strong> be moved to the new deployed release folder. But no worries! Since Capistrano allows us to hook up our own tasks to specific events during deployment we can solve this problem with ease.</p>
<p>The task namned &#8220;<em>copy_config</em>&#8221; is being executed right after the &#8220;<em>symlink</em>&#8221; task. Right after the new release directory has been created and linked to the current directory. Since all my necessary config files are included in the &#8220;<em>.gitignore</em>&#8221; file we can use that as a reference and simply check if the file exists in the previous release folder. If so simply move the file to the newly created release folder. Capistrano provides some nifty <a href="http://www.capify.org/index.php/Variables" target="_blank">variabels</a> such as &#8220;<em>previous_release</em>&#8221; and &#8220;<em>latest_release</em>&#8221; to make this operation easier.</p>
<p>Any other needed operation to get your application up and running should probably be executed after the &#8220;<em>symlink</em>&#8221; task.</p>
<p>Once your Capfile is done it&#8217;s time to run a initial setup deploy. Start of by running the following command.</p>
<pre>$ cap deploy:setup</pre>
<p>You should end up with a similar directory structure on your server.</p>
<pre>/var/www/example.com/www.example.com/public/releases
/var/www/example.com/www.example.com/public/shared
/var/www/example.com/www.example.com/public/shared/log
/var/www/example.com/www.example.com/public/shared/pids
/var/www/example.com/www.example.com/public/shared/system</pre>
<p>It&#8217;s finally time to perform a first initial (cold) deploy of your application to your server.</p>
<pre>$ cap deploy:cold</pre>
<p>Congratulations! You just performed your first deploy using Capistrano. For future deploys the cold task isn&#8217;t necessary. Simply execute the command below.</p>
<pre>$ cap deploy</pre>
<p>Easy enough don&#8217;t you think?</p>
<p>This post should give you a brief idea of the Capistrano workflow. And show how you can hook up your own tasks in order to get your application up and running. I can&#8217;t guarantee that this method can be applicable on your application. As the title states &#8220;<em>&#8230; almost anything</em>&#8220;.</p>
<p>Interested in learning more about Capistrano? Here&#8217;s a <a href="http://delicious.com/mptre/capistrano+blog" target="_blank">few posts</a> that I stumbled across and found interesting during research for this post.</p>
<p><em>Photo credit: </em><a href="http://www.flickr.com/people/heyskinny/" target="_blank"><em>heyskinny</em></a></p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/ol3GjSAmQXs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/04/06/deploy-almost-anything-using-capistrano/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/04/06/deploy-almost-anything-using-capistrano/</feedburner:origLink></item>
		<item>
		<title>Bonnier Hack Day</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/QntJqxVQuWc/</link>
		<comments>http://qvister.se/2010/03/14/bonnier-hack-day/#comments</comments>
		<pubDate>Sun, 14 Mar 2010 20:35:51 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[Bonnier]]></category>
		<category><![CDATA[event]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[mobilab]]></category>
		<category><![CDATA[stockholm]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=709</guid>
		<description><![CDATA[Torsdagen och fredagen denna vecka spenderades på Bonnier Hack Day. Det hela var ett initiativ från Bonnier R&#38;D sida med Paulina i täten. För dig som inte är bekant med Hack Day konceptet går det kort och gott ut på att skapa något under 24 intensiva timmar. Den faktiska slutprodukten är inte det viktigaste utan [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.flickr.com/photos/bonnier_rd/4426662695/in/set-72157623605939816"><img class="alignnone" src="http://farm3.static.flickr.com/2685/4426662695_ce5782977b.jpg" alt="" width="500" height="333" /></a></p>
<p>Torsdagen och fredagen denna vecka spenderades på <a href="http://bonnierhackday.blogspot.com/" target="_blank">Bonnier Hack Day</a>. Det hela var ett initiativ från <a href="http://www.bonnier.se/sv/om-bonnier-research-development" target="_blank">Bonnier R&amp;D</a> sida med <a href="http://twitter.com/pauspling" target="_blank">Paulina</a> i täten.<span id="more-709"></span></p>
<p>För dig som inte är bekant med Hack Day konceptet går det kort och gott ut på att skapa något under 24 intensiva timmar. Den faktiska slutprodukten är inte det viktigaste utan det är mer fokus på att faktiskt åstadkomma något.</p>
<p>Bonnier Hack Day var faktiskt min tredje Hack Day i ordningen. Enda skillnaden denna var att jag inte närvarade som privatperson utan representerade <a href="http://qvister.se/tag/mobilab/" target="_blank">Mobilab</a> tillsammans med <a href="http://twitter.com/hermanolsson" target="_blank">Herman Olsson</a>, <a href="http://twitter.com/gunnarr" target="_blank">Gunnar Johansson</a> och <a href="http://twitter.com/morpac" target="_blank">Morris Packer</a>.</p>
<p>Vårt projekt med arbetsnamnet &#8220;<em>tvättmaskinen</em>&#8221; är ganska tråkigt för att vara ett Hack Day projekt men något som vi intern kommer ha stor nytta av. Hela idén grundar sig i att vi av olika skäl inte kan hämta innehåll direkt Expressens <a href="http://sv.wikipedia.org/wiki/Application_Programming_Interface" target="_blank">API</a> från klienten (t ex. en iPhone applikation). Därav byggde vi ett mellanlager som hämtar innehåll från Expressen och lagrar det slutligen på Amazons S3 plattform. På så sätt kan vi på våra kommande sajter och applikationer komma åt det innehåll som efterfrågas utan att gå direkt mot Expressens API. En annan fördel med att lagra innehållet hos Amazon S3 är att Expressen kan gå ner, vår &#8220;<em>tvättmaskin</em>&#8221; kan gå ner men alla sajter och applikationer kommer fortfarande ha tillgång till det senaste innehållet eftersom Amazon S3 är så stabilt det bara kan bli.</p>
<p><a href="http://www.flickr.com/photos/bonnier_rd/4427405970/in/set-72157623605939816/"><img class="alignnone" src="http://farm3.static.flickr.com/2719/4427405970_eb550313c3.jpg" alt="" width="500" height="333" /></a></p>
<p>Efter 24 intensiva timmar fick alla chansen att presentera sina projekt i sann Hack Day anda. Bland publiken fanns även en jury bestående av massa kloka huvuden. Denna jury korade sedan en vinnare som inte var någon mindre än Sydsvenskans <a href="http://citypedia.se/" target="_blank">Citypedia</a> projekt med följande motivering.</p>
<blockquote><p>The jury &#8230; particularly liked the way in which team Sydsvenskan used new and vastly different sources/API:s to provide more accurate and extensive reviews.</p></blockquote>
<p>Nedan finns även en lista över mina favorit projekt utan någon specifik rangordning.</p>
<ul>
<li><a href="http://repr.is/" target="_blank">repr.is</a><br />
En tjänst som aggregerar alla s.k. play-tjänster och gör dem sökbara under ett och samma tak. En klockren idé som verkligen fyller ett behov som jag personlig har känt av. Jag hoppas verkligen att denna tjänst fortsätts utvecklas. Utvecklat av <a href="http://twitter.com/mackielinden" target="_blank">Marcus Lindén</a> och <a href="http://twitter.com/perkovich" target="_blank">Per Åström</a>, båda ifrån TV4.</li>
<li><a href="http://www.flickr.com/photos/bonnier_rd/4426656235/in/set-72157623605939816/" target="_blank">linkr</a><br />
Att förena det digitala med det analoga har gång på gång visat sig vara ett vinnande Hack Day koncept. Linkr är heller inget undantag. Vad denna röda låda gör är att visa antalet klick som besökarna genererat de senaste fem minuterna från ett visst antal fördefinierade sajter. Det hela kompletteras med en indikator som visar om antalet klick har ökat eller minskat gentemot den tidigare fem minuters perioden. Syftet är att konkretisera och öka förståelsen kring statistiken som finns tillgänglig hos främst redaktionerna som ansvarar för innehållet på sajterna. Utvecklat av <a href="http://twitter.com/perkovich" target="_blank">Per Åström</a> och <a href="http://twitter.com/moonhouse" target="_blank">David Hall</a>.</li>
<li><a href="http://www.flickr.com/photos/bonnier_rd/4427417880/in/set-72157623605939816/" target="_blank">whereitshot</a><br />
Google Maps i kombination med s.k. <a href="http://en.wikipedia.org/wiki/Heat_map" target="_blank">heatmaps</a> för att presentera data är något som på senaste tiden har intresserat mig. Vad whereitshot gör är att visa vart &#8220;<em>tweets</em>&#8221; innehållandes en viss sökterm är mest förekommande rent geografiskt. Det hela visar visserligen bara en bråkdel av alla &#8220;<em>tweets</em>&#8221; eftersom denna idé bygger på att alla &#8220;<em>tweets&#8221;</em> är geotaggade med faktiska koordinater. Hur som helst är hela genomförande väldigt snyggt och genomtänkt. Utvecklat av Anders Cserkuti och David Andersson, både ifrån Adlibris.</li>
<li><a href="http://www.henrikberggren.com/2010/03/14/pictoriala/" target="_blank">Pictoriala</a><br />
Utvecklat av Hack Day veteranerna <a href="http://twitter.com/henrikberggren" target="_blank">Henrik Berggren</a> och <a href="http://twitter.com/davidkjelkerud" target="_blank">David Kjelkerud</a>, båda ifrån Doberman. Ett oerhört grafiskt tilltalande nyhetsflöde i form av bilder är vad jag skulle kalla Pictoriala för.</li>
</ul>
<p>Så här i efterhand kan jag konstatera att detta var ännu en oerhört lyckad Hack Day. Det är kul att se att detta koncept börjar dyka upp mer och mer här hemma i Sverige. Återigen ett stort tack till alla som gjorde dessa 24 timmar till något helt fantastikt. Jag ser med glädje fram emot nästa Bonnier Hack Day!</p>
<p><em>Bilderna tillhörande detta inlägg är lånade ifrån </em><a href="http://www.flickr.com/photos/bonnier_rd/sets/72157623605939816/" target="_blank"><em>Bonnier R&amp;D</em></a><em>.</em></p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/QntJqxVQuWc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/03/14/bonnier-hack-day/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/03/14/bonnier-hack-day/</feedburner:origLink></item>
		<item>
		<title>Coat it Green</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/Yii70sxZvkk/</link>
		<comments>http://qvister.se/2010/03/11/coat-it-green/#comments</comments>
		<pubDate>Thu, 11 Mar 2010 00:44:05 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Becker Acroma]]></category>
		<category><![CDATA[Uppdrag]]></category>
		<category><![CDATA[960gs]]></category>
		<category><![CDATA[bkcsthlm]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=692</guid>
		<description><![CDATA[Coat it Green är ett nytt spännande initiativ från Becker Acroma med fokus på miljövänliga ytbehandlingar för trä. Sajten är uppdelad i tre innehållsrika sektioner som i sin tur motsvara varsin målgrupp för de olika Coat it Green lösningarna. Det hela är byggt medhjälp av WordPress som grund och är ännu ett bevis på att denna plattform [...]]]></description>
			<content:encoded><![CDATA[<div>
<p><a href="http://www.flickr.com/photos/mptre/4423826182/"><img class="alignnone" src="http://farm5.static.flickr.com/4053/4423826182_2d5d8bf52c.jpg" alt="" width="500" height="328" /></a></p>
<p><a href="http://coatitgreen.com" target="_blank">Coat it Green</a> är ett nytt spännande initiativ från <a href="http://www.beckeracroma.com" target="_blank">Becker Acroma</a> med fokus på miljövänliga ytbehandlingar för trä.<span id="more-692"></span></p>
<p>Sajten är uppdelad i tre innehållsrika sektioner som i sin tur motsvara varsin målgrupp för de olika Coat it Green lösningarna.</p>
<p>Det hela är byggt medhjälp av WordPress som grund och är ännu ett bevis på att denna plattform även fungerar som ett fullfjädrat CMS när det kommer till informativa företagssajter i mindre skala. Det som inte fanns i kärnan löstes enkelt medhjälp av befintliga plugins för t ex. flerspråksstöd och kontaktformulär.</p>
<p>Koncept och design togs fram av <a href="http://www.bkcsthlm.se" target="_blank">BKC STHLM</a>.</p>
</div>
<img src="http://feeds.feedburner.com/~r/qvister/~4/Yii70sxZvkk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/03/11/coat-it-green/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/03/11/coat-it-green/</feedburner:origLink></item>
		<item>
		<title>Första dagen på Bonnier Communications</title>
		<link>http://feedproxy.google.com/~r/qvister/~3/rray4AkTyJc/</link>
		<comments>http://qvister.se/2010/03/01/forsta-dagen-pa-bonnier-kommunikation/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 15:37:12 +0000</pubDate>
		<dc:creator>Anton Lindqvist</dc:creator>
				<category><![CDATA[Blogg]]></category>
		<category><![CDATA[Bonnier]]></category>
		<category><![CDATA[Uppdrag]]></category>

		<guid isPermaLink="false">http://qvister.se/?p=667</guid>
		<description><![CDATA[Sedan hösten förra året har jag haft kontakt och jobbat en del med Bonniers kommunikationsavdelning. Idag inleder vi dock ett nytt konsultuppdrag. Under våren kommer jag spendera en dag i veckan hos Bonnier Communications som konsulterande webbutvecklare. Jag kommer främst pyssla med konkreta utvecklingsuppdrag samt agera rådgivare i diverse webbrelaterade frågor. Bonnier Communications jobbar med intern- och [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-medium wp-image-678" src="http://qvister.se/wp-content/uploads/2010/03/bild-500x375.jpg" alt="" width="500" height="375" /></p>
<p>Sedan hösten förra året har jag haft kontakt och jobbat en del med Bonniers kommunikationsavdelning. Idag inleder vi dock ett nytt konsultuppdrag.<span id="more-667"></span></p>
<p>Under våren kommer jag spendera en dag i veckan hos Bonnier Communications som konsulterande webbutvecklare. Jag kommer främst pyssla med konkreta utvecklingsuppdrag samt agera rådgivare i diverse webbrelaterade frågor.</p>
<p>Bonnier Communications jobbar med intern- och externkommunikation på moderbolaget Bonnier AB och ansvarar för varumärket Bonnier i Sverige och övriga världen, både analogt och digitalt.</p>
<p>Det hela känns oerhört spännande och jag hoppas att jag kan hålla er uppdaterade på allt som händer.</p>
<img src="http://feeds.feedburner.com/~r/qvister/~4/rray4AkTyJc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://qvister.se/2010/03/01/forsta-dagen-pa-bonnier-kommunikation/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://qvister.se/2010/03/01/forsta-dagen-pa-bonnier-kommunikation/</feedburner:origLink></item>
	</channel>
</rss>
