{"id":964,"date":"2011-05-19T22:05:05","date_gmt":"2011-05-19T20:05:05","guid":{"rendered":"http:\/\/mcl.jogger.pl\/2011\/05\/19\/geecon-2011-day-1\/"},"modified":"2023-03-23T11:22:04","modified_gmt":"2023-03-23T10:22:04","slug":"geecon-2011-day-1","status":"publish","type":"post","link":"https:\/\/touk.pl\/blog\/2011\/05\/19\/geecon-2011-day-1\/","title":{"rendered":"Geecon 2011 &#8211; day 1"},"content":{"rendered":"<p>Last week&#8217;s Java conference &#8211; <a href=\"http:\/\/2011.geecon.org\">Geecon<\/a> was very interesting. It was well prepared, and gave an insight into the current Java related trends &#8211; concurrency, DSLs, polyglot programming. But not only that &#8211; there were also some pretty different talks from excellent speakers.<\/p>\n<p>The whole event took 4 days:<\/p>\n<ul>\n<li>University day (wednesday)<\/li>\n<li>2 regular conference days (Thursday + Friday)<\/li>\n<li>hacker garden (Sunday)<\/li>\n<\/ul>\n<p>I decided to attend only on Thursday and Friday &#8211; no time for more. Here is what interesting happened during those days.<\/p>\n<h1 id=\"day-1\">Day 1<\/h1>\n<p>The morning got me unprepared. After hard enough, after work travel to Krakow on Wednesday, I wasn&#8217;t in the best shape. However after arriving at the venue, being greeted with breakfast and refreshments I looked at the rest of the day with real hope.<\/p>\n<p>Since the schedule was tight &#8211; three parallel tracks of lecture, I had to choose, so bare in mind, that is my account of what I&#8217;ve seen and heard. Others may, of course, differ.<\/p>\n<h2 id=\"1-danny-coward-java-se-the-road-ahead\">1. <a href=\"http:\/\/blogs.oracle.com\/dannycoward\/\">Danny Coward<\/a> &#8220;Java SE: The Road Ahead&#8221;<\/h2>\n<p>Danny, being on <a href=\"http:\/\/www.oracle.com\">Oracle<\/a> (considering being also former Sun&#8217;s employee a plus) payroll, gave an insightful talk on new things to came in <a href=\"http:\/\/blogs.oracle.com\/dannycoward\/entry\/channeling_java_se_7\">Java 7<\/a>. He drew rather serious plans for Java 8. According to Danny, the main trends in today&#8217;s Java ecosystem are:<\/p>\n<ul>\n<li>parallel programming<\/li>\n<li>language dynamics<\/li>\n<\/ul>\n<p>and he probably is right :) The great things to come with new versions of Java are:<\/p>\n<ul>\n<li>closures in Java (finally!)<\/li>\n<li>extending interfaces<\/li>\n<li>map, filter &#8211; functions for collections<\/li>\n<li>lambda expressions &#8211; thou in Java 8<\/li>\n<\/ul>\n<p>The talk itself was a nice keynote, but I doubt the road map for Java will be met in its full extent &#8211; the goals aren&#8217;t that small.<\/p>\n<h2 id=\"2-juergen-hoeller-enterprise-java-in-2011\">2. <a href=\"http:\/\/www.springsource.com\/people\/jhoeller\">Juergen Hoeller<\/a> &#8220;Enterprise Java in 2011&#8221;<\/h2>\n<p><a href=\"http:\/\/www.springsource.com\/\">Spring Source<\/a> as one of the sponsors sent Juergen to evangelize about the world of enterprise and Java&#8217;s place in it :) He emphasized different kinds of deployment: WAR, cloud deployment &#8211; and the latter&#8217;s rise of importance.<\/p>\n<p>He pointed out how outdated current application servers are &#8211; the usually lag ~3 years behind the main trends and developers&#8217; needs &#8211; good point! He proposed looking under the hood of now-popular cloud environments: <a href=\"http:\/\/code.google.com\/appengine\/\">Google App Engine<\/a> or <a href=\"http:\/\/aws.amazon.com\/ec2\/\">Amazon Elastic Cloud<\/a> to look for schemas in them, etc &#8211; I intend to listen to his advice.<\/p>\n<p>All in all this guy gave a great talk covering wide spectrum of technologies and not focusing on technical stuff too much.<\/p>\n<h2 id=\"3-heinz-kabutz-reflection-madness\">3. <a href=\"http:\/\/www.javaspecialists.eu\/contact.jsp\">Heinz Kabutz<\/a> &#8220;Reflection madness&#8221;<\/h2>\n<p>Despite living on a Greek island, this guy showed also how to whack ones mind with <a href=\"http:\/\/download.oracle.com\/javase\/tutorial\/reflect\/\">Java Reflection API<\/a>. Pure magic! Some highlights of his talk were:<\/p>\n<ul>\n<li>how to get <i>42 + 1 = 44<\/i><\/li>\n<li>get the size of an object<\/li>\n<li>get method caller&#8217;s id<\/li>\n<li>add enum values dynamically<\/li>\n<\/ul>\n<p>With all this examples he pointed that using <i>SecurityManager<\/i> will prevent such nasty coding practices.<\/p>\n<p>Since he is an editor of <a href=\"http:\/\/www.javaspecialists.eu\/\">Javaspecialists.eu<\/a> newsletter, all the answers to problems presented in his talk (and many many more) can be found there.<\/p>\n<p>Well done, not to useful for me, nevertheless &#8211; interesting.<\/p>\n<h2 id=\"4-michael-figuiere-cyrille-le-clere-nosql-datagrid-from-developer-perspective\">4. <a href=\"https:\/\/twitter.com\/#!\/mfiguiere\">Michael Figuiere<\/a>, Cyrille Le Clere &#8220;NoSQL &amp; Datagrid from developer perspective&#8221;<\/h2>\n<p>I don&#8217;t know what to think of this talk. It consisted an introduction to NoSQL databases but also a bit of problem&#8217;s description that can be encountered when dealing with them. Notable thoughts were on:<\/p>\n<ul>\n<li>creating a sharding ready data structure<\/li>\n<li>denormalization as a useful process for NoSQL DBs<\/li>\n<li>NoSQL usually means <b>no transactions<\/b><\/li>\n<\/ul>\n<h2 id=\"5-hamlet-darcy-new-ideas-for-old-code\">5. <a href=\"http:\/\/hamletdarcy.blogspot.com\/\">Hamlet D&#8217;Arcy<\/a> &#8220;New Ideas for old code&#8221;<\/h2>\n<p>Since a lot of developers (all?) have to deal with legacy code &#8211; one way or another, this talk was <i>a must<\/i>!<\/p>\n<p>. The speaker shared some ideas on how to work with such code and remain sane. The talk was vivid, interesting and entertaining, well, and the notable thought? Here they are:<\/p>\n<ul>\n<li>51% rule &#8211; if you&#8217;re not committing 51% of your time\/your tasks into fixing your situation than the whole battle <b>is already lost<\/b>,<\/li>\n<li>read some good stuff!:\n<ul>\n<li><a href=\"http:\/\/www.amazon.com\/Refactoring-Improving-Design-Existing-Code\/dp\/0201485672\">Martin Fowler&#8217;s &#8220;Refactoring&#8221;<\/a><\/li>\n<li><a href=\"http:\/\/www.amazon.com\/Clean-Code-Handbook-Software-Craftsmanship\/dp\/0132350882\/ref=sr_1_1?s=books&amp;ie=UTF8&amp;qid=1305828015&amp;sr=1-1\">George C. Martin &#8220;Clean Code&#8221;<\/a><\/li>\n<li><a href=\"http:\/\/chadfowler.com\/2006\/12\/27\/the-big-rewrite\">Chad Fowler &#8220;Big Rewrites&#8221;<\/a> &#8211; and why they failed, what&#8217;s wrong with them<\/li>\n<\/ul>\n<\/li>\n<li>use static analysis &#8211; <a href=\"http:\/\/findbugs.sourceforge.net\/\">Find Bugz<\/a>, pmc<\/li>\n<li><a href=\"http:\/\/en.wikipedia.org\/wiki\/Command-query_separation\">query-command<\/a> &#8211; a method should be a query or a command:\n<ul>\n<li>query &#8211; returns sth<\/li>\n<li>command &#8211; change the state of an object<\/li>\n<\/ul>\n<\/li>\n<li>he also proposed <b>scratch refactoring<\/b>\n<ol>\n<li>set a timer<\/li>\n<li>tag your code<\/li>\n<li><b>refactor without tests<\/b><\/li>\n<li>step back and analyze<\/li>\n<li>is it better? if not, revert<\/li>\n<\/ol>\n<\/li>\n<\/ul>\n<p>This was nice! &#8211; it assumed arriving at a project with no ( or little) tests.<\/p>\n<h2 id=\"6-aslan-knutsen-arquillian\">6. Aslan Knutsen &#8220;Arquillian&#8221;<\/h2>\n<p>The last talk of that day was about some new library from JBoss that would allow to test your components with unit tests &#8211; test them in a destination container. The whole point of this library is to run the specific fragment of code as if it was build and deployed to some application server (let&#8217;s say JBoss AS ;-) ). To be honest, I can&#8217;t find much application for that &#8211; thou I&#8217;m not doing any serious work in JEE world.<\/p>\n<h2 id=\"party\">Party<\/h2>\n<p>And the day ended. But there was sth else to do after the official part &#8211; party time! It took place at <a href=\"http:\/\/mcl.jogger.pl\/2011\/05\/19\/geecon-2011-day-1\/\">Klub Pauza<\/a> on Floria\u0144ska street. It was a rather nice social event.<\/p>\n<p><i>&#8230; to be continued &#8211; stay tuned for part 2<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"Last week&#8217;s Java conference &#8211; Geecon was very interesting. It was well prepared, and gave an insight into&hellip;\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[238],"tags":[21,68],"_links":{"self":[{"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/posts\/964"}],"collection":[{"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/comments?post=964"}],"version-history":[{"count":5,"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/posts\/964\/revisions"}],"predecessor-version":[{"id":15584,"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/posts\/964\/revisions\/15584"}],"wp:attachment":[{"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/media?parent=964"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/categories?post=964"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/tags?post=964"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}