<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog.Project13.pl &#187; fun</title>
	<atom:link href="http://www.blog.project13.pl/index.php/tag/fun/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.blog.project13.pl</link>
	<description>The Blog of a Coder</description>
	<lastBuildDate>Sun, 05 Feb 2012 02:28:52 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>[conference] Deep Dive Into RoboGuice @ Cracow.Mobi</title>
		<link>http://www.blog.project13.pl/index.php/project13/1389/conference-deep-dive-into-roboguice-cracow-mobi/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/1389/conference-deep-dive-into-roboguice-cracow-mobi/#comments</comments>
		<pubDate>Sat, 10 Dec 2011 00:12:54 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[android]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[polish]]></category>
		<category><![CDATA[Project13]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[di]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[guice]]></category>
		<category><![CDATA[ioc]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jsr330]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[slides]]></category>
		<category><![CDATA[tweets]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=1389</guid>
		<description><![CDATA[Today I have presented yet another *new* Android Talk at the Cracow.Mobi conference. This time I focused on RoboGuice, and Guice in general. As from what I&#8217;ve seen a lot of android apps still get written without dependency injection &#8211; which saddens me &#8211; static global variables or weird helpers still come up in apps [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.cracow.mobi" onclick="urchinTracker('/outgoing/www.cracow.mobi?referer=');"><img class="alignright size-medium wp-image-1413" style="background: white; padding: 5px; margin: 5px;" title="logo" src="http://www.blog.project13.pl/wp-content/uploads/2011/12/logo-300x107.png" alt="" width="150" height="70" /></a><br />
Today I have presented yet another *new* <strong>Android</strong> Talk at the <a href="http://cracow.mobi" onclick="urchinTracker('/outgoing/cracow.mobi?referer=');">Cracow.Mobi</a> conference. This time I focused on <a href="http://code.google.com/p/roboguice/" onclick="urchinTracker('/outgoing/code.google.com/p/roboguice/?referer=');"><strong>RoboGuice</strong></a>, and Guice in general.</p>
<p>As from what I&#8217;ve seen a lot of android apps still get written without dependency injection &#8211; which saddens me &#8211; static global variables or weird helpers still come up in apps I do security / performance / code quality audits for &#8211; so I thought that&#8217;s something I need to teach the general audience.</p>
<p>The conference is a 2 day event. Organized by 2 students from Politechnika Krakowska (and a few of their helpers of course), and it&#8217;s a free event. We, as <a href="http://www.llp.pl" onclick="urchinTracker('/outgoing/www.llp.pl?referer=');">Lunar Logic Polska</a>, were proud to be one of the main sponsors of the event. I also personally helped out with a few tips etc, as part of the <a href="http://www.java.pl" onclick="urchinTracker('/outgoing/www.java.pl?referer=');">PolishJUG</a> and <a href="http://krakow.gtug.pl" onclick="urchinTracker('/outgoing/krakow.gtug.pl?referer=');">KrakówGTUG</a>. We also got some swag from the polish Google office which was a really nice gesture from them&#8230; :-) <em>But back to the presentation! Here it is:</em></p>
<p><iframe id="android-conference-deep-dive" src="http://www.blog.project13.pl/wp-content/uploads/2011/12/presentation.html" width="100%" height="450"></iframe></p>
<p><script type="text/javascript">// < ![CDATA[
// < ![CDATA[
// < ![CDATA[
(function() {
function resizeMe(){
   var iFrame =  document.getElementById('android-conference-deep-dive');
   var iFrameBody;
   if ( iFrame.contentDocument ) 
   { // FF
     iFrameBody = iFrame.contentDocument.getElementsByTagName('body')[0];
   }
   else if ( iFrame.contentWindow ) 
   { // IE
     iFrameBody = iFrame.contentWindow.document.getElementsByTagName('body')[0];
   }
 iFrameBody.style.cssText = "zoom: 0.5; -moz-transform: scale(0.5); -moz-transform-origin: 0 0;"
 }
resizeMe();
setTimeout(resizeMe, 500);
})();
// ]]&gt;</script></p>
<p><strong>You can actually use RIGHT/LEFT and H controls in the above iframe to go through the presentation!</strong> <a title="Sources for it are available on my github" href="https://github.com/ktoso/cracow-mobi-android-di" target="_blank" onclick="urchinTracker('/outgoing/github.com/ktoso/cracow-mobi-android-di?referer=');">Sources for it are available on my github</a>.</p>
<p><a href="http://www.blog.project13.pl/wp-content/uploads/2011/12/awesome_tweet_thanks.png"><img class="aligncenter size-medium wp-image-1421" title="awesome_tweet_thanks" src="http://www.blog.project13.pl/wp-content/uploads/2011/12/awesome_tweet_thanks-300x122.png" alt="" width="400" /></a></p>
<p>From the audiences response etc, it seems that this one has been the cleanest, in the sense of &#8220;most fluent&#8221; presentation I&#8217;ve done up until today. I&#8217;ve also went into the code and showed off some minor details. <em>In <a href="http://www.jetbrains.com/idea/" onclick="urchinTracker('/outgoing/www.jetbrains.com/idea/?referer=');">Intellij IDEA 11</a> of course &#8211; be sure to check it out if you&#8217;re an Android (or any kind of) developer! The productivity boost it gives you is &#8220;zomg wooot!&#8221; ;-)</em></p>
<p>I also really enjoyed the talks I was able to attend, and met some old (and possibly quite a few new?) friends. Hope to see you all again!</p>
<p><strong>UPDATE!</strong></p>
<p>This post has been awesomely mentioned by @roboguice :-)</p>
<p><a href="http://www.blog.project13.pl/wp-content/uploads/2011/12/roboguice_cool_tweet.png"><img class="aligncenter size-medium wp-image-1429" title="roboguice_cool_tweet" src="http://www.blog.project13.pl/wp-content/uploads/2011/12/roboguice_cool_tweet-300x135.png" alt="" width="400" /></a></p>
<p><strong>UPDATE 2!</strong></p>
<p>An awesome insider tip from within LLP I recieved today:</p>
<blockquote><p>One guy told me that he was on an Android presentation by some long-haired guy and that it was really good, way better than the rest ;)</p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/1389/conference-deep-dive-into-roboguice-cracow-mobi/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>props2xls &#8211; GWT i18n Properties to Google Spreadsheet uploader</title>
		<link>http://www.blog.project13.pl/index.php/coding/808/props2xls-gwt-i18n-properties-to-google-spreadsheet-uploader/</link>
		<comments>http://www.blog.project13.pl/index.php/coding/808/props2xls-gwt-i18n-properties-to-google-spreadsheet-uploader/#comments</comments>
		<pubDate>Sun, 12 Sep 2010 02:12:41 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[groovy]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[jee]]></category>
		<category><![CDATA[project]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=808</guid>
		<description><![CDATA[!UPDATED POST &#8211; see bellow! As I&#8217;ve been recently given a task to &#8220;copy &#38; paste&#8221; all our properties into an specific document on google docs &#8211; that the client wanted to use in order to translate these properties into other languages. Of course I decided NOT to do this by hand &#8211; but script [...]]]></description>
			<content:encoded><![CDATA[<p><strong>!UPDATED POST &#8211; see bellow!</strong></p>
<p>As I&#8217;ve been recently given a task to &#8220;copy &amp; paste&#8221; all our properties into an specific document on <strong>google docs</strong> &#8211; that the client wanted to use in order to translate these properties into other languages. Of course <strong>I decided NOT to do this by hand</strong> &#8211; but script it &#8211; and that&#8217;s how <strong>props2xls </strong>came to be.</p>
<p>It&#8217;s an Groovy + Java app that traverses an directory searching for *.properties files, and then matches their names together &#8211; and extracts their Locale from the filenames. Next, those strings are uploaded into an specified Google Spreadsheet. You can use any google account + password anc choose which spreadsheet/worksheet should be filled out with your data.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="344" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://www.youtube.com/v/RneIPxq9qLs?fs=1&amp;hl=en_US&amp;color1=0x2b405b&amp;color2=0x6b8ab6" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="344" src="http://www.youtube.com/v/RneIPxq9qLs?fs=1&amp;hl=en_US&amp;color1=0x2b405b&amp;color2=0x6b8ab6" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<p>Note that the bottleneck here is the inserting into the Spreadsheet. <strong>This can be easily and very much improved as one may use Batch inserts. </strong>But as it&#8217;s just a proof-of-contept, I didn&#8217;t actually care for the time being ;-)<strong><br />
</strong></p>
<p>Here are some useful links if this post got you interested in this API:</p>
<ul>
<li><a href="http://code.google.com/p/gdata-java-client/" onclick="urchinTracker('/outgoing/code.google.com/p/gdata-java-client/?referer=');">http://code.google.com/p/gdata-java-client/</a></li>
<li><a href="http://code.google.com/apis/gdata/" onclick="urchinTracker('/outgoing/code.google.com/apis/gdata/?referer=');">http://code.google.com/apis/gdata/articles/java_client_lib.html#linux</a></li>
</ul>
<p>As all programmers&#8230; you&#8217;d also probably want to check out the source &#8211; <a href="http://github.com/ktoso/props2xls" onclick="urchinTracker('/outgoing/github.com/ktoso/props2xls?referer=');">so here (on github) it is</a>. But be warned, it&#8217;s very low quality as it&#8217;s just been hacked on for a few hours today at night (after midnight&#8230; ;-)).</p>
<p>&#8212;- the UPDATE &#8212;-</p>
<p>As you&#8217;ve probably noticed. In the first version I was using cell-by-cell updated. Each of them would fire an HttpRequest&#8230; And that is very expensive. So&#8230; I&#8217;ve rewritten some of the code to enable <strong>Batch updates</strong>. Goodle APIs support is quite well and I&#8217;m happy with the end result (as seen in the above movie).</p>
<p>There is a bug in the Java Client Library from 2.0 up though&#8230; When creating the SpreadsheetService use the following code, or you&#8217;ll <a href="//bug workaround! http://code.google.com/p/gdata-java-client/issues/detail?id=103">run into some weird bugs at runtime</a>:</p>
<div class="geshi no java">
<div class="head">//note line 3 here</div>
<ol>
<li class="li1">
<div class="de1">service = <span class="kw2">new</span> SpreadsheetService<span class="br0">&#40;</span><span class="st0">&quot;Props-2-Xls&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">service.<span class="me1">setUserCredentials</span><span class="br0">&#40;</span>username, password<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//bug workaround! http://code.google.com/p/gdata-java-client/issues/detail?id=103</span></div>
</li>
<li class="li1">
<div class="de1">service.<span class="me1">setProtocolVersion</span><span class="br0">&#40;</span>SpreadsheetService.<span class="me1">Versions</span>.<span class="me1">V1</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>PS: One might call it an proof-of-concent, as the code is quite ugly but it was written in about 3-4hours. And will probably spare us a lot of time if some client wants to translate our properties once again&#8230; ;-)</p>
<p>PPS: Did you know that on the <em>netbeans.edu.pl</em> website, I used the <strong>Google Data API for Picasa</strong> to develop <a href="http://www.netbeans.edu.pl/gallery" onclick="urchinTracker('/outgoing/www.netbeans.edu.pl/gallery?referer=');">the gallery</a>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/coding/808/props2xls-gwt-i18n-properties-to-google-spreadsheet-uploader/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android: The &#8220;right way&#8221; &#8211; dependency injection</title>
		<link>http://www.blog.project13.pl/index.php/fun/786/android-the-right-way-dependency-injection/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/786/android-the-right-way-dependency-injection/#comments</comments>
		<pubDate>Sat, 04 Sep 2010 22:56:08 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[dependency injection]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[guice]]></category>
		<category><![CDATA[java]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=786</guid>
		<description><![CDATA[At work we use an hacked &#8220;up in a few hours&#8221; webapp to track our working hours. And its basically &#8220;enough&#8221;&#8230; until I have to get out from work (while being in a hurry &#8211; which I always am) and simply turn off my PC before stopping the work timer&#8230; I&#8217;d then have to switch [...]]]></description>
			<content:encoded><![CDATA[<p>At work we use an hacked &#8220;up in a few hours&#8221; webapp to track our working hours. And its basically &#8220;enough&#8221;&#8230; until I have to get out from work (while being in a hurry &#8211; which I always am) and simply turn off my PC before stopping the work timer&#8230; I&#8217;d then have to switch my PC back on and just to click this one damn button to &#8220;stop working&#8221;. So&#8230; what can be done to improve this, and make my life easier, while not hacking up a totaly new version of this app with pc-off detection etc etc..? The anwser I found was really simple and long due &#8211; my first Android app :-)</p>
<p>Nuff said, let&#8217;s get down to some code. Basic android stuff is really easy to grasp and I wasn&#8217;t entirely &#8220;new&#8221; to it so coding went without big problems. One thing I missed was Dependency Injection &#8211; which I learned to love thanks to JEE &#8211; esp. Spring and Guice. But fear not &#8211; here&#8217;s how you can use DI &#8211; using Guice &#8211; in your android apps:</p>
<p>Just get the <a href="http://code.google.com/p/roboguice/" onclick="urchinTracker('/outgoing/code.google.com/p/roboguice/?referer=');">RoboGuice</a> and <a href="http://code.google.com/p/google-guice/downloads/list" onclick="urchinTracker('/outgoing/code.google.com/p/google-guice/downloads/list?referer=');">Google Guice</a> (the NO-AOP version) JARs and attach them to your project. Next, you&#8217;ll have to configure your &#8220;Application&#8221; in your<strong> AndroidManifest.xml:</strong></p>
<div class="geshi no xml">
<div class="head">// AndroidManifest.xml</div>
<ol>
<li class="li1">
<div class="de1"><span class="sc1">&amp;lt;</span>application android:name=&quot;pl.xsolve.verfluchter.guice.MyApplication&quot; &#8230; /<span class="sc1">&amp;gt;</span></div>
</li>
</ol>
</div>
<p>The &#8220;android:name&#8221; specifies the &#8220;Application&#8221; class your app will use. This will be used by android as the &#8220;Application&#8221; instance, which would otherwise be just an plain old android &#8220;Aplication&#8221; &#8211; this is an common class for all your Activities and Services, you can do some global setup stuff here etc. And thats wat we are going to do right now:</p>
<div class="geshi no java">
<div class="head">//pl.xsolve.verfluchter.guice.MyApplication</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">class</span> MyApplication <span class="kw2">extends</span> GuiceApplication <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @Override</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">protected</span> <span class="kw4">void</span> addApplicationModules<span class="br0">&#40;</span>List<span class="sy0">&amp;</span>lt<span class="sy0">;</span>Module<span class="sy0">&amp;</span>gt<span class="sy0">;</span> modules<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; modules.<span class="me1">add</span><span class="br0">&#40;</span><span class="kw2">new</span> MyModule<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>We&#8217;re extending the GuiceApplication here, it&#8217;s provided by RoboGuice and allows us to easily add GuiceModules to our app &#8211; which then will be used in dependency resolution as they would normaly in any DI framework. If your interested, thats the ClassHierarhy we hooked into:</p>
<p><a href="http://www.blog.project13.pl/wp-content/uploads/2010/09/application.png"><img class="aligncenter size-full wp-image-791" title="application uml" src="http://www.blog.project13.pl/wp-content/uploads/2010/09/application.png" alt="" width="403" height="357" /></a>Ok, done. Now let&#8217;s setup Guice. It&#8217;s pretty straight foreward we bind interfaces to implementations Guice should use. If needed we could do some more interesting bindings (by our own annotations etc) but I don&#8217;t need such setups in my app so just such an module is ok:</p>
<div class="geshi no java">
<div class="head">// pl.xsolve.verluchter.guice.MyModule</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw2">public</span> <span class="kw2">class</span> MyModule <span class="kw2">extends</span> AbstractAndroidModule <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @Override</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">protected</span> <span class="kw4">void</span> configure<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// core stuff</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; bind<span class="br0">&#40;</span>AutoSettings.<span class="kw2">class</span><span class="br0">&#41;</span>.<span class="me1">to</span><span class="br0">&#40;</span>AutoSettingsImpl.<span class="kw2">class</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// &#8230;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// this will allow us to @Inject SharedPreferences, what would be somewhat difficulr using standart methods :-)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; bindConstant<span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">annotatedWith</span><span class="br0">&#40;</span>SharedPreferencesName.<span class="kw2">class</span><span class="br0">&#41;</span>.<span class="me1">to</span><span class="br0">&#40;</span><span class="st0">&quot;pl.xsolve.verfluchter&quot;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<p>And you&#8217;re ready to go. Now you can inject all you want in constructors/setters/fields, for example like this:</p>
<div class="geshi no java">
<div class="head">// some class</div>
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @Inject</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> AutoSettingsImpl<span class="br0">&#40;</span>SharedPreferences preferences, PasswdUtil passwdUtil<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">this</span>.<span class="me1">preferences</span> = preferences<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">this</span>.<span class="me1">passwdUtil</span> = passwdUtil<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// &#8230;</span></div>
</li>
</ol>
</div>
<p>Please note that normally to obtain an SharedPreferences instance you would have to be in an Activity and get it like this:</p>
<div class="geshi no java">
<div class="head">// what we had to do before DI&#8230;</div>
<ol>
<li class="li1">
<div class="de1">SharedPreferences preferences = getSharedPreferences<span class="br0">&#40;</span>SETTINGS_NAME, <span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="co1">//the no-args version is also OK by the way&#8230;</span></div>
</li>
</ol>
</div>
<p>Another nice thing RoboGuice allows us to do is injecting relations from our view.xml&#8217;s into our Java sources &#8211; which reminds me a little of GWTs UiBinder, but a little reversed, as in GWT the view has all the ui:field=&#8221;blaField&#8221; and here we use R.id.* to pass and get those references&#8230; The overall feel and look stays quite the same I guess &#8211; variables linked to XML objects in the layour. :-) Anyways, here&#8217;s how this linking looks like without DI:</p>
<div class="geshi no java">
<div class="head">// notice the explicit casting that we MUST do, and also, we have to remember what this cast should be (not a problem with installij)</div>
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; TimePicker workingHourEndPicker<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @Override</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> onCreate<span class="br0">&#40;</span>Bundle state<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">super</span>.<span class="me1">onCreate</span><span class="br0">&#40;</span>state<span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; setContentView<span class="br0">&#40;</span>R.<span class="me1">layout</span>.<span class="me1">settings</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; workingHourEndPicker = <span class="br0">&#40;</span>TimePicker<span class="br0">&#41;</span> findViewById<span class="br0">&#40;</span>R.<span class="me1">id</span>.<span class="me1">working_hour_end_picker</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">// &#8230;</span></div>
</li>
</ol>
</div>
<p>And now the version using RoboGuice:</p>
<div class="geshi no java">
<div class="head">//yay for DI</div>
<ol>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @InjectView<span class="br0">&#40;</span>R.<span class="me1">id</span>.<span class="me1">working_hour_end_picker</span><span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; TimePicker workingHourEndPicker<span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; @Override</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw2">public</span> <span class="kw4">void</span> onCreate<span class="br0">&#40;</span>Bundle state<span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="co1">// &#8230;</span></div>
</li>
</ol>
</div>
<p>Much cleaner in my opinion, and it introduces less places we have to remember changing when our UI Object changes from an TextView ro an WebView for example&#8230; It&#8217;s also possible to inject Strings and other resources this way.</p>
<p>Oh and by the way, the project I took the code samples and learned all this stuff on is on <a href="http://github.com/ktoso/verfluchter-android/" onclick="urchinTracker('/outgoing/github.com/ktoso/verfluchter-android/?referer=');">my GitHub, here</a>.</p>
<hr />
update: <strong>This post has been </strong><a href="http://www.dworld.pl/blogEntry/blog/113" onclick="urchinTracker('/outgoing/www.dworld.pl/blogEntry/blog/113?referer=');"><strong>FEATURED on dworld.pl</strong></a>!Yay, I&#8217;m glad that it seems to be somewhat useful :-) Next up&#8230; more Android, some GWT and some MongoDB :-) Love working with GOOD APIs :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/786/android-the-right-way-dependency-injection/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[song] Every OS sucks!</title>
		<link>http://www.blog.project13.pl/index.php/fun/774/song-every-os-sucks/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/774/song-every-os-sucks/#comments</comments>
		<pubDate>Fri, 16 Jul 2010 23:01:20 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[freedom]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[music]]></category>
		<category><![CDATA[unix]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=774</guid>
		<description><![CDATA[An very amazing and beautiful song I just had to share with you guys! It&#8217;s by http://www.deadtroll.com/ so feel free to get over to their site if you liked it :-) It&#8217;s my second favourite GeekSong &#8211; I&#8217;ll link my favourite next week (by VoidMain and an special guest!)&#8230; :-) Download the MP3 file: three_dead_trolls_in_a_baggie-every_os_sucks.mp3 [...]]]></description>
			<content:encoded><![CDATA[<p>An very amazing and beautiful song I just had to share with you guys! It&#8217;s by <a href="http://www.deadtroll.com/" onclick="urchinTracker('/outgoing/www.deadtroll.com/?referer=');">http://www.deadtroll.com/</a> so feel free to get over to their site if you liked it :-) It&#8217;s my second favourite GeekSong &#8211; I&#8217;ll link my favourite next week (by VoidMain and an special guest!)&#8230; :-)</p>
<p>Download the MP3 file: <a href="http://www.up.project13.pl/files/three_dead_trolls_in_a_baggie-every_os_sucks.mp3" onclick="urchinTracker('/outgoing/www.up.project13.pl/files/three_dead_trolls_in_a_baggie-every_os_sucks.mp3?referer=');">three_dead_trolls_in_a_baggie-every_os_sucks.mp3</a></p>
<p>And here are the lyrics:</p>
<p><!-- p, li { white-space: pre-wrap; } --></p>
<blockquote><p><!--StartFragment-->(spoken introduction)</p>
<p>You see, I come from a time in the nineteen-hundred-and-seventies when computers were used for two things &#8211; to either go to the moon, or play Pong&#8230; nothing in between. Y&#8217;see, you didn&#8217;t need a fancy operating system to play Pong, and the men who went to the moon&#8211;God Bless &#8216;em&#8211;did it with no mouse, and a plain text-only black-and-white screen, and 32 kilobytes of RAM.</p>
<p>But then &#8217;round &#8217;bout the late 70&#8242;s, home computers started to do a little more than play Pong&#8230; very little more. Like computers started to play non-Pong-like games, and balance checkbooks, and why&#8230; you could play Zaxxon on your Apple II, or&#8230; write a book! All with a computer that had 32 kilobytes of RAM! It was good enough to go to the moon, it was good enough for you.</p>
<p>It was a golden time. A time before Windows, a time before mouses, a time before the internet and bloatware, and a time&#8230; before every OS sucked.</p>
<p>*sigh*</p>
<p>(singing)</p>
<p>Well, way back in the olden times,<br />
my computer worked for me.<br />
I&#8217;d laugh and play, all night and day,<br />
on Zork I, II and III.</p>
<p>The Amiga, VIC-20 and the Sinclair II,<br />
The TRS 80 and the Apple II,<br />
they did what they were supposed to do,<br />
wasn&#8217;t much&#8230; but it was enough.</p>
<p>But then Xerox made a prototype,<br />
Steve Jobs came on the scene,<br />
read &#8220;Of Mice and Menus,&#8221; Windows, Icons<br />
a trash, and a bitmap screen.</p>
<p>Well Stevie said to Xerox,<br />
&#8220;Boys, turn your heads and cough.&#8221;<br />
And when no-one was looking,<br />
he ripped their interfaces off.</p>
<p>Stole every feature that he had seen,<br />
put it in a cute box with a tiny little screen,<br />
Mac OS 1 ran that machine,<br />
only cost five thousand bucks.</p>
<p>But it was slow, it was buggy,<br />
so they wrote it again,<br />
And now they&#8217;re up to OS 10,<br />
they&#8217;ll charge you for the Beta, then charge you again,<br />
but the Mac OS still sucks.</p>
<p>Every OS wastes your time,<br />
from the desktop to the lap,<br />
Everything since Apple Dos,<br />
Just a bunch of crap.</p>
<p>From Microsoft, to Macintosh,<br />
to Lin&#8211; line&#8211; lin&#8211; lie&#8230; nux,<br />
Every computer crashes,<br />
&#8217;cause every OS sucks.</p>
<p>Well then Microsoft jumped in the game,<br />
copied Apple&#8217;s interface, with an OS named,<br />
&#8220;Windows 3.1&#8243; &#8211; it was twice as lame,<br />
but the stock price rose and rose.</p>
<p>Then Windows 95, then 98,<br />
man solitaire never ran so great,<br />
and every single version came out late,<br />
but I guess that&#8217;s the way it goes.</p>
<p>But that bloatware&#8217;ll crash and delete your work,<br />
NT, ME, man, none of &#8216;em work.<br />
Bill Gates may be richer than Captain Kirk,<br />
but the Windows OS blows!</p>
<p>And sucks!</p>
<p>At the same time!</p>
<p>I&#8217;d trade it in, yeah right&#8230; for what?<br />
It&#8217;s top of the line from the Compuhut.<br />
The fridge, stove and toaster, never crash on me,<br />
I should be able to get online, without a PHD.</p>
<p>My phone doesn&#8217;t take a week to boot it,<br />
my TV doesn&#8217;t crash when I mute it,<br />
I miss ASCII text, and my floppy drive,<br />
I wish VIC-20 was still alive&#8230;</p>
<p>But it ain&#8217;t the hardware, man.</p>
<p>It&#8217;s just that every OS sucks&#8230; and blows.</p>
<p>Now there&#8217;s lih-nux or lie-nux,<br />
I don&#8217;t know how you say it,<br />
or how you install it, or use it, or play it,<br />
or where you download it, or what programs run,<br />
but lih-nux, or lie-nux, don&#8217;t look like much fun.</p>
<p>However you say it, it&#8217;s getting great press,<br />
though how it survives is anyone&#8217;s guess,<br />
If you ask me, it&#8217;s a great big mess,<br />
for elitist, nerdy shmucks.</p>
<p>&#8220;It&#8217;s free!&#8221; they say, if you can get it to run,<br />
the Geeks say, &#8220;Hey, that&#8217;s half the fun!&#8221;<br />
Yeah, but I got a girlfriend, and things to get done,<br />
the Linux OS SUCKS.<br />
(I&#8217;m sorry to say it, but it does.)</p>
<p>Every OS wastes your time,<br />
from the desktop to the lap,<br />
Everything since the abacus,<br />
Just a bunch of crap.</p>
<p>From Microsoft, to Macintosh,<br />
to lin&#8211; line&#8211; lin&#8211; lie&#8230; nux.<br />
Every computer crashes,<br />
&#8217;cause every OS sucks.</p>
<p>Every computer crashes&#8230; &#8217;cause every OS sucks!<!--EndFragment--></p></blockquote>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/774/song-every-os-sucks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
<enclosure url="http://www.up.project13.pl/files/three_dead_trolls_in_a_baggie-every_os_sucks.mp3" length="4179968" type="audio/mpeg" />
		</item>
		<item>
		<title>Bizet&#8217;s &#8220;Carmen&#8221;</title>
		<link>http://www.blog.project13.pl/index.php/fun/474/bizets-carmen/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/474/bizets-carmen/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 00:58:05 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[culture]]></category>
		<category><![CDATA[review]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=474</guid>
		<description><![CDATA[Today we were with my girlfriend to see Bizet&#8217;s &#8220;Carmen&#8221; at the Cracow Opera &#8211; celebrating one of your special days. The opera didn&#8217;t move me as much as Rigoletto did, but it still was a great spectacle in 4 acts. One has to say that the scene was heavily and very creatively used, as [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 442px"><img title="caarmen" src="http://photos-d.ak.fbcdn.net/hphotos-ak-snc3/hs462.snc3/25379_347032812127_90194407127_3548225_397372_n.jpg" alt="carmen" width="432" height="287" /><p class="wp-caption-text">&quot;Carmen&quot; at Cracow&#39;s Opera</p></div>
<p style="text-align: left;">Today we were with my girlfriend to see Bizet&#8217;s &#8220;Carmen&#8221; at the Cracow Opera &#8211; celebrating one of your special days. The opera didn&#8217;t move me as much as Rigoletto did, but it still was a great spectacle in 4 acts. One has to say that the scene was heavily and very creatively used, as seen on the above picture. Music and singing were also top class. I did miss some more powerfull or dramatic pieces &#8211; that&#8217;s not really something Carmen has to offer &#8211; but that&#8217;s just my personal opinion &#8211; Kasia enjoyed it very much :-)</p>
<p style="text-align: left;">If anyone is considering going somewhere more &#8220;cultural&#8221; anytime soon, I&#8217;d really recommend some Opera &#8211; it&#8217;s an amazing form of expression.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/474/bizets-carmen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>YES! Native Zen coding in Intellij IDEA EAP 9.0.2</title>
		<link>http://www.blog.project13.pl/index.php/fun/465/yes-native-zen-coding-in-intellij-eap-9-0-2/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/465/yes-native-zen-coding-in-intellij-eap-9-0-2/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 21:30:52 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[IDEA]]></category>
		<category><![CDATA[intellij]]></category>
		<category><![CDATA[opensource]]></category>
		<category><![CDATA[tip]]></category>
		<category><![CDATA[webdeveloper]]></category>
		<category><![CDATA[zen]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=465</guid>
		<description><![CDATA[Zen points directly to the human heart, see into your nature and become Buddha. - Hakuin Ekaku (1685–1768) For those who don&#8217;t know about zen coding (where have you been guys?) here&#8217;s a little sample: Instead of writing: &#60;form class="form-comment" id="comment"&#62; &#60;fieldset&#62; &#60;input id="myid" name="name" type="" /&#62; &#60;input onclick="hideMe()" type="" /&#62; &#60;/fieldset&#62; &#60;/form&#62; You write [...]]]></description>
			<content:encoded><![CDATA[<blockquote>
<p style="text-align: right;"><em><strong>Zen points directly to the human heart,<br />
see into your nature and become Buddha.</strong><br />
</em>- Hakuin Ekaku (1685–1768)</p>
</blockquote>
<p>For those who don&#8217;t know about zen coding (where have you been guys?) here&#8217;s a little sample:</p>
<p>Instead of writing:<br />
<code>&lt;form class="form-comment" id="comment"&gt;<br />
&lt;fieldset&gt;<br />
&lt;input id="myid" name="name" type="" /&gt;<br />
&lt;input onclick="hideMe()"</code><code> type=""</code><code> /&gt;<br />
&lt;/fieldset&gt;<br />
&lt;/form&gt;</code></p>
<p>You write<br />
<code><br />
form.form-comment#comment&gt;fieldset&gt;input#myid[name=name]&gt;input[onclick=hideMe()]</code></p>
<p>and hit [TAB].</p>
<p><em><strong>To understand zen, you must understand yourself. </strong></em>(yet I also strongly suggest watching <a href="http://vimeo.com/7405114" onclick="urchinTracker('/outgoing/vimeo.com/7405114?referer=');">this video</a>)<em><strong><br />
</strong></em></p>
<p>Links:<a href="http://confluence.jetbrains.net/display/IDEADEV/Maia+EAP" onclick="urchinTracker('/outgoing/confluence.jetbrains.net/display/IDEADEV/Maia+EAP?referer=');"></a><br />
<a href="http://confluence.jetbrains.net/display/IDEADEV/Maia+EAP" onclick="urchinTracker('/outgoing/confluence.jetbrains.net/display/IDEADEV/Maia+EAP?referer=');">http://confluence.jetbrains.net/display/IDEADEV/Maia+EAP</a> &#8211; IntelliJ IDEA Early Access Program<br />
<a href="http://code.google.com/p/zen-coding/" onclick="urchinTracker('/outgoing/code.google.com/p/zen-coding/?referer=');">http://code.google.com/p/zen-coding/</a> &#8211; zen coding website</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/465/yes-native-zen-coding-in-intellij-eap-9-0-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>1024 days</title>
		<link>http://www.blog.project13.pl/index.php/fun/370/1024-days/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/370/1024-days/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 23:01:35 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[fun]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=370</guid>
		<description><![CDATA[Some may think that today is only special because of Christmas, for most people that&#8217;s right I guess. But 25.12.2009 is even more special to me this time as today is the 1024th day I&#8217;ve been together with my girlfriend &#8211; now that&#8217;s a fun &#8220;coincidence&#8216; (if you believe in such things ;-) Merry X-Mas [...]]]></description>
			<content:encoded><![CDATA[<p>Some may think that today is only special because of Christmas, for most people that&#8217;s right I guess. But 25.12.2009 is even more special to me this time as today is the <strong>1024th day </strong>I&#8217;ve been together with my girlfriend &#8211; now that&#8217;s a fun &#8220;<em>coincidence</em>&#8216; <em>(if you believe in such things ;-)</em></p>
<p style="text-align: center;">Merry X-Mas and a happy <strong>new</strong> Year(); <em>//to you all :-)</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/370/1024-days/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I got IntelliJ IDEA for my University! :-)</title>
		<link>http://www.blog.project13.pl/index.php/fun/355/i-got-intellij-idea-my-university/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/355/i-got-intellij-idea-my-university/#comments</comments>
		<pubDate>Sat, 12 Dec 2009 20:44:06 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[agh]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[intellij]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=355</guid>
		<description><![CDATA[As any JEE interested developer I&#8217;ve heard lots of praise aimed at JetBrains IntelliJ IDEA. And then it became open source&#8230; Of course I tried it out right away and was shocked how brilliant it was. Some days ago version 9.0 was introduced &#8211; still with both an open source and an normal proprietary license. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;"><img class="aligncenter" title="intellij" src="http://www.jetbrains.com/img/newdesign/idea9_header.jpg" alt="" width="520" height="80" />As any JEE interested developer I&#8217;ve heard lots of praise aimed at <a href="http://http://www.jetbrains.com/idea/" target="_blank" onclick="urchinTracker('/outgoing/http_//www.jetbrains.com/idea/?referer=');">JetBrains IntelliJ IDEA</a>. And then it became open source&#8230; Of course I tried it out right away and was shocked how brilliant it was. Some days ago version 9.0 was introduced &#8211; still with both an open source and an normal proprietary license. I really love how they offer their IDE for free to open source developers &#8211; they&#8217;d get the &#8220;full&#8221; version, whereas anyone can download a little slimmed down version: the &#8220;Community Edition&#8221;.</p>
<p>Some days ago while surfing their website I noticed that there is an &#8220;Classroom License&#8221;, that allows any student of an University to use IntelliJ&#8217;s full version &#8211; but only for the purpose of learning etc, no commercial stuff of course.</p>
<p>After some mailing here and there&#8230; <a href="http://home.agh.edu.pl/~sbobek/doku.php?id=progob" target="_blank" onclick="urchinTracker('/outgoing/home.agh.edu.pl/_sbobek/doku.php?id=progob&amp;referer=');">Mgr. Szymon Bobek</a> helped me out and got the license for us :-) Now I&#8217;m both really proud and happy to know that any student at AGH University of Science and Technology can use IDEA (if they want to), and <em>that I was the little &#8220;spark&#8221; that started out this chain reaction that ended up being a small yet very pleasing &#8220;firework&#8221;&#8230;</em> :-)<em><br />
</em></p>
<p><em>Well then&#8230;<br />
Off to my exams and Java coding!</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/355/i-got-intellij-idea-my-university/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FDM &#8211; Not Libre but still a better way of selling music</title>
		<link>http://www.blog.project13.pl/index.php/freedom/304/fdm-not-libre-but-better-way-of-seling-music/</link>
		<comments>http://www.blog.project13.pl/index.php/freedom/304/fdm-not-libre-but-better-way-of-seling-music/#comments</comments>
		<pubDate>Sat, 05 Dec 2009 00:50:55 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[freedom]]></category>
		<category><![CDATA[drm]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[music]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=304</guid>
		<description><![CDATA[A week ago a friend of mine told me about an interesting idea by FDM (Fabryka Dźwięku z Muz &#8211; pl. &#8216;Factory of Sounds from Muses&#8217; (it&#8217;s kinda hard to translate)). FDM is a small music label, supporting new and fresh artists (indie, could be a good word here I guess). As such, it&#8217;s not [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: left;">A week ago a friend of mine told me about an interesting idea by <strong>FDM</strong> (<strong>Fabryka Dźwięku z Muz</strong> &#8211; pl. &#8216;Factory of Sounds from Muses&#8217; (it&#8217;s kinda hard to translate)). FDM is a small music label, supporting new and fresh artists (indie, could be a good word here I guess). As such, it&#8217;s not at all &#8220;mainstream&#8221; (polish mainstream would be&#8230;  stachursky 2009 or&#8230;&#8230;. doda?), in other words &#8220;soulless&#8221;. But, mainstream sells well, and indie does not, and that&#8217;s nothing new, but for FDM it was a really painful experience, thus they started an action called &#8220;<strong>Muzyka bez Ceny</strong>&#8221; (pl. &#8220;Music without a price&#8221;).</p>
<p style="text-align: left;">
<div id="attachment_313" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.blog.project13.pl/wp-content/uploads/2009/12/p1010593.jpg"><img class="size-medium wp-image-313" title="p1010593" src="http://www.blog.project13.pl/wp-content/uploads/2009/12/p1010593-300x168.jpg" alt="New Century Classics - Natural Process [Front]" width="300" height="168" /></a><p class="wp-caption-text">New Century Classics - Natural Process</p></div>Here&#8217;s how it works. The price of the CD is 0PLN. The shipping costs are 4PLN. They ship it by cheapest mail avaiable, that is around 2PLN, so basically do they earn just shabby 2PLN for one CD sold? Now that&#8217;s not working<strong> business model</strong> is it? The trick here is, that the customer pays 4 + <strong>X</strong> PLN, where <strong>X is an amount of money he thinks the CD is worth</strong>. I really <strong>LOVE the idea</strong>, and also the band <em><a href="http://www.myspace.com/newcenturyclassics" onclick="urchinTracker('/outgoing/www.myspace.com/newcenturyclassics?referer=');"><strong>New Century Classics</strong></a></em> which I found through FDM. So i bought their CD for about 20PLN (around 5$), as i thought the CD would be low value, maybe even home-burned&#8230; I got the CD yesterday and&#8230; I was shocked, It&#8217;s so well released that I can only compare it to Hotel by Moby or Minutes to Midnight by Linkin Park. <em>It&#8217;s a neat stiff paper and stylish box.</em> I would have never thought that a small indie company would release someones first album with this much style etc. (Photos attached below). Now i feel that i should have paid even more for this CD, the value is really there, as is the sound &#8211; it&#8217;s got <em>soul and feeling</em>.</p>
<p><div id="attachment_309" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.blog.project13.pl/wp-content/uploads/2009/12/p1010599.jpg"><img class="size-medium wp-image-309" title="p1010599" src="http://www.blog.project13.pl/wp-content/uploads/2009/12/p1010599-300x168.jpg" alt="New Century Classics" width="300" height="168" /></a><p class="wp-caption-text">New Century Classics</p></div>
<p>All that said&#8230; FDM does <strong>not</strong> support Creative Commons etc, which is really sad, yet their move &#8220;pay as much as you want&#8221; is a great thing and really motivates to support bands. I really love the fact of <strong>getting a REAL CD</strong> and not only a download link when i <strong>PAY</strong> for something.</p>
<p>And now back to reality&#8230; I am aware that there are not a whole lot of people, who happily pay for stuff thay can get for free such as paying for stuff on Creative Commons or GPL. In this, I guess, I represent a minority that is really happy to pay bands such as <a href="http://www.jamendo.com/en/album/50033" onclick="urchinTracker('/outgoing/www.jamendo.com/en/album/50033?referer=');">Celestial Aeon Project</a>, <a href="http://www.jamendo.com/en/artist/steven.dunston" onclick="urchinTracker('/outgoing/www.jamendo.com/en/artist/steven.dunston?referer=');">Steven Dunston</a> or even the polish <a href="http://wolniartysci.pl/pl/bands/73" onclick="urchinTracker('/outgoing/wolniartysci.pl/pl/bands/73?referer=');">Accomplice Affair</a> for their amazing (and <strong>free </strong>as in freedom) music. I&#8217;d be even more happy donating to them if there was a possibility to get their CDs, such as was the case with FDMs. That said, I will continue to suppoer Free/Libre Artists and hope more and more of them to understand that real <strong>fans, are willing to pay for content</strong> (and there are lot&#8217;s of case studies profing that!) ,<strong> </strong>if only it makes sense.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/freedom/304/fdm-not-libre-but-better-way-of-seling-music/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You Have to Burn the Rope!</title>
		<link>http://www.blog.project13.pl/index.php/fun/19/you-have-to-burn-the-rope/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/19/you-have-to-burn-the-rope/#comments</comments>
		<pubDate>Mon, 17 Aug 2009 11:17:47 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[gaming]]></category>
		<category><![CDATA[web]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=19</guid>
		<description><![CDATA[You Have to Burn the Rope jest małą gierką w flashu, z serii takich &#8220;z pomysłem.&#8221; Gra polega tylko i wyłącznie na przejściu korytarza, w którym mamy napisaną na ścianach instrukcję jak pokonać bossa na jego końcu, oraz potem wykonaniu tej instrukcji&#8230; Bardzo trudnej! Trzeba spalić linę nad bossem (tytuł gry wcale nie jest podpowiedzią!), [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_87" class="wp-caption aligncenter" style="width: 310px"><img class="size-medium wp-image-87" title="burn the rope komix" src="http://www.blog.project13.pl/wp-content/uploads/2009/08/burn-the-rope-komix-300x216.jpg" alt="Burn the Rope, damnit!!! " width="300" height="216" /><p class="wp-caption-text">Burn the Rope, damnit!!! </p></div>
<p>You Have to Burn the Rope jest małą gierką w flashu, z serii takich &#8220;z pomysłem.&#8221; Gra polega tylko i wyłącznie na przejściu korytarza, w którym mamy napisaną na ścianach instrukcję jak pokonać bossa na jego końcu, oraz potem wykonaniu tej instrukcji&#8230; Bardzo trudnej! Trzeba spalić linę nad bossem (tytuł gry wcale nie jest podpowiedzią!), aby żyrandol go zmiażdżył. Podkreślam że nieziemsko trudno jest się tam dostać! Trzeba skoczyć około 4 razy! A jak już &#8220;przejdziemy grę&#8221;, mamy ładną muzyczkę i napisy&#8230;</p>
<p>Ok, czym zatem się jednak ta gra tak wyróżnia? Czemu jest taka wyjątkowa? O tym w rozwinięciu tego posta&#8230;</p>
<p>Otóż tym że jest satyrycznym przedstawieniem dzisiejszych gier. Fantastycznym. Gry dziś są banalne, krótkie, a walki z bossami to często tylko seria quicktime eventów (takie jak w God of War: &#8220;Teraz wciśnij X, a przejdziesz grę!&#8221;). Tak to wytrawni gracze na pewno poznają bohatera, którym jest nikt inny jak Kirby a boss jest małym nawiązaniem do Shadow of the Collossus: &#8220;Grinning Collossusie&#8221;. Polecam zagrać aby zobaczyć jak bardzo dobrze You Have to Burn the Rope przedstawia dzisiejszy świat gamingu. <a href="http://www.mazapan.se/games/BurnTheRope.php" onclick="urchinTracker('/outgoing/www.mazapan.se/games/BurnTheRope.php?referer=');">http://www.mazapan.se/games/BurnTheRope.php</a> W razie problemów zawsze możecie zajrzeć do <a href="http://www.mazapan.se/YouHaveToBurnTheRopeManual/" target="_blank" onclick="urchinTracker('/outgoing/www.mazapan.se/YouHaveToBurnTheRopeManual/?referer=');">INSTRUKCJI</a> lub <a href="http://www.youtube.com/watch?v=hSmuaDvnCWI&amp;feature=rec-fresh" target="_blank" onclick="urchinTracker('/outgoing/www.youtube.com/watch?v=hSmuaDvnCWI_amp_feature=rec-fresh&amp;referer=');">VIDEO-SOLUCJI</a>. <span class="comment">PS. Za pierwszym razem wyskoczyłem tam gdzie trzeba, nie zobaczywszy nawet jeszcze bossa&#8230; Zobaczyłem go dopiero gdy spadłem po podpaleniu liny&#8230; &#8220;To takie trudne&#8230;&#8221; xD</span></p>
<p style="text-align: right;"><em>&#8220;Bo te gry dziś są wszystkie takie trudne&#8230;&#8221;</em></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/19/you-have-to-burn-the-rope/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

