{"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\u2019s Java conference \u2013 <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 \u2013 concurrency, DSLs, polyglot programming. But not only that \u2013 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 \u2013 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\u2019t 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 \u2013 three parallel tracks of lecture, I had to choose, so bare in mind, that is my account of what I\u2019ve 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> \u201cJava SE: The Road Ahead\u201d<\/h2>\n<p>Danny, being on <a href=\"http:\/\/www.oracle.com\">Oracle<\/a> (considering being also former Sun\u2019s 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\u2019s 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 \u2013 functions for collections<\/li>\n<li>lambda expressions \u2013 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 \u2013 the goals aren\u2019t 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> \u201cEnterprise Java in 2011\u201d<\/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\u2019s place in it :) He emphasized different kinds of deployment: WAR, cloud deployment \u2013 and the latter\u2019s rise of importance.<\/p>\n<p>He pointed out how outdated current application servers are \u2013 the usually lag ~3 years behind the main trends and developers\u2019 needs \u2013 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 \u2013 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> \u201cReflection madness\u201d<\/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\u2019s 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 \u2013 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 \u201cNoSQL & Datagrid from developer perspective\u201d<\/h2>\n<p>I don\u2019t know what to think of this talk. It consisted an introduction to NoSQL databases but also a bit of problem\u2019s 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\u2019Arcy<\/a> \u201cNew Ideas for old code\u201d<\/h2>\n<p>Since a lot of developers (all?) have to deal with legacy code \u2013 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 \u2013 if you\u2019re 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\u2019s \u201cRefactoring\u201d<\/a><\/li>\n<li><a href=\"http:\/\/www.amazon.com\/Clean-Code-Handbook-Software-Craftsmanship\/dp\/0132350882\/ref=sr_1_1?s=books&ie=UTF8&qid=1305828015&sr=1-1\">George C. Martin \u201cClean Code\u201d<\/a><\/li>\n<li><a href=\"http:\/\/chadfowler.com\/2006\/12\/27\/the-big-rewrite\">Chad Fowler \u201cBig Rewrites\u201d<\/a> \u2013 and why they failed, what\u2019s wrong with them<\/li>\n<\/ul>\n<\/li>\n<li>use static analysis \u2013 <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> \u2013 a method should be a query or a command:\n<ul>\n<li>query \u2013 returns sth<\/li>\n<li>command \u2013 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! \u2013 it assumed arriving at a project with no ( or little) tests.<\/p>\n<h2 id=\"6-aslan-knutsen-arquillian\">6. Aslan Knutsen \u201cArquillian\u201d<\/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 \u2013 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\u2019s say JBoss AS ;-) ). To be honest, I can\u2019t find much application for that \u2013 thou I\u2019m 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 \u2013 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>\u2026 to be continued \u2013 stay tuned for part 2<\/i><\/p>\n","protected":false},"excerpt":{"rendered":"Last week\u2019s Java conference \u2013 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],"class_list":["post-964","post","type-post","status-publish","format-standard","category-news-events","tag-conference","tag-java"],"_links":{"self":[{"href":"https:\/\/touk.pl\/blog\/wp-json\/wp\/v2\/posts\/964","targetHints":{"allow":["GET"]}}],"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}]}}