GeeCON 2012: Been There, Done That

Below you will find my notes taken during and after GeeCON 2012 event. Much more could be said about this fantastic event but this is what I managed to write down. Enjoy!

Organization

It has been my 3rd GeeCON (I missed only one, two years ago in Poznan), and what I want to say is that in terms of organization this conference has improved a lot over years. This time there were more people involved in the preparation of the event than previously (mainly because a lot of students joined the team and helped with many tasks). I have really enjoyed the streaming thing which allowed me to watch the keynotes in different rooms (this is important because: a) the main room was overcrowded b) if you want to join or leave you do not disturb the speaker). I wonder when the recordings will be published (from what I've heard this year they should appear on Vimeo pretty soon), and from what I have seen by looking over the shoulder of cameramen, I expect them to be of really good quality.
I'm pretty sure some people will still complain (and good, because that is a valuable feedback to organizers!) but frankly, I believe there is not much to complain about regarding the organization. Good work guys!

I also liked the posters with information, cups, t-shirts and the way the cinema lounge was prepared. Really, really nice.

P.S. You can see the list of organizers here however it contains only "core" team members - many more were involved.

Talks

As for the talks, I have to admit that this year I saw only few of them. I spent a lot of time talking with different people - partially promoting my book and partially just discussing stuff - and I have attended like 6 maybe 7 talks. Some talks were really good, some were disappointing, but in general I was content with what I saw.

I was surprised that there were so many talks about two subjects:

  • new languages
  • tests

I decided to attend Bruce Eckel's presentation (called "Atomic Scala"), mainly because I have never seen him before. I'm not really into Scala, and BTW. I do not believe it bo the next big language. I wondered if Bruce would change my mind?
Bruce said Scala is - in many aspects - much simpler than Java (this is different from what I saw/heard/experienced so far), so I wanted to see more.
I really liked how he explained why Scala was invented. I agree with his analysis of Java weaknesses.
During his introduction to Scala I sometimes felt it went too slow, but then he usually said something which made me really interested and kept me quite interested ...but in general he was not in hurry :).
What I didn't like in this talk, was that a lot of time was devoted to some simple syntax constructs, which are pretty easy to understand even if you have never seen Scala before. So after the talk I had the feeling that I haven't seen "the real Scala" that people are so excited about.

I do not understand why Bruce talked so much about some errors or rather imperfections of his own slides and examples. It made me think that I look at some half-prepared stuff. He could have easily hide his mistakes from us and not draw our attention to this.
P.S. This is something I have blogged about some time ago, if you are interested.

I have really enjoyed Jacek Laskowski talk about Clojure. The whole presentation was a live coding, and it worked pretty well. I know how hard it is to code and talk at the same time (hint: it is #*&^$ hard!), so I really admired how he managed to do that. Not everything went flawlessly but it was a good show.
And as for Clojure, it is on my radar, but not sure if this is the language I want to invest my time to.

Ah, languages! We had few of them on GeeCON this year: Kotlin, Groovy, Scala, Clojure, Ceylon. Each of them has something to attract my attention - from cool parallelisation support to the bloated ego of its creator ;). I asked many people I spoke with regarding their "feelings" about this long list of "new" and really interesting languages. I got very different answers raging from: "I'm still working with Java 1.4..." to "I think you should learn JavaScript." and really, I think that no one is able to predict the success of them (BTW. it is even problematic to decide what a "success" would mean).
What I especially tried to learn is how to introduce a new language to your team. Ok, I can learn Kotlin or Clojure, but then what? Start writing a new module (or maybe tests) using it and announce during stand-up "you know, I'm writing this and this with XYZ so you better learn it"? Well, not really.
Anyway, what seems obvious is that the language without good IDE is not going to attract attention, and every new language strives to have a decent IDE support from the very beginning. All in all, we live in interesting times, and I'm glad there are some new things appearing on the JVM.

Oh Yeah, My Talk

As for my own talk, well, you should rather ask the audience, not me. But frankly, I was very pleased with myself, even though there is still some room for improvement. I think the talk was quite vivid, with some funny accents, and also with a dose of valuable hints (at least that is how I wanted it to be like).

First of all, I was really happy that so many people attended my talk. There were 4 talks on parallel paths, so there was a chance that only my family will show up :), but no, the room was pretty occupied. And in case of GeeCON, which takes place at Multikino with its huge rooms, this means a lot of people really. Another thing that made my proud is that they stayed to the end (except few cases, but I noted down the names and will deal with them! lol).
I received a lot of positive comments afterwards, and also few friendly pats on the backs, which I take as a compliment (but please, next time do not do that when I have my tea!), so thanks, I'm glad you like it. :)
As for the criticism, I got bashed for showing some anti-patterns. Next time I borrow this tiny tool from Men In Black and at the end of the talk I will use it so people forget all the bad code. ;)

BTW. it is possible that I will repeat this talk on Confitura (I hope to receive some more interesting tests by then so it might differ a little bit).

Face To Face With A Legend ;)

During one break I had an interesting discussion with Bruce Eckel about books publishing. Bruce is working on his new book now, and he is thinking about self-publishing so he is facing same issues that I had already solved some time ago (well, of course Bruce has in general 10 times more book-writing experience!). We discussed things for like 20 minutes and I have really enjoyed it. We exchanged a lot of information and experiences regarding the books writing and publishing (lol, when I think about it still feels crazy to be able to talk with Bruce Eckel as an equal!). One of the things we agreed on is that the publishers have to change. Taking like 90% of the income for publishing a book is not an option anymore. The natural reaction of the authors is to self-publish. I shall write some separate posts about self-publishing soon, but for now let me say only that:
a) self-publishing is possible, especially for IT people like you and me (but it has a time cost and a significant one!)
b) it is getting easier and easier every day as we have new improved tools and services for doing this

Discussions, discussions, discussions

I had numerous discussions regarding the book of mine: both its content and the layout. Ah, layout is a funny thing. One people will tell you that the fonts you use look like #*&^$, the other will praise you for publishing a book in a "western manner", that is with some light and space. Anyway, I had a lot of really nice discussions. It is amazing how very different level of testing knowledge people have. Some of them were asking very specific questions regarding some specific technologies (e.g. UI testing with Jasmine that I have no clue about...), while others are only beginning the journey into the realm of tests. Also a recurring pattern is something along the lines of "I have tried X, Y and even Z, but in my company we are really only starting writing tests so ..."
.
The topic number one is whether one should write unit tests for every piece of code, especially for "managers" or "services" (yeah I know, DDD people will kill me, but this is what we discussed). You know, the classes which do not have a real business logic but simply parse (in a broad sense) the request they receive and pass it further to one or more collaborators. There were many different opinions expressed, but I would say that we agreed on the following (this is a generalization over the outcome of many small and big discussions we had):

  • if you write the production code and THEN the test code, then you are probably wasting your time (because it is like: "ok, my service is calling a DAO, so in my test I need to verify if my service is calling a DAO" which leads to repeating the code without any real chance of finding bugs)
  • but it does not mean you should leave such code untested! Remember that except for the happy path testing unit tests are perfect for verification of all exceptional cases
  • if you do TDD and writing tests for such pieces of code is how you design such code, then it starts to make sense

As for other discussions I heard and learned a lot. Probably the best thing was to meet people with whom I have cooperated over the net for many months but I haven't met. It was somehow funny to see someone for the first time and soon learn that his name is X Y, which means we have already exchanged tons of emails. Anyway, now I have a mapping between email addresses and faces in my head which is nice.

I had also some "random" discussions, and they were also pretty interesting:

  • with Łukasz Kuczera about sgrouples a privacy-respecting social service which he works on (give it a try, it looks good),
  • with Paweł Wrzeszcz about Awaitility
  • with Damian Nowak about the advantages of Spock over TestNG (need to check this one!)
  • about how much Eclipse's support for Hamcrest sucks :)
  • about surviving the traffic in Cracow and other cities (while driving a car or a bike) ;)

See You Next Year!

What can I say? I enjoyed GeeCON 2012 very much and I hope to be there next year. :)

Seflpublishing

With regard to self publishing I found many interesting experiences and tips described by Scott Berkun here: http://www.scottberkun.com/?s=self+publish

Scott is a former Project Manager at Microsoft but mainly he writes books, really good ones! :) (all this titles can be found here: http://www.amazon.com/Scott-Berkun/e/B001ILKGVS/ref=sr_ntt_srch_lnk_1?qi...)

Maybe you will find it useful.

thanks!

Thank you! This is rather late for me, but who knows. :)

Please comment using