<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;AkQARHo6eSp7ImA9WhRUE0g.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593</id><updated>2012-01-23T23:39:05.411+01:00</updated><category term="technology" /><category term="quicktip" /><category term="javascript" /><category term="news" /><category term="tidbit" /><category term="annoyance" /><category term="quote" /><category term="ipad" /><category term="methodology" /><category term="presentation" /><category term="javablog" /><category term="grails" /><category term="cool stuff" /><category term="TDD" /><category term="object-relational mapping" /><category term="agile" /><category term="BDD" /><category term="DSL" /><category term="trivia" /><category term="top" /><category term=".net" /><category term="nosql" /><category term="bookreview" /><category term="nonsense" /><category term="specflow" /><category term="work" /><category term="humor" /><category term="craftmanship" /><category term="hibernate" /><category term="entityframework" /><category term="scala" /><category term="java" /><category term="patterns" /><category term="programming" /><category term="domain driven design" /><category term="cucumber" /><category term="dysfunction" /><category term="ruby/rails" /><category term="kindle" /><category term="disappointment" /><category term="MDSD" /><category term="scrum" /><category term="groovy" /><category term="jpa" /><category term="knowhow" /><category term="mac" /><category term="design" /><category term="testing" /><category term="professional_pessimism" /><title>CLOSED-LOOP</title><subtitle type="html">[Reflecting Reality Reflecting Reality Reflecting Reality Reflecting Reality]</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://blog.jonasbandi.net/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>430</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/closed-loop" /><feedburner:info uri="closed-loop" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;C0AAQXY5eyp7ImA9WhRWFU8.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-6531045585136271854</id><published>2012-01-02T16:50:00.001+01:00</published><updated>2012-01-02T17:29:00.823+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2012-01-02T17:29:00.823+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="javascript" /><category scheme="http://www.blogger.com/atom/ns#" term="presentation" /><title>Presentation: Can JavaScript be elegant?</title><content type="html">&lt;div style="width: 70%; float: left;"&gt;Last month I was invited &lt;a href="http://blog.jonasbandi.net/2010/12/sbb-developer-days-2010.html"&gt;again&lt;/a&gt; to speak at the &lt;a href="http://www.sbb.ch/sbb-konzern.html"&gt;SBB&lt;/a&gt; Developer Day 2011. Here is the presentation I held about JavaScript:&lt;/div&gt;
&lt;img style="padding-left: 10px; border: none; float: right" src="https://lh5.googleusercontent.com/-tNSDsPu2omw/SHugkpqvAUI/AAAAAAAAARI/vHucMXDAvvs/s144/image_thumb.png" alt="" height="50px" /&gt;
&lt;p style="clear: both;"&gt; &lt;/p&gt;
&lt;div id="__ss_10763521" style="width: 425px;"&gt;&lt;strong style="display: block; margin: 12px 0 4px;"&gt;&lt;a title="Kann JavaScript elegant sein?" href="http://www.slideshare.net/jbandi/kann-javascript-elegant-sein" target="_blank"&gt;Kann JavaScript elegant sein?&lt;/a&gt;&lt;/strong&gt; &lt;iframe src="http://www.slideshare.net/slideshow/embed_code/10763521" width="410" height="330" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"&gt;&lt;/iframe&gt;
&lt;div style="padding: 5px 0 12px;"&gt;View more &lt;a href="http://www.slideshare.net/" target="_blank"&gt;presentations&lt;/a&gt; from &lt;a href="http://www.slideshare.net/jbandi" target="_blank"&gt;jbandi&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;I enjoyed the event very much, and I hope to be invited again next time.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-6531045585136271854?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zScXpH9xrgevSmHtAr9JuLTFen8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zScXpH9xrgevSmHtAr9JuLTFen8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zScXpH9xrgevSmHtAr9JuLTFen8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zScXpH9xrgevSmHtAr9JuLTFen8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=qHempns4LC0:hB2rN9sGKHI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=qHempns4LC0:hB2rN9sGKHI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=qHempns4LC0:hB2rN9sGKHI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=qHempns4LC0:hB2rN9sGKHI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=qHempns4LC0:hB2rN9sGKHI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=qHempns4LC0:hB2rN9sGKHI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=qHempns4LC0:hB2rN9sGKHI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=qHempns4LC0:hB2rN9sGKHI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=qHempns4LC0:hB2rN9sGKHI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=qHempns4LC0:hB2rN9sGKHI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=qHempns4LC0:hB2rN9sGKHI:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=qHempns4LC0:hB2rN9sGKHI:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=qHempns4LC0:hB2rN9sGKHI:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/qHempns4LC0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/6531045585136271854/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=6531045585136271854" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/6531045585136271854?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/6531045585136271854?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/qHempns4LC0/presentation-can-javascript-be-elegant.html" title="Presentation: Can JavaScript be elegant?" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://lh5.googleusercontent.com/-tNSDsPu2omw/SHugkpqvAUI/AAAAAAAAARI/vHucMXDAvvs/s72-c/image_thumb.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2012/01/presentation-can-javascript-be-elegant.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEMCRHo-eip7ImA9WhRRGEk.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-1291812240348997604</id><published>2011-12-02T18:17:00.001+01:00</published><updated>2011-12-02T18:21:05.452+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-12-02T18:21:05.452+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><category scheme="http://www.blogger.com/atom/ns#" term="scala" /><title>Opinions: Scala</title><content type="html">&lt;p&gt;&lt;img style="float: right; margin-left: 5px; border: none;" title="240px-Yin_and_Yang.svg.png" src="http://lh3.ggpht.com/-0iELpoo_4UY/TtkIMHmdpkI/AAAAAAAABF0/YX3aRpk_TDI/240px-Yin_and_Yang.svg.png?imgmax=800" border="0" alt="" width="160" /&gt;&lt;/p&gt;
&lt;p&gt;Can you spot the difference:&lt;/p&gt;
&lt;blockquote class="tr_bq"&gt;&lt;span style="font-size: large;"&gt;Scala is a serious option for organizations developing on a JVM platform.&lt;/span&gt;&lt;/blockquote&gt;
&lt;div style="text-align: right;"&gt;- &lt;a href="http://martinfowler.com/bliki/gotoAarhus2011.html"&gt;Martin Fowler&lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;blockquote class="tr_bq"&gt;&lt;span style="font-size: large;"&gt;The friction and complexity that comes with using Scala instead of Java isn't offset by enough productivity benefit or reduction of maintenance burden for it to make sense as our default language.&lt;/span&gt;&lt;/blockquote&gt;
&lt;div style="text-align: right;"&gt;- &lt;a href="https://www.yammer.com/"&gt;Yammer&lt;/a&gt; &lt;a href="https://gist.github.com/1406238"&gt;moving from Scala to Java&lt;/a&gt;&lt;/div&gt;
&lt;p&gt; &lt;/p&gt;
&lt;div style="clear: right; font-size: 10px;"&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="border: 0 none; margin: 0px;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt;If you like this, follow me on twitter ...&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-1291812240348997604?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HuTI39cqXmAmMGcktVnLgclp1yQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HuTI39cqXmAmMGcktVnLgclp1yQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HuTI39cqXmAmMGcktVnLgclp1yQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HuTI39cqXmAmMGcktVnLgclp1yQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=C2ic2UCeP78:jQJi8mEnflk:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=C2ic2UCeP78:jQJi8mEnflk:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=C2ic2UCeP78:jQJi8mEnflk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=C2ic2UCeP78:jQJi8mEnflk:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=C2ic2UCeP78:jQJi8mEnflk:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=C2ic2UCeP78:jQJi8mEnflk:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=C2ic2UCeP78:jQJi8mEnflk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=C2ic2UCeP78:jQJi8mEnflk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=C2ic2UCeP78:jQJi8mEnflk:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=C2ic2UCeP78:jQJi8mEnflk:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=C2ic2UCeP78:jQJi8mEnflk:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=C2ic2UCeP78:jQJi8mEnflk:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=C2ic2UCeP78:jQJi8mEnflk:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/C2ic2UCeP78" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/1291812240348997604/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=1291812240348997604" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/1291812240348997604?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/1291812240348997604?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/C2ic2UCeP78/opinions-scala.html" title="Opinions: Scala" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-0iELpoo_4UY/TtkIMHmdpkI/AAAAAAAABF0/YX3aRpk_TDI/s72-c/240px-Yin_and_Yang.svg.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/12/opinions-scala.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU8BR3Y9eCp7ImA9WhRREEg.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-7146691831117489171</id><published>2011-11-23T14:09:00.001+01:00</published><updated>2011-11-23T14:10:56.860+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-23T14:10:56.860+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="humor" /><category scheme="http://www.blogger.com/atom/ns#" term="design" /><title>Model, model thou art my riddle!</title><content type="html">Can you spot the difference:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;&lt;span style="font-size: large;"&gt;In a Model View Controller application, you only ever want to see SQL code in the model.&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;-&amp;nbsp; &lt;a href="http://pragprog.com/book/rr2/rails-recipes"&gt;Rails Receipes&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;&lt;span style="font-size: large;"&gt;The domain model should be independent of persistence implementation details.&lt;/span&gt;&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://www.infoq.com/articles/ddd-in-practice"&gt;Domain Driven Design and Development In Practice &lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
Probably we should accept that models come in different flavors...&lt;br /&gt;
&lt;div style="text-align: center;"&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-5msiPOih6Xo/Tsq-GtttPOI/AAAAAAAABFo/it6EtW6RK18/s1600/Model1.jpg" width="150" /&gt;&lt;img border="0" height="200" src="http://3.bp.blogspot.com/-DhspeXRY_nE/Tsq-GPlKt8I/AAAAAAAABFk/ut9l1E7G070/s320/Model2.jpg" width="150" /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both;"&gt;&lt;br /&gt;
&lt;/div&gt;... or maybe the grand master was right:&lt;br /&gt;
&lt;blockquote class="tr_bq"&gt;Using C means that people [...] don't screw things up with any idiotic "object model" crap.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://article.gmane.org/gmane.comp.version-control.git/57918"&gt;Linus Torwalds&lt;/a&gt; &lt;/div&gt;&lt;br /&gt;
&lt;div style="clear: right; font-size: 10px;"&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img align="left" alt="http://www.google.com/s2/favicons?domain=twitter.com" border="0" height="13px" src="http://www.google.com/s2/favicons?domain=twitter.com" style="border: 0 none; margin: 0px;" /&gt;If you like this, follow me on twitter ...&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-7146691831117489171?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/iNndzpxbJRWvoI5Mokc_JOuNz_8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iNndzpxbJRWvoI5Mokc_JOuNz_8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/iNndzpxbJRWvoI5Mokc_JOuNz_8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/iNndzpxbJRWvoI5Mokc_JOuNz_8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=LKiCYLM_Hu8:SL06s4V_dIE:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=LKiCYLM_Hu8:SL06s4V_dIE:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=LKiCYLM_Hu8:SL06s4V_dIE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=LKiCYLM_Hu8:SL06s4V_dIE:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=LKiCYLM_Hu8:SL06s4V_dIE:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=LKiCYLM_Hu8:SL06s4V_dIE:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=LKiCYLM_Hu8:SL06s4V_dIE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=LKiCYLM_Hu8:SL06s4V_dIE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=LKiCYLM_Hu8:SL06s4V_dIE:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=LKiCYLM_Hu8:SL06s4V_dIE:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=LKiCYLM_Hu8:SL06s4V_dIE:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=LKiCYLM_Hu8:SL06s4V_dIE:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=LKiCYLM_Hu8:SL06s4V_dIE:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/LKiCYLM_Hu8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/7146691831117489171/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=7146691831117489171" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/7146691831117489171?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/7146691831117489171?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/LKiCYLM_Hu8/model-model-thou-art-my-riddle_23.html" title="Model, model thou art my riddle!" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-5msiPOih6Xo/Tsq-GtttPOI/AAAAAAAABFo/it6EtW6RK18/s72-c/Model1.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/11/model-model-thou-art-my-riddle_23.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcNQng-cSp7ImA9WhRSGEU.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-5987415928190520003</id><published>2011-11-18T07:50:00.001+01:00</published><updated>2011-11-21T15:01:33.659+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-21T15:01:33.659+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cool stuff" /><category scheme="http://www.blogger.com/atom/ns#" term="trivia" /><title>Watch out: The world is changing!</title><content type="html">&lt;p&gt;Lately I seem more &lt;a href="http://blog.jonasbandi.net/2011/09/back-at-university-things-have-changed.html"&gt;susceptible to realize&lt;/a&gt; how fast the world is changing. Probably I am getting old...&lt;/p&gt;&lt;p&gt;At a recent lecture, Martin Herdina (CEO,  &lt;a href="http://www.wikitude.com/"&gt;Wikitude&lt;/a&gt;) showed how the mobile phone changes our lives &lt;span style="font-size: 11px;"&gt;(and he &lt;/span&gt;&lt;a style="font-size: 11px;" href="http://www.flickr.com/photos/jbandi/6347039014/in/photostream/lightbox/"&gt;displayed slides&lt;/a&gt;&lt;span style="font-size: 11px;"&gt; you don't usually see in lectures…)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;Once again I realized that the iPhone was only launched in 2007. I think it is amazing how our use of technology can change in only 4 years ...&lt;/p&gt;&lt;p&gt;Another striking example underlying the perception of technical change in relation to other areas of our lives:&lt;/p&gt;&lt;p style="text-align: center;"&gt;What crosses your mind when you see the following picture?&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh4.ggpht.com/-77BuNo4JXZ0/TsYAOWEQ-PI/AAAAAAAABFU/vFpEGwWmnMQ/ELT200709112316547187881.JPG?imgmax=800" border="0" alt="ELT200709112316547187881" width="200" /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;em&gt;&lt;strong&gt;Old-school, clumsy, clunky, retro&lt;/strong&gt;&lt;/em&gt; …&lt;/p&gt;&lt;p style="text-align: center;"&gt;...at least that are impressions that pop up in my head…&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="text-align: center;"&gt;Now, what crosses your mind when you see the following picture:&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh4.ggpht.com/-JxVQiLoMpTI/TsYAMkcLaOI/AAAAAAAABFI/Un-ZXPQ9JN4/matrix_wallpaper5.jpg?imgmax=800" border="0" alt="Matrix wallpaper5" width="400" /&gt; &lt;br /&gt;
&lt;strong&gt;&lt;em&gt; Cool, highlight, milestone in movie history, top-10-movies of all times, re-defining science fiction movies …&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;...again that are my personal associations.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p style="text-align: center;"&gt;But you remember that the &lt;a href="http://en.wikipedia.org/wiki/Nokia_7110"&gt;Nokia 7110 phone&lt;/a&gt; in the above picture was actually &lt;strong&gt;designed after being inspired by the Matrix movie&lt;/strong&gt;:&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh5.ggpht.com/-7imwjZ4YKuY/TsYANjDMFQI/AAAAAAAABFM/3hHZWzoC9wo/matrix_nokia1.jpg?imgmax=800" border="0" alt="Matrix nokia1" width="320" /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;I think it is remarkable how time is not having the same effect on movies as on technology. The Matrix definitely aged better than the Nokia phone.&lt;/p&gt;&lt;p&gt;In context: &lt;a href="http://www.youtube.com/watch?v=cL9Wu2kWwSY"&gt;Great video about living in exponential times.&lt;/a&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div style="clear: right; font-size: 10px;"&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px; border: 0px none initial;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt;If you like this, follow me on twitter ...&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-5987415928190520003?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/E7SqmyIkDGqeultJHlnnPxa7OX0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E7SqmyIkDGqeultJHlnnPxa7OX0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/E7SqmyIkDGqeultJHlnnPxa7OX0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/E7SqmyIkDGqeultJHlnnPxa7OX0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=AJDZqsV29tw:9kZgimg8uoc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=AJDZqsV29tw:9kZgimg8uoc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=AJDZqsV29tw:9kZgimg8uoc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=AJDZqsV29tw:9kZgimg8uoc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=AJDZqsV29tw:9kZgimg8uoc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=AJDZqsV29tw:9kZgimg8uoc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=AJDZqsV29tw:9kZgimg8uoc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=AJDZqsV29tw:9kZgimg8uoc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=AJDZqsV29tw:9kZgimg8uoc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=AJDZqsV29tw:9kZgimg8uoc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=AJDZqsV29tw:9kZgimg8uoc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=AJDZqsV29tw:9kZgimg8uoc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=AJDZqsV29tw:9kZgimg8uoc:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/AJDZqsV29tw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/5987415928190520003/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=5987415928190520003" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/5987415928190520003?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/5987415928190520003?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/AJDZqsV29tw/watch-out-world-is-changing.html" title="Watch out: The world is changing!" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-77BuNo4JXZ0/TsYAOWEQ-PI/AAAAAAAABFU/vFpEGwWmnMQ/s72-c/ELT200709112316547187881.JPG?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/11/watch-out-world-is-changing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UFQ3o-eip7ImA9WhRRFk0.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-2112138042473468638</id><published>2011-11-14T21:26:00.001+01:00</published><updated>2011-11-29T22:13:32.452+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-29T22:13:32.452+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dysfunction" /><category scheme="http://www.blogger.com/atom/ns#" term="work" /><title>Dysfunction: Headhunters &amp; Short Time Contracting</title><content type="html">I blogged before &lt;a href="http://blog.jonasbandi.net/2010/08/cassandra-syndrome-knowing-that-failure.html"&gt;about&lt;/a&gt; the &lt;a href="http://blog.jonasbandi.net/2010/06/craftsmanship-means-we-should-refuse-to.html"&gt;desolate state&lt;/a&gt; of &lt;a href="http://blog.jonasbandi.net/2011/02/programmers-stockholm-syndrome-don-get.html"&gt;our industry&lt;/a&gt;.&lt;br /&gt;
&lt;br /&gt;
Here is one clear symptom underlining once more that there is something wrong:&lt;br /&gt;
&lt;i&gt;&lt;br /&gt;
Regularly when a government IT project here in &lt;b&gt;Switzerland&lt;/b&gt; has an open vacancy for some months, I am getting calls, emails and XING requests from headhunters from &lt;b&gt;Germany and the UK&lt;/b&gt; that want to mediate me for this job.&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href="http://commons.wikimedia.org/wiki/File%3AMarten_van_Valckenborch_Tower_of_babel-large.jpg" title="By Marten van Valckenborch [Public domain], via Wikimedia Commons"&gt;&lt;img align="right" alt="Marten van Valckenborch Tower of babel-large" src="http://upload.wikimedia.org/wikipedia/commons/thumb/d/d6/Marten_van_Valckenborch_Tower_of_babel-large.jpg/240px-Marten_van_Valckenborch_Tower_of_babel-large.jpg" style="margin-left: 5px;" width="200" /&gt;&lt;/a&gt;&lt;b&gt;There is so much wrong in this setup...&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
For a start, the whole setup represents the idea that constructing software is like putting bricks on top of each other to build a pyramid. You can hire some more hands and you will finish sooner, because once a brick is laid, somebody else can put the next brick on top of it. This analogy is completely wrong (and that is not an expression of the unprofessionalism of our industry)!&lt;br /&gt;
&lt;br /&gt;
On the other hand what does anybody expect when he goes through headhunters like this (I even have seen cases where several hierarchies of headhunters were involved)?&lt;br /&gt;
&lt;br /&gt;
Do develoers think they don't get jobs without them? Do employers think they do get better developers through those headhunters?&lt;br /&gt;
What added value does a headhunter provide in this case? He hardly even looks at my CV, which is online anyways, and...? The employer wants to do an interview with me anyways, and the headhunter does not provide any guarantees, does he?&lt;br /&gt;
&lt;br /&gt;
The result is that another layer of indirection is introduced that legitimates just another bureaucratic overhead. Headhunters like this are neither interested in the project nor in the developers they mediate.&lt;br /&gt;
Also (probably as a consequence) developers recruited in this manner usually are not very committed to the project. Why should they? The next recruitement is already waiting around the corner... &lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;I strongly believe we should stop this headhunter/short-time contracting in IT projects.&lt;/b&gt; Hire developers for goals not time-periods. Cut the middle-men and get developers committed and responsible.&lt;br /&gt;
&lt;br /&gt;
Further reading:&lt;br /&gt;
&lt;ul&gt;&lt;li&gt;&lt;a href="http://blog.jayfields.com/2011/09/recent-thoughts-on-hiring-and-being.html"&gt;Recent Thoughts On Hiring and Being Hired&lt;/a&gt; &lt;/li&gt;
&lt;li&gt;&lt;a href="https://gist.github.com/1285068"&gt;Headhunter tries to recruit DHH&lt;/a&gt; (funny comments...)&lt;/li&gt;
&lt;li&gt;&lt;a href="http://simplificator.com/blog/2011/11/14/5-things-that-are-wrong-with-recruiters.html"&gt;5 things that are wrong with recruiters!&lt;/a&gt; (Update 2011-11-29)&lt;/li&gt;
&lt;/ul&gt;&lt;br /&gt;
&lt;div style="align: right; clear: right; font-size: 10px;"&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img align="left" alt="http://www.google.com/s2/favicons?domain=twitter.com" border="0" height="13px" src="http://www.google.com/s2/favicons?domain=twitter.com" style="border: none; margin: 0px 0px 0px 0px;" /&gt;If you like this, follow me on twitter ...&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-2112138042473468638?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xOIX1xPn7maJYAswZ4slYKWtLsU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xOIX1xPn7maJYAswZ4slYKWtLsU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xOIX1xPn7maJYAswZ4slYKWtLsU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xOIX1xPn7maJYAswZ4slYKWtLsU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=uMIWqpHeg4o:L1nhdCMykFo:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=uMIWqpHeg4o:L1nhdCMykFo:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=uMIWqpHeg4o:L1nhdCMykFo:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=uMIWqpHeg4o:L1nhdCMykFo:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=uMIWqpHeg4o:L1nhdCMykFo:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=uMIWqpHeg4o:L1nhdCMykFo:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=uMIWqpHeg4o:L1nhdCMykFo:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=uMIWqpHeg4o:L1nhdCMykFo:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=uMIWqpHeg4o:L1nhdCMykFo:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=uMIWqpHeg4o:L1nhdCMykFo:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=uMIWqpHeg4o:L1nhdCMykFo:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=uMIWqpHeg4o:L1nhdCMykFo:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=uMIWqpHeg4o:L1nhdCMykFo:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/uMIWqpHeg4o" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/2112138042473468638/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=2112138042473468638" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2112138042473468638?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2112138042473468638?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/uMIWqpHeg4o/dysfunction-headhunters-short-time.html" title="Dysfunction: Headhunters &amp; Short Time Contracting" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/11/dysfunction-headhunters-short-time.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkQNQ3wyfCp7ImA9WhdbGU4.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-2916529130874658250</id><published>2011-10-18T11:33:00.001+02:00</published><updated>2011-10-18T11:33:12.294+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-18T11:33:12.294+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tidbit" /><title>Tidbit: Lines of Code</title><content type="html">&lt;p&gt;&lt;img style="float: right; margin-left: 10px;" src="http://lh6.ggpht.com/_X3kaawac_g4/TS4htJ3nK8I/AAAAAAAAA6c/d0duKh9vaCQ/315116528_480edcad4d.jpg?imgmax=800" border="0" alt="315116528_480edcad4d.jpg" width="150" /&gt;&lt;/p&gt;&lt;p&gt;According to a claim in the &lt;a href="http://www.infoq.com/presentations/Panel-Non-Relational-Data-Stores"&gt;Non Relational Data Stores Panel&lt;/a&gt;, the query parser in &lt;a href="http://en.wikipedia.org/wiki/Mysql"&gt;MySQL&lt;/a&gt; alone spans 100'000 lines of code in C and the whole &lt;a href="http://cassandra.apache.org/"&gt;Cassandra Database&lt;/a&gt; is 30'000 lines of Java.&lt;/p&gt;&lt;p&gt;I don't know what to deduce from that, but it is certainly interesting.&lt;/p&gt;&lt;p&gt;Some directions of thought:&lt;/p&gt;&lt;ul&gt;&lt;li&gt; Java is a more powerful language than C&lt;/li&gt;&lt;li&gt;MySQL is much more sophisticated than Cassandra&lt;/li&gt;&lt;li&gt;NoSQL databases are much less complex than relational databases&lt;/li&gt;&lt;li&gt;...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="font-size: x-small;"&gt;&lt;span style="font-size: 10px;"&gt;&lt;span style="font-size: medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt; follow me on twitter, I need some friends :-)&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-2916529130874658250?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/u2xNjfV_VSFXNYzwtWGylK7vy00/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u2xNjfV_VSFXNYzwtWGylK7vy00/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/u2xNjfV_VSFXNYzwtWGylK7vy00/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/u2xNjfV_VSFXNYzwtWGylK7vy00/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=F_DOW4_SQdc:_Q4uhPXhM9M:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=F_DOW4_SQdc:_Q4uhPXhM9M:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=F_DOW4_SQdc:_Q4uhPXhM9M:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=F_DOW4_SQdc:_Q4uhPXhM9M:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=F_DOW4_SQdc:_Q4uhPXhM9M:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=F_DOW4_SQdc:_Q4uhPXhM9M:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=F_DOW4_SQdc:_Q4uhPXhM9M:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=F_DOW4_SQdc:_Q4uhPXhM9M:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=F_DOW4_SQdc:_Q4uhPXhM9M:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=F_DOW4_SQdc:_Q4uhPXhM9M:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=F_DOW4_SQdc:_Q4uhPXhM9M:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=F_DOW4_SQdc:_Q4uhPXhM9M:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=F_DOW4_SQdc:_Q4uhPXhM9M:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/F_DOW4_SQdc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/2916529130874658250/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=2916529130874658250" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2916529130874658250?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2916529130874658250?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/F_DOW4_SQdc/tidbit-lines-of-code.html" title="Tidbit: Lines of Code" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_X3kaawac_g4/TS4htJ3nK8I/AAAAAAAAA6c/d0duKh9vaCQ/s72-c/315116528_480edcad4d.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/10/tidbit-lines-of-code.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE8MRX49fSp7ImA9WhdbE0w.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-8825443277962943798</id><published>2011-10-11T09:06:00.001+02:00</published><updated>2011-10-11T09:08:04.065+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-11T09:08:04.065+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="trivia" /><title>Pimping my MacBook</title><content type="html">I am attempting probably one of the most stupid things: pimping a MacBook ...&lt;br /&gt;
&lt;br /&gt;
&lt;div style="text-align: center;"&gt;
&lt;a href="http://www.flickr.com/photos/jbandi/6233609406/" title="The patient is ready. Let's get started. by jonas.bandi, on Flickr"&gt;&lt;img alt="The patient is ready. Let's get started." height="180" src="http://farm7.static.flickr.com/6165/6233609406_dd5e9affca_m.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
The patient is ready. Let's get started.&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;a href="http://www.flickr.com/photos/jbandi/6233090605/" title="Patient is opened. Pulse is steady. by jonas.bandi, on Flickr"&gt;&lt;img alt="Patient is opened. Pulse is steady." height="180" src="http://farm7.static.flickr.com/6159/6233090605_3532f73b22_m.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
Patient is opened. Pulse is steady.&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;a href="http://www.flickr.com/photos/jbandi/6233611650/" title="The offending organ has been removed. by jonas.bandi, on Flickr"&gt;&lt;img alt="The offending organ has been removed." height="180" src="http://farm7.static.flickr.com/6160/6233611650_cb8a1b6c7c_m.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
The offending organ has been removed.&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;a href="http://www.flickr.com/photos/jbandi/6233612554/" title="The replacement organs fit well ... by jonas.bandi, on Flickr"&gt;&lt;img alt="The replacement organs fit well ..." height="180" src="http://farm7.static.flickr.com/6161/6233612554_ce3ee609d1_m.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
The replacement organs fit well ...&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
&lt;a href="http://www.flickr.com/photos/jbandi/6233093525/" title="Surgery finished, patient hopefully ready to wake up ... by jonas.bandi, on Flickr"&gt;&lt;img alt="Surgery finished, patient hopefully ready to wake up ..." height="180" src="http://farm7.static.flickr.com/6093/6233093525_e450c07243_m.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="text-align: center;"&gt;
Surgery finished, patient hopefully ready to wake up ...&lt;/div&gt;
&lt;br /&gt;
... however the doctor is not completely pleased with the result. Another operation is due next week...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-8825443277962943798?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JmLF11RzzeSyEQ5w6Nphd3cqBwU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JmLF11RzzeSyEQ5w6Nphd3cqBwU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JmLF11RzzeSyEQ5w6Nphd3cqBwU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JmLF11RzzeSyEQ5w6Nphd3cqBwU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=izNCNn-naGc:KwdxJTAJyNI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=izNCNn-naGc:KwdxJTAJyNI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=izNCNn-naGc:KwdxJTAJyNI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=izNCNn-naGc:KwdxJTAJyNI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=izNCNn-naGc:KwdxJTAJyNI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=izNCNn-naGc:KwdxJTAJyNI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=izNCNn-naGc:KwdxJTAJyNI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=izNCNn-naGc:KwdxJTAJyNI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=izNCNn-naGc:KwdxJTAJyNI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=izNCNn-naGc:KwdxJTAJyNI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=izNCNn-naGc:KwdxJTAJyNI:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=izNCNn-naGc:KwdxJTAJyNI:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=izNCNn-naGc:KwdxJTAJyNI:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/izNCNn-naGc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/8825443277962943798/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=8825443277962943798" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8825443277962943798?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8825443277962943798?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/izNCNn-naGc/i-am-attempting-probably-one-of-most.html" title="Pimping my MacBook" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://farm7.static.flickr.com/6165/6233609406_dd5e9affca_t.jpg" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/10/i-am-attempting-probably-one-of-most.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQCQHg8eip7ImA9WhdUGU8.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-8296118659931644266</id><published>2011-10-06T15:04:00.001+02:00</published><updated>2011-10-06T21:12:41.672+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-10-06T21:12:41.672+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="professional_pessimism" /><category scheme="http://www.blogger.com/atom/ns#" term="dysfunction" /><title>Enterprise IT: immature and simple?</title><content type="html">&lt;div style="width: 400px;"&gt;&lt;blockquote style="font-size: 14px;"&gt;Once you've admitted to yourself that you're a bad programmer, you can stop all the silly posturing and pretending that you're great, and you can look around and find the best possible tools to help you look smarter than you are.&lt;/blockquote&gt;&lt;div style="font-size: 10px; text-align: right;"&gt;-  &lt;a href="http://agile.dzone.com/articles/youre-bad-programmer-embrace"&gt;You're a Bad Programmer. Embrace It.&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;blockquote style="font-size: 14px;"&gt;People pile layers on top of layers, abstractions on top of abstractions, complications on top of complications, crap on top of patches, and patches on top of crap until everything collapses onto itself and the singularity appears.&lt;/blockquote&gt;&lt;div style="font-size: 10px; text-align: right;"&gt;- &lt;a href="https://plus.google.com/u/1/115094562986465477143/posts/Di6RwCNKCrf"&gt;Comment to Ryan Dahl &lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Recently I was confronted with the following problem:&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh5.ggpht.com/-IzdFc1QxjAg/To2nZrNNRZI/AAAAAAAABEg/RjMeN8Zil3w/Screen%252520shot%2525202011-09-22%252520at%2525202.26.51%252520PM.png?imgmax=800" border="0" alt="Screen shot 2011 09 22 at 2 26 51 PM" width="300" height="55" /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Which x maximizes u?&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;I remember that I had solved similar problems in analysis lectures about a decade ago, but I had no clue how to approach the task today.&lt;/p&gt;&lt;p&gt;I also have the impression that it would take weeks if not month for me to get back into the subject. Ok, I can read the wikipedia article about the &lt;a href="http://en.wikipedia.org/wiki/Quartic_equation"&gt;quartic functions&lt;/a&gt; but I don't think I will get it without investing some major timespan. I am even doubtful if I could suck the knowledge I need from the internet, or if I finally would have to go to the bookstore and buy an analysis book ...&lt;/p&gt;&lt;p&gt;&lt;img style="float: right; margin-left:10px; margin-bottom:10px" src="http://lh3.ggpht.com/-4jRwnxOxAlQ/To2naYNE2pI/AAAAAAAABEk/ZI7NyVgGCHA/business-card-law-student.jpg?imgmax=800" border="0" alt="Business card law student" width="120" /&gt;&lt;/p&gt;&lt;p&gt;This made me think about my everyday work as a &lt;em&gt;"coder for hire"/consultant&lt;/em&gt; working in the trenches of enterprise IT projects.&lt;/p&gt;&lt;p&gt;I am confronted with problems I have never dealt with almost on a daily basis. However this makes me not nervous at all ... &lt;br /&gt;For instance in a recent project it turned out that I had to write reports with &lt;a href="http://msdn.microsoft.com/en-us/library/ms159106.aspx"&gt;SSRS&lt;/a&gt; and integrate them in some custom &lt;a href="http://sharepoint.microsoft.com/en-us/Pages/default.aspx"&gt;SharePoint&lt;/a&gt; controls. I have never done that before. I never came near to SSRS before and I delibarately had kept a long distance between me an SharePoint. Still I was not afraid of those tasks. I was quite confident that I could solve the tasks within the expectations of the customer (however I am sure there are many developers that would have provided better value for the customer). When I look at the quartic function above I am much less confident and would be get quite nervous if I had to solve that task ...&lt;/p&gt;&lt;p&gt;I started wondering about that fact and came up with some theories:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;I am just a natural talent in everything related to enterprise IT ... nah, I don't think so :-)&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Enterprise IT is a simple domain.&lt;/strong&gt; We don't really deal with substantially complex or challenging problems, at least not in the technical realization. We mostly deal with trying to understand technology that has been created by other people. Trying to find out what the  assumptions and intentions of those other people were and how to match that as good as possible to our context. If we are good, we try not to apply the technologies in a wrong way. (note that I differenciate enterprise IT from other areas in IT like i.e. scaling a cloud infrastructure like facebook or developing new algorithms for video compression, there I think we still have real innovation and technical challenges).&lt;/li&gt;&lt;li&gt;In the IT industry, especially in enterprise technologies, &lt;strong&gt;knowledge is extremely easy to come by&lt;/strong&gt;. Probably the only real skill you need, is to effectively search the internet. Then you can almost solve any problem. Just ask Goolge and spend some time on &lt;a href="http://stackoverflow.com/"&gt;Stackoverflow&lt;/a&gt; ... you don't need a CS degree for that. Of course that was deliberately provocative: The small challenge remaining is how you combine and apply the knowledge you sucked from the internet. And of course the ability to know when &lt;em&gt;not&lt;/em&gt; to apply a technology and look for another solution.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;The IT industry is very immature&lt;/strong&gt;, at least in the enterprise environments I usually find myself. For each project I get hired, I usually have to go through an interview process. These interview processes have quite different flavors of sophistication but the people conducting the interviews think they check that I am suitable for the job. They usually get the requirements for the job through some obscure windings in the organization, but in most cases it has nothing to do with what I end up doing once I really get in touch with the project. It seems the enterprise IT industry has a hard time defining its specialists. &lt;strong&gt;The result is that a bunch of generalists like me are stumbling along doing a mediocre job&lt;/strong&gt; ...&lt;/li&gt;&lt;/ul&gt;&lt;div style="align:right; font-size: 10px; clear:right; "&gt;&lt;br/&gt;&lt;p&gt;&lt;a  href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border:none" src="http://www.google.com/s2/favicons?domain=twitter.com" alt="http://www.google.com/s2/favicons?domain=twitter.com" border="0" align="left" height="13px"/&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-8296118659931644266?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aXY7a7dMV2jP1LhSBfz8bVZhVAc/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aXY7a7dMV2jP1LhSBfz8bVZhVAc/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aXY7a7dMV2jP1LhSBfz8bVZhVAc/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aXY7a7dMV2jP1LhSBfz8bVZhVAc/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=2GvUkUfjZLg:9h8jKjO93cU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=2GvUkUfjZLg:9h8jKjO93cU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=2GvUkUfjZLg:9h8jKjO93cU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=2GvUkUfjZLg:9h8jKjO93cU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=2GvUkUfjZLg:9h8jKjO93cU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=2GvUkUfjZLg:9h8jKjO93cU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=2GvUkUfjZLg:9h8jKjO93cU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=2GvUkUfjZLg:9h8jKjO93cU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=2GvUkUfjZLg:9h8jKjO93cU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=2GvUkUfjZLg:9h8jKjO93cU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=2GvUkUfjZLg:9h8jKjO93cU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=2GvUkUfjZLg:9h8jKjO93cU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=2GvUkUfjZLg:9h8jKjO93cU:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/2GvUkUfjZLg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/8296118659931644266/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=8296118659931644266" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8296118659931644266?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8296118659931644266?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/2GvUkUfjZLg/enterprise-it-immature-and-simple.html" title="Enterprise IT: immature and simple?" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-IzdFc1QxjAg/To2nZrNNRZI/AAAAAAAABEg/RjMeN8Zil3w/s72-c/Screen%252520shot%2525202011-09-22%252520at%2525202.26.51%252520PM.png?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/10/enterprise-it-immature-and-simple.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU8BRnk5eSp7ImA9WhdUFEw.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-8775636418216909219</id><published>2011-09-30T00:35:00.001+02:00</published><updated>2011-09-30T23:24:17.721+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-30T23:24:17.721+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="knowhow" /><title>Thinking out of the Box</title><content type="html">&lt;p&gt;&lt;img style="float: right; margin-left: 10px;" src="http://lh3.ggpht.com/-qlz0m95Wd7Q/ToRbX4ZH_HI/AAAAAAAABEQ/qZe9_oXSz14/man-peeking-out-of-moving-box.jpg?imgmax=800" border="0" alt="Man peeking out of moving box" width="180" height="182" /&gt;&lt;/p&gt;&lt;p&gt;In requirements analysis we learn to &lt;a href="http://antonioyon.com/fantastic-explanation-of-popping-the-why-stac"&gt;pop the why stack&lt;/a&gt; and to &lt;a href="http://gojko.net/2009/12/10/challenging-requirements/"&gt;challenge business requirements&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;The goal of these techniques is to find the real business value at the heart of a given requirement. This real business value is often hidden by an already envisioned solution. Once we know this underlying business value, we might come up with a better/easier solution.    Most often the reason why we can come up with an alternative solution is that we can look at the problem in another context and from different perspectives than the original requester of the feature.&lt;/p&gt;&lt;p&gt;This matches with the concept of &lt;strong&gt;2nd order solutions&lt;/strong&gt; in systems theory: 1st order solutions work within the existing system while &lt;strong&gt;2nd order solutions modify the system itself&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;&lt;em&gt;The classical example from requirements engineering is the requirement that a software system must be able to print each UI-screen. The underlying reason was, that employees manually copied data from the given system into another system by printing them out and then typing them into a terminal of the other system.  Once this underlying reason was discovered, an alternative solution could be realized: integrating both systems and digitally export/import data. This solution was cheaper to realize for the implementator and provides more business value for the enduser.&lt;/em&gt;&lt;/p&gt;&lt;p&gt;A more trivial example to illustrate this "out of the box thinking" is the following task:&lt;/p&gt;&lt;p&gt;Connect all the 9 dots in a single move, using 4 straight connected lines:&lt;/p&gt;&lt;p&gt;&lt;img style="display: block; margin-top: 20px; margin-left: auto; margin-right: auto;" src="http://lh4.ggpht.com/-iOEGjF8iVts/ToTymSSGNeI/AAAAAAAABEY/2Ltfhvpjk5E/Screen%252520shot%2525202011-09-29%252520at%2525201.04.09%252520PM.png?imgmax=800" border="0" alt="Screen shot 2011 09 29 at 1 04 09 PM" width="200" /&gt;&lt;/p&gt;&lt;p&gt;Can you do it with three lines?&lt;/p&gt;&lt;p&gt;Can you do it with one line?&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-8775636418216909219?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/e-9BCEcRd9OnhMwnnAi8GRZzbDw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e-9BCEcRd9OnhMwnnAi8GRZzbDw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/e-9BCEcRd9OnhMwnnAi8GRZzbDw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e-9BCEcRd9OnhMwnnAi8GRZzbDw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=rggbOxcWuBg:ur2I9ZwmgCc:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=rggbOxcWuBg:ur2I9ZwmgCc:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=rggbOxcWuBg:ur2I9ZwmgCc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=rggbOxcWuBg:ur2I9ZwmgCc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=rggbOxcWuBg:ur2I9ZwmgCc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=rggbOxcWuBg:ur2I9ZwmgCc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=rggbOxcWuBg:ur2I9ZwmgCc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=rggbOxcWuBg:ur2I9ZwmgCc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=rggbOxcWuBg:ur2I9ZwmgCc:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=rggbOxcWuBg:ur2I9ZwmgCc:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=rggbOxcWuBg:ur2I9ZwmgCc:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=rggbOxcWuBg:ur2I9ZwmgCc:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=rggbOxcWuBg:ur2I9ZwmgCc:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/rggbOxcWuBg" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/8775636418216909219/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=8775636418216909219" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8775636418216909219?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8775636418216909219?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/rggbOxcWuBg/thinking-out-of-box.html" title="Thinking out of the Box" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-qlz0m95Wd7Q/ToRbX4ZH_HI/AAAAAAAABEQ/qZe9_oXSz14/s72-c/man-peeking-out-of-moving-box.jpg?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/09/thinking-out-of-box.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUBSHs8fSp7ImA9WhdUEk4.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-2101466242363122865</id><published>2011-09-28T00:08:00.001+02:00</published><updated>2011-09-28T19:50:59.575+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-28T19:50:59.575+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>Back at University - Things have changed</title><content type="html">&lt;p&gt;Recently I started studying for &lt;a href="http://www.mas-mtec.ethz.ch/"&gt;MAS-MTEC&lt;/a&gt; at ETH Zürich.&lt;/p&gt;&lt;p&gt;A characteristic of this post graduate studies is that most lectures are shared with graduate students.&lt;/p&gt;&lt;p&gt;I am impressed at how much studying today has changed from when I was studying a decade ago. This impressively shows how fast technology is changing the way we live, which I seem to forget in my every-day life.&lt;/p&gt;&lt;p&gt;The internet is ubiquitous when studing today: The studies are officially organized over the internet (lecture selection, examination registration, learning material distribution, task assignments, group formation for exercises ...). &lt;br /&gt;&lt;img style="float: right; margin-left: 10px;" src="http://lh6.ggpht.com/-5XVAc4UunkM/ToJJRVRy9QI/AAAAAAAABEI/loo1BdX1fs0/laptopspicsmall.jpg?imgmax=800" border="0" alt="Laptopspicsmall" width="220" /&gt; On the first week I got a invitation to a DropBox share from somebody I actually do not know (probably a higher semester student) which contains over 1GB of "semi-official" studying material (solutions for exercises, example examinations, additional material ...) &lt;br /&gt; One lecture even has a &lt;a href="https://twitter.com/#!/search/realtime/%23marketingmtec"&gt;twitter hashtag&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt; Consequently practically every student is bringing a laptop or tablet to the lectures. I never have seen such a high local density of MacBooks as in the Marketing lecture :-)&lt;/p&gt;&lt;p&gt;Comparing that to when I started studying 12 years ago: I did not even own a cell-phone yet ... I also clearly remember when a lecture assistant suggested to use "Google", and I had never heard that strange term ...&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-2101466242363122865?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yxO7Rj2c4ngbN5Uec3weylAIL5c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yxO7Rj2c4ngbN5Uec3weylAIL5c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yxO7Rj2c4ngbN5Uec3weylAIL5c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yxO7Rj2c4ngbN5Uec3weylAIL5c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=ycmuEuwf18U:eTTt8wwcBe4:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=ycmuEuwf18U:eTTt8wwcBe4:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=ycmuEuwf18U:eTTt8wwcBe4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=ycmuEuwf18U:eTTt8wwcBe4:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=ycmuEuwf18U:eTTt8wwcBe4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=ycmuEuwf18U:eTTt8wwcBe4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=ycmuEuwf18U:eTTt8wwcBe4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=ycmuEuwf18U:eTTt8wwcBe4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=ycmuEuwf18U:eTTt8wwcBe4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=ycmuEuwf18U:eTTt8wwcBe4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=ycmuEuwf18U:eTTt8wwcBe4:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=ycmuEuwf18U:eTTt8wwcBe4:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=ycmuEuwf18U:eTTt8wwcBe4:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/ycmuEuwf18U" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/2101466242363122865/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=2101466242363122865" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2101466242363122865?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2101466242363122865?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/ycmuEuwf18U/back-at-university-things-have-changed.html" title="Back at University - Things have changed" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-5XVAc4UunkM/ToJJRVRy9QI/AAAAAAAABEI/loo1BdX1fs0/s72-c/laptopspicsmall.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/09/back-at-university-things-have-changed.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4DQ389fyp7ImA9WhdUEEo.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-5669996008744282886</id><published>2011-09-26T23:13:00.001+02:00</published><updated>2011-09-26T23:52:52.167+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-26T23:52:52.167+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="news" /><title>Promotion: Usabilty-to-Go for Developers</title><content type="html">&lt;p&gt;&lt;a href="http://www.techtalk.ch/"&gt;&lt;img style="float: right; margin-top: 10px; margin-bottom: 10px; margin-left: 10px;" src="http://lh6.ggpht.com/-E3zoD0-db3g/ToDq5csI9gI/AAAAAAAABEA/GfOrATljgtw/techtalk.jpg?imgmax=800" border="0" alt="Techtalk" width="226" height="45" /&gt;&lt;/a&gt;Claudia and Stefan from TechTalk are presenting their &lt;em&gt;Usabilty-to-Go  Workshop&lt;/em&gt; on 3.11.2011 in the Technopark Zurich. &lt;br /&gt; In this one day workshop developers can learn how to apply efficient usability-design in their enterprise project. &lt;br /&gt;&lt;br /&gt;Check it out: &lt;a href="http://www.techtalk.ch/About-us/News/Events/Usability-to-go-fur-Entwickler.aspx?lang=de-CH"&gt;Details and registration.&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-5669996008744282886?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/BeCGUPvT3a_g5bYiRUVZYHvcoDY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BeCGUPvT3a_g5bYiRUVZYHvcoDY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/BeCGUPvT3a_g5bYiRUVZYHvcoDY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/BeCGUPvT3a_g5bYiRUVZYHvcoDY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=CHsc6DEawuA:i6itIa2mWbI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=CHsc6DEawuA:i6itIa2mWbI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=CHsc6DEawuA:i6itIa2mWbI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=CHsc6DEawuA:i6itIa2mWbI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=CHsc6DEawuA:i6itIa2mWbI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=CHsc6DEawuA:i6itIa2mWbI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=CHsc6DEawuA:i6itIa2mWbI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=CHsc6DEawuA:i6itIa2mWbI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=CHsc6DEawuA:i6itIa2mWbI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=CHsc6DEawuA:i6itIa2mWbI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=CHsc6DEawuA:i6itIa2mWbI:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=CHsc6DEawuA:i6itIa2mWbI:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=CHsc6DEawuA:i6itIa2mWbI:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/CHsc6DEawuA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/5669996008744282886/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=5669996008744282886" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/5669996008744282886?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/5669996008744282886?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/CHsc6DEawuA/promotion-usabilty-to-go-for-developers.html" title="Promotion: Usabilty-to-Go for Developers" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-E3zoD0-db3g/ToDq5csI9gI/AAAAAAAABEA/GfOrATljgtw/s72-c/techtalk.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/09/promotion-usabilty-to-go-for-developers.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DE4MQ3szeSp7ImA9WhdVEUw.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-5564863451999976544</id><published>2011-09-13T21:39:00.001+02:00</published><updated>2011-09-15T22:03:02.581+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-15T22:03:02.581+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="object-relational mapping" /><category scheme="http://www.blogger.com/atom/ns#" term="quicktip" /><title>Using the JPA metamodel annotation processor</title><content type="html">&lt;p&gt;Some time ago I claimed that the &lt;a href="http://jcp.org/en/jsr/detail?id=317"&gt;JPA 2.0&lt;/a&gt; metamodel API &lt;a href="http://blog.jonasbandi.net/2009/05/jpa2-potential-to-revolutionize-java.html"&gt;has the potential to revolutionize Java development&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;I still think that the concept is very interesting by showing an approach to strongly typed meta programming in Java. However I think it does not have any relevance in real world projects. One reason is that strongly typed JPA criteria queries are very verbose and bring their own accidental complexity compared with JPQL. The other reason is the actual usage of an annotation processor in any build environment is still too complicated.&lt;/p&gt;&lt;p&gt;In the following I show how to configure the &lt;a href="http://wiki.eclipse.org/UserGuide/JPA/Using_the_Canonical_Model_Generator_(ELUG)"&gt;JPA metamodel annotation processor of EclipseLink&lt;/a&gt; for different environments. &lt;strong&gt;A working example for this is &lt;a href="https://code.google.com/p/jpaworkshop/source/browse/trunk/exercise/06.3-queries-metamodel/"&gt;exercise 6.3&lt;/a&gt; in our &lt;a href="https://code.google.com/p/jpaworkshop/"&gt;jpaworkshop&lt;/a&gt;.&lt;/strong&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 130%;"&gt;Maven&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;EclipseLink documentation is (once again) lacking, ignoring the reality that Maven is currently the most prominent build environment in the enterprise.&lt;/p&gt;&lt;p&gt;Fortunately this is well documented &lt;a href="http://agoncal.wordpress.com/2010/05/28/jpa-2-0-criteria-api-with-maven-and-eclipselink/"&gt;here&lt;/a&gt; and &lt;a href="http://blog.gueck.com/2009/12/generating-jpa-20-criteria-canonical.html"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;You need to configure a maven processor plugin in &lt;a href="https://code.google.com/p/jpaworkshop/source/browse/trunk/exercise/06.3-queries-metamodel/pom.xml"&gt;the pom&lt;/a&gt; that triggers the annotation processor in the &lt;code&gt;generate-sources&lt;/code&gt; phase:&lt;/p&gt;&lt;script src="https://gist.github.com/1201161.js?file=gistfile1.xml"&gt;&lt;/script&gt;&lt;p&gt;There are different maven processor plugins. I am using &lt;a href="http://code.google.com/p/maven-annotation-plugin/"&gt;maven-annotation-plugin&lt;/a&gt;, an alternative is  the &lt;a href="http://mojo.codehaus.org/apt-maven-plugin/"&gt;Apt Maven Plugin&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Now Maven was easy, lets tackle the IDEs...&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 130%;"&gt;NetBeans&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;NetBeans excels in this task. When opening the Maven pom, it automatically recognizes the above configuration with the maven-processor-plugin and configures itself to use the EclipseLink annotation processor: &lt;a href="https://lh3.googleusercontent.com/-9HH-_QsDNf4/TnJYbCf0tlI/AAAAAAAABDk/dPtmUvruZOs/Screen%252520shot%2525202011-09-05%252520at%2525205.22.59%252520PM.png"&gt;&lt;img style="display: block; margin-top: 5px; margin-bottom: 5px; margin-left: auto; margin-right: auto;" src="http://lh6.ggpht.com/-u-I4XgJGfMY/Tm-xXrPAPPI/AAAAAAAABDI/NXoLIFrYKFk/Screen%252520shot%2525202011-09-05%252520at%2525205.22.59%252520PM.png?imgmax=800" border="0" alt="" width="315" height="210" /&gt;&lt;/a&gt; No additional configuration whatsoever needed! Metadata API classes get generated on the fly with each compilation and even with background compilation ... I wish NetBeans was my favorite IDE :-)&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 130%;"&gt;IntelliJ IDEA&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Configuration of an annotation processor is nicely documented in &lt;a href="http://blogs.jetbrains.com/idea/tag/annotation-processing/"&gt;this post by JetBrains&lt;/a&gt;. &lt;a href="https://lh5.googleusercontent.com/-zCEZuZhBLCg/TnJYcIxmwhI/AAAAAAAABDo/kejAKCFJHTo/s800/Screen%252520shot%2525202011-09-07%252520at%2525208.52.36%252520PM.png"&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh6.ggpht.com/-Vpze86zbhSs/Tm-xZEumN_I/AAAAAAAABDM/JlyaARL6y6g/Screen%252520shot%2525202011-09-07%252520at%2525208.52.36%252520PM.png?imgmax=800" border="0" alt="Screen shot 2011 09 07 at 8 52 36 PM" width="400" height="244" /&gt;&lt;/a&gt; The good things:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;annotation processors get picked up from the classpath, you dont have to specify the jar (which is a good thing, since the jar name might change when updating the version)&lt;/li&gt;&lt;li&gt;In combination with IDEA the EclipseLink annotation processor detects the default META-INF/persistence.xml automatically without explicit configuration.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;The bad thing:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;You need to know the exact full qualified name of the annotation processor class.&lt;/li&gt;&lt;li&gt;Generation of JPA metadata API classes works only on compilation (or on explicitly triggering annotation processing). It does not work on the fly when editing files, since IDEA does not have real background compilation.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;strong style="font-size: 130%;"&gt;Eclipse IDE&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;One might be tempted to think that configuration should be especially easy since Eclipse IDE and EclipseLink imply some kind of close relation...&lt;/p&gt;&lt;p&gt;The EclipseLink documentation &lt;a href="http://wiki.eclipse.org/UserGuide/JPA/Using_the_Canonical_Model_Generator_%28ELUG%29#Configuring_and_using_within_Eclipse_Galileo"&gt;explains how to configure the annotation processor&lt;/a&gt; ... except it does not work:&lt;/p&gt;&lt;p&gt;In combination with Eclipse the EclipseLink annotation processor does not detect the default META-INF/persistence.xml. You have to configure it manually. This is not documented and not trivial. The problem &lt;a href="https://bugs.eclipse.org/bugs/show_bug.cgi?id=311020"&gt;is reported as bug&lt;/a&gt;, &lt;strong&gt;but the bug was closed without fixing the problem!&lt;/strong&gt;&lt;strong&gt; I wonder how many people gave up on using the metadata API just because of that shortcoming...&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Here is how to configure the EclipseLink annotation processor in Eclipse:&lt;/p&gt;&lt;p&gt;As described in the documentation you have to include three jars on the factory path of the annotation processing configuration:&lt;/p&gt;&lt;p&gt;&lt;a href="https://lh6.googleusercontent.com/-t_YlxPFqGwQ/TnJYh3tQ50I/AAAAAAAABDs/nohbNoNo72M/s912/Screen%252520shot%2525202011-09-07%252520at%2525209.51.28%252520PM.png"&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh3.ggpht.com/-IBhbqREwBKo/Tm-xa6FYEPI/AAAAAAAABDU/MXQb4TJ47mY/Screen%252520shot%2525202011-09-07%252520at%2525209.51.28%252520PM.png?imgmax=800" border="0" alt="Screen shot 2011 09 07 at 9 51 28 PM" width="400" height="234" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;This approach is bad from the beginning, since those jars might change their name when you update them and they might not versioned together with your sources (this is the case when using Maven) . The approach of IDEA of locating annotation processors in the classpath by their class name is much better in this regard.&lt;/p&gt;&lt;p&gt;But as mentioned above, this does not yet work. You get the following error written in the eclipse error log:&lt;/p&gt;&lt;p&gt;&lt;code&gt;The persistence xml file [META-INF/persistence.xml] was not found. NO GENERATION will occur!! Please ensure a persistence xml file is available either from the CLASS_OUTPUT directory [META-INF/persistence.xml]&lt;/code&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://lh4.googleusercontent.com/-jwHSMPohIIY/TnJYm636zOI/AAAAAAAABDw/PPQw38eaVIY/Screen%252520shot%2525202011-09-07%252520at%2525209.47.43%252520PM.png"&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh4.ggpht.com/-KypWBjViCuo/Tm-xZ_s9uuI/AAAAAAAABDQ/nPExs2xbsts/Screen%252520shot%2525202011-09-07%252520at%2525209.47.43%252520PM.png?imgmax=800" border="0" alt="Screen shot 2011 09 07 at 9 47 43 PM" width="400" height="114" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;The solution is to pass the persistence.xml explicitly to the annotation processor. This is achieved by configuring an annotation processor option. The key is &lt;code&gt;eclipselink.persistencexml&lt;/code&gt;. The value is the path to your persistence.xml &lt;em&gt;relative from your CLASS_OUTPUT directory&lt;/em&gt;. In case of using Maven, your CLASS_OUTPUT directory is target/classes, so you have to prepend &lt;code style="border: solid 1px silver;"&gt;../../&lt;/code&gt; to your path to arrive in the project root directory ... &lt;em&gt;not trivial indeed&lt;/em&gt; ... &lt;span style="font-size: small;"&gt;(note that the path separator might vary on Windows)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="https://lh3.googleusercontent.com/-HYMe2hXCwyg/TnJYrNDwY2I/AAAAAAAABD0/3L9kPPh7Qn0/s720/Screen%252520shot%2525202011-09-05%252520at%2525205.03.57%252520PM.png"&gt;&lt;img style="display: block; margin-left: auto; margin-right: auto;" src="http://lh5.ggpht.com/-ubMpWK1uPlU/Tm-xbyWS_ZI/AAAAAAAABDY/icEdWULCGb8/Screen%252520shot%2525202011-09-05%252520at%2525205.03.57%252520PM.png?imgmax=800" border="0" alt="Screen shot 2011 09 05 at 5 03 57 PM" width="400" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Finally generation of JPA metadata API classes is also working in Eclipse. With the great background compilation of Eclipse it is nicely working on the fly when editing files.&lt;/p&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-5564863451999976544?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qzTgkoXBShg9JLKOtZuWe7jqKT0/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qzTgkoXBShg9JLKOtZuWe7jqKT0/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qzTgkoXBShg9JLKOtZuWe7jqKT0/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qzTgkoXBShg9JLKOtZuWe7jqKT0/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PpyrjF3bcGM:Dlaf-_zjfPA:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=PpyrjF3bcGM:Dlaf-_zjfPA:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PpyrjF3bcGM:Dlaf-_zjfPA:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PpyrjF3bcGM:Dlaf-_zjfPA:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PpyrjF3bcGM:Dlaf-_zjfPA:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=PpyrjF3bcGM:Dlaf-_zjfPA:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PpyrjF3bcGM:Dlaf-_zjfPA:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=PpyrjF3bcGM:Dlaf-_zjfPA:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PpyrjF3bcGM:Dlaf-_zjfPA:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=PpyrjF3bcGM:Dlaf-_zjfPA:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PpyrjF3bcGM:Dlaf-_zjfPA:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PpyrjF3bcGM:Dlaf-_zjfPA:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PpyrjF3bcGM:Dlaf-_zjfPA:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/PpyrjF3bcGM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/5564863451999976544/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=5564863451999976544" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/5564863451999976544?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/5564863451999976544?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/PpyrjF3bcGM/using-jpa-metamodel-annotation.html" title="Using the JPA metamodel annotation processor" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-u-I4XgJGfMY/Tm-xXrPAPPI/AAAAAAAABDI/NXoLIFrYKFk/s72-c/Screen%252520shot%2525202011-09-05%252520at%2525205.22.59%252520PM.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/09/using-jpa-metamodel-annotation.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4MQXgyfip7ImA9WhdWFUU.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-7790177536535566328</id><published>2011-09-09T19:03:00.001+02:00</published><updated>2011-09-09T19:06:20.696+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-09T19:06:20.696+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="hibernate" /><category scheme="http://www.blogger.com/atom/ns#" term="quote" /><category scheme="http://www.blogger.com/atom/ns#" term="object-relational mapping" /><title>Quotes of the Week: Bashing Hibernate</title><content type="html">&lt;div style="width: 400px;"&gt;&lt;p&gt;&lt;img style="margin: 0px 0px 10px 10px;" src="http://lh4.ggpht.com/_X3kaawac_g4/S8uT4AW4WKI/AAAAAAAAA0I/PbqnbnH3BdI/quotes2.jpg?imgmax=800" border="0" alt="quotes2.jpg" width="120" align="right" /&gt;&lt;/p&gt;&lt;div style="width: 260px;"&gt;&lt;blockquote style="font-size: 14px;"&gt;Abstracting SQL often isn't a good idea from my experience.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://twitter.com/#%21/codemonkeyism"&gt;@codemonkeyism&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p style="align: right;  clear: right;"&gt; &lt;/p&gt;&lt;blockquote style="font-size: 14px;"&gt;&lt;p&gt;Hibernate should be to programmers what cake mixes are to bakers: beneath their dignity. [...] As professional programmers, we should be more sceptical of generic frameworks like hibernate.&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://javazone.no/incogito10/events/JavaZone%202011/sessions#73db65c7-8672-4024-86b5-84d97c3013ff"&gt;Session at JavaZone 2011&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote style="font-size: 14px;"&gt;There are easier ways to do it, rather than hitting your domain model over the head with NHibernate.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- Rob Conery, &lt;a href="http://www.hanselminutes.com/default.aspx?showID=268"&gt;Hanselminutes 249&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt;If you like this, follow me on twitter ...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-7790177536535566328?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/ghD3_LnTyg1hQXkS8iy6lE9HfVY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ghD3_LnTyg1hQXkS8iy6lE9HfVY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/ghD3_LnTyg1hQXkS8iy6lE9HfVY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/ghD3_LnTyg1hQXkS8iy6lE9HfVY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=SxAOlhjeIig:jryBfanXx7A:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=SxAOlhjeIig:jryBfanXx7A:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=SxAOlhjeIig:jryBfanXx7A:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=SxAOlhjeIig:jryBfanXx7A:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=SxAOlhjeIig:jryBfanXx7A:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=SxAOlhjeIig:jryBfanXx7A:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=SxAOlhjeIig:jryBfanXx7A:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=SxAOlhjeIig:jryBfanXx7A:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=SxAOlhjeIig:jryBfanXx7A:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=SxAOlhjeIig:jryBfanXx7A:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=SxAOlhjeIig:jryBfanXx7A:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=SxAOlhjeIig:jryBfanXx7A:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=SxAOlhjeIig:jryBfanXx7A:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/SxAOlhjeIig" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/7790177536535566328/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=7790177536535566328" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/7790177536535566328?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/7790177536535566328?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/SxAOlhjeIig/quotes-of-week-bashing-hibernate.html" title="Quotes of the Week: Bashing Hibernate" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_X3kaawac_g4/S8uT4AW4WKI/AAAAAAAAA0I/PbqnbnH3BdI/s72-c/quotes2.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/09/quotes-of-week-bashing-hibernate.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DU4GSHc4cSp7ImA9WhdWE0o.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-8730644810748249495</id><published>2011-09-07T08:41:00.001+02:00</published><updated>2011-09-07T08:45:29.939+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-07T08:45:29.939+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="object-relational mapping" /><category scheme="http://www.blogger.com/atom/ns#" term="quicktip" /><title>QuickTip: Logging SQL statements in EclipseLink</title><content type="html">&lt;p&gt;&lt;img style="float: right; margin-left: 10px; margin-bottom: 10px;" src="http://lh6.ggpht.com/_X3kaawac_g4/TWQ2pInJsjI/AAAAAAAAA8A/E_2L681OTJQ/1279316_question_mark.jpg?imgmax=800" border="0" alt="1279316 question mark" width="130" /&gt;&lt;/p&gt;&lt;p&gt;Documentation for &lt;a href="http://www.eclipse.org/eclipselink/"&gt;EclipseLink&lt;/a&gt; is quite lacking.&lt;/p&gt;&lt;p&gt;While for Hibernate it is &lt;a href="http://docs.jboss.org/hibernate/core/3.3/reference/en/html/session-configuration.html#configuration-optional"&gt;quite easy&lt;/a&gt; to &lt;a href="http://www.mkyong.com/hibernate/how-to-display-hibernate-sql-parameter-values-log4j/"&gt;find out&lt;/a&gt; how &lt;a href="http://stackoverflow.com/questions/2536829/hibernate-show-real-sql"&gt;to log SQL statements&lt;/a&gt;, I had some trouble &lt;a href="http://stackoverflow.com/questions/2374395/is-it-possible-to-output-generated-sql-using-eclipselink-without-having-to-increa"&gt;to find out&lt;/a&gt; how to accomplish this in EclipseLink.&lt;/p&gt;&lt;p&gt;The solution are the following properties in &lt;code&gt;persistence.xml&lt;/code&gt;:&lt;/p&gt;&lt;div style="border: solid 1px silver; width: 410px; overflow: auto;"&gt;&lt;code&gt;&lt;pre&gt; &amp;lt;property name="eclipselink.logging.level.sql" value="FINE"/&amp;gt;
 &amp;lt;property name="eclipselink.logging.parameters" value="true"/&amp;gt;
&lt;/pre&gt;&lt;/code&gt;&lt;/div&gt;&lt;p style="font-size: 10px;"&gt;This solution I finally found &lt;a href="http://web.archiveorange.com/archive/v/N2Kao4wIbJyy3j4mrCLR"&gt;here&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;An alternative is also to use &lt;a href="http://code.google.com/p/log4jdbc/"&gt;log4jdbc&lt;/a&gt; or &lt;a href="http://code.google.com/p/log4jdbc-remix/"&gt;log4jdbc-remix&lt;/a&gt; (the latter is available in the sonatype maven repository). An &lt;a href="https://code.google.com/p/jpaworkshop/source/browse/trunk/exercise/10-eager-loading/src/main/resources/META-INF/persistence.xml?r=40"&gt;example is available&lt;/a&gt; in exercise 10 of my &lt;a href="https://code.google.com/p/jpaworkshop/"&gt;jpaworkshop&lt;/a&gt;.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-8730644810748249495?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3Po5HzKzsJmHcvW62p-lctk9yjA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3Po5HzKzsJmHcvW62p-lctk9yjA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3Po5HzKzsJmHcvW62p-lctk9yjA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3Po5HzKzsJmHcvW62p-lctk9yjA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OezyHTi1z9s:t2v7QyWPDFs:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=OezyHTi1z9s:t2v7QyWPDFs:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OezyHTi1z9s:t2v7QyWPDFs:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OezyHTi1z9s:t2v7QyWPDFs:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OezyHTi1z9s:t2v7QyWPDFs:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=OezyHTi1z9s:t2v7QyWPDFs:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OezyHTi1z9s:t2v7QyWPDFs:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=OezyHTi1z9s:t2v7QyWPDFs:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OezyHTi1z9s:t2v7QyWPDFs:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=OezyHTi1z9s:t2v7QyWPDFs:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OezyHTi1z9s:t2v7QyWPDFs:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OezyHTi1z9s:t2v7QyWPDFs:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OezyHTi1z9s:t2v7QyWPDFs:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/OezyHTi1z9s" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/8730644810748249495/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=8730644810748249495" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8730644810748249495?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8730644810748249495?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/OezyHTi1z9s/quicktip-logging-sql-statements-in.html" title="QuickTip: Logging SQL statements in EclipseLink" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_X3kaawac_g4/TWQ2pInJsjI/AAAAAAAAA8A/E_2L681OTJQ/s72-c/1279316_question_mark.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/09/quicktip-logging-sql-statements-in.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0MARXw6fyp7ImA9WhdXGEQ.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-2986837454321800365</id><published>2011-09-01T17:37:00.000+02:00</published><updated>2011-09-01T17:37:24.217+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-09-01T17:37:24.217+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="dysfunction" /><category scheme="http://www.blogger.com/atom/ns#" term="humor" /><title>Programming Humor: Private Coder Soundtrack</title><content type="html">
&lt;iframe width="400" height="325" src="http://www.youtube.com/embed/d4QnalIHlVc" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;
&lt;br /&gt;
&lt;br /&gt;
A while back &lt;a href="http://blog.jonasbandi.net/2010/06/craftsmanship-means-we-should-refuse-to.html"&gt;on a dysfunctional project&lt;/a&gt; some colleagues of mine started being creative and adapted the lyrics of the famous &lt;a href="http://www.youtube.com/watch?v=d4QnalIHlVc"&gt;Tina Turner song "Private Dancer"&lt;/a&gt; (&lt;a href="http://www.lyricsfreak.com/t/tina+turner/private+dancer_20137652.html"&gt;lyrics&lt;/a&gt;) to our sad project environment:
&lt;br /&gt;
&lt;br /&gt;



WELL THE Managers COME IN THESE PLACES&lt;br /&gt;
AND THE MEN ARE ALL THE SAME&lt;br /&gt;
YOU DON`T LOOK AT THEIR certifications&lt;br /&gt;
AND YOU DON`T ASK THEIR qualifications&lt;br /&gt;
YOU DON`T THINK OF THEM AS equal&lt;br /&gt;
YOU DON`T THINK OF THEM AT ALL&lt;br /&gt;
YOU KEEP YOUR MIND ON THE MONEY&lt;br /&gt;
KEEPING YOUR EYES ON THE Screen&lt;br /&gt;
&lt;br /&gt;
[CHORUS]&lt;br /&gt;
&lt;br /&gt;
I`M YOUR &lt;span class="il"&gt;PRIVATE&lt;/span&gt; &lt;span class="il"&gt;Coder&lt;/span&gt;&lt;br /&gt;
A &lt;span class="il"&gt;Coder&lt;/span&gt; FOR MONEY&lt;br /&gt;
I`LL DO WHAT YOU WANT ME TO DO&lt;br /&gt;
I`M YOUR &lt;span class="il"&gt;PRIVATE&lt;/span&gt; &lt;span class="il"&gt;Coder&lt;/span&gt;&lt;br /&gt;
A &lt;span class="il"&gt;Coder&lt;/span&gt; FOR MONEY&lt;br /&gt;
AND ANY OLD PC WILL DO&lt;br /&gt;
&lt;br /&gt;
I WANT TO MAKE A MILLION DOLLARS&lt;br /&gt;
I WANT TO LIVE OUT BY THE SEA&lt;br /&gt;
HAVE An IPhone AND SOME IPods&lt;br /&gt;
YEAH I GUESS I WANT A Widescreen TV&lt;br /&gt;
ALL THE Managers COME IN THESE PLACES&lt;br /&gt;
AND THE MEN ARE ALL THE SAME&lt;br /&gt;
YOU DON`T LOOK AT THEIR FACES&lt;br /&gt;
AND YOU DON`T ASK THEIR NAMES&lt;br /&gt;
&lt;br /&gt;
[CHORUS TWICE]&lt;br /&gt;
&lt;br /&gt;
Swissfrancs OR DOLLARS&lt;br /&gt;
WTO or PBroker WILL DO NICELY - THANK YOU&lt;br /&gt;
LET ME LOOSEN UP YOUR processes&lt;br /&gt;
TELL ME DO YOU WANT TO SEE THE flipchart AGAIN&lt;br /&gt;
&lt;br /&gt;
[CHORUS]&lt;br /&gt;
&lt;br /&gt;
... now we are looking for a director to create the music video, the cast would be ready :-)&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-DGAIB_H4zvQ/TbCKSCTizgI/AAAAAAAAA94/ljRbMKWrJ24/s1600/Roy2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-DGAIB_H4zvQ/TbCKSCTizgI/AAAAAAAAA94/ljRbMKWrJ24/s320/Roy2.jpg" width="240" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style="clear: right; font-size: 10px;"&gt;
&lt;br /&gt;
&lt;a href="http://twitter.com/jbandi"&gt;&lt;img align="left" alt="http://www.google.com/s2/favicons?domain=twitter.com" border="0" height="13px" src="http://www.google.com/s2/favicons?domain=twitter.com" style="margin: 0px;" /&gt; follow me on twitter, I need some friends :-)&lt;/a&gt;&lt;/div&gt;
&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-2986837454321800365?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/QEs6hczPql5Mi3o2gIAOI3SNLgg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QEs6hczPql5Mi3o2gIAOI3SNLgg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/QEs6hczPql5Mi3o2gIAOI3SNLgg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/QEs6hczPql5Mi3o2gIAOI3SNLgg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=YYGNVx0zWUE:824bbMH6swU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=YYGNVx0zWUE:824bbMH6swU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=YYGNVx0zWUE:824bbMH6swU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=YYGNVx0zWUE:824bbMH6swU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=YYGNVx0zWUE:824bbMH6swU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=YYGNVx0zWUE:824bbMH6swU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=YYGNVx0zWUE:824bbMH6swU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=YYGNVx0zWUE:824bbMH6swU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=YYGNVx0zWUE:824bbMH6swU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=YYGNVx0zWUE:824bbMH6swU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=YYGNVx0zWUE:824bbMH6swU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=YYGNVx0zWUE:824bbMH6swU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=YYGNVx0zWUE:824bbMH6swU:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/YYGNVx0zWUE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/2986837454321800365/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=2986837454321800365" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2986837454321800365?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2986837454321800365?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/YYGNVx0zWUE/programming-humor-private-coder.html" title="Programming Humor: Private Coder Soundtrack" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://img.youtube.com/vi/d4QnalIHlVc/default.jpg" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/09/programming-humor-private-coder.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEAHSXYzcSp7ImA9WhdXFkg.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-7528013320075119085</id><published>2011-08-29T23:03:00.001+02:00</published><updated>2011-08-29T23:18:58.889+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-29T23:18:58.889+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>From SVN to TFS: The Good, The Bad and The Ugly</title><content type="html">&lt;p&gt;For my &lt;a href="http://msdn.microsoft.com/de-ch/aa570302.aspx?EventID=1032382726&amp;amp;WT.mc_id=eml-n-ch-loc--MSDNE"&gt;recent MSDN TechTalk&lt;/a&gt; I did some research how to migrate a source control repository from SVN to TFS. While I am not advocating this migration, here are the options:&lt;/p&gt;&lt;h4&gt;The Good:&lt;/h4&gt;&lt;p&gt;Currently you have a choice of three tools:&lt;/p&gt;&lt;p&gt;&lt;a href="http://lh5.ggpht.com/-C_96ql5m7EE/Tlv-kb_QMxI/AAAAAAAABCo/MwMc5ZKzQAw/s1600-h/image%25255B23%25255D.png"&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 5px; border-width: 0px;" title="image" src="http://lh4.ggpht.com/-s0i6xVNcNJY/Tlv-kyfBzPI/AAAAAAAABCs/q9X3nUDEjt0/image_thumb%25255B17%25255D.png?imgmax=800" border="0" alt="image" width="125" height="70" align="left" /&gt;&lt;/a&gt;&lt;strong&gt;&lt;a href="http://svn2tfs.codeplex.com/"&gt;svn2tfs:&lt;/a&gt;&lt;/strong&gt;&lt;br/&gt;
svn2tfs is a simple tool written in VB.NET. You need to have SVN installed in order for this tool to work. It basically replays every revision from SVN as changeset into TFS.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://lh6.ggpht.com/-mQ0LarD3Z9Q/Tlv-m_CHlvI/AAAAAAAABCw/dhDmdVsrv-U/s1600-h/image%25255B20%25255D.png"&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 5px; border-width: 0px;" title="image" src="http://lh6.ggpht.com/-uBmdnHEXjZ0/Tlv-nMXaDFI/AAAAAAAABC0/DZPmtYsk0Tg/image_thumb%25255B14%25255D.png?imgmax=800" border="0" alt="image" width="189" height="56" align="left" /&gt;&lt;/a&gt;&lt;a href="http://tfsintegration.codeplex.com/"&gt;TFS Integration Platform:&lt;/a&gt;&lt;/strong&gt;&lt;br/&gt;
The TFS Integration Platform is the Swiss army knife for many possibilities to get data in and out of TFS. The TFS integration platform is available as supported Microsoft &lt;a href="http://visualstudiogallery.msdn.microsoft.com/f854dd59-8eeb-4673-8d9a-ae012989bfa2"&gt;product on Visual Studio Code Gallery&lt;/a&gt; and as bleeding-edge release on Codeplex. The SVN adapter is currently only part of the codeplex release.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;a href="http://lh4.ggpht.com/-mGTjHxcrw_s/Tlv-nuVqUBI/AAAAAAAABC4/t7Y-18ZKsOU/s1600-h/image%25255B26%25255D.png"&gt;&lt;img style="display: inline; margin-left: 0px; margin-right: 5px; border: 0px;" title="image" src="http://lh4.ggpht.com/-STvTj4rtWkg/Tlv-oFXkOII/AAAAAAAABC8/VSaLJWv1FtY/image_thumb%25255B20%25255D.png?imgmax=800" border="0" alt="image" width="194" height="66" align="left" /&gt;&lt;/a&gt;&lt;a href="http://www.timelymigration.com/"&gt;Timely Migration: &lt;/a&gt;&lt;/strong&gt;&lt;br /&gt;Timely Migration is a commercial tool. There are different modules for different source version control systems. To migrate from SVN to TFS the SVNToTFS module is needed. It costs $1995. Trial versions can be requested, but they do not migrate the content of the files.&lt;/p&gt;&lt;table border="1" cellspacing="0" cellpadding="2" width="400" &gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width="133" valign="top"&gt;&lt;strong&gt;svn2tfs&lt;/strong&gt;&lt;/td&gt;&lt;td width="133" valign="top"&gt;&lt;strong&gt;Integration Platform&lt;/strong&gt;&lt;/td&gt;&lt;td width="133" valign="top"&gt;&lt;strong&gt;Timely Migration&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="133" valign="top"&gt;open source&lt;/td&gt;&lt;td width="133" valign="top"&gt;open source, from Microsoft&lt;/td&gt;&lt;td width="133" valign="top"&gt;commercial, $1995&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="133" valign="top"&gt;simple and easy to use&lt;/td&gt;&lt;td width="133" valign="top"&gt;many features, complex, complicated&lt;/td&gt;&lt;td width="133" valign="top"&gt;powerful features, easy to use&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="133" valign="top"&gt;enough documentation&lt;/td&gt;&lt;td width="133" valign="top"&gt;sparse documentation&lt;/td&gt;&lt;td width="133" valign="top"&gt;good documentaion&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="133" valign="top"&gt;SVN tags can be migrated as branches&lt;/td&gt;&lt;td width="133" valign="top"&gt;SVN tags are migrated as branches&lt;/td&gt;&lt;td width="133" valign="top"&gt;SVN tags are migrated to TFS labels&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="133" valign="top"&gt;user-mapping is enforced&lt;/td&gt;&lt;td width="133" valign="top"&gt;user-mapping is possible but not enforced&lt;/td&gt;&lt;td width="133" valign="top"&gt;user-mapping is enforced and comfortable&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="133" valign="top"&gt;migration is aborted in case of an error&lt;/td&gt;&lt;td width="133" valign="top"&gt;some errors can be manually resolved and migration can be then be resumed&lt;/td&gt;&lt;td width="133" valign="top"&gt;migration gets resumed when restarting after error resolution&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p&gt;With each tool I was able to successfully migrate an example project from a local SVN repository.&lt;/p&gt;&lt;h4&gt;The Bad:&lt;/h4&gt;&lt;p&gt;&lt;strong&gt;svn2tfs:&lt;/strong&gt; I was not able to migrate SVN repositories from Google Code. The tool systematically failed, because the initial repository revision for the project layout (dirs for trunk, tags and labels) has not author. The tool can not deal with that. On the positive side was, that the source code of the tool is very simple so that I was quickly &lt;a href="http://svn2tfs.codeplex.com/SourceControl/list/patches"&gt;able to create a patch&lt;/a&gt;, that fixed this problem. On the negative side was, that there was &lt;a href="http://svn2tfs.codeplex.com/SourceControl/list/patches"&gt;no reaction on the patch I submitted&lt;/a&gt;. The project seem pretty dead.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;TFS Integration Platform:&lt;/strong&gt; It seems not possible to do an aynonymous login to SVN. If you do not provide valid user/password, the migration fails with an ugly “NullReferenceException”. The documentation for the SVN adapter is sparse. For instance there was no documentation at all how to map svn users to TFS users. fortunately (after some nudging from my contact at Microsoft) &lt;a href="http://social.msdn.microsoft.com/Forums/en-US/tfsintegration/thread/3e35cb27-6733-44a3-b364-936951288427/"&gt;my question in the forum was answered&lt;/a&gt;. Some days later even &lt;a href="http://blogs.msdn.com/b/willy-peter_schaub/archive/2011/08/15/tfs-integration-tools-how-do-i-define-user-mappings-for-version-control-using-the-svn-adapter.aspx"&gt;a blog post about the topic was published&lt;/a&gt;. Another shortcoming is, that the mapping from svn users to TFS users is not enforced. If no mapping is specified, each svn user is silently mapped to the user that is running the migration tool. There is no support in checking if all users from svn are mapped to TFS users.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;Timely Migration:&lt;/strong&gt; The only negative thing is the price since you probably need the tool only once.&lt;/p&gt;&lt;h4&gt;The Ugly:&lt;/h4&gt;&lt;p&gt;With none of the tools I was able to migrate the &lt;a href="http://nerddinner.codeplex.com/"&gt;Nerd Dinner&lt;/a&gt; repository from Codeplex. Each tool either reported an error or froze indefinitely.&lt;/p&gt;&lt;div style="align:right; font-size: 10px; clear:right; "&gt;&lt;br/&gt;&lt;p&gt;&lt;a  href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border:none" src="http://www.google.com/s2/favicons?domain=twitter.com" alt="http://www.google.com/s2/favicons?domain=twitter.com" border="0" align="left" height="13px"/&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-7528013320075119085?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/vl5uH91bNTo_JNRrKWxo-M5eMY8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vl5uH91bNTo_JNRrKWxo-M5eMY8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/vl5uH91bNTo_JNRrKWxo-M5eMY8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/vl5uH91bNTo_JNRrKWxo-M5eMY8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=utmIexQLuS4:3xNEsRRDGBg:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=utmIexQLuS4:3xNEsRRDGBg:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=utmIexQLuS4:3xNEsRRDGBg:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=utmIexQLuS4:3xNEsRRDGBg:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=utmIexQLuS4:3xNEsRRDGBg:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=utmIexQLuS4:3xNEsRRDGBg:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=utmIexQLuS4:3xNEsRRDGBg:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=utmIexQLuS4:3xNEsRRDGBg:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=utmIexQLuS4:3xNEsRRDGBg:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=utmIexQLuS4:3xNEsRRDGBg:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=utmIexQLuS4:3xNEsRRDGBg:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=utmIexQLuS4:3xNEsRRDGBg:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=utmIexQLuS4:3xNEsRRDGBg:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/utmIexQLuS4" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/7528013320075119085/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=7528013320075119085" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/7528013320075119085?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/7528013320075119085?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/utmIexQLuS4/from-svn-to-tfs-good-bad-and-ugly.html" title="From SVN to TFS: The Good, The Bad and The Ugly" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/-s0i6xVNcNJY/Tlv-kyfBzPI/AAAAAAAABCs/q9X3nUDEjt0/s72-c/image_thumb%25255B17%25255D.png?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/08/from-svn-to-tfs-good-bad-and-ugly.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcESX89eCp7ImA9WhdXEkQ.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-413954154911889868</id><published>2011-08-25T18:32:00.001+02:00</published><updated>2011-08-25T18:33:28.160+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-25T18:33:28.160+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="technology" /><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Is there any hope for other DVCS in the Git imperium?</title><content type="html">&lt;p&gt;&lt;img style="float: right; margin-left: 10px;" src="http://lh3.ggpht.com/-TRLvOVgVa_U/TkfqA08or4I/AAAAAAAABCY/eU4xZ-x-ubc/lego-star-wars-chr1.jpg?imgmax=800" border="0" alt="Lego star wars chr1" width="250" height="179" /&gt;&lt;/p&gt;&lt;p&gt;As we are &lt;a href="http://blog.jonasbandi.net/2011/07/entering-age-of-jvm-language-wars.html"&gt;entering the era of language wars on the JVM&lt;/a&gt; there is another war looming on the horizon...&lt;/p&gt;&lt;p&gt;This new war is coming out of the realm of &lt;a href="http://en.wikipedia.org/wiki/Distributed_revision_control"&gt;distributed version control systems&lt;/a&gt;:&lt;/p&gt;&lt;p&gt;&lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt; seems to have a nearly undisputed imperium in this realm and recently has squished its known competitors:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="https://github.com/"&gt;GitHub&lt;/a&gt; is &lt;em&gt;THE&lt;/em&gt; repository for thriving open source projects. Recently I find me browsing on GitHub much more often than on &lt;a href="http://code.google.com/"&gt;Google Code&lt;/a&gt; or &lt;a href="http://www.codeplex.com/"&gt;CodePlex&lt;/a&gt; ... while &lt;a href="https://bitbucket.org/"&gt;BitBucket&lt;/a&gt; as the main &lt;a href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt; contener only plays a marginal role in my experience.&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/"&gt;Google Code&lt;/a&gt;, who was favoring &lt;a href="http://subversion.apache.org/"&gt;SVN&lt;/a&gt; and &lt;a href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt; for some time, &lt;a href="http://google-opensource.blogspot.com/2011/07/announcing-git-support-for-google-code.html"&gt;recently added Git support&lt;/a&gt; ...&lt;/li&gt;&lt;li&gt;A lot of the new &lt;em&gt;hot-and-hyped&lt;/em&gt; cloud based &lt;a href="http://en.wikipedia.org/wiki/Platform_as_a_service"&gt;PaaS&lt;/a&gt; are using Git as their tool of choice for deployment: &lt;a href="http://www.heroku.com/"&gt;Heroku&lt;/a&gt;, &lt;a href="https://openshift.redhat.com/app/"&gt;JBoss OpenShift&lt;/a&gt;, &lt;a href="https://appharbor.com/"&gt;AppHarbor&lt;/a&gt; ...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Despite the seemingly striking dominance of &lt;a href="http://git-scm.com/"&gt;Git&lt;/a&gt;, there are still brave contenders sprouting out of the dvcs land:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://veracity-scm.com/"&gt;Veracity&lt;/a&gt; by sourcegear&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.plasticscm.com/"&gt;Plastic SCM&lt;/a&gt;&lt;/li&gt;&lt;li&gt;and older, yet still thriving: &lt;a href="http://mercurial.selenic.com/"&gt;Mercurial&lt;/a&gt;, &lt;a href="http://bazaar.canonical.com/"&gt;Bazaar&lt;/a&gt;, &lt;a href="http://www.fossil-scm.org/"&gt;Fossil&lt;/a&gt; ...&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;All of them featuring some unique features (although features I am not always sure I would like to see coupled to a source control system ...) and most of them somehow promising more simplicity compared to Git.&lt;/p&gt;&lt;p&gt;I wonder if they have any chance against the massive momentum of Git and its ecosystem ...&lt;/p&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-413954154911889868?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/tMakN_ohClpFZF8KktOJVsT4LEw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tMakN_ohClpFZF8KktOJVsT4LEw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/tMakN_ohClpFZF8KktOJVsT4LEw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/tMakN_ohClpFZF8KktOJVsT4LEw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=72Nc4xDA2OE:oB79Z52Sffw:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=72Nc4xDA2OE:oB79Z52Sffw:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=72Nc4xDA2OE:oB79Z52Sffw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=72Nc4xDA2OE:oB79Z52Sffw:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=72Nc4xDA2OE:oB79Z52Sffw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=72Nc4xDA2OE:oB79Z52Sffw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=72Nc4xDA2OE:oB79Z52Sffw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=72Nc4xDA2OE:oB79Z52Sffw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=72Nc4xDA2OE:oB79Z52Sffw:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=72Nc4xDA2OE:oB79Z52Sffw:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=72Nc4xDA2OE:oB79Z52Sffw:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=72Nc4xDA2OE:oB79Z52Sffw:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=72Nc4xDA2OE:oB79Z52Sffw:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/72Nc4xDA2OE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/413954154911889868/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=413954154911889868" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/413954154911889868?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/413954154911889868?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/72Nc4xDA2OE/is-there-any-hope-for-other-dvcs-in-git.html" title="Is there any hope for other DVCS in the Git imperium?" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-TRLvOVgVa_U/TkfqA08or4I/AAAAAAAABCY/eU4xZ-x-ubc/s72-c/lego-star-wars-chr1.jpg?imgmax=800" height="72" width="72" /><thr:total>3</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/08/is-there-any-hope-for-other-dvcs-in-git.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D04ARHg9fSp7ImA9WhdXEUQ.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-6205297622397194611</id><published>2011-08-23T23:06:00.001+02:00</published><updated>2011-08-24T16:25:45.665+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-24T16:25:45.665+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="agile" /><title>Agile in the real world (construction analogy again)</title><content type="html">&lt;p&gt;&lt;img style="margin: 0px 0px 10px 10px;" src="http://lh4.ggpht.com/_X3kaawac_g4/S6VhgpzoQ6I/AAAAAAAAAx8/ndOHd624KT0/Hardbruecke.JPG?imgmax=800" border="0" alt="Hardbruecke.JPG" height="280" align="right" /&gt; There is a common claim that we should learn more from classical engineering disciplines like civil engineering. According to that claim the IT industry would be a better place if we would adopt best practices from the latter.&lt;/p&gt;&lt;p&gt;But when we look closer, then we can see similar problems in those real engineering disciplines ... this picture is a poignant example of that.&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;div style="width: 390px; align: right; font-size: 14px; clear: right;"&gt;&lt;br /&gt;&lt;blockquote&gt;Prediction is difficult, especially of the future.&lt;/blockquote&gt;&lt;div style="font-size: 10px; text-align: right;"&gt;&lt;a href="http://twitter.com/unclebobmartin/status/7271083177"&gt;–Niels Bohr&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;br/&gt;&lt;br/&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-6205297622397194611?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/550ZE_zhjZnQUWNSBrHZIsXl1iQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/550ZE_zhjZnQUWNSBrHZIsXl1iQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/550ZE_zhjZnQUWNSBrHZIsXl1iQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/550ZE_zhjZnQUWNSBrHZIsXl1iQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=W8lLhFvawRs:4VqT9INh_Is:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=W8lLhFvawRs:4VqT9INh_Is:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=W8lLhFvawRs:4VqT9INh_Is:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=W8lLhFvawRs:4VqT9INh_Is:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=W8lLhFvawRs:4VqT9INh_Is:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=W8lLhFvawRs:4VqT9INh_Is:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=W8lLhFvawRs:4VqT9INh_Is:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=W8lLhFvawRs:4VqT9INh_Is:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=W8lLhFvawRs:4VqT9INh_Is:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=W8lLhFvawRs:4VqT9INh_Is:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=W8lLhFvawRs:4VqT9INh_Is:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=W8lLhFvawRs:4VqT9INh_Is:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=W8lLhFvawRs:4VqT9INh_Is:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/W8lLhFvawRs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/6205297622397194611/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=6205297622397194611" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/6205297622397194611?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/6205297622397194611?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/W8lLhFvawRs/agile-in-real-world-construction.html" title="Agile in the real world (construction analogy again)" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_X3kaawac_g4/S6VhgpzoQ6I/AAAAAAAAAx8/ndOHd624KT0/s72-c/Hardbruecke.JPG?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/08/agile-in-real-world-construction.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkINQHs7eip7ImA9WhdQFkw.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-5289507373143642472</id><published>2011-08-17T22:56:00.001+02:00</published><updated>2011-08-17T22:56:31.502+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-17T22:56:31.502+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tidbit" /><title>Tidbit: Big Data</title><content type="html">&lt;p&gt;&lt;img style="float: right; margin-left: 10px;" src="http://lh6.ggpht.com/_X3kaawac_g4/TS4htJ3nK8I/AAAAAAAAA6c/d0duKh9vaCQ/315116528_480edcad4d.jpg?imgmax=800" border="0" alt="315116528_480edcad4d.jpg" width="120" /&gt;&lt;/p&gt;&lt;p&gt;The amounts of data that Twitter handles is astonishing:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;12 TB per day (= 4 PB per year) 
&lt;ul&gt;&lt;li&gt;... this equals 17'000 CDs per day&lt;/li&gt;&lt;li&gt;... this equals 9 mio floppy disks per day ( = 26.5 miles high)&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;And the amount is doubling multiple times a year.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;... this is according to the presentation &lt;a href="http://www.infoq.com/presentations/NoSQL-at-Twitter"&gt;NoSQL at Twitter&lt;/a&gt; from October 2010, so today the pile of floppy disks would probably already be 50 miles high...&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;ul&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-5289507373143642472?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/1-7x7PkmT6Y-vvA2TmfZ7eThH_Y/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1-7x7PkmT6Y-vvA2TmfZ7eThH_Y/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/1-7x7PkmT6Y-vvA2TmfZ7eThH_Y/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/1-7x7PkmT6Y-vvA2TmfZ7eThH_Y/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OLBYz4MTheU:QajfR64-Jm4:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=OLBYz4MTheU:QajfR64-Jm4:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OLBYz4MTheU:QajfR64-Jm4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OLBYz4MTheU:QajfR64-Jm4:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OLBYz4MTheU:QajfR64-Jm4:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=OLBYz4MTheU:QajfR64-Jm4:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OLBYz4MTheU:QajfR64-Jm4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=OLBYz4MTheU:QajfR64-Jm4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OLBYz4MTheU:QajfR64-Jm4:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=OLBYz4MTheU:QajfR64-Jm4:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OLBYz4MTheU:QajfR64-Jm4:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OLBYz4MTheU:QajfR64-Jm4:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=OLBYz4MTheU:QajfR64-Jm4:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/OLBYz4MTheU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/5289507373143642472/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=5289507373143642472" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/5289507373143642472?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/5289507373143642472?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/OLBYz4MTheU/tidbit-big-data.html" title="Tidbit: Big Data" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_X3kaawac_g4/TS4htJ3nK8I/AAAAAAAAA6c/d0duKh9vaCQ/s72-c/315116528_480edcad4d.jpg?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/08/tidbit-big-data.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C04FQns_cCp7ImA9WhdQFUw.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-3789801173700713954</id><published>2011-08-15T18:17:00.001+02:00</published><updated>2011-08-16T18:25:13.548+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-16T18:25:13.548+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="methodology" /><category scheme="http://www.blogger.com/atom/ns#" term="TDD" /><title>Test Driven: It is the mindset not the tool!</title><content type="html">&lt;p&gt;It is amazing to realize how old the notion of &lt;a href="http://en.wikipedia.org/wiki/Test-driven_development"&gt;Test Driven Development&lt;/a&gt; (TDD) really is. Here are two quotes, that are older than I am, describing the ideas behind TDD :&lt;/p&gt;&lt;p&gt;&lt;a href="http://homepages.cs.ncl.ac.uk/brian.randell/NATO/"&gt;Report of the NATO Software Engineering Conference 1968&lt;/a&gt;:&lt;/p&gt;&lt;blockquote&gt;A software system can best be designed if the testing is interlaced with the designing instead of being used after the design.   Through successive repetitions of this process of interlaced testing and design the model ultimately becomes the software system itself. I think that it is the key of the approach that has been suggested, that there is no such question as testing things after the fact with simulation models, but that in effect the testing and the replacement of simulations with modules that are deeper and more detailed goes on with the simulation model controlling, as it were, the place and order in which these things are done.&lt;/blockquote&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html"&gt;The humble Programmer, Edsger W. Dijkstra 1972:&lt;/a&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&lt;cite style="font-style: normal;"&gt;But one should not first make the program and then prove its  correctness, because then the requirement of providing the proof would  only increase the poor programmer's burden. On the contrary: the  programmer should let correctness proof and program grow hand in hand.  [...] If one first asks oneself what the structure of a convincing proof  would be and, having found this, then constructs a program satisfying  this proof's requirements, then these correctness concerns turn out to  be a very effective heuristic guidance. By definition this approach is  only applicable when we restrict ourselves to intellectually manageable  programs, but it provides us with effective means for finding a  satisfactory one among these.&lt;/cite&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt; &lt;/p&gt;&lt;p&gt;Today we mostly associate TDD with automated unit-tests and the &lt;a href="http://en.wikipedia.org/wiki/XUnit"&gt;family of xUnit Frameworks&lt;/a&gt;. We associate TDD with writing code.&lt;/p&gt;&lt;p&gt;Yet TDD today is far from being mainstream in my experience. And even teams that decided to adopt TDD are constantly struggling with implementing it in reality.&lt;/p&gt;&lt;p&gt;The participants of the NATO Software Engineering Conference from 1968 probably had quite a different notion of implementing TDD than we have today. Their implementation of TDD was probably far away from the automated unit-tests we strive for today. Yet they had the same mindset that we pursue today.&lt;/p&gt;&lt;p&gt;When Dijkstra was already preaching TDD, the xUnit-Frameworks were not to be born for another 26 years.&lt;/p&gt;&lt;p&gt;&lt;img style="float: right; margin-left: 10px;" src="http://lh6.ggpht.com/-56GTA7lZiAc/TklGtJbQfAI/AAAAAAAABCg/GFlxfwIp7MI/totem.jpg?imgmax=800" border="0" alt="Totem" width="180" /&gt;&lt;/p&gt;&lt;p&gt;In the last few years I have come to the conclusion, that the most important aspect of TDD is the mindset that comes along with TDD.&lt;/p&gt;&lt;p&gt;This mindset is much more valuable than any tool, technology or methodology that is commonly associated with TDD today.&lt;/p&gt;&lt;p&gt;With the right mindset we can practice TDD even in environments where we can't write unit-tests (Lo and behold, I am even thinking of SharePoint Development). TDD does not have to be realized by writing code. Nor is writing unit-test always the best way to implement TDD.&lt;/p&gt;&lt;p&gt;With the right mindset we can even practice TDD with manual testing!&lt;/p&gt;&lt;p&gt;The actual implementation of the test is rather a detail of TDD. Much more important is the mindset of practicing &lt;a href="http://c2.com/cgi/wiki?BabySteps"&gt;&lt;strong&gt;baby steps&lt;/strong&gt;&lt;/a&gt;, the mindset of &lt;strong&gt;gaining insights and evolving through rapid feedback&lt;/strong&gt;, the mindset of leveraging &lt;strong&gt;trial &amp;amp; error as a methodology&lt;/strong&gt;, where errors are not failures but valuable insights that guide the evolution of the project.&lt;/p&gt;&lt;p&gt;This mindset is the reason why children in kindergarden are scoring better than MBA graduates in the &lt;a href="http://marshmallowchallenge.com/Welcome.html"&gt;Marshmallow Challenge&lt;/a&gt;:&lt;/p&gt;&lt;div style="text-align: center;"&gt;&lt;object width="380" height="290"&gt;&lt;param name="movie" value="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" /&gt;&lt;param name="allowFullScreen" value="true" /&gt;&lt;param name="allowScriptAccess" value="always" /&gt;&lt;param name="wmode" value="transparent" /&gt;&lt;param name="bgColor" value="#ffffff" /&gt;&lt;param name="flashvars" value="vu=http://video.ted.com/talk/stream/2010U/Blank/TomWujec_2010U-320k.mp4&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/TomWujec-2010U.embed_thumbnail.jpg&amp;amp;vw=360&amp;amp;vh=201&amp;amp;ap=0&amp;amp;ti=837&amp;amp;lang=&amp;amp;introDuration=15330&amp;amp;adDuration=4000&amp;amp;postAdDuration=830&amp;amp;adKeys=talk=tom_wujec_build_a_tower;year=2010;theme=a_taste_of_ted2010;theme=not_business_as_usual;event=TED2010;tag=Business;tag=Culture;tag=Design;tag=Entertainment;tag=collaboration;tag=psychology;&amp;amp;preAdTag=tconf.ted/embed;tile=1;sz=360x201;" /&gt;&lt;embed type="application/x-shockwave-flash" width="380" height="290" src="http://video.ted.com/assets/player/swf/EmbedPlayer.swf" pluginspace="http://www.macromedia.com/go/getflashplayer" wmode="transparent" bgcolor="#ffffff" allowfullscreen="true" allowscriptaccess="always" flashvars="vu=http://video.ted.com/talk/stream/2010U/Blank/TomWujec_2010U-320k.mp4&amp;amp;su=http://images.ted.com/images/ted/tedindex/embed-posters/TomWujec-2010U.embed_thumbnail.jpg&amp;amp;vw=360&amp;amp;vh=201&amp;amp;ap=0&amp;amp;ti=837&amp;amp;lang=&amp;amp;introDuration=15330&amp;amp;adDuration=4000&amp;amp;postAdDuration=830&amp;amp;adKeys=talk=tom_wujec_build_a_tower;year=2010;theme=a_taste_of_ted2010;theme=not_business_as_usual;event=TED2010;tag=Business;tag=Culture;tag=Design;tag=Entertainment;tag=collaboration;tag=psychology;&amp;amp;preAdTag=tconf.ted/embed;tile=1;sz=360x201;"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;p&gt;And it is our &lt;a href="http://www.ted.com/talks/tim_harford.html"&gt;God Complex&lt;/a&gt; that prevents us from keeping that mindset.&lt;/p&gt;&lt;p&gt;But when we embrace this mindset, we realize that it is applicable in many other areas than writing software. It is applicable to any goals that we try to accomplish in &lt;em&gt;unordered domains&lt;/em&gt;, where the result of an action is literally unknowable. Internet startups are the perfect example for this: In a lot of cases it is he best option to ship something, and then respond to the market reaction. The crucial requirement for this fast-feedback cycle is to establish a &lt;em&gt;"safe-fail"&lt;/em&gt; environment, where we can embrace failure and leverage failures to guide us to success.&lt;/p&gt;&lt;p&gt;Steve Freeman writes about &lt;a href="http://www.higherorderlogic.com/2011/04/tdd-embracing-failure/"&gt;Test-Driven Development and Embracing Failure&lt;/a&gt; and Obie Fernandez writes about &lt;a href="http://blog.obiefernandez.com/content/2011/05/the-dark-side-beckons.html"&gt;Testing against business metrics&lt;/a&gt; that has nothing to do with code.&lt;/p&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-3789801173700713954?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Tuv9JIniqwmfMKbPZz5HloyAkJ8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Tuv9JIniqwmfMKbPZz5HloyAkJ8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Tuv9JIniqwmfMKbPZz5HloyAkJ8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Tuv9JIniqwmfMKbPZz5HloyAkJ8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=7UEvtWioU30:5Tcp4HHq84I:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=7UEvtWioU30:5Tcp4HHq84I:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=7UEvtWioU30:5Tcp4HHq84I:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=7UEvtWioU30:5Tcp4HHq84I:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=7UEvtWioU30:5Tcp4HHq84I:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=7UEvtWioU30:5Tcp4HHq84I:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=7UEvtWioU30:5Tcp4HHq84I:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=7UEvtWioU30:5Tcp4HHq84I:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=7UEvtWioU30:5Tcp4HHq84I:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=7UEvtWioU30:5Tcp4HHq84I:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=7UEvtWioU30:5Tcp4HHq84I:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=7UEvtWioU30:5Tcp4HHq84I:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=7UEvtWioU30:5Tcp4HHq84I:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/7UEvtWioU30" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/3789801173700713954/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=3789801173700713954" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/3789801173700713954?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/3789801173700713954?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/7UEvtWioU30/test-driven-it-is-mindset-not-tool.html" title="Test Driven: It is the mindset not the tool!" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-56GTA7lZiAc/TklGtJbQfAI/AAAAAAAABCg/GFlxfwIp7MI/s72-c/totem.jpg?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/08/test-driven-it-is-mindset-not-tool.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cGQ3w8fyp7ImA9WhdRE0w.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-2243925151746285709</id><published>2011-08-02T20:46:00.001+02:00</published><updated>2011-08-02T20:50:22.277+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-02T20:50:22.277+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="quote" /><title>Quotes of the Week: From NDC 2011</title><content type="html">

&lt;div style="width: 400px"&gt;&lt;p&gt;&lt;img style="margin: 0px 0px 10px 10px;" src="http://lh4.ggpht.com/_X3kaawac_g4/S8uT4AW4WKI/AAAAAAAAA0I/PbqnbnH3BdI/quotes2.jpg?imgmax=800" border="0" alt="quotes2.jpg" width="150" align="right" /&gt;&lt;/p&gt;
My favorite quotes from &lt;a href="http://www.ndc2011.no/"&gt;NDC 2011&lt;/a&gt;:
&lt;br/&gt;&lt;br/&gt;&lt;div style="width: 200px;"&gt;&lt;blockquote style="font-size: 14px;"&gt;&lt;p&gt;There is no measurement for technical dept. But the closest measurement is lines of code.&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- James Shore&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote style="font-size: 14px;"&gt;It is all very complicated but not magical!&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- John Skeet&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote style="font-size: 14px;"&gt;Their "one-click-deploy" involved a telephone call, copy-paste sql-scripts and chanting &amp; praying.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- Gojko Adzic&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote style="font-size: 14px;"&gt;Software development is about creating something specific not something generic.
&lt;br/&gt;
(Else you can send the customer a virtual machine, that´s generic.)
&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- Kevlin Henney&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote style="font-size: 14px;"&gt;Take your last shipping project: Probably you could power-type all the code in one day … How do we spend our time?&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- Douglas Crockford&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote style="font-size: 14px;"&gt;About productivity: How good are you in thinking while typing?&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- Kevlin Henney&lt;/a&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;blockquote style="font-size: 14px;"&gt;If you have git, you have source control - if you have TFS, you have my condolences.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- Hadi Hariri&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt;If you like this, follow me on twitter ...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-2243925151746285709?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/sqMjLnwMYmP07fwZiVGS9VHiCr4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sqMjLnwMYmP07fwZiVGS9VHiCr4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/sqMjLnwMYmP07fwZiVGS9VHiCr4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/sqMjLnwMYmP07fwZiVGS9VHiCr4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=gyy_yOuIjaQ:dx7aRfa3_4o:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=gyy_yOuIjaQ:dx7aRfa3_4o:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=gyy_yOuIjaQ:dx7aRfa3_4o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=gyy_yOuIjaQ:dx7aRfa3_4o:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=gyy_yOuIjaQ:dx7aRfa3_4o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=gyy_yOuIjaQ:dx7aRfa3_4o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=gyy_yOuIjaQ:dx7aRfa3_4o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=gyy_yOuIjaQ:dx7aRfa3_4o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=gyy_yOuIjaQ:dx7aRfa3_4o:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=gyy_yOuIjaQ:dx7aRfa3_4o:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=gyy_yOuIjaQ:dx7aRfa3_4o:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=gyy_yOuIjaQ:dx7aRfa3_4o:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=gyy_yOuIjaQ:dx7aRfa3_4o:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/gyy_yOuIjaQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/2243925151746285709/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=2243925151746285709" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2243925151746285709?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2243925151746285709?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/gyy_yOuIjaQ/quotes-of-week-from-ndc-2011.html" title="Quotes of the Week: From NDC 2011" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_X3kaawac_g4/S8uT4AW4WKI/AAAAAAAAA0I/PbqnbnH3BdI/s72-c/quotes2.jpg?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/08/quotes-of-week-from-ndc-2011.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYCQX06cSp7ImA9WhRSEUQ.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-8278813223669593299</id><published>2011-07-21T20:38:00.001+02:00</published><updated>2011-11-13T14:49:20.319+01:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-13T14:49:20.319+01:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="programming" /><title>Entering the age of JVM Language Wars?</title><content type="html">&lt;img alt="IMG 0157" border="0" height="182" src="http://lh5.ggpht.com/-XWdUbtJS5d0/TihyD0dZ53I/AAAAAAAABCM/GlPmJtg0UWk/IMG_0157.JPG?imgmax=800" style="float: right; margin-bottom: 8px; margin-left: 8px;" width="200" /&gt;&lt;br /&gt;
After the &lt;a href="http://en.wikipedia.org/wiki/Browser_wars"&gt;Browser Wars&lt;/a&gt; it seems that we are entering an age of the JVM Language Wars. It seems that everybody who has spent a decent amount of time with Java suddenly feels the need to&amp;nbsp;create the "next big language for the JVM", the successor of Java.&lt;br /&gt;
&lt;br /&gt;
The most recent incarnations of this symptom are:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;JetBrains creates &lt;a href="http://confluence.jetbrains.net/display/Kotlin/Welcome"&gt;Kotlin&lt;/a&gt;,&amp;nbsp;a "&lt;i&gt;statically-typed JVM-targeted programming language&lt;/i&gt;"&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.ceylonproject.com/"&gt;Red Hat develops Ceylon&lt;/a&gt;, a "&lt;i&gt;Java based language, Taking Java to the next level&lt;/i&gt;" &lt;span style="font-size: 10px;"&gt;(&lt;a href="http://in.relation.to/Bloggers/Ceylon"&gt;Gavins post&lt;/a&gt;, &lt;a href="http://en.wikipedia.org/wiki/Ceylon_Project"&gt;wikipedia entry&lt;/a&gt;, &lt;a href="http://www.infoq.com/presentations/ceylon"&gt;InfoQ presentation&lt;/a&gt;)&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
I am a bit puzzled at those projects... ok, Java as a language might be outdated and cumbersome nowadays but it is not as if there are no modern alternatives... &lt;a href="http://groovy.codehaus.org/"&gt;Groovy&lt;/a&gt;, &lt;a href="http://www.jruby.org/"&gt;JRuby&lt;/a&gt; and &lt;a href="http://www.scala-lang.org/"&gt;Scala&lt;/a&gt; come immediately to mind ...&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update:&lt;/b&gt; @bertolami &lt;a href="http://twitter.com/#%21/bertolami/status/94304250854780928"&gt;asks the interesting questions&lt;/a&gt;:&amp;nbsp;&lt;b&gt;Will the JVM benefit or suffer from this? Will the Java community benefit?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I wonder if the language landscape on the JVM will present itself similar as the &lt;a href="http://blog.jonasbandi.net/2009/12/java-vs-net-web-frameworks.html"&gt;Java webframeworks landscape today&lt;/a&gt;... somehow I doubt this, because Java is mostly routed in&lt;i&gt; The Enterprise(tm)&lt;/i&gt; nowadays, and &lt;i&gt;The Enterprise(tm)&lt;/i&gt; somehow associates Java with their IT-strategy. Changing that strategy is only done at a glacial pace, therefore adoption of new Java languages will only happen in niches and a lot of those niches are already taken by other modern languages.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update: &lt;/b&gt;A nice post about this:&amp;nbsp;&lt;a href="http://www.dzone.com/links/r/scala_kotlin_ceylon_lets_start_by_being_honest.html"&gt;Scala, Kotlin, Ceylon... let's start by being honest&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Update 2011-11-13:&lt;/b&gt; Just extending the list:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt; &lt;a href="http://www.mirah.org/"&gt;Mirah&lt;/a&gt;, a new way of looking at JVM languages&lt;/li&gt;
&lt;li&gt;&lt;a href="http://www.eclipse.org/Xtext/xtend/"&gt;Eclipse Xtend&lt;/a&gt;, a language made for Java developers&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div style="align: right; clear: right; font-size: 10px;"&gt;
&lt;a href="http://twitter.com/jbandi"&gt;&lt;img align="left" alt="http://www.google.com/s2/favicons?domain=twitter.com" border="0" height="13px" src="http://www.google.com/s2/favicons?domain=twitter.com" style="border: none; margin: 0px 0px 0px 0px;" /&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-8278813223669593299?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lwVtBdqVhwino5jo8QR9PZ9TTWM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lwVtBdqVhwino5jo8QR9PZ9TTWM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lwVtBdqVhwino5jo8QR9PZ9TTWM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lwVtBdqVhwino5jo8QR9PZ9TTWM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=lupeIuee1SE:Ihu94mHrWZI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=lupeIuee1SE:Ihu94mHrWZI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=lupeIuee1SE:Ihu94mHrWZI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=lupeIuee1SE:Ihu94mHrWZI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=lupeIuee1SE:Ihu94mHrWZI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=lupeIuee1SE:Ihu94mHrWZI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=lupeIuee1SE:Ihu94mHrWZI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=lupeIuee1SE:Ihu94mHrWZI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=lupeIuee1SE:Ihu94mHrWZI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=lupeIuee1SE:Ihu94mHrWZI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=lupeIuee1SE:Ihu94mHrWZI:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=lupeIuee1SE:Ihu94mHrWZI:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=lupeIuee1SE:Ihu94mHrWZI:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/lupeIuee1SE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/8278813223669593299/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=8278813223669593299" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8278813223669593299?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/8278813223669593299?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/lupeIuee1SE/entering-age-of-jvm-language-wars.html" title="Entering the age of JVM Language Wars?" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/-XWdUbtJS5d0/TihyD0dZ53I/AAAAAAAABCM/GlPmJtg0UWk/s72-c/IMG_0157.JPG?imgmax=800" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/07/entering-age-of-jvm-language-wars.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4GRn8zcSp7ImA9WhdQE08.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-2909059931160974520</id><published>2011-07-20T01:10:00.001+02:00</published><updated>2011-08-14T14:12:07.189+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-14T14:12:07.189+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="methodology" /><title>Feature Branching vs. Continuous Integration</title><content type="html">&lt;p&gt;&lt;img style="float: right; margin-left: 5px; margin-bottom: 5px;" src="http://lh5.ggpht.com/_X3kaawac_g4/TYpaD2R7_uI/AAAAAAAAA8s/7OcNJrvtwXM/Screen%20shot%202011-02-22%20at%2010.57.24%20PM.png?imgmax=800" border="0" alt="Monkey thinker" width="180" /&gt;&lt;/p&gt;&lt;p&gt;I &lt;a href="http://blog.jonasbandi.net/2011/03/interesting-continuous-integration-vs.html"&gt;posted my thoughts&lt;/a&gt; to the topic of &lt;a href="http://martinfowler.com/bliki/FeatureBranch.html"&gt;Feature Branching&lt;/a&gt; vs. &lt;a href="http://en.wikipedia.org/wiki/Continuous_integration"&gt;Continuous Integration&lt;/a&gt; some month ago.&lt;/p&gt;&lt;p&gt;Now &lt;a href="http://www.thoughtworks.com/perspectives/30-06-2011-continuous-delivery"&gt;here is a very good video interview where Mike Mason and Martin Fowler&lt;/a&gt; characterize Feature Branching and the problems that may result from it and where they see that Feature Branching is applicable and where it is not recommended.&lt;/p&gt;&lt;p&gt;And &lt;a href="http://sarahtaraporewalla.com/design/experience-report-branch-by-feature/"&gt;here is an experience report by Sarah Taraporewalla&lt;/a&gt; that describes sarcastically the problems you get into with Feature Branching.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;The conclusion I take away from that:  &lt;br /&gt;&lt;/strong&gt;Feature Branching is &lt;strong&gt;good for loosely coupled collaboration&lt;/strong&gt; typically found in open source projects. Feature Branching is&lt;strong&gt; not recommended for dedicated teams with tight collaboration&lt;/strong&gt;, which is the type of collaboration you are striving for in a typical Scrum project.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;strong&gt;Update 2011-08-14:&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Interesting points from the above interview are:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;The pain from merging increases exponentially with the age of your branch.&lt;/li&gt;&lt;li&gt;In practice feature branches discourages refactoring: You are not improving the core codebase when working on a new feature, because you are afraid of merging those core refactorings back later. You rather build your feature around the existing core, as it is, living with its shortcomings...&lt;/li&gt;&lt;li&gt;Alternatives are &lt;a href="http://martinfowler.com/bliki/FeatureToggle.html"&gt;feature toggles&lt;/a&gt; and &lt;a href="http://martinfowler.com/bliki/BranchByAbstraction.html"&gt;branch by abstraction&lt;/a&gt; (archtiectural branching)&lt;/li&gt;&lt;li&gt;Using feature branches for organizational control is a sign of a dysfuntional environment. If you don't trust your team to commit frequently, then you have a problem that can't be solved with a version control system.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Related is the article by Martin Fowler describing &lt;a href="http://martinfowler.com/bliki/SemanticConflict.html"&gt;Semantic Conflicts&lt;/a&gt;. The main conclusion there is that tools only can support in merging &lt;em&gt;textual conflicts &lt;/em&gt;but they can never solve &lt;em&gt;semantic conflicts&lt;/em&gt;.&lt;/p&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;/div&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;br /&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-2909059931160974520?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AFVHZXbekNVSuCLqPv6f3L9ytXU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AFVHZXbekNVSuCLqPv6f3L9ytXU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AFVHZXbekNVSuCLqPv6f3L9ytXU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AFVHZXbekNVSuCLqPv6f3L9ytXU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PzKM5BSglLA:EX6MxgNu-7Y:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=PzKM5BSglLA:EX6MxgNu-7Y:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PzKM5BSglLA:EX6MxgNu-7Y:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PzKM5BSglLA:EX6MxgNu-7Y:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PzKM5BSglLA:EX6MxgNu-7Y:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=PzKM5BSglLA:EX6MxgNu-7Y:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PzKM5BSglLA:EX6MxgNu-7Y:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=PzKM5BSglLA:EX6MxgNu-7Y:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PzKM5BSglLA:EX6MxgNu-7Y:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=PzKM5BSglLA:EX6MxgNu-7Y:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PzKM5BSglLA:EX6MxgNu-7Y:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PzKM5BSglLA:EX6MxgNu-7Y:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=PzKM5BSglLA:EX6MxgNu-7Y:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/PzKM5BSglLA" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/2909059931160974520/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=2909059931160974520" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2909059931160974520?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/2909059931160974520?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/PzKM5BSglLA/feature-branching-vs-continuous.html" title="Feature Branching vs. Continuous Integration" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_X3kaawac_g4/TYpaD2R7_uI/AAAAAAAAA8s/7OcNJrvtwXM/s72-c/Screen%20shot%202011-02-22%20at%2010.57.24%20PM.png?imgmax=800" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/07/feature-branching-vs-continuous.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEACSXs9fCp7ImA9WhdTGUw.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-634952563078173961</id><published>2011-07-17T16:21:00.001+02:00</published><updated>2011-07-17T16:26:08.564+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-17T16:26:08.564+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="quote" /><title>Quotes of the Week: JavaScript</title><content type="html">&lt;p&gt;&lt;img style="margin: 0px 0px 10px 10px;" src="http://lh4.ggpht.com/_X3kaawac_g4/S8uT4AW4WKI/AAAAAAAAA0I/PbqnbnH3BdI/quotes2.jpg?imgmax=800" border="0" alt="quotes2.jpg" width="110" align="right" /&gt;&lt;/p&gt;&lt;div style="width: 250px;"&gt;&lt;blockquote style="font-size: 14px;"&gt;&lt;p&gt;A very large group of developers still thinks of JavaScript as a joke.&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://davybrion.com/blog/2011/06/you-might-want-to-start-taking-javascript-seriously/"&gt;davy brion&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div style="width: 400px; clear: both;"&gt;&lt;blockquote style="font-size: 14px;"&gt;JavaScript is Assembly Language for the Web.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://www.hanselman.com/blog/JavaScriptIsAssemblyLanguageForTheWebSematicMarkupIsDeadCleanVsMachinecodedHTML.aspx"&gt;Scott Hanselman&lt;/a&gt;&lt;/div&gt;&lt;blockquote style="font-size: 14px;"&gt;JavaScript is the ugly duckling among programming languages. It takes time to embrace it and discover its beauty.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://davybrion.com/blog/2011/06/you-might-want-to-start-taking-javascript-seriously/"&gt;﻿Slo&lt;/a&gt;&lt;/div&gt;&lt;blockquote style="font-size: 14px;"&gt;&lt;p&gt;Javascript is fast becoming a serious contender to Ruby and JVM languages.&lt;/p&gt;&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://groups.google.com/group/cukes/msg/bde694a6aa624cba"&gt;aslak hellesoy&lt;/a&gt;&lt;/div&gt;&lt;blockquote style="font-size: 14px;"&gt;After almost a decade of the ruby community being the web innovation lead, it really looks like the javascript community is taking over.&lt;/blockquote&gt;&lt;div style="text-align: right;"&gt;- &lt;a href="http://twitter.com/#!/bertolami/status/89231231555862528"&gt;@bertolami&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt; &lt;/p&gt;&lt;div style="align: right; font-size: 10px; clear: right;"&gt;&lt;p&gt;&lt;a href="http://twitter.com/jbandi"&gt;&lt;img style="margin: 0px 0px 0px 0px; border: none;" src="http://www.google.com/s2/favicons?domain=twitter.com" border="0" alt="http://www.google.com/s2/favicons?domain=twitter.com" height="13px" align="left" /&gt;If you like this, follow me on twitter ...&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-634952563078173961?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cvzzW4I4NKhB-XVbnm-ocPfubiE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cvzzW4I4NKhB-XVbnm-ocPfubiE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cvzzW4I4NKhB-XVbnm-ocPfubiE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cvzzW4I4NKhB-XVbnm-ocPfubiE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=3mQUnWU-GVk:j9ZwOa_4NsI:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=3mQUnWU-GVk:j9ZwOa_4NsI:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=3mQUnWU-GVk:j9ZwOa_4NsI:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=3mQUnWU-GVk:j9ZwOa_4NsI:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=3mQUnWU-GVk:j9ZwOa_4NsI:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=3mQUnWU-GVk:j9ZwOa_4NsI:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=3mQUnWU-GVk:j9ZwOa_4NsI:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=3mQUnWU-GVk:j9ZwOa_4NsI:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=3mQUnWU-GVk:j9ZwOa_4NsI:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=3mQUnWU-GVk:j9ZwOa_4NsI:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=3mQUnWU-GVk:j9ZwOa_4NsI:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=3mQUnWU-GVk:j9ZwOa_4NsI:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=3mQUnWU-GVk:j9ZwOa_4NsI:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/3mQUnWU-GVk" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/634952563078173961/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=634952563078173961" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/634952563078173961?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/634952563078173961?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/3mQUnWU-GVk/quotes-of-week-javascript.html" title="Quotes of the Week: JavaScript" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_X3kaawac_g4/S8uT4AW4WKI/AAAAAAAAA0I/PbqnbnH3BdI/s72-c/quotes2.jpg?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/07/quotes-of-week-javascript.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkMFSHk5eip7ImA9WhdTF08.&quot;"><id>tag:blogger.com,1999:blog-5763764290649132593.post-6703640369407755051</id><published>2011-07-14T23:09:00.005+02:00</published><updated>2011-07-15T13:13:39.722+02:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-15T13:13:39.722+02:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="kindle" /><title>Kindle = Free Internet Access</title><content type="html">&lt;img alt="Kindle" border="0" src="http://lh6.ggpht.com/-BOlLSElnCig/Tejp2OGx-uI/AAAAAAAAA_I/bdlr_EJHPWQ/Kindle.jpg?imgmax=800" style="float: right; margin-bottom: 5px; margin-left: 10px;" width="200" /&gt;
&lt;a href="http://blog.jonasbandi.net/2011/05/i-am-ready-summer-sun-and-kindle.html"&gt;Recently&lt;/a&gt; I bought a &lt;a href="http://www.amazon.com/Kindle-Wireless-Reader-3G-Wifi-Graphite/dp/B002FQJT3Q"&gt;Kindle 3G&lt;/a&gt;. I am living in Switzerland and I bought it from Amazon.com.&lt;br /&gt;
&lt;br /&gt;
Amazon offers free internet access with this device over the cellular network. Everywhere, globally. The goal is that you can access the Kindle shop and buy books everywhere on the world.&lt;br /&gt;
&lt;br /&gt;
The Kindle has also a built in web browser that you can use to access the internet. &lt;br /&gt;
Now the question is: &lt;b&gt;Can you browse the internet for free everywhere on the world with your Kindle? &lt;/b&gt;&lt;br /&gt;
This is not completely clear from Amazons product description and there are different contradicting reports floating on the internet. To help to clarify the topic here my experience:&lt;br /&gt;
&lt;br /&gt;
Last month I was in Norway, Singapore, Bali and Lombok and &lt;b&gt;everywhere I could access the internet for free without a problem&lt;/b&gt;. It was not always a 3G connection, it worked also over EDGE and GPRS.&lt;br /&gt;
&lt;br /&gt;
Of course the browser experience on the Kindle is not comparable with other mobile devices: It is quite slow and cursor navigation has to be done with the cursor buttons. Also typing on the kindle keyboard is quite cumbersome.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Nevertheless I think this is an invaluable feature of the Kindle!&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
I was primary using Gmail, Google Reader and Twitter. Through their mobile interfaces those sites are definitely usable on the Kindle and this was a comfortable (and cheap) way to stay&amp;nbsp;at least minimally connected throughout my vacation.&lt;br /&gt;
&lt;div style="align: right; clear: right; font-size: 10px;"&gt;
&lt;br /&gt;
&lt;a href="http://twitter.com/jbandi"&gt;&lt;img align="left" alt="http://www.google.com/s2/favicons?domain=twitter.com" border="0" height="13px" src="http://www.google.com/s2/favicons?domain=twitter.com" style="border: none; margin: 0px 0px 0px 0px;" /&gt; If you like this, follow me on twitter...&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5763764290649132593-6703640369407755051?l=blog.jonasbandi.net' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/n8dut0h7dGDADpc6PYLBQhK2f3M/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n8dut0h7dGDADpc6PYLBQhK2f3M/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/n8dut0h7dGDADpc6PYLBQhK2f3M/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/n8dut0h7dGDADpc6PYLBQhK2f3M/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=6YRbwGEmAuM:fHLiK5hUfxU:4cEx4HpKnUU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=6YRbwGEmAuM:fHLiK5hUfxU:4cEx4HpKnUU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=6YRbwGEmAuM:fHLiK5hUfxU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=6YRbwGEmAuM:fHLiK5hUfxU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=6YRbwGEmAuM:fHLiK5hUfxU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=6YRbwGEmAuM:fHLiK5hUfxU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=6YRbwGEmAuM:fHLiK5hUfxU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=6YRbwGEmAuM:fHLiK5hUfxU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=6YRbwGEmAuM:fHLiK5hUfxU:gIN9vFwOqvQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?i=6YRbwGEmAuM:fHLiK5hUfxU:gIN9vFwOqvQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=6YRbwGEmAuM:fHLiK5hUfxU:cGdyc7Q-1BI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=cGdyc7Q-1BI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=6YRbwGEmAuM:fHLiK5hUfxU:G79ilh31hkQ"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=G79ilh31hkQ" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/closed-loop?a=6YRbwGEmAuM:fHLiK5hUfxU:Y59mnZtVT5U"&gt;&lt;img src="http://feeds.feedburner.com/~ff/closed-loop?d=Y59mnZtVT5U" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/closed-loop/~4/6YRbwGEmAuM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://blog.jonasbandi.net/feeds/6703640369407755051/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5763764290649132593&amp;postID=6703640369407755051" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/6703640369407755051?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5763764290649132593/posts/default/6703640369407755051?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/closed-loop/~3/6YRbwGEmAuM/kindle-free-internet-access.html" title="Kindle = Free Internet Access" /><author><name>Jonas Bandi</name><uri>https://profiles.google.com/112227752763576523969</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh3.googleusercontent.com/-CWxpLKpHYgs/AAAAAAAAAAI/AAAAAAAABGw/csQG8H1UUbo/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/-BOlLSElnCig/Tejp2OGx-uI/AAAAAAAAA_I/bdlr_EJHPWQ/s72-c/Kindle.jpg?imgmax=800" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://blog.jonasbandi.net/2011/07/kindle-free-internet-access.html</feedburner:origLink></entry></feed>

