<?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; review</title>
	<atom:link href="http://www.blog.project13.pl/index.php/tag/review/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>[review] CodeRetreat.SCKRK.com</title>
		<link>http://www.blog.project13.pl/index.php/fun/1230/review-coderetreat-sckrk-com/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/1230/review-coderetreat-sckrk-com/#comments</comments>
		<pubDate>Tue, 12 Apr 2011 09:18:06 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[clean code]]></category>
		<category><![CDATA[clojure]]></category>
		<category><![CDATA[coderetreat]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[objective-c]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[scala]]></category>
		<category><![CDATA[TDD]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=1230</guid>
		<description><![CDATA[This Saturday we&#8217;ve (the Software Craftsmanship in Cracow guys) organized a Code Retreat, right after AgileCE. We&#8217;ve invited Corey Haines to join us and facilitate this meetup, and later on even Alexandru Bolboaca AND Maria Diaconu joined us in facilitating the event and so it got even better :-) Before we start, just a quick reminder [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://www.blog.project13.pl/wp-content/uploads/2011/04/cr-sckrk.gif"><img class="aligncenter size-full wp-image-1261" title="Code Retreat . SCKRK .com" src="http://www.blog.project13.pl/wp-content/uploads/2011/04/cr-sckrk.gif" alt="" width="520" /></a></p>
<p>This Saturday we&#8217;ve (the <a href="http://sckrk.com" onclick="urchinTracker('/outgoing/sckrk.com?referer=');">Software Craftsmanship in Cracow</a> guys) organized a <a href="http://www.coderetreat.com/" onclick="urchinTracker('/outgoing/www.coderetreat.com/?referer=');">Code Retreat</a>, <strong>right after AgileCE</strong>. We&#8217;ve invited <a href="http://www.coreyhaines.com/" onclick="urchinTracker('/outgoing/www.coreyhaines.com/?referer=');"><strong>Corey Haines</strong></a> to join us and facilitate this meetup, and later on even <a href="http://www.alexbolboaca.ro/" onclick="urchinTracker('/outgoing/www.alexbolboaca.ro/?referer=');"><strong>Alexandru Bolboaca</strong></a> AND <strong><a href="https://twitter.com/#!/fireladym" onclick="urchinTracker('/outgoing/twitter.com/_/fireladym?referer=');">Maria Diaconu</a> </strong> joined us in facilitating the event and so it got <strong>even better</strong> :-)</p>
<div class="wp-caption aligncenter" style="width: 557px"><img class=" " src="https://lh4.googleusercontent.com/_R79BchylD5A/TaI4-NlZY9I/AAAAAAAASrw/A7wNhXDuTd0/s1024/IMG_9268.jpg" alt="Corey doing the introductional Keynote" width="547" /><p class="wp-caption-text">Corey doing the introductional Keynote</p></div>
<p>Before we start, just a quick reminder what a CodeRetreat actually is (for the sake of everyone reading this blog not knowing what the hell I&#8217;m so excited about ;-)). The rules are really easy, take a bynch of passionate programmers, put them in a room for 1 whole day and tell them to code the game of life. There are about 6 sessions, where each time you&#8217;d <strong>pair up with another person </strong>and code away. After <strong>45 minutes you have to delete the code you&#8217;ve written</strong>, then after a 15m pause to talk about your results you find a new pair and code it again from scratch. It&#8217;s important to embrace the code deleting part &#8211; it&#8217;s somewhat like catharsis&#8230; :-) No matter how bad (or great) the code you&#8217;ve written was, on average in 22.5 minutes it will go away :-)  The idea is to embrace that you most probably won&#8217;t finish the problem in time, so you can just focus on honing your skills in TDD, pairing, IDE usage and generale code style and skillz. There&#8217;s no better way to learn these skills than to confront them with someone else&#8217;s &#8211; that way you both can learn new tricks or find out why some ol tricks you used actually suck :-) In the end of the day, you&#8217;ve become a better programmer&#8230; and will hopefully take these new skills into your workplace and <strong>improve the code quality</strong> there :-)</p>
<div class="wp-caption aligncenter" style="width: 557px"><img class=" " src="https://lh6.googleusercontent.com/_R79BchylD5A/TaI5H7DwO6I/AAAAAAAASsc/JuG5XZ0j8lA/s912/P1020923.jpg" alt="" width="547" height="410" /><p class="wp-caption-text">Happy hacking!</p></div>
<p>The response to our CR was really amazing. We&#8217;ve had quite a few sponsors &#8211; LunarLogic, AppliCake, ABB, Sii&#8230; and the PolishJUG helped out as well as it could with organizing the whole thing :-) Oh, and I hope you&#8217;ve seen our <a href="http://coderetreat.sckrk.com" onclick="urchinTracker('/outgoing/coderetreat.sckrk.com?referer=');">nice website</a> created by Olga from LLP? The interest from participants was equally big &#8211; all places where <strong>&#8220;sold out&#8221;</strong> <strong>in just about 3 hours</strong>&#8230; ;-) We where around 50 people in total and I think that&#8217;s a perfect number of coders for such an event. Some coded in <strong>Java</strong>, some in <strong>.NET</strong> and others in <strong>Ruby</strong> or <strong>Python</strong>, oh and there was an <strong>Objective-C</strong> and <strong>Scala</strong> team too. One of the nive things during a CR is being able to try out a new language, so the Ruby guys where really overflown by people wanting to try Ryby for example ;-) I&#8217;ve spent the rest of my sessions (4/5) coding in <strong>Java</strong> and just once had to lay hands on Eclipse&#8230; ;-) During one session I tried out ruby (<strong>ルビ</strong>) with Adam from SCKRK, which was fun as I did read some books/articles about it and really enjoyed the<strong> BDD</strong> that <strong>rspec</strong> uses. I also noticed that scala test seems to have derrived from it (or the other way arround :p)&#8230; :-)</p>
<div class="wp-caption aligncenter" style="width: 557px"><img src="https://lh6.googleusercontent.com/_R79BchylD5A/TZy8APe9mVI/AAAAAAAASlY/W2immHPMbrw/s912/P1000737.JPG" alt="The 2nd room was also full" width="547" height="410" /><p class="wp-caption-text">The 2nd room was also full</p></div>
<p style="text-align: left;">After two sessions we had <strong>nice long lunch</strong>, to relinquish our coding skills and ideas (we&#8217;ve ordered from <a href="http://thaisty.pl/" onclick="urchinTracker('/outgoing/thaisty.pl/?referer=');">thaist</a>y). And then a next set of 3 sessions followed. This time more focused on experimentation etc. For example one session we managed to <strong>not use if&#8217;s and for&#8217;s at all</strong> (sigh, upto one place but the time ran out then..). Google Guava was a great help there :-) On another sessions we&#8217;ve focused on <strong>Mockito</strong> and the more advanced mocking techniques such as parameter catching etc&#8230; In the end we really knew how much over engeenired it was but nevertheless it was really <strong>interesting to learn and play</strong> with these thoughts &#8211; that&#8217;s what CR is about.</p>
<div class="wp-caption aligncenter" style="width: 557px"><img class="  " title="Final Wrap Up" src="https://lh5.googleusercontent.com/_R79BchylD5A/TaI5gGby0xI/AAAAAAAAStU/vrCo3rVcnq4/s1024/IMG_9249.jpg" alt="" width="547" />1<p class="wp-caption-text">Final Wrap Up</p></div>
<p>Later on we&#8217;ve sent out a questionary on how much you enjoyed the CR and the response was also really positive. We&#8217;ll think about coffee next time &#8211; promissed. :-)</p>
<p>Stanley just pulled in my quick gallery commit to our website <strong>git</strong> repo a moment ago, so you can now visit <a href="http://coderetreat.sckrk.com/gallery/" onclick="urchinTracker('/outgoing/coderetreat.sckrk.com/gallery/?referer=');"><strong>coderetreat.</strong>sckrk.com/<strong>gallery</strong></a> and look for yourself on the pics :-) They&#8217;re fetched from <a href="https://picasaweb.google.com/ktosopl/CodeRetreat2011#" onclick="urchinTracker('/outgoing/picasaweb.google.com/ktosopl/CodeRetreat2011?referer=');">my picasa</a> so if you&#8217;d rather download them all from there, please do so :-)</p>
<div id="attachment_1274" class="wp-caption aligncenter" style="width: 557px"><a href="http://www.blog.project13.pl/wp-content/uploads/2011/04/P1020931.jpg"><img class="size-full wp-image-1274 " title="group photo coderetreat" src="http://www.blog.project13.pl/wp-content/uploads/2011/04/P1020931.jpg" alt="" width="547" height="410" /></a><p class="wp-caption-text">Group Photo</p></div>
<p>All in all&#8230; I&#8217;m really happy and proud to have been part of this event. It&#8217;s really been one of a kind and I hope all of you feel the same way about it. Well, it would certainly seem so after the opinions on the final wrap up and questionary later on. :-) So, once again, <strong>thank you for participating</strong> and see you soon on most major coding events :-) (ps: <a href="http://2011.geecon.org" onclick="urchinTracker('/outgoing/2011.geecon.org?referer=');"><strong>GeeCON</strong></a> is one of them).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/1230/review-coderetreat-sckrk-com/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[review] Devmeeting &#8211; Javascript Game Development</title>
		<link>http://www.blog.project13.pl/index.php/fun/1181/review-devmeeting-javascript-game-development/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/1181/review-devmeeting-javascript-game-development/#comments</comments>
		<pubDate>Sun, 20 Feb 2011 23:21:12 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[freedom]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[clientside]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[js]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[node.js]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[serverside]]></category>
		<category><![CDATA[TDD]]></category>
		<category><![CDATA[training]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=1181</guid>
		<description><![CDATA[Yesterday and today I&#8217;ve been hacking some JavaScript during a free training organized by http://releasingforce.com/ although they&#8217;re not really braging that it&#8217;s them who do these meetings, more precisely: http://www.devmeetings.pl/ :-) As I&#8217;m coding quite a lot GWT and JS has also become quite powerfull in the last years I enlisted the training to learn [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday and today I&#8217;ve been hacking some JavaScript during a free training organized by <a href="http://releasingforce.com/" onclick="urchinTracker('/outgoing/releasingforce.com/?referer=');">http://releasingforce.com/</a> although they&#8217;re not really braging that it&#8217;s them who do these meetings, more precisely: <a href="http://www.devmeetings.pl/" onclick="urchinTracker('/outgoing/www.devmeetings.pl/?referer=');">http://www.<strong>devmeetings</strong>.pl/</a> :-)</p>
<p>As I&#8217;m coding quite a lot GWT and JS has also become quite powerfull in the last years I enlisted the training to learn more about JS optimalization and add some more tricks to my toolbox. Also some real life use scenarios would be very welcome. Turns out Tanadu (a polish &#8220;heroes-like&#8221; browser game) was implemented 100% in plain JS. Which is quite shocking and as we later agreed on developing such code can really be a pain in the neck. &#8220;Use GWT&#8221; would be my anwser to such an use case I guess &#8211; you wouldn&#8217;t loose the refactoring tooling Java gives you and could still fallback to JSNI if really needed. <strong>Did the &#8220;training&#8221; meet my expectations? Yup. Want more details? Read on&#8230; :-)</strong></p>
<p>It was really fun and I&#8217;ve even (and unexpectedly) met a friend of mine with whom (and one other developer) we&#8217;ve paired up and were coding a JS Mortal Kombat in JavaScript for those two days. We&#8217;ve learnt how to use CSS3 *-animation, *- transition and other cool new features (well, most of them &#8220;webkit only&#8221; but very cool nevertheless). Then we&#8217;ve coded a little and went on to dinner ate Jeff&#8217;s where I&#8217;ve lead the group to :-) Sadly dinner took a little too much time and we had less time to code than Poznań during their meeting a few weeks ago.</p>
<p>By the way&#8230; MVC in JavaScript is quite weird (<em>hey, most of the teams ended up with GodObjects anyways! ;-)</em>), as is any acting &#8220;hey, let&#8217;s just say we can have classess and inherit them blabla&#8230;&#8221;. We&#8217;ve seen quite a few examples on how to <strong>emulate OOP</strong> <strong>in JavaScript</strong> which was both: really weird and interesting at the same time. In the end, the thought &#8220;if you have no type system, in the end you develop your own&#8221; seems really true here. I believe this was said by someone from twitter about their Ruby code, which had a hell lot of assertions in it just to be sure &#8220;abc is really of type AbcType&#8221;. That&#8217;s why I&#8217;m more for Scalas apparoach than Groovy&#8217;s or Javascript/Ruby/Php, but I&#8217;m not that advanced in Scala yet to judge it as &#8220;super perfect&#8221;&#8230; ;-)</p>
<div id="attachment_1188" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.blog.project13.pl/wp-content/uploads/2011/02/mk1.png"><img class="size-medium wp-image-1188" title="mk1" src="http://www.blog.project13.pl/wp-content/uploads/2011/02/mk1-300x167.png" alt="" width="300" height="167" /></a><p class="wp-caption-text">MK in Javascript using Node.js</p></div>
<p>On the next day we implemented the serverside stuff, using <strong>node.js</strong> and <strong>socket.io</strong> for the clientside wich worked really well I have to addmit. Although I&#8217;m still wondering how I&#8217;d handle auth/security to be _really_ secure using such server instances (&#8220;nodes&#8221; ;-))&#8230; Finally our game had a very nice and developed state machine for all basic mortal kombat moves (including high/low punch etc, how much such state is blocking and which sprite to use for it, jumping etc.). As this state manipulation took most of our time, our server didn&#8217;t support an infinite number of players as some other implementations did but as a trade off they didn&#8217;t have any combo/move logic in their games :-) Of course the game was playable (well, &#8220;almost playable&#8221; &#8211; both players think they&#8217;re &#8220;on the left&#8221;, but we&#8217;d fix that very quick if needed&#8230; ;-)). A quick finishing talk touched some performance tweaks &#8211; quite some we should have used in mSejf etc &#8211; so I feel a little smarter than before :-) Sadly we didn&#8217;t talk too much about TDD using JavaScript which may be really a good idea (ugh this loose typing can make you mad sometimes&#8230; ;-)).</p>
<div id="attachment_1182" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.blog.project13.pl/wp-content/uploads/2011/02/mk2.png"><img class="size-medium wp-image-1182" title="mk2" src="http://www.blog.project13.pl/wp-content/uploads/2011/02/mk2-300x169.png" alt="mortal kombat" width="300" height="169" /></a><p class="wp-caption-text">Our mortal kombat game ;-)</p></div>
<p><strong>What could be definitely improved</strong> is the internet connection (well, &#8220;organization&#8221; as a whole I guess) as we had quite a lot problems with it (choose a hotel which is no noob in terms of IT meetings :-)) and the lead&#8217;s knowlage about git. Since it&#8217;s quite an deep tool, and we&#8217;re not here to focus on it but on JavaScript some quick info about how to use it and more developers who aren&#8217;t using it the first time in their lifes would have been really helpful. But fear not, I&#8217;ve helped out all the teams with learning git and all merges, push/pull flows and other weird problems :-) So it became quite an hybrid training where some of the participants learnt quite a lot about git :-) Some may actually like it in spite of the difficulties we encountered in our very chaotic flow during our hack sessions&#8230; :-) On the other hand, any way of introducing git to new people is a good thing, but I fear some may expierience some discomfort/distrust to a tool they&#8217;ve just &#8220;learnt&#8221; on a &#8220;fly by basis&#8221;, from&#8230; well, me &#8211; another participant. ;-)</p>
<p>From my perspective it was a great and fun meeting and I&#8217;d like to attend more such meetings, sharing the same  formula, or slightly improved. What I loved was of course the hacking and fun of working in a team + teaching people git&#8230; :-) If you&#8217;re hungry for some team coding you may want to checkout one of the upcomming meetings or wait for <strong>SCKRK</strong>s + <strong>PolishJUG</strong>s &#8220;<strong>Code Retreat</strong>&#8221; that we&#8217;ll be announcing really soon&#8230; :-)</p>
<p>PS: I&#8217;ve pushed our game implementation (less than 8h of real coding (rest of the time was talking/presentations/eating etc ;-)) to github, here: <a href="https://github.com/ktoso/mk-javascript" target="_blank" onclick="urchinTracker('/outgoing/github.com/ktoso/mk-javascript?referer=');">https://github.com/ktoso/<strong>mk-javascript</strong></a> so you may want to take a look. Event out of pure curiosity :-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/1181/review-devmeeting-javascript-game-development/feed/</wfw:commentRss>
		<slash:comments>0</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>[review] Amazon Kindle (3)</title>
		<link>http://www.blog.project13.pl/index.php/fun/1063/review-amazon-kindle-3/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/1063/review-amazon-kindle-3/#comments</comments>
		<pubDate>Sun, 31 Oct 2010 17:55:01 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[fun]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[amazon]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[ebook]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[kindle]]></category>
		<category><![CDATA[lifestyle]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=1063</guid>
		<description><![CDATA[Yup, I&#8217;m now an happy owner of an Amazon Kindle. In case you don&#8217;t know what it is (&#8230;how&#8217;s that even possible&#8230;?) it&#8217;s an ebook reader. One of that kind we&#8217;ve been waiting for a loooong time now &#8211; with an e-ink display and free internet access etc etc&#8230; Here&#8217;s an super quick review of [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><a href="http://lh5.ggpht.com/_R79BchylD5A/TM2hYJXnynI/AAAAAAAASMA/ZVnbKJmka7k/P1040282.JPG" onclick="urchinTracker('/outgoing/lh5.ggpht.com/_R79BchylD5A/TM2hYJXnynI/AAAAAAAASMA/ZVnbKJmka7k/P1040282.JPG?referer=');"><img class="aligncenter" title="kindle" src="http://lh5.ggpht.com/_R79BchylD5A/TM2hYJXnynI/AAAAAAAASMA/ZVnbKJmka7k/P1040282.JPG" alt="" width="550" /></a></p>
<p style="text-align: left;">Yup, I&#8217;m now an happy owner of an <a href="http://www.amazon.com/dp/B002Y27P3M/?tag=gocous-20&amp;hvadid=5731245437&amp;ref=pd_sl_dd9w6mlkw_e" onclick="urchinTracker('/outgoing/www.amazon.com/dp/B002Y27P3M/?tag=gocous-20_amp_hvadid=5731245437_amp_ref=pd_sl_dd9w6mlkw_e&amp;referer=');"><strong>Amazon Kindle</strong></a>. In case you don&#8217;t know what it is (&#8230;how&#8217;s that even possible&#8230;?) it&#8217;s an ebook reader. One of that kind we&#8217;ve been waiting for a loooong time now &#8211; with an <strong><a href="http://en.wikipedia.org/wiki/E_Ink" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/E_Ink?referer=');">e-ink</a></strong> <strong>display</strong> and free internet access etc etc&#8230;</p>
<p>Here&#8217;s an super quick review of it&#8217;s features:</p>
<ul>
<li>Amazing <strong>e-ink display</strong> &#8211; Yes, it looks really really good. I was kind of sceptic about it but it has proven to me that it really is a pleasure to read from it. It&#8217;s even better than some books &#8211; printed on this damn &#8220;shiny paper&#8221;. So yes, I do see great potential in E-Ink, too bad it&#8217;s proprietary.</li>
<li><strong>NOT an time waster</strong> &#8211; other than the iPad and it&#8217;s concurrence the Kindle will not distract me. No awesome GUI, no shiny buttons. Just a few short cuts (yay for keyboard fans) for just about anything. Finally I&#8217;ll just focus and read some books I&#8217;ve been trying to start/finish since a long time, but didn&#8217;t want to drag them to the uni of some place else (because they&#8217;re really big (coding books)).</li>
<li><span style="text-decoration: line-through;"><strong>No shipping fee for books</strong> that I order from the US/UK -</span> I striked this one out as you can see. Why? Because Amazon has just expanded to another 16 countries or so, and thus I wouldn&#8217;t have to pay any shipping if I&#8217;d order an print book (mainly coding books btw) from the UK. Also this point is for all ebook readers, not just the kindle.</li>
<li><strong>Free 3G internet connection world wide</strong> &#8211; although in Poland I do have my phone connected to the web most of the time. While being aboard this may really be useful &#8211; It certainly would be welcome during my last Japan trip.</li>
<li>It also <strong>reads images, pdf&#8217;s audiobooks doc&#8217;s etc</strong>. I&#8217;ll be using it during my classes a lot, since we often get a lot of PDF&#8217;s to be used during our laboratory classes.</li>
<li><strong>Emailing my Kindle</strong> &#8211; this is an way to deliver myself (or let someone send me) some document and have it immediately downloaded by the kindle. It also allows converting of normal PDF books to Kindles format, which allows it to scale pages a little better and enables <strong>text-to-speech</strong>.</li>
<li><strong>Text-To-Speech</strong> is actually <strong>not bad</strong>! I&#8217;ll probably listen to some chapters on my way to work (I&#8217;m going alone by car most of the time). And music playback is also a nice touch, I always listen to some ambient or chilloutish stuff while doing anything that involves concentrating.</li>
<li>Yup it&#8217;s <strong>Linux</strong> (well, but not much GNU I guess&#8230;) and <strong>Java</strong> powered. They&#8217;re now testing their SDK (KDK) and will be releasing it quite soon. Although I don&#8217;t think the Kindle really needs a whole lot of apps &#8211; that&#8217;s why I wanted it in the first place: simple + not distractive. And as there will be quotas per user-&gt;per kindle-&gt;per app on 3G conectivity (100KB per app, I believe) it won&#8217;t be coming with some cool rss clients I guess &#8211; that&#8217;s something I&#8217;d definitely like to have on it.</li>
</ul>
<p>Oh and<strong> stop asking me about the iPad</strong> and other such devices &#8211; <strong>I&#8217;m not interested</strong>. <strong>For now,</strong> they&#8217;re just <strong>&#8220;yet another time waster&#8221;</strong> and I really don&#8217;t have that much time to buy myself another &#8220;time waster&#8221;. Most people who are so fond of the iPad and it&#8217;s clones are mostly just like &#8220;wooo it shines so coool&#8221; and &#8220;waaaa these animations are so cool&#8221;. Yes, i perfectly do see potential in such tablets, but not if they&#8217;re so limited that their neither an Kindle (1 purpose, very good at it.) or an laptop replacement &#8211; please launch NetBeans or IntelliJ on the iPad and we&#8217;ll slowly start talking.</p>
<p style="text-align: center;"><a href="http://lh6.ggpht.com/_R79BchylD5A/TM2hSW1D7pI/AAAAAAAASLM/CK5_gde7A60/P1040269.JPG" onclick="urchinTracker('/outgoing/lh6.ggpht.com/_R79BchylD5A/TM2hSW1D7pI/AAAAAAAASLM/CK5_gde7A60/P1040269.JPG?referer=');"><img class="aligncenter" title="chunky" src="http://lh6.ggpht.com/_R79BchylD5A/TM2hSW1D7pI/AAAAAAAASLM/CK5_gde7A60/P1040269.JPG" alt="" width="500" /></a></p>
<p>A few <strong>downsides:</strong></p>
<ul>
<li>Oh, there is one big thing I really don&#8217;t like &#8211; <strong>no GNU/Linux client app for Kindle.</strong> Although I do understand that we GNU Guys dont want such software on our platform, it would have been useful&#8230;</li>
<li><strong>It still is a little expensive</strong> (well I&#8217;m still just a polish student, right?) to buy ebooks for the kindle. It may seem that the books are cheaper than their print counterparts (which is true) but all in all we don&#8217;t end up paying less for the books, and are at the risk of loosing them because &#8220;amazon had a bad hair day&#8221;.</li>
</ul>
<p>PS: I&#8217;ll take it with my to the next<strong> JavaCamp</strong> (where I&#8217;ll be speaking about GIT (warning, it&#8217;ll be an extremely &#8220;other kind of&#8221; presentation))<strong> </strong>so if you&#8217;re interested  feel free to apparoach me and ask me for a quick demo ;-)</p>
<p>PPS: Do you know the book sampled in the first picture? If not, google the first sentence and start reading right now!</p>
<p><strong>PPS: <em>Chunky Bacon!</em></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/1063/review-amazon-kindle-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[review] JDD 2010</title>
		<link>http://www.blog.project13.pl/index.php/coding/872/review-jdd-201/</link>
		<comments>http://www.blog.project13.pl/index.php/coding/872/review-jdd-201/#comments</comments>
		<pubDate>Fri, 08 Oct 2010 20:53:19 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[conference]]></category>
		<category><![CDATA[jdd]]></category>
		<category><![CDATA[jee]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=872</guid>
		<description><![CDATA[After I came back to Poland this week I had an bazillion of things to do&#8230; Now it&#8217;s just getting even more but I&#8217;ll try survive this. One additional time-taker this week was this years Java Developers&#8217; Day. In fact, it should have been renamed and I&#8217;m very wondered that it wasn&#8217;t to: &#8220;Java Developer [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="aligncenter" title="Java Developer Days" src="http://10.jdd.org.pl/images/jdd_01.gif" alt="Java Developer Days" height="70" /></p>
<p>After I came back to Poland this week I had an <a href="http://www.urbandictionary.com/define.php?term=bazillion" onclick="urchinTracker('/outgoing/www.urbandictionary.com/define.php?term=bazillion&amp;referer=');">bazillion</a> of things to do&#8230; Now it&#8217;s just getting even more but I&#8217;ll try survive this.</p>
<p>One additional time-taker this week was this years Java Developers&#8217; Day. In fact, it should have been renamed and I&#8217;m very wondered that it wasn&#8217;t to: &#8220;Java Developer Days&#8221; or something like this, as this time the event lasted 2 days, from 8h per day. Of course it&#8217;s an paid conference. Having all that said, JDD was the first Java conference I took part in some time ago. I was lucky enough to see the amazing Scott Davis in action and a whole lot of other VERY inspiring talks during the last JDD I&#8217;ve seen. So I decided to go there once more, to get inspired once again&#8230; and <strong>was it worth it this year&#8230;? I&#8217;m not really sure&#8230; </strong>But let&#8217;s continue with an quick-review:</p>
<p>(There was only one session path on each day &#8211; no concurent sessions, thus I attended &#8220;all there was&#8221;.)</p>
<h2><em>RESTful Java</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/bill-burke" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/bill-burke?referer=');">Bill Burke</a></strong></h2>
<p>I wouldn&#8217;t say it was a &#8220;bad&#8221; presentation. But with practically no coding, and mostly speaking about the core concepts of ROA and REST it wasn&#8217;t an interesting nor informative talk. Even more as <a href="http://www.youtube.com/watch?v=nPvx16UtYrY&amp;feature=related" target="_blank" onclick="urchinTracker('/outgoing/www.youtube.com/watch?v=nPvx16UtYrY_amp_feature=related&amp;referer=');">last year we&#8217;ve seen the amazing Scott Davis talking</a> about the same topic (and being an total mind-opener and show-maker). I mean, hey, we&#8217;re Java Devs, we know about JAX-RS, right? Or am I just living in my bobble where everyone is well informed about such technology. Well it&#8217;s not that new of a technology to start with. REST is everywhere so it was kinda weird to start again with just the basic example use cases. I&#8217;d wish Bill would&#8217;ve showed a little more complicated scenarios &#8211; such as just coding an client (with maybe some nice tricks for it) or working with JSON or custom Object-&gt;XML serialization or something, not just the basic &#8220;HTTP method = java method mapping&#8221; stuff.</p>
<h2><em>Java Programming in a Multicore World</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/angelika-langer" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/angelika-langer?referer=');">Angelika Langer</a></strong></h2>
<p>This presentation came as an small surprise to us. Angelika indeed seems to know a lot about the internals of the JVM and the presentation did cover some interesting quirks about when memory is &#8220;flushed&#8221; (let&#8217;s call it like that for simplicities sake) so other threads would see an changed state. There was an particiulary interesting note about how transient REALLY works. Although not being an eye-opener, this presentation had some tips and tricks.<strong><br />
</strong></p>
<h2><em>Testing the Efficiency of Java Enterprise Applications</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/jaroslaw-blad" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/jaroslaw-blad?referer=');">Jarosław Błąd</a></strong></h2>
<p>I believe I&#8217;ve seen some of Jarosław&#8217;s speeches on some recordings, and they kinda keep an steady level, but are not that shocking after you&#8217;ve spent some time in JEE and such enviroments. There were some more or less useful sidenotes and some info about &#8220;how they did it&#8221; which is always interesting to hear&#8230; I&#8217;d give another 0.5pt to JDD for this one.</p>
<h2><em>The Busy Developer’s Guide to Functional Programming in Java</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/ted-neward" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/ted-neward?referer=');">Ted Neward</a></strong></h2>
<p>Ted did very well with delivering quite an &#8220;show&#8221; on stage and we had a ton of laughter. The basic idea behind this presentation was to show some basic Functional Progremming concepts CAN be implemented using plain Java. Yeah, with all the verboseness of interfaces and anonymous inner classes but it can be done. As I&#8217;ve been hacking a little with python/scala/groovy I felt quite at home with some of the presented methods, whilst I need to note that Ted&#8217;s explainations were really good&#8230; After this presentation my urge to code in Scala grew even bigger, as most of such functional tasks would be an charm to implement in Scala&#8230; Ah well, for the time being we (you :P) can use some library such as <a href="http://functionaljava.org/" onclick="urchinTracker('/outgoing/functionaljava.org/?referer=');">Functional Java</a> or <a href="http://code.google.com/p/guava-libraries" target="_blank" onclick="urchinTracker('/outgoing/code.google.com/p/guava-libraries?referer=');">Google Guava</a> which both introduce some basic Functional Ideas in an quite nice manner. (BTW: Please do remember that Java&#8217;s not really fit to use such mechanisms, but it&#8217;s a good idea to get used to it, as we&#8217;ll get closures someday, and a LOT of langs are getting more and more functional lately&#8230; :-)) I really like Guava and have even given an presentation about it sometime ago&#8230; :-) Another point for JDD for this speaker.</p>
<h2><em>Flex in the front, Java in the back: multi-screen RIAs with Adobe AIR and Flex</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/piotr-walczyszyn" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/piotr-walczyszyn?referer=');">Piotr Walczyszyn</a></strong></h2>
<p>We&#8217;ve all seen Piotr talk about FLEX sometime I guess (well, if you go to a lot conferences I&#8217;m sure you have) and if you&#8217;re not an FLEX fan it can get a little tiresome. But this time we were <strong>positively suprised</strong>. His flow though the presentation was quite nice and there weren&#8217;t much downtimes. Also he presented the upcoming support for AIR on Android devices (since Android 2.2). As my friend from work didn&#8217;t know anything about flex before, the presentation seemed to introduce him quite well into the basic concepts how such an app would work.</p>
<h2><em>Fearless Change: Patterns for Introducing New Ideas</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/linda-rising" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/linda-rising?referer=');">Linda Rising</a></strong></h2>
<p>Linda&#8217;s talk was supposed to be the &#8220;weird talk&#8221; as she called it herself. I think that even thought most of us won&#8217;t admitt it, the talk she gave was really important I think. I&#8217;ve been trying to introduce an &#8220;new idea&#8221; in our company ever since &#8220;week 1&#8243; and now it seems that we&#8217;re getting ready for it&#8230; Along with the support of some other coders and our new R&amp;D team. I noticed that all the patterns Linda mentioned, were used by us sometime during this process. It wasn&#8217;t like &#8220;hey! let&#8217;s change everything!&#8221;, but just as she said, this process took time and the support of some other team members&#8230; Let&#8217;s hope we&#8217;re able to implement this &#8220;new idea&#8221; in XSolve &#8211; I&#8217;d be very happy if we did &#8211; everyone together&#8230; :-)</p>
<h2><em>Apprenticeship – way to effective professional development</em> – <a href="http://10.jdd.org.pl/prelegenci/lukasz-szydlo" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/lukasz-szydlo?referer=');"><strong>Łukasz Szydło</strong></a></h2>
<p>And we arrived at day 2 of this conference&#8230; This presentation was a little like Linda&#8217;s on the previous day. Even Łukasz mentioned that he used some of Linda&#8217;s patterns in action and showed us how he managed to do some things in his work life&#8230; Not so much new ideas, but it was an quite OK talk I guess.</p>
<p>(Łukasz is working for one of the sponsors of JDD. And as you&#8217;ll notice &#8211; moste of the people presenting on this day were sponsored&#8230; I really didn&#8217;t like this all that much, since We&#8217;ve paid for this conference and didn&#8217;t even have an CHOICE but to listen to sponsored talks&#8230;? That&#8217;s NOT nice.)</p>
<h2><em>Comet enabled application with Lift in 15 minutes</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/lukasz-kuczera" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/lukasz-kuczera?referer=');">Łukasz Kuczera</a></strong></h2>
<p>Łukasz was talking about Lift on our 4th JavaCamp, but this time all the focus went on on stage coding and Comet. Lift is an quite nice small and simple framework and a nice point to start using Scala if you can&#8217;t find any other place for it. Implementing an coment chat was shockingly simple &#8211; even though I anticipated that it&#8217;ll be &#8220;easy&#8221; thanks to Scala&#8217;s and Lift&#8217;s abstrctions around everything. It was a very nice presentation and I liked how it showed both Scala and Lift in action. My coluege from work was also quite amazed at the elegance of Scala (he hasn&#8217;t been coding in it before) and we&#8217;ve talked a little about it later&#8230; A big big point here&#8230; :-)</p>
<h2><em>One size won’t fit everyone: on NoSQL in Java</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/jaroslaw-palka" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/jaroslaw-palka?referer=');">Jarosław Pałka</a></strong></h2>
<p>A quick review of some of the NOSQL databases out there. Jarek mailny covered <strong>neo4j</strong> and <strong>BarkleyDB</strong> as well as <strong>CouchDB</strong> (about which we had an interesting talk during the NOSQL Summer I&#8217;ve attended (it&#8217;s using <strong>map/reduce</strong>)). His talk was an very in depth insight into HOW and WHY one would or wouldn&#8217;t use <strong>NotOnly SQL</strong> databases.  (I really like the term Not Only SQL by the way, it explains so much of the philosophy in so little words&#8230; :-)) Also a nice presentation &#8211; espessialy if someone was not well informed about NOSQL databases before. I was also quite happy with it as I wasn&#8217;t too familiar with <strong>neo4j</strong> and always thought that it&#8217;s cleanly an very interesting DB for some specific operations (anything graph heavy&#8230; ;-)).</p>
<h2><em>Advanced HTTP session management with Oracle Coherence</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/michal-kuratczyk" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/michal-kuratczyk?referer=');">Michał Kuratczyk</a></strong></h2>
<p>As I&#8217;ve been listening to talks about Coherence for over an year now&#8230;<strong> </strong>I kinda went on with hacking some of my stuff on my notebook during this presentation. Coherence is nice, of course as is any Map shared among multiple nodes, but it&#8217;s a) uber-expensive b) there are other non-oracle tools that can be used to achieve this goal. Of course, if you really need some heavy weight enterprise support you&#8217;d go with Oracle&#8217;s solution. BTW, normally Waldemar Kot would be talking about this and Michał seemed to be more like an replacement for Waldek? Also, he was surprised with having to talk in english &#8211; which he cleanly didn&#8217;t expect.</p>
<h2><em>Technical Debt</em> – <strong><a href="http://10.jdd.org.pl/prelegenci/thomas-sundberg" onclick="urchinTracker('/outgoing/10.jdd.org.pl/prelegenci/thomas-sundberg?referer=');">Thomas Sundberg</a></strong></h2>
<p>The<strong> </strong>last presentation on this year&#8217;s JDD&#8230; Most of the ideas Thomas supplied were already covered by Linda or Łukasz &#8211; study groups etc etc. And the &#8220;Technical Debt&#8221; is basically just an name for how much shitty parts you have in your codebase. I didn&#8217;t really like this presentation as it was mostly &#8220;all talk and no &#8216;do&#8217;&#8230;&#8221; but it may have inspired someone to cleanup his code base on next monday etc&#8230; ;-)</p>
<p>All in all&#8230; The <strong>organization </strong>was kinda weak (with super chaotic agenda changes), one of the reasons may have been the 1 to 2 day switch, or maybe no money or something like that&#8230;? The <strong>T-Shirts </strong>look bad (it&#8217;s quite possible that one might not recognise that it&#8217;s an JDD shirt at all&#8230;), and <strong>did cost extra</strong> money&#8230; ;-) And the booths were kinda poor. Comparing it to last year&#8217;s JDD, it was worse, in many aspects. I think that blowing it up into these 2 days was an bad idea and probably caused a lot of these problems. I believe that Javarsovia was an even bigger and more interesting conference (not even mentioning the uber-awesome GeeCON &#8211; I really mean it, the atmosphere and amount of people interaction and networking was much much greater there!) or other fun things like our JavaCamps or NYAC and other initiatives. The poster claimed that JDD is &#8220;Poland&#8217;s biggest Java Conference&#8221; &#8211; eeeee&#8230;.? <em><strong>No</strong></em>, no way. It&#8217;s not, just look at Javarsovia or GeeCON, now THAT are the BIG conferences! The good thing is surely that I&#8217;ve met some of my friends there and had some nice short talks about Japan and work (no, I didn&#8217;t go to the party as I had lot&#8217;s of work to be done). ;-)</p>
<p>I&#8217;m not entirely sure what to think about this year&#8217;s edition. I really loved the previous one, but this time it was kinda &#8220;meh&#8221; and mostly concerning a lot &#8220;<strong>basic</strong><strong>s</strong>&#8221; and &#8220;<strong>soft stuff</strong>&#8220;. This isn&#8217;t really what I&#8217;m paying for &#8211; I&#8217;d like some core, good, rock solid technical presentations. Ok, one might say that the agenda is public so I might just wait for it to be filled out ant then judge if it&#8217;s worth to go there &#8211; but there&#8217;s a catch here, the agenda was not final until the very last week before it (and that would cost me around 500-1000PLN &#8211; LOL). Ah well, it&#8217;s YAC&#8230;. ;-)</p>
<p>I&#8217;m kinda interested how <strong>Radek </strong>is enjoying his stay in<strong> Berlin at JUDCon, </strong>as it&#8217;s being held at the exact same time as JDD&#8230; ;-) In other news&#8230; I&#8217;m coding the GeeCON c4p app and I&#8217;m hoping you&#8217;ll like it when it&#8217;s done. Also&#8230; we&#8217;re starting out with <strong>a new series of JavaCamp meetings very soon</strong> &#8211; can&#8217;t wait to see you there!</p>
<p>Till then, Sayonara~</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/coding/872/review-jdd-201/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>NOSQL Summer #7: Paxos Made Simple</title>
		<link>http://www.blog.project13.pl/index.php/fun/840/nosql-summer/</link>
		<comments>http://www.blog.project13.pl/index.php/fun/840/nosql-summer/#comments</comments>
		<pubDate>Thu, 16 Sep 2010 09:59:30 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[fun]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[couchdb]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[mongodb]]></category>
		<category><![CDATA[nosql]]></category>
		<category><![CDATA[paxos]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=840</guid>
		<description><![CDATA[At last I was able to attend one of the NOSQL Summer meetings. It&#8217;s topic yesterday was &#8220;Paxos made simple&#8221; (this paper by Leslie Lamport (wikipedia entry about him)). We also found this document from Google Labs very interesting and usefull during the discussion &#8211; Paxos Made Live – An Engineering Perspective (Tushar Chandra, Robert [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><a href="http://nosqlsummer.org/paper/paxos-made-simple" onclick="urchinTracker('/outgoing/nosqlsummer.org/paper/paxos-made-simple?referer=');"><img title="NOSQL Summer" src="http://www.up.project13.pl/files/nosql.png" alt="NOSQL Summer" width="405" height="184" /></a></div>
<p>At last I was able to attend one of the NOSQL Summer meetings. It&#8217;s topic yesterday was &#8220;<strong>Paxos made simple</strong>&#8221; (<a href="http://research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf" onclick="urchinTracker('/outgoing/research.microsoft.com/en-us/um/people/lamport/pubs/paxos-simple.pdf?referer=');">this paper by Leslie Lamport</a> (<a href="http://en.wikipedia.org/wiki/Leslie_Lamport" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Leslie_Lamport?referer=');">wikipedia entry about him</a>)). We also found this document from Google Labs very interesting and usefull during the discussion &#8211; <a href="http://www.google.com/url?sa=D&amp;q=http://labs.google.com/papers/paxos_made_live.html&amp;usg=AFQjCNFvkPEsnuQmcCbEqoVUaagVMtl34w" onclick="urchinTracker('/outgoing/www.google.com/url?sa=D_amp_q=http_//labs.google.com/papers/paxos_made_live.html_amp_usg=AFQjCNFvkPEsnuQmcCbEqoVUaagVMtl34w&amp;referer=');">Paxos Made Live – An Engineering Perspective (Tushar Chandra, Robert Griesemer, and Joshua Redstone)</a>.</p>
<p>For those who don&#8217;t know: These NOSQL Summer meetings are entirely self organized and are an form of &#8220;reading club&#8221; as one might call it. The meeting was amazingly interesting and all the guys where very competent, yet open for any questions.</p>
<p>As we fought through the algorithm&#8217;s steps and deciphered possible loopholes and problems &#8211; we had a great time. And all this just by discussing the <strong>Paxos</strong> algorithm. When we encountered something not-understood by all of the group we&#8217;d stop and try to think about it. At the end, we&#8217;ve had our own set of example values, example conventiuons for &#8220;timestamps&#8221; etc etc, so the discussion went really well. And as I&#8217;ve just found out &#8211; we&#8217;ve been really near to the exact solution with timestamp assumption &#8211; an implementation could possibly use <a href="http://en.wikipedia.org/wiki/Lamport_timestamps" onclick="urchinTracker('/outgoing/en.wikipedia.org/wiki/Lamport_timestamps?referer=');">Lamport Timestamps</a> (yup, same author). Well, there were some side-topics about how MySQL replication is just a &#8220;bad joke&#8221; in more complicated scenarios (well&#8230; &#8220;complicated&#8221; &#8211; just an master+slave configuration), but all in all, we focused on Paxos and after finishing the paper &#8211; got a little bit smarter&#8230; ;-) It&#8217;s hard to grasp all the things we&#8217;ve been discussing in one &#8220;plain old blog post&#8221; so I&#8217;ll finish by recommending you to go to their next meeting about Chubby &#8211; It&#8217;s really worth it (ps: please read the discuessed paper before and bring it to the meeting &#8211; it&#8217;s a &#8220;reading club&#8221; &#8211; remember?). :-)</p>
<p>Oh, and one last thing that would be nice to include in this post&#8230; I&#8217;ve found and we&#8217;ve talked a little about open source implementations of Paxos, and this is what I&#8217;ve found: <a href="http://hadoop.apache.org/zookeeper/" onclick="urchinTracker('/outgoing/hadoop.apache.org/zookeeper/?referer=');">http://hadoop.apache.org/<strong>zookeeper/</strong></a> So if you&#8217;d like to see some real code implementing this algorithm, take a look (first read the papers though).</p>
<p><strong>Next week </strong><a href="http://groups.google.com/group/nosql-summer-krakow/browse_thread/thread/4c042b300cf8f249/2ed0d0dfa6f4ce0d#2ed0d0dfa6f4ce0d" onclick="urchinTracker('/outgoing/groups.google.com/group/nosql-summer-krakow/browse_thread/thread/4c042b300cf8f249/2ed0d0dfa6f4ce0d_2ed0d0dfa6f4ce0d?referer=');">they&#8217;ll be meeting to talk</a> <strong>about Google&#8217;s Chubby</strong> &#8211; one of the Paxos use-cases we&#8217;ve found. Chubby is used by GFS and BigTable, so &#8211; even though you may not have heard about it &#8211; it&#8217;s a &#8220;Big Shot&#8221;. Sadly I won&#8217;t be able to atted since&#8230; <strong>I&#8217;ll be in Japan!</strong> <em>&#8220;Hell, It&#8217;s about time!&#8221;*</em> :D<br />
<span style="text-size: 0.5em;">* Starcraft II &#8211; opening quote</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/fun/840/nosql-summer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ip2cntry &#8211; ex-appengine app (mainly JAX-RS)</title>
		<link>http://www.blog.project13.pl/index.php/coding/727/ip2cntry-ex-appengine-app-mainly-jax-rs/</link>
		<comments>http://www.blog.project13.pl/index.php/coding/727/ip2cntry-ex-appengine-app-mainly-jax-rs/#comments</comments>
		<pubDate>Sat, 26 Jun 2010 15:13:04 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[guide]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[appengine]]></category>
		<category><![CDATA[cloud]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[hibernate]]></category>
		<category><![CDATA[jee]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[spring]]></category>
		<category><![CDATA[web dev]]></category>
		<category><![CDATA[webdeveloper]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=727</guid>
		<description><![CDATA[I&#8217;ve been coding an simple RESTful &#8220;ip to country&#8221; conversion service. I&#8217;ve decided to put it up to appengine &#8211; so that everybody may use it freely even if I&#8217;d change my server etc&#8230; And if looked quite nice the first day &#8211; buw when I got to do some &#8220;real stuff&#8221; app engine started [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: center;"><img title="appengine and duke" src="http://api.ning.com/files/mDJ*r0VXJVM5*LNj5uct5fwBIDcQH99SKTN-zzCVyDf306EuzF6lbwkJW6cGVJOUNtAen43aPLTd9HtdVcYgFuxB-d8SufPD/dukeongae.jpg" alt="" width="151" height="138" /></div>
<p>I&#8217;ve been coding an simple RESTful &#8220;ip to country&#8221; conversion service. I&#8217;ve decided to put it up to appengine &#8211; so that everybody may use it freely even if I&#8217;d change my server etc&#8230; And if looked quite nice the first day &#8211; buw when I got to do some &#8220;real stuff&#8221; app engine started to get in my way, here&#8217;s a quick rundown of the problems I&#8217;ve found with appengine:</p>
<ol>
<li>I need to download and update the ip&lt;-&gt;country database every few days. I&#8217;d use an <strong>GZIPInputStream</strong> and <strong>BufferedReader</strong> to get the file I was interested in and update the database. Did appengine allow me to use such an simple aparoach?
<ol>
<li><strong style="color: #03c300;">pro:</strong> appengine provides a very nice cron-like mechanism. So I just had to create an <strong>cron.xml in WEB-INF</strong> and this part was ready to go! This was in fact easier and more fun than in classic <strong>Spring + Open Symphony Quartz</strong>.</li>
<li><strong style="color: #cb0007;">con:</strong>I checked if this tactic was OK with the JRE whilelist and checked the Quotas &#8211; <a href="http://code.google.com/appengine/docs/quotas.html#UrlFetch" onclick="urchinTracker('/outgoing/code.google.com/appengine/docs/quotas.html_UrlFetch?referer=');">http://code.google.com/appengine/docs/quotas.html#UrlFetch</a>, &#8220;seems ok&#8221; &#8211; I thought &#8211; &#8220;nothing about per connection limits, only daily quotas.&#8221;. After writing the code, I discovered that even though on the main quota page there was no word about per connection limits, in fact there are such quotas, but a little more hidden: <a href="http://code.google.com/appengine/docs/java/urlfetch/overview.html" onclick="urchinTracker('/outgoing/code.google.com/appengine/docs/java/urlfetch/overview.html?referer=');">http://code.google.com/appengine/docs/java/urlfetch/overview.html</a> Max request/response sizes are capped at exactly 1MB.<br />
As my gzipped file is around 1.1MB,<strong> appengine killed my simple idea&#8230;</strong> I&#8217;d have to split the file into separate ones &#8211; on another server, and then fetch the separated files onto appengine.</li>
<li><strong style="color: #cb0007;">con:</strong>The<strong> </strong>mentione CRON mechanism is quite funny. You don&#8217;t call<strong> methods </strong>but URLs &#8211; and they are normally called as if one would launch them from the browser &#8211; thus, traffic and &#8220;max time&#8221; quotas do count there as well. So rather than calling an method, as you&#8217;d do with OpenSymphony &#8211; you create an Servlet that does all the work. This may me both good, and bad&#8230; You cound do all the CRON stuff by hand if it got out of sync etc&#8230; I didn&#8217;t really like it, and as mentioned&#8230; <strong>When doing my &#8220;big batch database update&#8221; the servlet would simply timeout&#8230;</strong></li>
</ol>
</li>
<li>Let&#8217;s talk about the <strong>dataStore</strong>. As you all probably know&#8230; AppEngine does not provide and &#8220;database&#8221; per se. It&#8217;s not relational and has quite some limitations. BUT!<strong> That&#8217;s quite ok, as it&#8217;s very quick and very very scalable!</strong> And most of the time&#8230; Do you really need all those fancy relations? ;-) It was an ideal place to hold my super simple data: &#8220;ip region = country&#8221; mapping in a persistent way. &#8220;Another nice thing on appengine for this application I&#8217;m going to write.&#8221; &#8211; I thought. Was I right?
<ol>
<li><strong style="color: #03c300;">pro/con:</strong> Not really&#8230; I used JPA but JDO (which is prefered by appengine from what I&#8217;ve seen) also works nice on GAE. The setup did run quite ok while I was running tests on my local machine. Deployment is also an breeze and <strong>I didn&#8217;t have to use any complicated dependencies to get it running &#8211; &#8220;yay, no maven!&#8221;. </strong>You just have to enchance the classes you want to make persistent (just as hibernate does).</li>
<li><strong style="color: #cb0007;">con:</strong>The problems started when I wanted to <strong>clear my datastore.</strong> Nothing easier than that, right&#8230;? &#8220;delete from BlaBla&#8221; and we&#8217;re done. Yeah, but not on GAE. As even the &#8220;max rows a query touches&#8221; are limited &#8211; to 500. So there I am, with my 100.000 rows, and I have to delete them in 500 rows per query&#8230; Of course I can&#8217;t call this in an loop &#8211; as  the timeout quota would get in my way and kill the app.From what I&#8217;ve seen, people do solve this using a CRON task that calls this &#8220;clearDatabase&#8221; servlet until it&#8217;s  done &#8211; ugh, not a nice solution but I can&#8217;t think of any other solution :\</li>
<li><strong style="color: #cb0007;">con:</strong>The only query I need to do in this app is basically:
<pre>SELECT range FROM RemoteIpData as range
             WHERE range.ipFrom &lt;= ?1
               AND range.ipTo &gt;= ?2
<em>#and this would always return 1 entry!</em>
</pre>
<p>And guess what&#8230; <strong>AppEngine does not support multiple &#8220;less/more than&#8221; operands in one query!</strong> If you think hard about what BigTable is, it does make some sense. More information about &#8220;<strong>GQL</strong>&#8221; can be found here: <a href="http://code.google.com/appengine/docs/python/datastore/gqlreference.html" onclick="urchinTracker('/outgoing/code.google.com/appengine/docs/python/datastore/gqlreference.html?referer=');">http://code.google.com/appengine/docs/python/datastore/gqlreference.html</a> All the <a href="http://code.google.com/appengine/docs/java/datastore/queriesandindexes.html" onclick="urchinTracker('/outgoing/code.google.com/appengine/docs/java/datastore/queriesandindexes.html?referer=');">restrictions about the Queries you can do are documented here</a> &#8211; some are really counter intuitive when you come from an RDBMS enviroment&#8230; Ah well ;-) Oh, and yet another <a href="http://blog.newsplore.com/2009/06/06/reviewing-google-appengine-for-java-part-2" onclick="urchinTracker('/outgoing/blog.newsplore.com/2009/06/06/reviewing-google-appengine-for-java-part-2?referer=');">great link about GAE limitations</a>.</p>
<p>Having this limitation, really sucks for my normally &#8220;super simple query&#8221;, and I&#8217;d have to change the data structure somehow or do some awful 2 queries and then combine them in Java (omg teh terrorr&#8230; :&lt;). So, while developing on appengine, keep in ming &#8211; simple things might turn out quite complicated due to the nature of BigTable. If you know all the limitations when designing the system and not while finishing it, you&#8217;ll be a happier man&#8230; ;-)</li>
<li><strong>neutral</strong>: Primary keys can&#8217;t be Integers etc, as AppEngine uses it&#8217;s own &#8220;Key&#8221; type. :-)</li>
</ol>
</li>
<li>Having that all said. Appengine&#8217;s administration panel is quite ok. And the not-so-newly-added log search etc are really fine tools. Something an plain old tomcat can not offer. On the other hand, the limitations can really be a deal breaker! My app was really fairly simple, and yet appengines quotas managed to really get in my way. Keep this in mind while thinking about using it. You may also try Amazon&#8217;s cloud or CloudForce from SalesForce etc&#8230; They all do offer a quite less restrictive enviroment.</li>
<li>If you&#8217;re interested, deployment does take about 5-7 minutes before the new version is visible on the web &#8211; so don&#8217;t panic if you&#8217;re still seeing the old version after deploying the new one.</li>
<li>My opinion about GAE&#8230;? <span style="text-size: xx-small;">(semi serious ;-))</span></li>
</ol>
<blockquote><p><em><strong>&#8220;Screw you clouds, I&#8217;m going /home!&#8221;</strong></em><br />
<span style="text-size: xx-small;">(<a href="http://www.youtube.com/watch?v=7oH5Qc2zTrs&amp;feature=related" onclick="urchinTracker('/outgoing/www.youtube.com/watch?v=7oH5Qc2zTrs_amp_feature=related&amp;referer=');">intended southpark pun</a>)</span><em><strong><br />
</strong></em></p></blockquote>
<p>I&#8217;ll finish this project using my ol&#8217; pal, <strong>Tomcat6</strong> which I&#8217;ve already got running for <a href="http://netbeans.edu.pl" onclick="urchinTracker('/outgoing/netbeans.edu.pl?referer=');">netbeans.edu.pl</a> (but that was an grails app).</p>
<p>I&#8217;ve also decided to use Spring, which I didn&#8217;t really need on appengine &#8211; as the only thing I was doing was so small that all the logic was around 10 lines in the servlets&#8230; But if using hibernate and all the other &#8220;real&#8221; JEE stuff, I felt I&#8217;d need to &#8220;do this right&#8221; so I&#8217;ve decided for Spring 3 and Maven2&#8230; I&#8217;ll try to build this project from gradle soon too!</p>
<p>ALSO! If interested in an more experienced programmers view on appengine (I&#8217;m still a novice), go and read <a href="http://art-of-software.blogspot.com/2010/04/goole-application-engine.html" onclick="urchinTracker('/outgoing/art-of-software.blogspot.com/2010/04/goole-application-engine.html?referer=');">this blog post about GAE on Sławek Sobótkas blog.</a> All in all we seem to agree that the limitations can be an pain in the a&#8230; ;-)</p>
<p>The source for the appengine version is on my github account. I&#8217;m porting it to an plain old tomcat environment and will post this version there too when it&#8217;s ready to run (<strong>tomcat deployment </strong>is somehow hell with such apps for me&#8230; Any tips are really welcome :-))</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/coding/727/ip2cntry-ex-appengine-app-mainly-jax-rs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>JavaCamp #4</title>
		<link>http://www.blog.project13.pl/index.php/coding/700/review-javacamp-4/</link>
		<comments>http://www.blog.project13.pl/index.php/coding/700/review-javacamp-4/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 20:21:36 +0000</pubDate>
		<dc:creator>Ktoso</dc:creator>
				<category><![CDATA[coding]]></category>
		<category><![CDATA[english]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[review]]></category>
		<category><![CDATA[akka]]></category>
		<category><![CDATA[camp]]></category>
		<category><![CDATA[JavaCamp]]></category>
		<category><![CDATA[JUG]]></category>
		<category><![CDATA[meeting]]></category>
		<category><![CDATA[osgi]]></category>
		<category><![CDATA[parallelism]]></category>
		<category><![CDATA[pjug]]></category>
		<category><![CDATA[polishjug]]></category>
		<category><![CDATA[scala]]></category>

		<guid isPermaLink="false">http://www.blog.project13.pl/?p=700</guid>
		<description><![CDATA[Yup, last Saturday we&#8217;ve had yet another JavaCamp in Cracow. It was in my opinion the best yet &#8211; mostly due to our awesome speakers. One could call this &#8220;JavaCamp&#8221; an &#8220;ScalaCamp&#8221; if you think about it &#8211; as most of the topics (3/4) where mostly about scala (AKKA is avaiable as both Java and [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-536" title="pjug_logo" src="http://www.blog.project13.pl/wp-content/uploads/2010/04/pjug_logo.jpg" alt="Polish Java User Group" width="126" height="157" />Yup, last Saturday we&#8217;ve had yet another JavaCamp in Cracow. It was in my opinion the best yet &#8211; mostly due to our awesome speakers. One could call this &#8220;JavaCamp&#8221; an &#8220;ScalaCamp&#8221; if you think about it &#8211; as most of the topics (3/4) where mostly about scala (AKKA is avaiable as both Java and Scala API, but the Scala API is a little &#8220;cleaner&#8221; &#8211; well, as everything written in Scala I guess :-))</p>
<h2><strong>Łukasz Kuczera</strong> &#8211; <a href="http://www.java.pl/?page_id=146" onclick="urchinTracker('/outgoing/www.java.pl/?page_id=146&amp;referer=');">Scala the next Java?</a></h2>
<h2><a href="http://www.blog.project13.pl/wp-content/uploads/2010/06/IMAG0059.jpg"><img class="alignright size-thumbnail wp-image-706" title="javacamp#4" src="http://www.blog.project13.pl/wp-content/uploads/2010/06/IMAG0059-150x150.jpg" alt="" width="150" height="150" /></a></h2>
<p>Łukasz&#8217;s presentation really did fit the topic and did a really good job in setting the &#8220;mood and feel&#8221; for the rest of the day. People who didn&#8217;t know any scala before &#8211; now did know it enough to understand all the code Jonas displayed later, and people who&#8217;ve known some scala before &#8211; might have got some nice information from this. I really liked it and am now more tha ever convinced of scala&#8217;s &#8220;perfect fit&#8221; nature in the JVM lanugages team. As I was sitting with my friend <a href="http://temporal.pr0.pl/devblog/" onclick="urchinTracker('/outgoing/temporal.pr0.pl/devblog/?referer=');">Temporal</a> &#8211; who&#8217;s a <strong>real Erlang and Lisp hacker ;-) -</strong> I&#8217;ve got some interesting insights about what scala took from Lisp and later on, what Akka took from Lisp and Erlang. A very good presentation in my opinion. :-)</p>
<h2><strong>Jonas Bonér</strong> (<a href="http://jonasboner.com/" onclick="urchinTracker('/outgoing/jonasboner.com/?referer=');">private site</a>) &#8211; <a href="http://www.java.pl/?page_id=146" onclick="urchinTracker('/outgoing/www.java.pl/?page_id=146&amp;referer=');">Akka: Simpler Scalability,  Fault-Tolerance, Concurrency &amp; Remoting through Actors</a></h2>
<p>A very very awesome speech and topic. Akka seems to do Actors and Parallelism very well. Also, thanks to my lisp/erlang friend, I&#8217;ve had some amazing insights about where Jonas got some of the implementation ideas. Also, we&#8217;d both like to note that some things are done even cleaner in  Akka than in Erlang: in erlang you&#8217;d pass an actors PID around in order  to &#8220;link&#8221; with another, and the links are always bidirectional. The actor pattern really powerful and scalable from what I&#8217;ve seen. It&#8217;s also implemented by Vaclav Pech in his GPars library (&#8220;Groovy Parallelism&#8221;).</p>
<p>This should have been just another presentation in a series of them as Jonas already had presented it on both Scala Days 2010 and GeeCON2010. But! As the present programmers really where into this topic we&#8217;ve had a lot of pauses with some chit-chat. A very valuable thing for both akka and our community :-) Too bad that Jonas didn&#8217;t have the time to go more into STM, as I still  dont really know what it essetialy is &#8220;in practice&#8221;. Later we got a glimpse of Agents and what they could be useful for. All in all&#8230; go checkout the movie &#8211; it&#8217;s worth your time if you don&#8217;t know about parallelism and akka (I guarantee it ;-)): <a href="http://pjug.project13.pl/dl.php?f=jc4-1-scala-min.mp4" onclick="urchinTracker('/outgoing/pjug.project13.pl/dl.php?f=jc4-1-scala-min.mp4&amp;referer=');">jc4-1-scala-min.mp4</a></p>
<p>Jonas covered and built upon the previous presentation, and we got to see some more scala in action &#8211; feels really natural. <strong>The transition from Java-&gt;Scala seems to be as painless as the transition from Java-&gt;Groovy. </strong>That&#8217;s a really nice thing I guess. <strong>There&#8217;s also an Java API</strong> for most the things in AKKA &#8211; so if you don&#8217;t want to adopt Scala in your project &#8211; no problems here. If you&#8217;d like to read more about AKKA, just goto their website at: <a href="http://akkasource.org/" onclick="urchinTracker('/outgoing/akkasource.org/?referer=');">http://akkasource.org/</a> &#8211; and <strong>yes, it&#8217;s open source</strong>. :-)</p>
<p>Oh, and if you&#8217;d like to see the slides Jonas used: they&#8217;re online on his slideshare: <a href="http://www.slideshare.net/jboner/akka-scala-days-2010" onclick="urchinTracker('/outgoing/www.slideshare.net/jboner/akka-scala-days-2010?referer=');">http://www.slideshare.net/jboner/akka-scala-days-2010</a><br />
Also feel free to read this very in-depth post on his blog: <a href="http://jonasboner.com/2010/01/04/introducing-akka.html" onclick="urchinTracker('/outgoing/jonasboner.com/2010/01/04/introducing-akka.html?referer=');">Introducing Akka – Simpler Scalability, Fault-Tolerance, Concurrency &amp; Remoting through Actors</a></p>
<h2>Pizza</h2>
<p>In the break we had some chats about the usual stuff &#8211; programming, companies, and of course a little something about the gaming industry ;-) The pizza was quite tasty &#8211; as always &#8211; so let&#8217;s move on to the next presentation ;-)</p>
<h2><strong>Bartosz Kowalewski</strong> &#8211; <a href="http://www.java.pl/?page_id=146" onclick="urchinTracker('/outgoing/www.java.pl/?page_id=146&amp;referer=');">Is OSGi ready for enterprise use?</a></h2>
<p>Yet another go with &#8220;grasping wtf OSGi is and WTF would I use it?!&#8221;. This topic was kinda new to Temporal, as he&#8217;s not into JEE Java, where OSGi now seems to be &#8220;trendy&#8221;. So after a short intro into maven/dependency stuff from me we focused on Bartosz&#8217;s presentation. I was <strong>immensly happy</strong> to see that his thoughts and presentation focused on <em>&#8220;what OSGi should solve, and why it sometimes does NOT&#8221;</em>. His code examples really cleared up what the problem is, and displayed why OSGi is sometimes a much harder to force to work properly than we&#8217;d think it should.</p>
<p>All in all, he described it as an amazing technology to play with, but if one would to use it IRL, with real deadlines etc &#8211; one should better know what he&#8217;s getting into, as OSGi does solve some things, but in exchange it introduces a lot of more compicated problems. The presentation was really good &#8211; as it focused, and really showed how/why OSGi should be awesome, and why sometimes it&#8217;s not &#8211; most of the time with needless <strong>complexity (!)</strong>.</p>
<p><strong>UPDATE: </strong>If your interested in the examples Bartosz has shown during his presentation &#8211; download this <a href="http://pjug.project13.pl/dl.php?f=jc4-3-osgi-pl-slides-sources.zip" onclick="urchinTracker('/outgoing/pjug.project13.pl/dl.php?f=jc4-3-osgi-pl-slides-sources.zip&amp;referer=');">this zip file</a> that he has made available. It includes the <strong>presentation</strong>, as well as the <strong>sources</strong> he used (plus the maven artifacts needed to run the app). Don&#8217;t worry if some tests fail &#8211; they&#8217;re designed to&#8230; :-)</p>
<h2><strong>Łukasz Kuczera</strong> &#8211; <a href="http://www.java.pl/?page_id=146" onclick="urchinTracker('/outgoing/www.java.pl/?page_id=146&amp;referer=');">Lift &#8211; simply functional web  framework</a></h2>
<p>The last presentation was again Łukasz, continuing in the spirit of this &#8220;Scala-flavoured-JavaCamp&#8221;, with Lift, an web framework with quite some nice contepts &#8211; as view first etc. As it was more of a code-trip, showing the basics of lift, there&#8217;s not much to comment on here.</p>
<p><strong>I was kind of disappointed with Lift. </strong>It really didn&#8217;t seem to be as powerful or mature as Grails of Symfony for example. The &#8220;view first&#8221; pattern is of course nice and quite well &#8220;forced&#8221;, but it didn&#8217;t strike me to be any different than just<strong> Django templates.</strong> The <strong>CRUD also does not impress someone who&#8217;s been using Rail-ish stuff for quite some time.</strong> There was not much said about the ORM, but <strong>I feel quite comfortable with GORM</strong> and the <strong>routing system is waaaay overgrown</strong> &#8211; just look at symfony/grails/rails routing files &#8211; they&#8217;re short and easy &#8211; what I&#8217;ve seen in Lift does not seem to be short &#8211; it&#8217;s quite long and with lots of empty [] etc&#8230; I may come back and take a look at lift when I have the time, but it really didn&#8217;t impress.</p>
<h2>Videos and sources from the meeting</h2>
<p><a href="http://www.blog.project13.pl/wp-content/uploads/2010/06/IMAG0060.jpg"><img class="alignright size-thumbnail wp-image-707" title="java camp 4 location" src="http://www.blog.project13.pl/wp-content/uploads/2010/06/IMAG0060-150x150.jpg" alt="" width="150" height="150" /></a>The 4th edition for our JavaCamp was truly amazing in my opinion, and this time, we&#8217;ve even got an amazing place, sponsors and great speakers. Have a nice holiday all! And if you didn&#8217;t manage to be there live, you can always go to the page bellow and watch the video&#8217;s I&#8217;ve recorded from the meeting :-)</p>
<p><strong>All videos are temporarily available on my server &#8211; here: <a href="http://pjug.project13.pl/" onclick="urchinTracker('/outgoing/pjug.project13.pl/?referer=');">http://pjug.project13.pl/</a></strong><br />
I&#8217;m hoping to get them up on the java.pl server soon, or better, on  parleys.com  &#8211; but we&#8217;ll see about that. :-)</p>
<p>PS: The next camp, won&#8217;t be organized so soon &#8211; but from what we&#8217;ve planed, we&#8217;ll be goring into some <span style="font-weight: bold;">groovy</span> topics most probably&#8230; But don&#8217;t take my word for it ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.blog.project13.pl/index.php/coding/700/review-javacamp-4/feed/</wfw:commentRss>
		<slash:comments>2</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>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>
	</channel>
</rss>

