Saturday, May 20, 2017

Impressions from Voxxed days Athens

After Voxxed day Thessaloniki, it was the turn of Athens to host the event. The bar was set very high because of the enormous success of the first Voxxed days in Greece. As i walked through the venue and talked with my fellow engineers i could notice that almost everyone was anxious for the talks and had absolutely no concern about the various organizational aspects. They expected everything to be just fine and so it was.

The event was sold out and the venue was full of IT professionals. The sponsors had their own place to present themselves, answer questions and discuss potential collaborations and prospects with people interested in their work. The most impressive was stoiximan  who had an installation of the VR project they made with the Greek football champion Olympiakos. It was really impressive to see it and more impressive to live it. You can see it on youtube

I was very happy to see many Greek colleagues that now work abroad and came to Athens for the event. Looks like Voxxed has become a pan-European meeting place.

The venue was OK for the talks but the rooms for socializing and networking were a bit small and were always very crowded. The food was fine, not as good as in Thessaloniki but honestly no Greek city has better food than Thessaloniki.

And now the interesting part

The talks

There were 3 tracks with a total of 17 talks and also 2 common keynotes, the opening and the closing ones. That way you could attend at most 8 talks. My choices were:

The Art of Visualising Software Architecture by Simon Brown

The opening keynote of the event was a small workshop about notations and diagrams for software architecture. This topic reminds me of a Dilbert strip, obviously inspired from real life

but fortunately the talk had a very solid base also inspired from real life. It discussed various abstractions and notations for modeling the software architecture and presented many examples both good and bad. Architecture Visualization  is very important but most engineers use their own custom notation and not a common vocabulary. This hinter communication, understanding and eventually evolution of systems. Simon also presented his own model of software architecture, called C4 for Context, Containers, Components, Code, and structurizr his tools for expressing and visualizing architecture. You can find his presentations, tools and much more at A very interesting talk that reminded us the obvious we always forget, that a software system is much much more that the code

Implementing binary protocols with Elixir by Ole Michaelis

I attended the http2 talk by Ole at Voxxed Thessaloniki and i liked his lively presenting style, so i decided to attend his talk. This time he presented an elixir implementation of an http2 request parser. I have a good picture of elixir, mostly by following the blog of my friend Dimitris. I can understand code snippets in elixir but still can't use it. You see the book i bought at Fossdem is still in the bag :-(

Nevertheless Ole explained the features he used each time and it was easy for us to keep in touch with his ideas. He implemented the parser using pattern matching. To oversimplify, it is a mechanism that instructs the compiler to decide at runtime which function to call based on the values of the arguments. With this mechanism he "almost" embedded the http2 request format in the signatures of the functions and the compiler practically unraveled the parser flow during the runtime. It seems magical, and elixir pattern matching is indeed magical. I am not a fan of such exotic features, they are like the songs of the sirens and i prefer explicit function calls. However i really enjoy such talks from hackers to hackers presenting good hacks. I liked this talk and probably i will take the book from the bag.

Security issues and challenges when building novel web applications by Barbara Vieria and Theodoor Scholte

A talk for systems security based on the speaker's experience from auditing and reviewing software systems. They presented common areas of errors, statistics about failures and some of the features of ISO 25010 Then they proceeded to describe a very common system architecture, a typical 3tier with angular.js and mongodb and discussed many of the security errors and pitfalls like unauthorized access, code injection, XSS, output escaping and many more. A very useful talk for engineers without a proper background on software security. The also presented a tool that can help you with code and security. You can find it at

Continuous learning of Tech Professionals in an evolving world by Dimitris Livas

One thing is sure in the IT industry: Nothing is steady, everything moves very fast. You cannot rely on today's knowledge to take you very far. Technology evolves with a very fast rate: Tools, practices and even whole platforms that are relevant today may not even exist in 10 years. Industry also evolves with a very fast rate: You cannot predict what kind of jobs will be high in-demand in the future. Business evolves: The business models keep changing. We have witnessed the internet effect and we are now seeing the AI effect. Finally people evolve too: They have ambitions, goals and needs. In such a world continuous learning is a necessity. Dimitris presented a methodology for it that he calls "the scrumification of personal development process". In a nutshell each individual is the product owner of the most valuable product, himself, and he can apply scrum and agile methodologies to evolve personally. The values the process are having a purpose, being adventurous, being agile, respecting colleagues and trust. You can find more about his methodology at the web site of his company, Agile Actors

The topic of continuous learning is a very interesting one. It is not simple however. It always depends on the context. It is very difficult to decide what to learn next and when and to make the decision proactively before you are forced to. It is always better to be prepared for the future that trying to catch up with it. The "scrumification" seems mostly a proposal for IT companies to adapt such a process so that they can evolve together with their personnel. An individual of course can embrace it but it is not clear how it can work in this case. Anyway it was a very nice talk about a very topical issue.

Create a JEE Test Automation Framework with and Selenium Webdriver by Vangelis Ghiossis

A talk about the internal test infrastructure of Advantage FSE. They develop mission critical systems for banking and payments and it is of great importance to ensure the quality of their deliverables. They presented to us how they test their products. They assembled a stack for testing using maven, gitlab, nexus, ansible, docker, cucumber, selenium, appium and acunetix and configured it for their needs. This stack helps them test quickly and reliable applications on different mobile devices and on different OS/browser configurations. The specifications written in cucumber in a human like language are under QA and version control and the whole stack uses Jira and slack to communicate the results with the engineers. They also made a live demo of the stack testing the voxxed Athens page.

A good talk. Objectively there are many ways to assemble such a stack and each company has it's own variant but it is of great help that companies share such knowledge and in a way teach and urge engineers to build and use them.

Elixir: scaling for the future using 30 year old tech by Manos Emmanouilidis

The second talk about elixir today. This was an 101 talk but the purpose was not to demonstrate the language vigorously. It was an overview of the history of erlang and elixir, the design motivation for the new language and a tour of the features. The goal was to urge the audience to have a look at elixir and expunge the fear of erlang both the VM and the language. A very nice motivational talk indeed.

A language that supports concurrency must be in every developer's arsenal. There are many good choices available like clojure, scala, go (my favorite) and elixir. If you are a fan of ruby you should try elixir right away, it has the same feel.

To get a glimpse of elixir in a real production environment check this blog post by Manos on "Binary data over Phoenix sockets"

Costs of the Cult of Expertise by Jessica Rose

Who is an expert? Who has exceptional skills? Is expertise and skills related? How can we spot them? Can we pass an incompetent for expert and vice versa?

A great talk about managing people and expunging the myths of expertise. The talk had 4 sections:
  1. Definition of expertise and skills in various contexts
  2. Teams and expertise - the part about hiring an expert
  3. Community and expertise - the part about identifying and acknowledging an expert
  4. Individual expertise - how can you become an expert if you already aren't

The talk was full of interesting stories from her experience about geniuses and jerks, experts and incompetents. Moreover the talk was very lively as she talked with the audience for opinions and experiences. Very nice and thought provoking talk. Kudos to Jessica for it.

Numbers by Douglas Crockford

The closing keynote was by Douglas Crockford of javascript and json fame. He made a very interesting talk about numbers, how they evolved historically from ancient Sumerians to Greeks and Arabs. How they served civilization faithfully for many centuries until we integrated them badly in programming languages. Then we started having problems with integer overflows and floating point rounding errors. He believes that the solution is a single numeric type that is always correct. This is his DEC64 project that he presented to us.

An exciting talk about low level computer arithmetic and programming language design. It remains to be seen if his ideas will be accepted by new language designers.

The talk had many historical references and a tribute to great mathematicians of the past. I will only reference Tahuti, the inventor of writing who later become an Egyptian God. As Mr Crockford said, "in a sense we are his children"


Voxxed Athens was a great experience. All the people i talked afterwards liked it very much and renounced the meeting for Thessaloniki. We are very happy because we now have 2 great conferences for developers in Greece and we are looking forward to attend them every year.

Wednesday, February 8, 2017

Reflecting on FOSDEM 2017


FOSDEM is the largest European event for software developers. The 2017 edition had around 600 talks and almost 12000 visitors. Every community is present there. You can meet people from the projects you are interested in and interesting people from projects you haven't even heard about. You can influence and be influenced in many and often unforeseen ways. An idea or a random thought that you say or hear may result to a single commit or to a new project.

All talks in FOSDEM are streamed live yet all these people choose to come to the event. It is like going to a good restaurant. In the end it is not about the food but about socializing and spending time with interesting people.

The organization of the event was very good, because of the work of many volunteers. There were complaints about full queues for food or full rooms or small rooms but of course in such a scale these are inevitable. No hacker there claimed that he can write an app to improve on the organizational aspects and this is a proof of the good organization. The good mood of the people was not affected even by the rain that kept on for all the weekend. I would say that because of the rain people stayed a bit longer at the stands discussing with the representatives of each one and looking for stickers and t-shirts. 

The Talks

Before the event i made a plan for the talks i would attend. I intended to focus on non-technical talks and hear about software in general, applications and social aspects.  However it didn't go as planned. Sometimes the fatigue, sometimes a full room but more often a change of plan because of an instant inspiration(remember the vibes of the communities), resulted in a much different talks set than intended.  The talks i attended in Saturday, the first day:

Kubernetes on the road to GIFEE A talk on Kubernetes and how it enables consistent infrastructure everywhere. Also a small perusal of the tools offered by CoreOS. A good overview of the above, mainly intended for a less experienced audience.

Software Heritage Preserving the Free Software Commons This is a very interesting project. It views software as a common resource for humanity and builds infrastructure to preserve it and make it easily accessible to everyone. The talk was a presentation of the project, it's goals and it's targets. At FOSDEM they also released an API for data and now they are starting to build the community around it. I think it is a project that must be watched very carefully, it has great value.

What legal and policy issues concerning FOSS need to be systematically researched? A legal talk about FOSS which was mind blowing. There are many issues of critical importance. To name just a few:
  • software procurement
  • data formats, open or close
  • standards and organizations
  • licenses
  • copyright
  • distribution
and many more. I liked this talk very much as it was presented in a very simplistic language and touched all the points. At the time of writing the slides are not published yet. Luckily i have photographs 😉 It is very important to understand, in par with the talk on software heritage that software is much more than code and plays a very important role in our lives. We, developers, tend to focus on technical stuff and easily miss or bypass these aspects which is wrong.

Introduction to A-Frame Build Virtual Reality on the Web A talk on virtual reality for the web. To be honest i went there to see some mind blowing graphics but it was a tutorial of the technology. Well, at least i saw that it is easy to do it yourself but i really wanted to see graphics not markup

From pipelines to graphs A lightning talk about dgsh a shell supporting scatter-gather pipelines. This was a very exciting talk as it demonstrated examples of data flow processing on acyclic graphs that usually are written in higher level frameworks and not in the shell. If this works then we have a very good tool for quickly prototyping such flows. From a first glimpse on the project the documentation is very good and is easy to start with. I will certainly give it a try as i have some very good use cases.

The RocksDB storage engine for MySQL A new storage engine for MySQL. It is supposed to be a replacement for InnoDB, it has good prospects but is not there yet. It was a high level talk. I really wanted to hear about SSTables and disk latencies but as they told me these were presented at FOSDEM 2016 and this talk is the logical continuation. In other word i saw the second half of a big talk.

Don't break the Internet!, Mozilla Copyright Campaign in Europe The EU copyright law is broken. Go to and read about it. The new law under discussion is in fact worse. The law makers do not understand copyright in the digital age. The talk was a synopsis of the current state of the new law. Visit the site it contains very useful information

The Go room

The second day, was the day of go and i attended all the talks of the track. For this track i want to talk about gophers not talks. Although go was designed as a systems programming language it is now used in every field. In FOSDEM officially, we saw go for android, go for robotics (with drones flying in the room), go for advanced assembly, go for systems programming and go for monitoring. In FOSDEM unofficially, go was everywhere. There were many people interested in the platform and there were many teams already using it for exceptional things. Most of them passed from the go room to attend. The room was overcrowded for the go1.8 features. It seems without exaggeration that nowadays go is the second most important point of excitement in our industry, the first one of course being AI. But really it is amazing that so many people become excited because a new version of a platform adds a new API for something. My 1p thought is that people have become tired of learning complex platforms and they just want simple and efficient tools to concentrate on their applications. Go is such a tool and the excitement is justified.


FOSDEM is always a great experience and the 2017 edition was not an exception. It is the kind of event that reboots your mind and installs new software. The impressive is that every time the spike is different. It can be an aspiring talk or an impressive demo or just an idea you discussed in the cafeteria with someone you met there. The spike is different but the source is always the same: the people and the communities they form.

Friday, January 13, 2017

Mindmapping an AI talk

Yesterday, Professor Constantinos Daskalakis of MIT gave an interesting talk in Athens about AI. The talk was intended for a general non technical audience and discussed general issues like the definition of AI, its impact and its future.

Unfortunately i was a bit late and couldn't get an invitation for the auditorium so i watched it live from the video wall. While watching i tried to mindmap it for future reference. The final result from paper to iThoughts is: