Last week I attended GOTO Copenhagen. Everybody should know the GOTO conferences by now. This was a new conference in Denmark. I had a good time, attended very good keynotes and a number of very nice presentations. I have also given a talk myself called: Visualising real time traffic data using elasticsearch and c3js. In this blogpost I am giving a summary of some of the talks I attended.
The first day of the conference was thursday, it started with the keynote by Tim Bray called: Does the Browser have a Future?. As with every keynote you should mostly listen en get inspired. What I remembered of his presentation is that he talked about the bad part of the browser that needs to change to give the browser a future. Some parts are already great, but because of the DOM, css problems and the use of javascript to many frameworks arise that try to make the browser experience better and developing for it easier. This diversity creates a big problem in maintainability, especially since the best framework is every month another one. He also mentioned that the biggest problem for apps at the moment that it takes too much time to upgrade an app in the apple or google app store.
The next session I attended was from Todd Montgomery. This was a talk in the solutions track. In contrast to a lot of conferences I attended the solutions track was really good this time. This talks was about Reactive Programming Models for IoT. This was a very good presentation about communication protocols between devices and a server. He discussed a toolset called Nuklei which is a toolset to communicate using a diversity of protocols from different languages. I also liked his view on client-server messaging. To see a message as some abstraction over the different types of messages being request/response, streams.
The next session was a session showing the architecture of the Saxo bank by Michel Andre. This session was called: Patterns for scalability and availability in (trading) systems. The most interesting part for me was his discussion about logging transactions for component driven systems in a way to be able to restore transactions when part of the system failed.
For the next presentation I switched tracks. I went to a talk in the everything connected track. This presentation was by Chris Atherton, UX for mobile: it’s all about attention. I really liked the style of her presenting. A really good presentation with a lot of humor. Not to many takeaways, still a very nice presentation. The thing I got out of this presentation was the advantage of mobile first design that you are forced not to present to many action items in your application. If possible keep it to one.
Back to the solutions track, a presentation from Michael Wawra about Apis and services to the last line of code. A nice presentation, man the standards are high this time at goto, he showed us how easy they made it to add speech to an application. What I took from his presentation that it is good to create solid API's, but it is better to create client libraries for your api for multiple languages that makes using the app from a client perspective a lot easier. Do make sure this client can do everything that your api can.
Than it was time for my own presentation. Visualising real time traffic data using elasticsearch and c3js.
Finally time to drink beer with the sponsors. No we are not finished for day one. The final treat was a keynote by Andrew Sorensen. A musical introduction into real time programming. Programming In Time - Live Coding for Creative Performances.
That is a wrap for day 1. Next stop, dinner with the conference attendees.
After some beer and a good night sleep we moved on with day 2. The start was a keynote that is a bit different than the usual talk. Therefore a perfect keynote. If I would make a top 5 of keynotes ever I know for sure this one would be in it. Russ Olsen talked about going to the moon. The thing to take out of this talk is to think about the following sentence. We choose to go to the moon, not because it is easy, but because it is hard. But remember, start with the most simple thing that can be done.
After this very inspiring keynote, I went to the talk from Marty Weiner about Scaling Pinterest. In his talk Marty described the technical landscape they created and later on abandoned. They started with all these cool technologies and than I mean all. After a while they realised they used to many (obscure) technologies and they took time to throw a way a lot of them. They now have realised a componentised solution where the bigger parts are services that can be used by the other components. He also mentioned some technologies and solutions I need to do more research for, yes I got inspired, nice. (Kafka, mysql shards, zookeeper to name a few).
After a cup of coffee I went to Mark Madson with big data, bad analogies. Clearly someone who knows what he is talking about. The one remark that sticks to me is: We do not need best practices, we need worst failures. Not something we like to talk about, but still something others can learn a lot from.
Lunch time and what is better after lunch to take a deep dive in performance measurement within the JVM. Optimisations to the code you run on the jvm. If there is one talk within GOTO that makes you feel little, it is the talk from Martin Thompsen. Nice if someone can give you the idea you have been doing everything wrong in just around 50 minutes. His talk was about Responding in a timely manner. He mentioned that macro (or system tests) for performance are the way to go, do not try to optimise the small things first. Start from the big and move to the small if necessary for testing. Of course it is better to have a continuous performance test environment. What, you do not have it yet? Euhm, well, you know, maybe, not really, I guess. HE also mentioned Amdahls law in relation to parallel processing optimisation. He finally mentioned an interesting tool called jhiccup.
The final presentation I attended was the one from Alexander Stigsen about Mobile first architectures. Again a very good presentation. Alexander explained some of the advantages from native apps over web apps. He also explained why you should use the processing powers of phones and tables more. Why do the heavy lifting on the server, you have so much power in your hand. Also think about what you need to do to make your app run without an internet connection. I hear you say, of course, but do the check. Switch off your connection or better connect to a network without internet. Now see which apps remain working.
Thats is it, this was my take on GOTO Copenhagen 2014. I had a very inspiring two days. Nice chats with people I did not meet before, colleagues I most likely will not see again because they live in another country, but who knows. And of course I had some nice chats with one colleague I will see regularly, to not forget we are Dutch :-), always a pleasure. I had big fun, thank you GOTO, see you next time.