Javarsovia 2010 - been there, done that

Shortly speaking Javarsovia 2010 was great! I enjoyed it very much.

I want to thank very much to all people involved in the organization of this event. Great job! Everything worked fine and I was really impressed by the number of people that came to Javarsovia 2010.

Talks

Few comments about all the talks that I attended. First of all, it was hard to decide which room to choose (there were four parallel paths).
Second, I held one talk myself (on Gradle) and I will describe it when I'm ready to post the slides and source code. Stay tuned.

How to avoid code rotting, Jakub Nabrdalik

This was the first talk of the day in the biggest room and we all enjoyed it very much! Jakub is a great presenter with sense of humor and his talk (slides, funny stuff, stories) were very well prepared.

If you read "Clean code" book, saw few presentations of Neal Ford and read about software craftsmanship there was probably nothing new for you there. But still - trust me - you would enjoy this talk a lot! Even if Jakub concentrated on well-known issues he did it with passion and humor that made them look fresh and interesting. I took some notes and will have to think about few of his points, as they were really valuable.

This was kind of a talk that should be shown not only to every newbie developer but also to the experienced ones (at least once a year). There are some things that should be repeated over and over again because we tend to forget them in our daily work. And we shouldn't.

Java Messaging - not only JMS, Adam Lider

The topic is definitely hot and that is why I wanted to see this presentation. Unfortunately the talk was rather disappointing. I would call it "chaotic" or maybe "unstructured" for a lack of better terms. The parts were quite interesting but I couldn't see where does it all lead us. Many solutions and tools were mentioned (JMS, AMQ, RabbitMQ, zeromq) without any further expansion or conclusion.
It is a pity because Adam has proved that he knows the subject from his own experience, and if he prepared this talk better, it might be really, really valuable. Also I was not happy with the way he presented the slides.

Still, there were some bright points there. I liked the simple thread-based messaging implementation that Adam presented. It reminded me that sometimes all you need are few lines of code and not 20 dependencies of some sophisticated 3rd party libraries.

AOP, ThreadLocal and JPA, Tomasz Łabuz

I liked this talk. It was very practical and illustrated with many well-thought examples. You could see that Tomasz is very well prepared and he knows the subject. He presented many examples and all worked well (I was surprised at how fast he was able to run his quite complex examples - BTW. nice use of git!).

He explained two approaches to AOP: Spring AOP and AspectJ (without annotations). The main feature introduced as aspect was the ability to store information on changes made to entities in the database (so every time an entity was updated it was possible to check what values were change). A very nice solution to a problem that is quite typical for many applications.

Beauty within Java, Wiktor Gworek

Java developers in the search of beauty... how very romantic :)
A very nice talk. Wiktor presented a lot of code examples that showed how you can make your code more readable. A good code should state its intent clearly. Unfortunately if you use Java for tasks like searching within a collection or sorting it there is a fat chance that it won't be the case. Wiktor showed how using Google Guava you can make code way more readable. Looking at some examples I felt like it was some other language (which is a compliment here!).

He also explained few good coding practices (like defensive coding and use of immutable objects). Even if the most of the examples were showing some use of Google libraries, the idea was more general: "you should seek ways to make your code easier to read". I like it.

One size doesn't fit all. Java NoSQL solutions, Jarosław Pałka

I was really interested in this one. The description of the talk promised a lot but much less was actually delivered. Shortly speaking it was a disappointment especially because you could see that Jarosław knows this topic and could have told us much more than he did.

The talk begun with a really interesting information on the amount of user-generated content on the web. After this introduction I expected something interesting about scalability and performance issues... well...

And then the things got worse. Instead of comparison of various types of NoSQL we got a 30 minutes presentation of Neo4J (The audience chose this one but it doesn't matter - there was no time to show more than one as he said. Well, this is something that I would prefer to learn before the talk and not during it.)

Uh-oh, come on! Showing people that you can store graphs in a graph database for 30 minutes is a waste of time. The examples could have been presented in 10 minutes if they were better prepared and thought over. And it really disappointed me that this Neo4J presentation had nothing to do with the first part of the talk. No word on scalability or performance (well, this is also my fault - should have asked him during the talk).

The only thing that I will remember (and this is simple yet really valuable stuff) was the idea, that you should jump out of the relational databases box and choose a storage solution based on the type of data you intend to store.

[UPDATED 2010-07-16, please check http://www.infoq.com/presentations/Neo4j-NOSQL-and-Graph-Databases for a really nice Neo4J presentation]

What New Have You Learned?

After the conference was over I asked myself and other people a simple question: "what new have you learned?". Some of them pointed out to jBPM or Windows Azure talks. But few told me something like: "nothing, I only summarized and refreshed what I already knew". And you know what, they didn't sound disappointed! Seems to me that we all know craftsmanship & TDD stuff but still we love to hear it again and again. Why? I dunno. Any ideas?

Let's Party - SPOINA

Talks are great, but meeting people and discussing with them is equally valuable. Between the talks there was some time for meeting old friends, complaining about the PMs and discussions on technology (or football).

The best place to chat, complain and discuss was during the after-party. It took place in the evening in pub Lolek (very nice place with tasty food and great music). Ah, that was just great! We ate and drunk and talked and danced and the last group (me included) left the pub when the pub owner told us that it is time to go (sometime after 3 am).
But before we left we talked. I learned a lot of interesting stuff and exchanged many fancy ideas, e.g.:

  • Eclipse vs. IntelliJ, seems like people who abandoned Eclipse for IntelliJ never come back, hmmm, maybe its time to change?
  • JetBrains - more than technology, closer to cult but in positive sense,
  • who will won the World Cup ? (definitely not USA, they lost their match during the SPOINA)
  • pomodoro technique
  • how to introduce "clean code" in your job if your team and the company doesn't give a damn about it? We didn't find the solution here apart from "change your job ASAP" advice,
  • silent hours (no, that was not about marriage problems, but about having some time for work only - without any distractions)
  • Thrift vs. SOAP,
  • new job opportunities (I heard there are many, but no one wanted to tell me where, lol ;),
  • how to learn from guys that are equal or better than you are? In many companies a policy "one good dev per team" makes it hard to meet people that you could learn a lot from,
  • why everything sucks ;)
  • is someObject.validate() any better than validate(someObject)? (the answer seems to be "it depends", but mu answer is more like unconditional "yes")

Javarsovia 2011

I will be there for sure. And you?

Please comment using