Geecon 2011 – day 2

And now for part 2 of my visit to Geecon 2011!

1. Jim Webber "Revisiting SOA for the 21st century"

Now this was awesome! Jim Webber, a former ThoughtWorks employee, now Neo4j evangelist (in Neotechnology) described his views on how SOA should look - according to him. This was presented previously, on other occasions as his "Guerilla SOA" talk - generally he advocated for REST based services, loose contracts (stating that WSDLs are too verbose and code generation is evil).

Jim mentioned Martin Fowler's article on integration databases but I couldn't find it anywhere - thou the topic looks interesting. He also recommended BDD and exposing tests on the web for the end user to use them as early as possible.

One big point he made his case with was not relying on enterprise software. Simple tools can do much better job. He compared implementing Web Services security (Secured SOAP over HTTP over TCP IP) to REST based service accessed through HTTPS - basic and easily testable with tools like curl.

Great talk. One of the best!

2. Staffan Noteberg "Regex - the future programming"

I must confess, that this did not go too well. The whole talk was well prepared and laid out but it lacked depth. It was pretty basic introduction to regex. From the presentation's subject I was rather prepared for some novel uses of regex - like for example: showing how to filter big volume of data with simple regex or sth.

But the talk was fun, Staffan is a good speaker. He is also an author of pomodoro technique book - I intend to read sth abut this technique and this may be a nice start

3. Bartosz Kowalewski "Is OSGI ready for wide adoption?"

If it comes to titles I tend to rely on them pretty heavily, however strange it may seem. This time I also did - and the whole talk did not give me a definitive answer to the stated question.

Sure, the presentation was informative, but it described some OSGI specific, quite low level stuff. Of course, if you want to use OSGI - even by leveraging application server with OSGI under the hood - you should know a fair bit about the technology itself. Even thou the AS does a good job of hiding OSGI container specifics from the developer, in case of problems it's better to be well informed. All in all - the talk gave too little information for me.

4. Vaclav Pech "Pick low hanging fruit"

"Parallelism is not hard, multithreading is" - this was the key sentence of the presentation. The speaker showed how to introduce concurrency into normal java/groovy code by sprinkling it with concurrency powder. Easy enough! With GPars library he showed:

  • running processing tasks with thread pools
  • testing concurrent code
  • Fork/join Thread Pool - multiple thread queues (note to self: fork/join is good for hierarchical problems)
  • low-hanging fruits:
    • async calculations
    • fork/join
    • dataflow
    • parallel collection processing
  • Actors are great - use GPars or Akka, is sufficient to use @ActiveMethod and @ActiveObject annotations and Actors are usable in OO-world

Good talk, well received!

5. Anton Arhipov "Bytecode for discriminating developers"

Technical introduction to the world of bytecode, jvm specification details. I've drifted away to some other topics - really - can't recall what this was all about.

6. Andreas Almiray "Polyglot Programming"

This was a nice talk covering Groovy, Scala and Closure. The whole point of it was to show how cool it is to play with emerging JVM languages. They are not only fun but also useful. What's more, they bring freshness to java world, injecting it with some new paradigms and methodologies. It is easier to incorporate new ideas into younger JVM languages than to the mature Java.

7. Jim Webber "A pragmatic introduction to Neo4j"

And Jim Webber again, this time with some Neo4j evangelism. First came some taxonomy information on NoSQL databases (Not Only SQL) as a whole - than some specific examples of problems solvable with graph databases - and Neo4j is a graph database.

Main points of Jim's talk were:

  • sharding a database is important for scalability
  • series data - should be OK to use Neo4j as their storage

Conclusion

These were all the sessions I attended. On Saturday there was a Hacker-garden, but neither I had time nor will to stay - the topics were very interesting and I'd definitely like to experience such an event, but after 2 days of continuous talks I was rather tired.

To sum up, 2011's Geecon was a great experience, with lots of interesting talks and lots of new inspirations. Keep up the good work guys!

Geecon 2011 – day 1

Last week's Java conference - Geecon was very interesting. It was well prepared, and gave an insight into the current Java related trends - concurrency, DSLs, polyglot programming. But not only that - there were also some pretty different talks from excellent speakers.

The whole event took 4 days:

  • University day (wednesday)
  • 2 regular conference days (Thursday + Friday)
  • hacker garden (Sunday)

I decided to attend only on Thursday and Friday - no time for more. Here is what interesting happened during those days.

Day 1

The morning got me unprepared. After hard enough, after work travel to Krakow on Wednesday, I wasn'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.

Since the schedule was tight - three parallel tracks of lecture, I had to choose, so bare in mind, that is my account of what I've seen and heard. Others may, of course, differ.

1. Danny Coward "Java SE: The Road Ahead"

Danny, being on Oracle (considering being also former Sun's employee a plus) payroll, gave an insightful talk on new things to came in Java 7. He drew rather serious plans for Java 8. According to Danny, the main trends in today's Java ecosystem are:

  • parallel programming
  • language dynamics

and he probably is right :) The great things to come with new versions of Java are:

  • closures in Java (finally!)
  • extending interfaces
  • map, filter - functions for collections
  • lambda expressions - thou in Java 8

The talk itself was a nice keynote, but I doubt the road map for Java will be met in its full extent - the goals aren't that small.

2. Juergen Hoeller "Enterprise Java in 2011"

Spring Source as one of the sponsors sent Juergen to evangelize about the world of enterprise and Java's place in it :) He emphasized different kinds of deployment: WAR, cloud deployment - and the latter's rise of importance.

He pointed out how outdated current application servers are - the usually lag ~3 years behind the main trends and developers' needs - good point! He proposed looking under the hood of now-popular cloud environments: Google App Engine or Amazon Elastic Cloud to look for schemas in them, etc - I intend to listen to his advice.

All in all this guy gave a great talk covering wide spectrum of technologies and not focusing on technical stuff too much.

3. Heinz Kabutz "Reflection madness"

Despite living on a Greek island, this guy showed also how to whack ones mind with Java Reflection API. Pure magic! Some highlights of his talk were:

  • how to get 42 + 1 = 44
  • get the size of an object
  • get method caller's id
  • add enum values dynamically

With all this examples he pointed that using SecurityManager will prevent such nasty coding practices.

Since he is an editor of Javaspecialists.eu newsletter, all the answers to problems presented in his talk (and many many more) can be found there.

Well done, not to useful for me, nevertheless - interesting.

4. Michael Figuiere, Cyrille Le Clere "NoSQL & Datagrid from developer perspective"

I don't know what to think of this talk. It consisted an introduction to NoSQL databases but also a bit of problem's description that can be encountered when dealing with them. Notable thoughts were on:

  • creating a sharding ready data structure
  • denormalization as a useful process for NoSQL DBs
  • NoSQL usually means no transactions

5. Hamlet D'Arcy "New Ideas for old code"

Since a lot of developers (all?) have to deal with legacy code - one way or another, this talk was a must!

. 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:

  • 51% rule - if you're not committing 51% of your time/your tasks into fixing your situation than the whole battle is already lost,
  • read some good stuff!:
  • use static analysis - Find Bugz, pmc
  • query-command - a method should be a query or a command:
    • query - returns sth
    • command - change the state of an object
  • he also proposed scratch refactoring
    1. set a timer
    2. tag your code
    3. refactor without tests
    4. step back and analyze
    5. is it better? if not, revert

This was nice! - it assumed arriving at a project with no ( or little) tests.

6. Aslan Knutsen "Arquillian"

The last talk of that day was about some new library from JBoss that would allow to test your components with unit tests - 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's say JBoss AS ;-) ). To be honest, I can't find much application for that - thou I'm not doing any serious work in JEE world.

Party

And the day ended. But there was sth else to do after the official part - party time! It took place at Klub Pauza on Floriańska street. It was a rather nice social event.

... to be continued - stay tuned for part 2