<?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; Project13</title>
	<atom:link href="http://www.blog.project13.pl/index.php/category/project13/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>[release] Kanbanery for IntelliJ (and Android!)</title>
		<link>http://www.blog.project13.pl/index.php/project13/1372/release-kanbanery-for-intellij-and-android/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/1372/release-kanbanery-for-intellij-and-android/#comments</comments>
		<pubDate>Mon, 17 Oct 2011 01:08:56 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Project13]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[intellij]]></category>
		<category><![CDATA[kanban]]></category>
		<category><![CDATA[kanbanery]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=1372</guid>
		<description><![CDATA[After not even one day of hacking, I&#8217;m releasing my first IntelliJ IDEA plugin. It enables &#8220;Tasks&#8221; (that default plugin in IntelliJ) to see tasks on the Kanbanery.com board. Thanks to this you&#8217;re able to commit always &#8220;refering to&#8221; some specific task. Using GitHub and Kanbanery such commits are linked back to the task on [...]]]></description>
			<content:encoded><![CDATA[<p>After not even one day of hacking, I&#8217;m releasing my first <strong>IntelliJ IDEA</strong> plugin. It enables &#8220;<strong>Tasks</strong>&#8221; (that default plugin in IntelliJ) to see tasks on the <strong><a href="http://www kanbanery.com" onclick="urchinTracker('/outgoing/www_kanbanery.com?referer=');">Kanbanery.com</a></strong> board.</p>
<p style="text-align: center;"><img class="aligncenter" title="Kanbanery and Intellij" src="https://github.com/ktoso/kanbanery-for-intellij/raw/master/doc/commit_github_task_id_kanbanery.png" alt="" width="546" height="265" /></p>
<p>Thanks to this you&#8217;re able to commit always &#8220;refering to&#8221; some specific task. Using <strong>GitHub</strong> and Kanbanery such commits are linked back to the task on the board, which makes code reviews very pleasant :-)</p>
<p style="text-align: center;"><img class="aligncenter" src="https://github.com/ktoso/kanbanery-for-intellij/raw/master/doc/switch_task_q_gives_a_nice_info.png" alt="" width="556" height="209" /></p>
<p style="text-align: left;">As we&#8217;re using Kanbanery in our team, I&#8217;ll hopefully have some time and ideas to make this plugin even more useful over time :-) So in case you&#8217;re interested just download the plugin from your IntelliJ or head to <a href="https://github.com/ktoso/kanbanery-for-intellij" onclick="urchinTracker('/outgoing/github.com/ktoso/kanbanery-for-intellij?referer=');">github to look at the source code</a> or <a href="plugins.intellij.net/plugin/edit/?pid=6363">vote for this plugin on it&#8217;s site</a>.</p>
<p style="text-align: center;"><img class="aligncenter" src="https://g0.gstatic.com/android/market/pl.project13.kanbanery/f-1024-0" alt="" width="517" height="252" /></p>
<p style="text-align: left;">Oh&#8230; Seems like I forgot to announce that I&#8217;ve also released a <strong><a title="Kanbanery for Android" href="https://market.android.com/details?id=pl.project13.kanbanery" target="_blank" onclick="urchinTracker('/outgoing/market.android.com/details?id=pl.project13.kanbanery&amp;referer=');">Android client for Kanbanery</a></strong> :-) Yup, that&#8217;s true, so got ahead and check it out if you&#8217;d like to. This one still needs some polishing, but the idea is to keep it in one codebase but develop for both, tablets and normal phones, so some things are a little bit tricky :-) I love to use it on my XOOM, but I&#8217;ll work hard to make the phone versions as awesome as the tablet one.</p>
<p style="text-align: center;"><img class="aligncenter" src="https://ssl.gstatic.com/android/market/pl.project13.kanbanery/ss-1280-7-0" alt="" width="523" height="327" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/1372/release-kanbanery-for-intellij-and-android/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[alpha][release] ProtoDoc v1.0 (not production ready)</title>
		<link>http://www.blog.project13.pl/index.php/project13/1321/initial-release-protodoc-v1-0-not-production-ready/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/1321/initial-release-protodoc-v1-0-not-production-ready/#comments</comments>
		<pubDate>Mon, 27 Jun 2011 12:00:45 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[Project13]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[alpha]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[github]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[protocol buffers]]></category>
		<category><![CDATA[release]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=1321</guid>
		<description><![CDATA[I&#8217;ve finished a one could say major stepstone in my student project yesterday. I&#8217;ll be implementing this tool to be production ready over the next few months so keep your fingers crossed. But what is it actually? ProtoDoc, is for Google Protocol Buffers what JavaDoc is for Java. As simple as that. In order to [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve finished a one could say major stepstone in my student project yesterday. I&#8217;ll be implementing this tool to be production ready over the next few months so keep your fingers crossed. But what is it actually? <em>ProtoDoc, is for Google Protocol Buffers what JavaDoc is for Java.</em> As simple as that. In order to achieve this I needed to parse Protocol Buffer IDL files and then on top of that do some simple html generation. The tools I used for this are:</p>
<ul>
<li>Scala &#8211; the code is 100% scala</li>
<li>Scala <a href="http://www.google.pl/search?aq=f&#038;sourceid=chrome&#038;ie=UTF-8&#038;q=scala+parser+combinators+documentation" onclick="urchinTracker('/outgoing/www.google.pl/search?aq=f_038_sourceid=chrome_038_ie=UTF-8_038_q=scala+parser+combinators+documentation&amp;referer=');">Parser Combinators</a> &#8211; the &#8220;parser generation DSL&#8221; one might say, begind this parser. It&#8217;s very very amazing and pushing Scala to it&#8217;s best with some crazy implicit conversions flying around all the time :-)</li>
<li>Scarg &#8211; a simple tool for handling command line parameters, <a href="https://github.com/xfire/scarg" onclick="urchinTracker('/outgoing/github.com/xfire/scarg?referer=');">it&#8217;s on github</a></li>
<li>sbt &#8211; Simple Build Tool, let&#8217;s call it &#8220;what maven is for java&#8221; but with a Gradle-ish feel to it. A very nice build tool, actually my fav I&#8217;d say.</li>
<li><a href="http://scalate.fusesource.org/" onclick="urchinTracker('/outgoing/scalate.fusesource.org/?referer=');">Scalate &#8211; a template engine</a>, which implements <a href="http://mustache.github.com/" onclick="urchinTracker('/outgoing/mustache.github.com/?referer=');">Mustache</a> (which I used, as it&#8217;s a very clean lang, NO LOGIC in the view :-)) as one of it&#8217;s template languages</li>
<li>and of course <a href="www.scalatest.org">ScalaTest</a> &#8211; as &#8216;<em>thou shalt test thy code</em>&#8216; :-)</li>
</ul>
<p>It was a very pleasant expirience and I&#8217;m looking forward to implementing a 100% compatible Protocol Buffers parser in Scala&#8230; :-)</p>
<p>There is also a pdf I&#8217;ve written about this project but it&#8217;s not well written and in Polish (university requirements, bleh), but if you want to know more about Scala Parser Combinators, you can take a look at it here: <a href="https://github.com/ktoso/protodoc-scala/blob/master/doc/konrad_malawski_protodoc.pdf?raw=true" onclick="urchinTracker('/outgoing/github.com/ktoso/protodoc-scala/blob/master/doc/konrad_malawski_protodoc.pdf?raw=true&amp;referer=');">doc @ github.com</a>.</p>
<p>The project itself is of course Free Software and Open Source, licensed under the Apache 2 license, so feel free to <a href="https://github.com/ktoso/protodoc-scala" onclick="urchinTracker('/outgoing/github.com/ktoso/protodoc-scala?referer=');">fork protodoc-scala on github</a>!</p>
<p>I&#8217;ll just quote the README from the github page for the rest of the description:</p>
<hr />
Have you ever worked with a BIG Protocol Buffers based application? It would be awesome if it had some kind<br />
of tool like JavaDoc, to always know what each field exactly means, even without having the proto file at hand right now.</p>
<p><em>Oh, wait. That&#8217;s excatly what ProtoDoc is!</em> ProtoDoc is a tool very much like JavaDoc, which scans your proto files and generates<br />
an easily searchable and most informative website with all information about yout ProtoMessages.</p>
<p><strong>It&#8217;s currently not production ready, and allows only for basic Messages to be parsed.</strong> But it should most probably be finished and fully working quite soon.</p>
<p><strong>Live Demo</strong><br />
There is a <a href="http://www.up.project13.pl/protodoc/index.html" onclick="urchinTracker('/outgoing/www.up.project13.pl/protodoc/index.html?referer=');">live demo available here</a>.</p>
<p><strong>Coding notes</strong></p>
<ul>
<li>ProtoDoc is build by <strong>sbt</strong> so if you want to help out hacking, first download <strong>Scala 2.8.1</strong> and sbt :-)</li>
</ul>
<p><strong>Output screenshots</strong><br />
ProtoDoc takes this:</p>
<pre><code>
package pl.project13;

/**
 * This is a simple Message which has some Inner Message defined.
 * Also, note that it has a default value on the name property.
 */
message MessageWithInner {
    /**
     * A number is just a simple property
     */
    required int32 number = 1;

    /**
     * This can be a name of your likeing, the default value is "lorem ipsum" etc
     */
    required string name = 2 [default = "loremipsum"];

    /**
     * Whoa, this is a comment on an inner message!
     * ProtoDoc is so cool!
     */
    message InnerMessage {

        /**
         * This is a comment on an inner messages field, cool~
         * You may use it like this in your generated Java code:
         * setName("StringMyName");
         */
        optional string name = 3;
    }
}</code></pre>
<p>and generates this:</p>
<p><img src="https://raw.github.com/ktoso/protodoc-scala/master/doc/protodoc_main.png" alt="protodoc sample" style="width:420px"/></p>
<p>
Hooray!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/1321/initial-release-protodoc-v1-0-not-production-ready/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[Me] Git @ Academic IT Festival (SFI) 2011</title>
		<link>http://www.blog.project13.pl/index.php/project13/1304/me-git-academic-it-festival-2011/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/1304/me-git-academic-it-festival-2011/#comments</comments>
		<pubDate>Fri, 06 May 2011 21:31:58 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[polish]]></category>
		<category><![CDATA[Project13]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[konrad malawski]]></category>
		<category><![CDATA[live coding]]></category>
		<category><![CDATA[presentation]]></category>
		<category><![CDATA[SCM]]></category>
		<category><![CDATA[sfi]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=1304</guid>
		<description><![CDATA[It&#8217;s been a long time since the Academic IT Festival 2011 but I didn&#8217;t have the time to post about it somehow. Anyways, now just a quick recap about it :-) Aparently some people did really like it, see tweets bellow :-) I also got feedback that &#8220;not yet real programmers&#8221;, that is students, didn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s been a long time since the <a href="http://sfi.org.pl/edition-2011/" onclick="urchinTracker('/outgoing/sfi.org.pl/edition-2011/?referer=');">Academic IT Festival 2011</a> but I didn&#8217;t have the time to post about it somehow. Anyways, now just a quick recap about it :-)</p>
<p>Aparently some people did really like it, see tweets bellow :-) I also got feedback that &#8220;not yet real programmers&#8221;, that is students, didn&#8217;t really get what I was talking about. Well, most of them still uses SVN (well, if they do it&#8217;s a success anyways) as an SCP replacement so there&#8217;s not much they could complain in SVN about if they&#8217;re not making it work anyhow besides just storing files. :-) Some students apparoached me after the lecture and training (yeah, we also did a little git intro with laptops later on) and they were really fired up about it &#8211; even if not yet grasping git&#8217;s power, they felt something&#8217;s on and I am very happy to have invluenced even just a small group to such feelings and thinking.</p>
<p style="text-align: center;"><a href="http://www.blog.project13.pl/wp-content/uploads/2011/05/git_yay1.png"><img class="aligncenter size-full wp-image-1305" title="git_yay1" src="http://www.blog.project13.pl/wp-content/uploads/2011/05/git_yay1.png" alt="" width="501" height="277" /></a></p>
<p><a href="http://sfi.org.pl/edition-2011/speakers" onclick="urchinTracker('/outgoing/sfi.org.pl/edition-2011/speakers?referer=');">I have been invited</a> (via the Call for Papers I participated in) to present a polished up &#8220;Git. Tak. Po prostu.&#8221; speech <a href="http://sfi.org.pl/edition-2011/agenda-2011#git-tak-po-prostu" onclick="urchinTracker('/outgoing/sfi.org.pl/edition-2011/agenda-2011_git-tak-po-prostu?referer=');">at this years IT Festival</a>. It was a really great opportunity to show lot&#8217;s of people (primarily students, and to-be-students but also some currently working people) the joy and beauty of Git. The event was really nice (it&#8217;s constantly improving, since the last few editions I think) and I&#8217;ve had some fun with my pal from work etc. I&#8217;ve also got to know some of the speakers &#8211; really nice guys :-) Anyways, find bellow the video from the presentation recorded by my newly met pal <a href="http://kzubik.cba.pl" onclick="urchinTracker('/outgoing/kzubik.cba.pl?referer=');">kzubik</a> and the polished up slides (they&#8217;re a lot better than the previous ones).</p>
<p>Video:</p>
<p><iframe src="http://player.vimeo.com/video/22299510?portrait=0" width="551" height="413" frameborder="0"></iframe><br />
<a href="http://vimeo.com/22299510" onclick="urchinTracker('/outgoing/vimeo.com/22299510?referer=');">The video is uploaded to Vimeo</a></p>
<p>Slides:</p>
<p><iframe src="http://www.slideshare.net/slideshow/embed_code/7244954" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe> </p>
<p><a href="http://www.slideshare.net/ktoso/git-tak-po-prostu-sfi-version" onclick="urchinTracker('/outgoing/www.slideshare.net/ktoso/git-tak-po-prostu-sfi-version?referer=');">http://www.slideshare.net/ktoso/git-tak-po-prostu-sfi-version</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/1304/me-git-academic-it-festival-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>[review] JavaCamp 5</title>
		<link>http://www.blog.project13.pl/index.php/project13/1089/review-javacamp-5/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/1089/review-javacamp-5/#comments</comments>
		<pubDate>Thu, 18 Nov 2010 02:11:51 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[polish]]></category>
		<category><![CDATA[Project13]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[JavaCamp]]></category>
		<category><![CDATA[JUG]]></category>
		<category><![CDATA[lombok]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[polishjug]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=1089</guid>
		<description><![CDATA[Yes, it&#8217;s time for another JavaCamp mini-review&#8230; :-) Without further intros, let&#8217;s get down do the presentations: Łukasz Lenart &#8211; “Nie samym kodem programista żyje” Łukasz&#8217;s presentation was not a technical one this time. He talked about how to be/become an effective programmer. A nice tip he noted was to carry a notebook and note [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img title="pjug3" src="http://www.blog.project13.pl/wp-content/uploads/2010/11/pjug3.jpg" alt="" width="126" height="157" /><br />
Yes, it&#8217;s time for another JavaCamp mini-review&#8230; :-) Without further intros, let&#8217;s get down do the presentations:</p>
<h2><a href="http://www.lenart.org.pl/" onclick="urchinTracker('/outgoing/www.lenart.org.pl/?referer=');"><strong>Łukasz Lenart</strong></a> &#8211; “Nie samym kodem programista żyje”</h2>
<p>Łukasz&#8217;s presentation was not a technical one this time. He talked about how to be/become an effective programmer. A nice tip he noted was to carry a notebook and note your ideas in it &#8211; i sometimes try to but did find myself forgetting some &#8220;amazing idea&#8221; due to the lack of discipline in carring such notebook (yeah, an paper-notebook&#8230; :-)) so it&#8217;s definitely something worth reminding. He also talked a little about Kaizen, <a href="http://zenhabits.net/zen-to-done-the-simple-productivity-e-book/" onclick="urchinTracker('/outgoing/zenhabits.net/zen-to-done-the-simple-productivity-e-book/?referer=');"><strong>ZenToDone</strong></a> and the <a href="http://www.pomodorotechnique.com/" onclick="urchinTracker('/outgoing/www.pomodorotechnique.com/?referer=');"><strong>Pomodoro</strong> Technique</a> which all kinda share the same idea but explain it a little bit differently. I also was quite happy to find out that I&#8217;m not the only one that gets slown down in development when actually being in the company &#8211; with lots of stuff happening around me. Admit it &#8211; we all work more productive when there&#8217;s noone bugging us ;-)</p>
<p>The most notable tips where the &#8220;<strong>alone-zone</strong>&#8221; (as explained in <a href="http://37signals.com/rework/" onclick="urchinTracker('/outgoing/37signals.com/rework/?referer=');">REWORK</a> (good book, I recommend it)) which is really great and I love it, but sometimes it&#8217;s hard to enforce &#8211; coding is usualy team work, ain&#8217;t it..? Using <strong>multiple desktops</strong> &#8211; and monitors at best, to seperate your work space from fun space. <strong>Cutting oneself off from the internet</strong> is, while extreme, very effective by the way. I noticed it quite a few times &#8211; there&#8217;s simply nothing distracting you &#8211; same goes for anything that might take your attention. By the way, I&#8217;m not really convinced about Pomodoro &#8211; what if you get into an v. nice flow and then the pomodoro snaps you out of it? I guess it may be more targeted at people working at bigger companies &#8211; not as myself in an small nice team and nowadays, mostly from home.</p>
<p>All in all he warmed up the audience perfectly and let&#8217;s hope some of theese tips help us become better programmers&#8230; :-)</p>
<ul>
<li>//TODO: watch on parleys.com</li>
<li>//TODO: download slides</li>
<li><a href="http://camp.java.pl/dl.php?f=jc5-1-nie-samym-kodem-pl-min.flv" onclick="urchinTracker('/outgoing/camp.java.pl/dl.php?f=jc5-1-nie-samym-kodem-pl-min.flv&amp;referer=');">download video</a></li>
</ul>
<h2><a onclick="alert('hey, youre already on my website... :-)')" href="#"><strong>Konrad Malawski</strong></a> &#8211;  “Git (tak. po prostu.)”</h2>
<p>The PJUG guys asked me to tell a little about git and I happily agreed to do it &#8211; thus, my first &#8220;public presentation&#8221;. Firstly I&#8217;d like to explain why the slides where so &#8220;weird&#8221;. It&#8217;s because I wanted them to be something like an &#8220;break&#8221;, and most of the session was live terminal typing. They were all hand drawn by me and my girlfriend, then scanned and recoloured in GIMP. Took a few evenings to prepare them, but I hope they where quite memorable, fun, and did point out the important aspects of what the next topic would be about &#8211; an 3 headed dragon as symbol for lots of HEADs in an git repo etc&#8230; ;-)</p>
<p><span id="click-git-slides-here">Click to show presentation</span></p>
<div id="git-slides-here" style="text-align: center;"><object id="__sse5689507" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slides-101106175416-phpapp01&amp;stripped_title=slides-5689507&amp;userName=ktoso" /><param name="name" value="__sse5689507" /><param name="allowfullscreen" value="true" /><embed id="__sse5689507" type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=slides-101106175416-phpapp01&amp;stripped_title=slides-5689507&amp;userName=ktoso" name="__sse5689507" allowscriptaccess="always" allowfullscreen="true"></embed></object></div>
<p><script type="text/javascript">// < ![CDATA[
// < ![CDATA[
// < ![CDATA[
$(document).ready(function(){
   $("#git-slides-here").hide();
   $("#click-git-slides-here").click(function(){
      $("#git-slides-here").slideToggle();
   });
});
// ]]&gt;</script></p>
<p>I&#8217;ve been preparing the flow of all examples before but during the presentation I missed out a few steps and made a <a href="http://www.blog.project13.pl/index.php/fun/1069/gitjavacamp-fix-1-when-does-git-see-an-rename-explicitly/">some stupid mistakes</a> (see my previous git post on this blog ;-). Well, it wasn&#8217;t anything world breaking I guess and I&#8217;d really like to thank the audience for such great support. We strayed a little of the path I&#8217;ve prepared sometimes, but that&#8217;s ok as it was interesting to interact with the audience during an presentation &#8211; not just stand there and &#8220;praise git to zee heavnz&#8221; ;-) Such interaction is something I (personally) really like in presentations, even if they break a little due to this :-)</p>
<p>All in all, we managed to go through all of git&#8217;s basic features and in the end even mentioned <strong>rebase</strong> &#8211; which can be used to change the history of ones commits (there&#8217;s also the very useful <a href="http://book.git-scm.com/3_distributed_workflows.html" onclick="urchinTracker('/outgoing/book.git-scm.com/3_distributed_workflows.html?referer=');">git commit &#8211;amend</a>), <a href="http://sitaramc.github.com/concepts/detached-head.html" onclick="urchinTracker('/outgoing/sitaramc.github.com/concepts/detached-head.html?referer=');"><strong>detached-HEADs</strong></a> and <strong>git-svn</strong>, which I didn&#8217;t use before as I feared a little to make a mess in the company svn-repo (and in all &#8220;my&#8221; projects I&#8217;m using git, so I never felt the need to use git-svn). Some guys sucessfully used it and really recommended it, thus&#8230; here I am, doing git svn dcommits on an daily basis&#8230; :-) I&#8217;m glad to have also learned something from this presentation, not just &#8220;showed what I had to show&#8221; :-) Now just a few links to very good resources about git:</p>
<ul>
<li><a href="http://nvie.com/posts/a-successful-git-branching-model/" onclick="urchinTracker('/outgoing/nvie.com/posts/a-successful-git-branching-model/?referer=');">A Successful Git Branching Model</a></li>
<li><a href="http://excess.org/article/2008/07/ogre-git-tutorial/" onclick="urchinTracker('/outgoing/excess.org/article/2008/07/ogre-git-tutorial/?referer=');">Very good </a><a href="http://excess.org/article/2008/07/ogre-git-tutorial/" onclick="urchinTracker('/outgoing/excess.org/article/2008/07/ogre-git-tutorial/?referer=');">video tutorial on git</a></li>
<li><a href="https://git.wiki.kernel.org/index.php/GitFaq" onclick="urchinTracker('/outgoing/git.wiki.kernel.org/index.php/GitFaq?referer=');">https://git.wiki.kernel.org/index.php/GitFaq</a></li>
<li><a href="http://git-plumbing-preso.heroku.com/" onclick="urchinTracker('/outgoing/git-plumbing-preso.heroku.com/?referer=');">http://git-plumbing-preso.heroku.com</a> &#8211; internals</li>
<li><a href="https://github.com/" onclick="urchinTracker('/outgoing/github.com/?referer=');">https://github.com/</a> &#8211; free opensource project hosting</li>
<li>and of course: <a href="http://git-scm.com/documentation" onclick="urchinTracker('/outgoing/git-scm.com/documentation?referer=');">http://git-scm.com/documentation</a></li>
</ul>
<p>After the presentation I made an small sms-contest where you could win an PJUG tshirt for guessing what github&#8217;s mascot is called like. I hope it was an nice positive accent to finish the session. Next up was the pizza and then 2 more Łukasz&#8217;s&#8230; :-)</p>
<ul>
<li>//TODO: watch on parleys.com</li>
<li><a href="http://camp.java.pl/dl.php?f=jc5-2-git-pl-slides.pdf" onclick="urchinTracker('/outgoing/camp.java.pl/dl.php?f=jc5-2-git-pl-slides.pdf&amp;referer=');">download slides</a></li>
<li><a href="http://camp.java.pl/dl.php?f=jc5-2-git-pl-min.flv" onclick="urchinTracker('/outgoing/camp.java.pl/dl.php?f=jc5-2-git-pl-min.flv&amp;referer=');">download video</a></li>
</ul>
<h2><strong>Łukasz Żmudziński</strong> &#8211; “Project Lombok &#8211; Cause We Hate Boilerplate!”</h2>
<p>Lombok, if you didn&#8217;t see it before is this -&gt; <a href="http://projectlombok.org/" onclick="urchinTracker('/outgoing/projectlombok.org/?referer=');">http://projectlombok.org/</a> It&#8217;s a &#8220;total hack&#8221;, as the author describes it (and he&#8217;s right ;-)) but it allows some funny compile time hacks while writing Plain Old Java Code. Łukasz showed us around all the annotations which Lombok provides and how they work, what code exactly would be generated by them etc. The most &#8220;let&#8217;s you write less code&#8221; annotation would be @Data, which at compile time would cause Lombok (&#8230;here comes the important part:) to write the <strong>source</strong> for all setters, getters and toString hashcodes etc &#8211; so javac in the end, thinks it&#8217;s just compiling plain odl java&#8230; Here&#8217;s a link on how it works: <a href="http://projectlombok.org/features/Data.html" onclick="urchinTracker('/outgoing/projectlombok.org/features/Data.html?referer=');">Data.html</a> The funny part about it is that it&#8217;s an compile time tool &#8211; much similar to <a href="http://www.springsource.org/roo" onclick="urchinTracker('/outgoing/www.springsource.org/roo?referer=');">Spring Roo</a> in that aspect if you ask me -  and what it actually modifies is the AST (AbstractSourceTree) that javac then uses to generate it&#8217;s bytecode&#8230; So no bytecode magic &#8211; just how I&#8217;d call it&#8230; source code injection during compile time? Yeah, weird stuff.</p>
<p>And if you ask me not really something I&#8217;d be using all over the place. Sure it&#8217;d spare me the writing of some getters and setters and some more tricks but in the end, it&#8217;s a problem for not supported IDEs. (How do you explain IDEA that this class really *will have* an setBla() method&#8230;?) While NetBeans and Eclipse do have plugins to enable them to unserstand lomboks annotations. It&#8217;s not really enough &#8211; what about static code analisis tools? They&#8217;d go nuts with code that calls methods which dont exist in the source etc :-) Nevertheless if was a fun topic and it definitely is an quite funny javac hack, but if I&#8217;d be desperate for such features&#8230; I&#8217;d go polyglot coding with groovy or scala etc&#8230; :-)</p>
<ul>
<li>//TODO: watch on parleys.com</li>
<li><a href="http://camp.java.pl/dl.php?f=jc5-3-lombok-pl-slides.pdf" onclick="urchinTracker('/outgoing/camp.java.pl/dl.php?f=jc5-3-lombok-pl-slides.pdf&amp;referer=');">download <strong>slides</strong></a></li>
<li><a href="http://camp.java.pl/dl.php?f=jc5-3-lombok-pl-min.flv" onclick="urchinTracker('/outgoing/camp.java.pl/dl.php?f=jc5-3-lombok-pl-min.flv&amp;referer=');">download <strong>video</strong></a></li>
</ul>
<h2><a href="http://czerpak.eu/blog/page/2/" onclick="urchinTracker('/outgoing/czerpak.eu/blog/page/2/?referer=');"><strong>Łukasz Czerpak</strong></a> &#8211; “Testy jednostkowe i integracyjne w przykładach”</h2>
<p>By now you probably noticed it&#8230; There where almost only Łukasz&#8217;s presenting on this Camp&#8230;! :-) Łukasz Czerpak&#8217;s topic was about, generally speaking, TDD. He focused (as the title suggests, if you can read polish ;-)) on unit and integration tests. The border between them is sometimes a little blury, but the definitions he have were nice and clear &#8211; 1 class = unit, long setup involved = integration. It&#8217;s as easy as that, yet sometimes during discussions with other coders these sometimes get confised. Next he went on to some examples of how TDD is useful and finally to a lot of code examples. As he&#8217;s using EJBs at his day job, this part was mostly covered &#8211; and very interesting (for me, who&#8217;d usually just use spring and be done with it).</p>
<p>The mocking framework he used in his examples was of course our Polish Mockito&#8230; :-) It&#8217;s really great and lot&#8217;s of fun to work with, unlike some other mocking frameworks out there. Although easymock would take the 2nd place if I&#8217;d were to make an ranking. I&#8217;ve also seen a little JMock but it doesn&#8217;t &#8220;feel good&#8221; &#8211; but if youre interested in pure &#8220;what X can do&#8221;, they all do offer the same things, so why bother with some cluttery syntax? :-)</p>
<p>Next, Łukasz showcased using glassfish as an embeded container which definitely is on my &#8220;good to know&#8221; list and then continued on to an very awesome JBoss library: <strong>Arquillian </strong>[<a href="http://jboss.org/arquillian" onclick="urchinTracker('/outgoing/jboss.org/arquillian?referer=');">arquillian homepage</a>] (see? It&#8217;s so cool I even had to mark it bold ;-)) It&#8217;s an lib which enables you to deploy (yes, &#8220;deploy&#8221; &#8211; perfect word choice) EJBs or even whole archives to an testing enviroment &#8211; which would then be started using an embeded container, although as seen on their homepage, they also support remote containers&#8230; interesting! Here&#8217;s another nice usecase of it: <a href="http://ocpsoft.com/seam/cdi-powered-unit-testing-using-arquillian/" onclick="urchinTracker('/outgoing/ocpsoft.com/seam/cdi-powered-unit-testing-using-arquillian/?referer=');">http://ocpsoft.com/seam/cdi-powered-unit-testing-using-arquillian/</a> The presentation was really well prepared and most probably the high</p>
<ul>
<li>//TODO: watch on <strong>parleys.com</strong></li>
<li>//TODO: download <strong>slides</strong></li>
<li><a href="http://camp.java.pl/dl.php?f=jc5-4-tdd-pl-min.flv" onclick="urchinTracker('/outgoing/camp.java.pl/dl.php?f=jc5-4-tdd-pl-min.flv&amp;referer=');">download <strong>video</strong></a></li>
</ul>
<h2>That&#8217;s all folks!</h2>
<p>We&#8217;ll be doing another JavaCamp in the near future (January perhaps&#8230;?). But for theese few weeks now we&#8217;ll be focusing on the upcomming GeeCON 2011 (Cracow) and kickstarting it&#8217;s call for papers <em>(yay, I&#8217;m it&#8217;s author ;p). </em> And if you&#8217;re interested in seeing all recordings on parleys.com and not just as videos &#8211; stay on your toes, because after Devoxx we&#8217;ll upload them there &#8211; I&#8217;ll update my blog then and we&#8217;ll write an quick news about it on java.pl In the mean time, you can go take a look at these and the previous (javacamp #4) recordings on <a href="http://camp.java.pl" onclick="urchinTracker('/outgoing/camp.java.pl?referer=');">camp.java.pl</a> &#8211; which I just quickly set up to allow you guys quick access to the movies&#8230;</p>
<p>Yup, that&#8217;s all I think&#8230; see you on <strong>GeeCON</strong> || JavaCamp <strong>#6</strong>! :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/1089/review-javacamp-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tweets in WordPress; same timeline but skip in rss feed</title>
		<link>http://www.blog.project13.pl/index.php/project13/938/tweets-in-wordpress-same-timeline-but-skip-in-rss-feed/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/938/tweets-in-wordpress-same-timeline-but-skip-in-rss-feed/#comments</comments>
		<pubDate>Mon, 11 Oct 2010 22:00:56 +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[Project13]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tips]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=938</guid>
		<description><![CDATA[Hi guys, todays post is about yet another fun and small hack, namely: Having twitter posts (tweets) to be displayed right along all wordpress blog posts (posts) in the same timeline (wordpress main view). しかし!!! As my blog is being listed on http://www.dworld.pl/Blogsfera (and for other obvious reasons) I didn&#8217;t want all my tweets to [...]]]></description>
			<content:encoded><![CDATA[<p>Hi guys, todays post is about yet another fun and small hack, namely: Having twitter posts (tweets) to be displayed right along all wordpress blog posts (posts) in the same timeline (wordpress main view). <strong><acronym title="but (in japanese)">しかし</acronym>!!!</strong></p>
<p>As my blog is being listed on <a href="http://www.dworld.pl/Blogsfera" onclick="urchinTracker('/outgoing/www.dworld.pl/Blogsfera?referer=');">http://www.dworld.pl/Blogsfera</a> (and for other obvious reasons) I didn&#8217;t want all my tweets to be translated &#8220;1 to 1&#8243; to plain old blog posts since this would cause each of my tweets (which can be silly sometimes (but quite <strong>rarely!</strong>)) to land on dworld, which they obviously shouldn&#8217;t as it&#8217;s only an place for Java/Development oriented posts. Also I&#8217;d rather they&#8217;d take less space, and would skip all the categories/tags &#8211; it&#8217;s all in the tweet, so why repeat it again and again?</p>
<p>So&#8230; let&#8217;s start by importing tweets into wordpress. There&#8217;s an great plugin for that, and it&#8217;s called <strong><a href="http://skinju.com/wordpress/tweet-import" onclick="urchinTracker('/outgoing/skinju.com/wordpress/tweet-import?referer=');">Tweet Import</a> by skinju</strong>. Just install it and set it up to fetch your tweet&#8217;s at an regular basis. Ok, we&#8217;re done with step 1 &#8211; but neither are the current tweets smaller or ommitted in the rss feed. Let&#8217;s start by filtering them out from the rss feed:</p>
<p>Open up the file <em><strong>/wp-content/themes/default/functions.php </strong></em>and go to the end of the file, we&#8217;ll add an filter here. Please note that in step 1 you should have created an &#8220;twitter&#8221; category all tweets should be marked with. Let&#8217;s assume this category has an ID of 131, then the following code would do the filtering for us:</p>
<div class="geshi no php">
<div class="head">//add at end of file</div>
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span> ?php</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// filter out twitter posts from feed</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> exclude_category<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="kw1">if</span> <span class="br0">&#40;</span> is_feed<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="coMULTI">/* || is_home()*/</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;set_query_var<span class="br0">&#40;</span><span class="st0">&#39;cat&#39;</span><span class="sy0">,</span> <span class="st0">&#39;-131&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">add_filter<span class="br0">&#40;</span><span class="st0">&#39;pre_get_posts&#39;</span><span class="sy0">,</span> <span class="st0">&#39;exclude_category&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">?&gt;</span></div>
</li>
</ol>
</div>
<p>It&#8217;s a very nice trick, and it&#8217;s <a href="http://zeo.my/exclude-category-in-wordpress/" onclick="urchinTracker('/outgoing/zeo.my/exclude-category-in-wordpress/?referer=');">explained more in detail here</a>. The code is really simple, so no explaining here and let&#8217;s go and tune our view (<strong>yup, the RSS feed is already fixed!</strong>).</p>
<p>To setup our view to work a little different for tweets than for posts, well have to edit: <em><strong>/wp-content/themes/maze/index.php</strong></em> so open it up in your favourite editor and add such an if statement inside an post&#8217;s while statement:</p>
<div class="geshi no php">
<div class="head">//add the 2nd line, the rest is just here for the ease of locating the right place</div>
<ol>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;</span> ?php <span class="kw1">while</span> <span class="br0">&#40;</span>have_posts<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="sy0">:</span> the_post<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;</span> ?php <span class="kw1">if</span> <span class="br0">&#40;</span>in_category<span class="br0">&#40;</span><span class="st0">&#39;twitter&#39;</span><span class="br0">&#41;</span> <span class="sy0">==</span> <span class="kw2">false</span><span class="br0">&#41;</span><span class="sy0">:</span> <span class="co1">//display post?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;</span>div id<span class="sy0">=</span><span class="st0">&quot;post-&lt;?php the_ID(); ?&gt;&quot;</span><span class="sy0">&gt;&lt;/</span>div<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>Ok, with this done let&#8217;s write the else part&#8230;</p>
<div class="geshi no php">
<div class="head">//the else for the above if</div>
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span> ?php <span class="kw1">else</span><span class="sy0">:</span> <span class="co1">//display tweet ?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;</span>div id<span class="sy0">=</span><span class="st0">&quot;tweet-&lt;?php the_ID(); ?&gt;&quot;</span> style<span class="sy0">=</span><span class="st0">&quot;padding: 15px 15px 0 0&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;</span>div style<span class="sy0">=</span><span class="st0">&quot;background:none repeat scroll 0 0 #262626; font-size:12px; font-weight:normal; line-height:12px; margin:0 30px 10px 0; padding:5px 5px 5px 10px;&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;</span> ?php the_content<span class="br0">&#40;</span><span class="st0">&#39;Read More&#8230;&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;</span>div<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;Tweeted by <span class="sy0">&lt;</span>a href<span class="sy0">=</span><span class="st0">&quot;http://www.twitter.com/ktosopl&quot;</span><span class="sy0">&gt;@</span>ktosopl<span class="sy0">&lt;/</span>a<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">@</span> <span class="sy0">&lt;</span>a href<span class="sy0">=</span><span class="st0">&quot;&lt;?php $key=&quot;</span>tweetimport_twitter_post_uri<span class="st0">&quot;; echo get_post_meta($post-&gt;ID, $key, true); ?&gt;&quot;</span><span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;</span> ?php <span class="re1">$key</span><span class="sy0">=</span><span class="st0">&quot;tweetimport_date_imported&quot;</span><span class="sy0">;</span> <span class="kw3">echo</span> get_post_meta<span class="br0">&#40;</span><span class="re1">$post</span><span class="sy0">-&gt;</span><span class="me1">ID</span><span class="sy0">,</span> <span class="re1">$key</span><span class="sy0">,</span> <span class="kw2">true</span><span class="br0">&#41;</span><span class="sy0">;</span> <span class="kw2">?&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;/</span>a<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;/</span>div<span class="sy0">&gt;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;<span class="sy0">&lt;</span> ?php <span class="kw1">endif</span> <span class="co1">//end display mode if?&gt;</span></div>
</li>
</ol>
</div>
<p><em>(You can complain about the in line css styling if you want later, I know it&#8217;s bad but this wordpress theme is a mess anyways&#8230; ;-))</em> Let&#8217;s have a look at the more important parts of this code part. You&#8217;ll notice that I&#8217;m using some weird <strong>get_post_meta()</strong> function. It&#8217;s an method that fetches additional information that each post CAN but doesn&#8217;t have to have. And as the TweetImport plugin does fill an post with a lot of useful tweet data, such as post time and tweet url &#8211; that&#8217;s what I&#8217;m fetching here. The rest should be quite self explanatory, there are bit&#8217;s of hardcoded &#8220;ktosopl&#8221; in there but hey &#8211; it&#8217;s just my blog and I&#8217;m a busy person ;-)</p>
<p>Hope you found this post interesting and maybe you&#8217;ll implement the same thing on your blogs&#8230;? :-)<br />
Cheers!</p>
<p>PS: Oh, and if your interested in talking on one of your upcomming JavaCamps &#8211; feel free to contact me or anyone from the <a href="http://www.java.pl" onclick="urchinTracker('/outgoing/www.java.pl?referer=');"><strong>java.pl</strong></a> team, we&#8217;re looking forward to hearing from you. The nearest meeting will probably be organized around 23&#8242;th or 6&#8242;th&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/938/tweets-in-wordpress-same-timeline-but-skip-in-rss-feed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>def recent = [python, grails, netbeans platform, hibernate, spring, vaadin, google guava]</title>
		<link>http://www.blog.project13.pl/index.php/project13/606/def-recent-python-grails-netbeans-platform-hibernate-spring-vaadin-google-guava/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/606/def-recent-python-grails-netbeans-platform-hibernate-spring-vaadin-google-guava/#comments</comments>
		<pubDate>Sat, 08 May 2010 20:24:15 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Project13]]></category>
		<category><![CDATA[agh]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[google guava]]></category>
		<category><![CDATA[grails]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[netbeans platform]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[vaadin]]></category>
		<category><![CDATA[webmaster]]></category>
		<category><![CDATA[work]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=606</guid>
		<description><![CDATA[Just an quick summary of what I&#8217;ve been coding lately: http://github.com/barthez/mysql.integra.dbfiller &#8211; an simple Python app that is able to generate SQL code with inserts that we need to fill up our database for load testing. It&#8217;s doing an simple simulation of people checking in and out from various activities at some job and calculates [...]]]></description>
			<content:encoded><![CDATA[<p>Just an quick summary of what I&#8217;ve been coding lately:</p>
<p><a href="http://github.com/barthez/mysql.integra.dbfiller" onclick="urchinTracker('/outgoing/github.com/barthez/mysql.integra.dbfiller?referer=');">http://github.com/barthez/mysql.integra.dbfiller</a> &#8211; an<strong> </strong>simple Python app that is able to generate SQL code with inserts that we need to fill up our database for load testing. It&#8217;s doing an simple simulation of people checking in and out from various activities at some job and calculates when who should cone and do their shift&#8230; My friend Bartek is by far more into python, and has coded most of this app (just check the impact charts ;-)), so much of the kudos for this goes to him.</p>
<p>Noticed an <strong>gigantic hardware problem </strong>our student groups server&#8230; Some didn&#8217;t believe me in the beginning&#8230; This week we went to see how much of the harddrives &#8220;went bye bye&#8221; in real life, as there was nothing that could be done remotely. I&#8217;ve been battling with the read-only / filesystem some evenings before, and concluded that it&#8217;s not just a small hdd failure &#8211; it had to be something BIG&#8230; And boy, BIG it was&#8230; Something between all the drives and the rest of the server seems to have died. My best guess is the SCSI controller&#8230; It&#8217;s not really worth it to replace the parts as the server was very very old, well, let&#8217;s hope we get some (anything) machine to finally run our tests on. <strong><a href="http://www.youtube.com/watch?v=htKY2oD85rs" onclick="urchinTracker('/outgoing/www.youtube.com/watch?v=htKY2oD85rs&amp;referer=');">SCSI Controllers on fire&#8230;</a></strong></p>
<p><a href="http://www.netbeans.edu.pl" onclick="urchinTracker('/outgoing/www.netbeans.edu.pl?referer=');">netbeans.edu.pl</a> &#8211; was written by me in <strong>Grails</strong>. I have yet to release the sources, but will do so for sure &#8211; after I polish them a little, because they&#8217;ve been written under immense time pressure etc. It&#8217;s a quite nice framework, but <strong>obviously it&#8217;s an overkill for such an simple site</strong> as netbeans.edu.pl&#8230; It was quite fun to write <strong>my own taglib for the twitter integration</strong> and also I&#8217;ve also used the<strong> GoogleData API</strong> to serve images directly from Picasa Web Albums&#8230; Of course there are PHP lib&#8217;s that could do this, but it just seemed &#8220;nicer&#8221; to me to write this in Groovy&#8230;</p>
<p>After the NBPTraining me and two friends started developing an simple <a href="http://github.com/ktoso/TravelingSalesman-NBP" onclick="urchinTracker('/outgoing/github.com/ktoso/TravelingSalesman-NBP?referer=');"><strong>Traveling Salesman Visualization</strong> using the <strong>NetBeans Platform</strong> &#8211; solving the problem with<strong> Genetic Algorithms</strong></a>. We&#8217;ve decided to use prefuse for the graph visualization stuff&#8230; Let&#8217;s hope it was a good decision &#8211; of course I know that it&#8217;s not being developed since a long time, and the API isn&#8217;t even Generic, but it looks quite nice and the workflow with grapghs is really neat &#8211; the &#8220;actions&#8221; stuff&#8230; I&#8217;ll be trying to write our own renderer for this program so keep your fingers crossed &#8211; hope it&#8217;s turn out well. Sadly, were presenting an pre-alpha of this program on Wednesday and I won&#8217;t be able to come to the uni as at that time I&#8217;ll be taking the Gradle Training at GeeCON. :-)</p>
<p>Inspired by both <a href="http://koziolekweb.pl/2010/03/28/songs-of-vaadin/" onclick="urchinTracker('/outgoing/koziolekweb.pl/2010/03/28/songs-of-vaadin/?referer=');">koziołek&#8217;</a>s post about <a href="http://vaadin.com/" onclick="urchinTracker('/outgoing/vaadin.com/?referer=');">vaadin</a> + spring and the nice tutorial that <a href="http://darekzon.com/" onclick="urchinTracker('/outgoing/darekzon.com/?referer=');">Darek Zoń has been writing lately</a> I decided to take another look at Vaadin. I&#8217;d describe it best as&#8230; <em>&#8220;GWT that looks and feels good right from the start&#8221;&#8230; ;-)</em> The sources of what might become an simple rss reader app can be found on github: <strong><a href="http://github.com/ktoso/RssR" onclick="urchinTracker('/outgoing/github.com/ktoso/RssR?referer=');">RssR &#8211; vaadin rss reader</a></strong>. I&#8217;ve had some experience with GWT while trying to create an online <a href="http://github.com/ktoso/gwt-crossword" onclick="urchinTracker('/outgoing/github.com/ktoso/gwt-crossword?referer=');">crossword solving</a> system, but I have to admit &#8211; it&#8217;s not really near it&#8217;s final stages&#8230; And I somehow dont have the willpower to go back to it at this moment &#8211; while starting out with it I hoped that I could easily just drop my existing crossword stuff into GWT and add some simple frontend &#8211; turned out that this isn&#8217;t so easy. Ah well. Vaadin on the other side looks much nicer for some &#8220;real, even if generic, webapp&#8221;, so I chose to try implementing an simple rssreader based on it. Loging in and basic hibernate setup (not finished yet) is already in place. Oh, and I&#8217;m also <strong>using maven on this one</strong>. If you&#8217;re interested in it, or are just abour ti start an Vaadin project, <a href="http://github.com/ktoso/RssR" onclick="urchinTracker('/outgoing/github.com/ktoso/RssR?referer=');">check out the sources</a> and maby they&#8217;ll help you out figuring out what all this is about :-) It&#8217;s able to run on jetty by calling <strong>mvn jetty:run-war</strong> :-) <em>(lol just found an google code project about exactly the same stuff only written in pure spring <a href="http://code.google.com/p/rsser/source/browse/trunk/rsser/src/main/resources/messages.properties" onclick="urchinTracker('/outgoing/code.google.com/p/rsser/source/browse/trunk/rsser/src/main/resources/messages.properties?referer=');">http://code.google.com/p/rsser</a> Kudos to the coder! :-))</em></p>
<p>Oh and just an minor mention about <a href="http://code.google.com/p/guava-libraries" onclick="urchinTracker('/outgoing/code.google.com/p/guava-libraries?referer=');"><strong>Google Guava</strong></a>, I&#8217;ve been looking at it&#8217;s API lately and it&#8217;s quite nice I think. It&#8217;s <strong>not as magic filled as op4j</strong>, but this might be just the good thing about it. As I had to do an presentation to pass an class about presentations at school, I&#8217;ve done this <a href="http://www.slideshare.net/ktoso/guava" onclick="urchinTracker('/outgoing/www.slideshare.net/ktoso/guava?referer=');">super simple presentation about a very basic subset of Guava&#8217;s features</a>. While doing it I&#8217;ve learned how to use the <a href="http://pl.wikipedia.org/wiki/Beamer_(LaTeX)" onclick="urchinTracker('/outgoing/pl.wikipedia.org/wiki/Beamer_LaTeX?referer=');">LaTeX Beamer class,</a> and yup, it&#8217;s really very nice indeed! Notice the coloured Java syntax? Nice trick, ain&#8217;t it :-)</p>
<p>Oh, and while doing all this I also created an very simple website <a href="http://www.kemerling.pl/" onclick="urchinTracker('/outgoing/www.kemerling.pl/?referer=');">www.kemerling.pl</a>. The graphics where done by another friend of mine. It was quite hell to get all this to display properly (the while part, with bazylion transparent layers&#8230; ;-)), but I hope it looks all right :-)</p>
<p>Hmm&#8230; back to coding! Gotta improve the NBP Traveling Salesman now :-)</p>
<p>PS: It seems that this blog has been added to <a href="http://www.dworld.pl/blogEntry/blog/113" onclick="urchinTracker('/outgoing/www.dworld.pl/blogEntry/blog/113?referer=');">www.dworld.pl/blogEntry/blog/113</a>! Whoa that&#8217;s really really awesome and I&#8217;m really really grateful to be aggregated together with Poland&#8217;s most active Java bloggers :-) I don&#8217;t know whom I should thank for adding me there, so I&#8217;ll thank that the whole community and <a href="http://www.dworld.pl/page/show/Grzegorz_Duda" onclick="urchinTracker('/outgoing/www.dworld.pl/page/show/Grzegorz_Duda?referer=');">Grzegorz Duda</a> as dworlds author :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/606/def-recent-python-grails-netbeans-platform-hibernate-spring-vaadin-google-guava/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>After the NetBeans Certified Platform Training in Kraków (2010)</title>
		<link>http://www.blog.project13.pl/index.php/project13/551/after-the-netbeans-certified-platform-training-in-krakow-2010/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/551/after-the-netbeans-certified-platform-training-in-krakow-2010/#comments</comments>
		<pubDate>Fri, 30 Apr 2010 13:55:32 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Project13]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[agh]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[free]]></category>
		<category><![CDATA[JUG]]></category>
		<category><![CDATA[netbeans]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[polishjug]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=551</guid>
		<description><![CDATA[Amazing days and awesome people It&#8217;s been some amazing days for me during (and before) the NBPTraining. As you probably know already &#8211; I&#8217;ve been the &#8220;one-man-army&#8221; behind the organization and basically everything around this training. I got lots of help from various people, such as Dr Jarosław Wąs (from KN Glider) &#8211; it wouldn&#8217;t [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-full wp-image-569" title="netbeans_2010_poster_min" src="http://www.blog.project13.pl/wp-content/uploads/2010/04/netbeans_2010_poster_min-e1272636685851.jpg" alt="" width="124" height="174" /></p>
<h3>Amazing days and awesome people</h3>
<p>It&#8217;s been <strong>some amazing days</strong> for me during (and before) the NBPTraining. As you probably know already &#8211; I&#8217;ve been the &#8220;one-man-army&#8221; behind the organization and basically everything around this training. I got lots of help from various people, such as Dr Jarosław Wąs (from <a href="http://www.glider.agh.edu.pl" onclick="urchinTracker('/outgoing/www.glider.agh.edu.pl?referer=');">KN Glider</a>) &#8211; it wouldn&#8217;t have been possible to make this training such an success  without his great and very active support. And of course &#8211; the <a href="http://www.java.pl" onclick="urchinTracker('/outgoing/www.java.pl?referer=');">PolishJUG</a>, which I&#8217;m a proud member of! :-) But one thing I have to admit, Bureaucracy is a horrible thing and really made some things (needlessly&#8230;) difficult &#8211; thank goodness in the end, we had everything well organized &#8211; as Geertjan put it on dZone:</p>
<blockquote cite="http://netbeans.dzone.com/polish-jug-netbeans-platform"><p>[...] There are also some illustrative pics to share, to give an impression of  the group (really large)<em>,</em> the trainers (really busy), and the  organization (really good) [...]</p></blockquote>
<h3>Day 0: Welcome Dinner</h3>
<p>What&#8217;s so worth mentioning about the guys just coming here anyway? Well it was a quite trip for some, especially Geertian, who had to come by train which took him about 27hours instead of just coming by car from Prague. All because of <a href="http://wiadomosci.gazeta.pl/Wiadomosci/1,80708,7778761,Eksperci_ostrzegaja__znacznie_wiekszy_wulkan__sasiad.html" onclick="urchinTracker('/outgoing/wiadomosci.gazeta.pl/Wiadomosci/1_80708_7778761_Eksperci_ostrzegaja_znacznie_wiekszy_wulkan_sasiad.html?referer=');">Eyjafjoell</a>&#8216;s eruption last week&#8230; And Toni and Geertjan were in Oslo at that time, doing a Training for an company (btw <a title="Interview wirh Gunnar Reinseth" href="http://blogs.sun.com/geertjan/entry/movie_interview_with_netbeans_platform" onclick="urchinTracker('/outgoing/blogs.sun.com/geertjan/entry/movie_interview_with_netbeans_platform?referer=');">nice interview with Gunnar Reinseth</a>) &#8211; so we were worried if they&#8217;ll be able to come to Poland due to all the flights being cancelled&#8230; Anton was lucky and but Geertjan&#8217;s original flight got cancelled&#8230; Well, he had quite an <a href="http://twitter.com/GeertjanW/status/12664576635" onclick="urchinTracker('/outgoing/twitter.com/GeertjanW/status/12664576635?referer=');">interesting</a> journey as he called it himself :-) Later when Karol joined us and soon we all went to eat some pierogi and chat a little :-)</p>
<div style="text-align: center;"><a href="http://www.blog.project13.pl/wp-content/uploads/2010/04/DSC_0001.jpg"><img class="size-medium wp-image-573" title="concentrated " src="http://www.blog.project13.pl/wp-content/uploads/2010/04/DSC_0001-300x198.jpg" alt="concentrated students" width="300" height="198" /></a></div>
<h3>Days 1 &amp; 2: The Training</h3>
<p>Thanks to dr Wąs everything went smooth and without any problems&#8230; Even though some other students also wanted to use the room we had reserved &#8211; due to the chaos caused by the <a href="http://wyborcza.pl/1,75248,7752563,Lista_ofiar__prezydenckim_Tu_154_lecialy_najwazniejsze.html" onclick="urchinTracker('/outgoing/wyborcza.pl/1_75248_7752563_Lista_ofiar_prezydenckim_Tu_154_lecialy_najwazniejsze.html?referer=');">tragic plane accident</a> and them wanting to make up for the classes they&#8217;ve lost last weekend due to the burial ceremonies&#8230; I&#8217;m really glad we managed to get the training rolling with absolutely no problems &#8211; we were really prepared for everything, along with backup projectors etc ;-)</p>
<p>If you&#8217;re not very familiar with the Java World &#8211; please note, that <em>the  training was NOT about NetBeans IDE</em>. Yeah, we did use NetBeans IDE (there&#8217;s some nice little helpers/wizards),  but that&#8217;s absolutely not a must &#8211; NBP is pure Java (<strong>just a bunch of  jar&#8217;s</strong>) and XML &#8211; so you can use anything you want to code stuff  based on NetBeans RCP. That said, the training was about real coding  stuff such as patters used in the RCP, use-cases and<strong> &#8220;</strong><strong> </strong><strong>how do I code such a feature  to scale well?&#8221;</strong>.</p>
<p>The agenda was the basic NetBeans Platform Training as outlined on <a href="http://edu.netbeans.org/courses/nbplatform-certified-training/" onclick="urchinTracker('/outgoing/edu.netbeans.org/courses/nbplatform-certified-training/?referer=');">http://edu.netbeans.org/courses/nbplatform-certified-training/</a> that&#8217;s a good thing, as only a few students actually have used the NetBeans RCP (or even ANY RCP) in their lives. The level of participants was quite diverse, some saw loose coupling in action for the first time in their lives, and others were already planing some advanced use-cases foe the things we were learning. The sources and videos for most of the examples are also hosted on <a href="http://www.netbeans.edu.pl" onclick="urchinTracker('/outgoing/www.netbeans.edu.pl?referer=');">netbeans.edu.pl</a>, so if you want to know what you&#8217;ve missed, feel free to download/watch them (if interested in FullHD versions, contact me per email). The Lookup and Nodes/Explorer Views were the most interesting features of the platform I guess. Of course having an full blown app with menus etc out of the box is also nice, but not a &#8220;life changer&#8221; if it weren&#8217;t for those mechanisms. Sadly we didn&#8217;t talk about the Lexer API (for parsing languages) but I personally talked with the guys a little about it &#8211; and why schielmann was dropped etc&#8230; A really fun and interesting insider talk :-) I simply love such conversations&#8230;<img class="alignright" title="Rich Client Programming" src="http://www.javalobby.org/articles/rich-client-programming/cover.jpg" alt="rich client programming" width="180" height="180" /></p>
<p>After the training Geertjan gave away a copy of his book (&#8220;Rich Client Programming&#8221;), to the person who asked the best, most interesting questions during the course. Of course it was then signed by all the trainers. Sadly I don&#8217;t have a picture of the books&#8217; winner, nonetheless &#8211; <strong>congratulations!</strong> After the training I also asked the guys to sign my copy of the book, hurray for signature collectors ;-)</p>
<p>Anyone interested in some of the response I got concerning the training? After the training plenty of you mailed me and thanked via forums etc, here&#8217;s a few responses:</p>
<blockquote><p>przyznaje, na prawde baaaardzo fajne szkolenie</p></blockquote>
<blockquote>
<div>Faktycznie &#8211; świetna robota.  Wielkie dzięki ;)</div>
</blockquote>
<blockquote>
<div>Tru. <acronym title="Good Job">Gj</acronym>.</div>
</blockquote>
<blockquote>
<div>[...] nie udalo mi sie zjawic a slyszalem ze bylo super ;/</div>
</blockquote>
<blockquote>
<div>[...] bedzie problemem jesli przyjde jutro na to szkolenie NetBeans&#8217;a? Bo slyszalam ze duzo ciekawych i przydatnych dla mnie rzeczy jest wiec chcialabym sobie posluchac :)</div>
</blockquote>
<div>Big big thanks to all of you, I&#8217;m happy you enjoined the training. You may want to check out <a href="http://netbeans.dzone.com/polish-jug-netbeans-platform" onclick="urchinTracker('/outgoing/netbeans.dzone.com/polish-jug-netbeans-platform?referer=');">Geertjan&#8217;s take on it on dZone</a>.</div>
<p style="text-align: center;"><a href="http://www.blog.project13.pl/wp-content/uploads/2010/04/DSC_0004.jpg"><img class="size-medium wp-image-552" title="NetBeans Platform in Cracow" src="http://www.blog.project13.pl/wp-content/uploads/2010/04/DSC_0004-300x198.jpg" alt="Group foto" width="300" height="198" /></a></p>
<h3>See you next time!</h3>
<p>I hope you all enjoined the training &#8211; we certainly did. I&#8217;ve got some opinions from happy participants, so I guess everyone liked it as much as those did.</p>
<p>If you have anything (opinions, sources or even complaints) feel free to contact me: kmalawski@project13.pl or just leave a comment here :-) Also, when you get your<strong> NetBeans Certified Engineer</strong> and would like some more promotion for your open source project &#8211; let me know and we&#8217;ll add a link to it at netbeans.edu.pl!</p>
<p><strong>Some students have already  have started their projects based on the NetBeans Platform &#8211; so what are you waiting for?! ;-)</strong></p>
<h3>What&#8217;s next for me?</h3>
<p>Well, I&#8217;m going to <a href="http://2010.geecon.org/site/schedule" onclick="urchinTracker('/outgoing/2010.geecon.org/site/schedule?referer=');"><strong>GeeCON</strong></a>, to learn about <strong>Gradle</strong>, and tap into facts and myths about <strong>JSF</strong> and other things (the <a href="http://2010.geecon.org/site/schedule" onclick="urchinTracker('/outgoing/2010.geecon.org/site/schedule?referer=');">list of good topics</a> is really long so I wont list them all here, just have a look on your own). The agenda mostly caught up my attecion and I&#8217;m really happy to be going there. What&#8217;s new for me + conferences is that I don&#8217;t have to go alone anymore. I&#8217;m going with a friend (some years older) and potentialy another girl &#8211; as she won the Google trip to GeeCON&#8230; ;-) I&#8217;m also really happy to be able to meet Adam Dudczak, thanks to whom the whole NBPT idea got ignited in me and the NetBeans Guys :-) Of course we&#8217;ll meet up  with all the <strong>PolishJUG</strong> members, (Adrian Nowak, Radosław Holewa, Marcin Gadamer and Kuba Dżon) and Miroslav will be comming too &#8211; lot&#8217;s and lot&#8217;s of programming-friends :-) Seems like Toni and Geertjan will also be comming, yay! Yeah, so that&#8217;ll be 3 days in May&#8230; but that&#8217;s not the end of my Java related stuff in May:</p>
<p>Later in May I&#8217;ll be on an Spring Source Training. It&#8217;s only the &#8220;short introductory one&#8221;, and I&#8217;m well aware that it won&#8217;t make me an spring-guru, but an insider insight about Spring, Roo or Grails is also a good thing to have.</p>
<p>By the way, did you notice that the <strong>netbeans.edu.pl is running on Grails</strong>? I&#8217;ll release it&#8217;s sources when they&#8217;re polished enough~! Viva la free software.</p>
<div id="attachment_554" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.blog.project13.pl/wp-content/uploads/2010/04/DSC_0002-2.jpg"><img class="size-medium wp-image-554 " title="NetBeans guys and Konrad Malawski" src="http://www.blog.project13.pl/wp-content/uploads/2010/04/DSC_0002-2-300x198.jpg" alt="" width="300" height="198" /></a><p class="wp-caption-text">Geertjan, Toni, Konrad (me), Karol</p></div>
<p>Oh, and for those asking: Sadly I didn&#8217;t own an PolishJUG T-Shirt at the  time of the training, so I took the most Java related I had &#8211; from <a href="http://jdd.org.pl/" onclick="urchinTracker('/outgoing/jdd.org.pl/?referer=');">Java Developers  Day</a>. Also a quite nice conference&#8230; :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/551/after-the-netbeans-certified-platform-training-in-krakow-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing Git with Gitosis</title>
		<link>http://www.blog.project13.pl/index.php/project13/477/installing-git-with-gitosis/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/477/installing-git-with-gitosis/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 15:22:40 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[Project13]]></category>
		<category><![CDATA[free software]]></category>
		<category><![CDATA[git]]></category>
		<category><![CDATA[gitosis]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[terminal]]></category>
		<category><![CDATA[webdeveloper]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=477</guid>
		<description><![CDATA[Git is really simple and VERY powerfull. It makes svn look like an idiot &#8211; but that&#8217;s just my personal opinion ;-) Anyways, I&#8217;m using github most of the time, but now I&#8217;d like to hava a non public repository (yet remote) for some small project. I&#8217;ve been commiting to a local git instance from [...]]]></description>
			<content:encoded><![CDATA[<p>Git is really simple and VERY powerfull. It makes svn look like an idiot &#8211; but that&#8217;s just my personal opinion ;-)</p>
<p>Anyways, I&#8217;m using github most of the time, but now I&#8217;d like to hava a non public repository (yet remote) for some small project. I&#8217;ve been commiting to a local git instance from the begining of this project so just pushing it into a new repo will be really simple.</p>
<p>I wanted to have som easy to administer localozed git to serve hit hosting for my friends etc. So this is how I did it:</p>
<p>On server:</p>
<div class="geshi no bash">
<div class="head"># do this as root of course</div>
<ol>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> ~<span class="sy0">/</span>src</div>
</li>
<li class="li1">
<div class="de1">git clone git:<span class="sy0">//</span>eagain.net<span class="sy0">/</span>gitosis.git</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> gitosis</div>
</li>
<li class="li1">
<div class="de1">.<span class="sy0">/</span>setup.py <span class="kw2">install</span></div>
</li>
<li class="li1">
<div class="de1">useradd git</div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#end of obvious stuff</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">gitosis-init <span class="sy0">&lt;</span> <span class="sy0">/</span>location<span class="sy0">/</span>of<span class="sy0">/</span>administrators<span class="sy0">/</span>public<span class="sy0">/</span>id_rsa.pub <span class="co0">#this will allow you to administer gitosis remotely</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">sudo</span> <span class="kw2">chmod</span> <span class="nu0">755</span> <span class="sy0">/</span>home<span class="sy0">/</span>git<span class="sy0">/</span>repositories<span class="sy0">/</span>gitosis-admin.git<span class="sy0">/</span>hooks<span class="sy0">/</span>post-update <span class="co0"># in case gitosis-init didn&#39;t do this already</span></div>
</li>
</ol>
</div>
<p>Now we can do all the administration without being logged in into our server &#8211; just by using git!
</pre>
<div class="geshi no bash">
<div class="head">#all of the following is done LOCALLY!</div>
<ol>
<li class="li1">
<div class="de1">git clone git<span class="sy0">@</span>stratos:gitosis-admin.git</div>
</li>
<li class="li1">
<div class="de1"><span class="kw3">cd</span> gitosis-admin</div>
</li>
<li class="li1">
<div class="de1">vim gitosis.conf <span class="co0">#edit groups and repositories</span></div>
</li>
<li class="li1">
<div class="de1">writable = bla is responsible <span class="kw1">for</span> the repositories</div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#for example you could setup:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#then just do the stuff you would normally do with git:</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#[group secret-group]</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#writable = bla</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#members = ktoso@homunculus ktoso@protos</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#here&#39;s how your dir structure should look like</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#├── gitosis.conf #repository configuration</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#└── keydir #put all (ssh) public keys of your users in here</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0"># &nbsp; &nbsp;├── ktoso@homunculus.pub</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0"># &nbsp; &nbsp;└── ktoso@protos.pub</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co0">#now just do what you would normally do with a git repository</span></div>
</li>
<li class="li1">
<div class="de1">git add .</div>
</li>
<li class="li1">
<div class="de1">git commit -m <span class="st0">&#39;new repo: bla&#39;</span></div>
</li>
<li class="li1">
<div class="de1">git push</div>
</li>
</ol>
</div>
<p>You can then just pull/clone this repo:</p>
<pre lang="bash">git clone git://stratos/bla.git</pre>
<p>Yeah, this post isn't much of an discovery - yet I wanted to show you how SIMPLE and SCALABLE a simple git repository can be. For mor information about git and gitosis see: <a href="http://www.google.com/search?q=google+gitosis" onclick="urchinTracker('/outgoing/www.google.com/search?q=google+gitosis&amp;referer=');">a simple google search</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/477/installing-git-with-gitosis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>I&#8217;m an RHCT &#8211; yay!</title>
		<link>http://www.blog.project13.pl/index.php/project13/261/im-an-rhct-now/</link>
		<comments>http://www.blog.project13.pl/index.php/project13/261/im-an-rhct-now/#comments</comments>
		<pubDate>Fri, 02 Oct 2009 19:54:53 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[Project13]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[gnu]]></category>
		<category><![CDATA[gnu/linux]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[skills]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=261</guid>
		<description><![CDATA[Yes, my GNU/Linux skills have been certified and now I can call myself a Red Hat Certified Technician as I&#8217;ve today passed the RH-202 exam with a 100% score &#8211; which leads me to the idea that I should have tried to tackle RHCE and not RHCT &#8211; I&#8217;ll do ir eventually someday I guess [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.blog.project13.pl/wp-content/uploads/2009/10/red-hat-logo-05071.png"><img class="size-full wp-image-262 alignleft" title="red-hat-logo-05071" src="http://www.blog.project13.pl/wp-content/uploads/2009/10/red-hat-logo-05071.png" alt="red-hat-logo-05071" width="120" height="120" /></a>Yes, my GNU/Linux skills have been certified and now I can call myself a <strong>Red Hat Certified Technician</strong> as I&#8217;ve today passed the RH-202 exam with a 100% score &#8211; which leads me to the idea that I should have tried to tackle <strong>RHCE</strong> and not <strong>RHCT</strong> &#8211; I&#8217;ll do ir eventually someday I guess anyways.</p>
<p>Happy Hacking!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/project13/261/im-an-rhct-now/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

