Author Archives: admin

“Good or bad, hard to say”

One very unproductive, even harmful behavior in the software development is the tendency to “protect” our code from critics. 

Sure, you gave it a lot of thoughts and sure it’s a snapshot of your way of thinking at the current moment, but… Face the facts. Given there is no way to know what the future brings and how the code would have to change to accommodate new requirements, your code is probably not the best it can be. Have this in mind. Always.

So, what can you do? 

First, you should really throw it to the critics and try to learn from them. If the code is really that good, then it should be easy to understand, do the job, consider all the edge cases, be prepared for changing requirements, be time and memory efficient, integrate seamlessly in the application and be consistent with the code base. Does this code do really all of that? Unlikely.. So let start with the mindset “there is space for improvement” and be open-minded to critic. Listen and learn. Some of the obvious benefits: to see problems before the customer runs into them. Also you will build better interactions with the peer software devs, being able to break out of the “defender’s mode” and openly accept help or challenge.

Second, use your code as the best measure of your technical growth. Looking at your code from the last year and thinking it is good means you lost an year of your life learning nothing (sorry for the bad news).  The best proof that you are on the right track, getting better each day is to be ashamed of your work from yesterday. That’s the delta. Knowing it, enables the calculation of your speed and direction. It is pointless to compare yourself with other people, since everyone has different start, different prerequisites, different story. But comparing today’s and yesterday’s you, is easy and meaningful. Use this trick to measure your progress.

The shoulders of the Giants

Men don’t grow by centimeters, we grow by the number of books we’ve read.

And seldom was someone rewarded for having opinion. Most often we are rewarded when doubting..

The books that I’m most grateful for in the last year were:

  • Practical Wisdom by Barry Schwartz
  • The Paradox of Choice by Barry Schwartz
  • Algorithms To Live By by Brian Christian and Tom Griffiths

And to wrap up the post with a quote from a favourite book, think about this:

Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so.    

                    — Douglas Adams, Last Chance to See


Middle of the week, biking to work through the forest in the pouring rain.
Yet, a day ago I checked the weather forecast and it was sunnier than insurance ad.
How is it possible we can clone goats, but are incapable of calculating an useful weather probabilities for the next 2 days?

Of cucumbers and men

“You look like a cucumber to me. Actually all humans look like cucumbers.” That is how Pepper tried to explain to me what she sees. In front of the Aldebaran Robotics stand there were many cucumbers gathered to touch their heros – the Naos or just to check for fun with the new futuristic looking Pepper bot.

Friendship between cucumber and robot

Friendship between cucumber and robot

Pepper can’t play soccer, at least, not very well. But she is charming like hell and easily captured the attention and the hearts of the majority visitors at RoboCup 2016. Which is quite an achievement in the buzzing of thousands people and robots trying to find their way from A to B via C. If you were a kid grown up on science fiction books and dreams of the never coming future, then there is no reason to be anywhere else on Earth at that particular instance of time (except if you own time machine and can come back later to check).

Affection between elk and cucumber or how Pepper sees the world

Affection between elk and cucumber or how Pepper sees the world

Two gigantic halls full of toys, curiosity and heavy atmosphere of unhealthy amount of sleep shortage. Especially in the humanoid arenas where the world’s 2050 robot soccer team is making its first steps towards the goal. I mean first steps, literally. These autonomous friends are training hard for the big challenge in 34 years, to win against the human world soccer champion team. The problems at the present moment are many and obvious. Not only the software is experimenting with the limits, but also the hardware is far away from the point we’d like to see. Even the artificial grass introduced to the rules last year presents a huge obstacle for the mechanics. On the positive side, there was no chance to miss a goal while fetching coffee or pancake.



Moving to the central attraction of RoboCup, the tiny Naos from the Standard Platform League (SPL) are already capable of provoking real sport emotions among the audience. The point of the SPL is to measure the performance of the algorithms. Teams from all over the world develop algorithms for the same hardware. Every year a new rule is introduced to shift the robot soccer towards the real game. For example, this year the ball was changed – previously red and very easy to recognize, now the Naos had to handle the new black and white soccer ball. The beginning was hard and most players were confused, but at the end they learned a new skill. Last year the goal bars were changed from yellow to white. Every problem solved leads to another one. It might sounds like an infinite loop, but in fact, it is an upward spiral. Believe it or not, this is how champions are born… or assembled.






RoboCup is not only about robot soccer, it is also the event to see what is going on in the service, entertainment or education areas. Amazon was sponsoring the so called “Pick-Up” challenge starring robo-workers competing in recognition and grabbing objects out of carton boxes. From gripper-handed to self-built bots using vacuum cleaners as actuators, every invention had the equal opportunity to prove its value.






Looking back to RoboCup 2016 in Leipzig I would like to say this: we are far from beating the world’s soccer cucumber masters in 2050. We are far even from beating the famous Ronaldo-cucumber alone. Even if he plays with crutches… Drunk.. And with his eyes folded.. But then again, since when the impossibility of something awesome would stop us from doing it? Since never.
Remember, when we were kids, watching Star Trek and they had this amazing technology to do video conference? Oh, boy seemed that cool and impossible. And 10 years later we had it. The point is, 35 years are eternity in the hands of a dreamer.

Activity trackers

While waiting for my personal angel, I decided to see what happens on the wearable market. First of all, it is a mess. Second, it is an unholy marketing disaster. Why? Because the shiny-whiny pages of those tiny smart devices are huge, fancy and can show you the world and your perfect image of self, but NOT the precise and detailed specifications of the gadget you want to buy!
Other problems are the lack of unified measurements and a whole lot of subjective stuff around those devices.

But if I’m going to empty my pocket, then I better know why. So this is my try to make sense of the mess around activity wearables.


  • The list of devices is everything else, but complete.
  • It may contain false information, since I tried to dig some of the information from unofficial product websites. If you find errors, please comment and I’ll try to fix them asap.
  • All measurements are as objective as possible. I tried to not include subjective measures as GUI, device design, errors, support, etc.

activity_trackersIMG 2

Since at the end every decision depends on the user’s personal preferences and needs, I hope that this table will help you and help me to take the optimal purchase decision faster. Decide what you need and see which gadget fits your needs.
For example, the most important features for me are:

  • water resistent, so I can swim with it
  • must measure heart rate
  • must monitor my sleep
  • must have > 3 days battery life
  • wearing style: wrist

break tie criteria (nice to have):

  • skin temperature
  • open source, so I can write my own apps
  • level of automatically switching between modes
  • smart wake-up alarm

Things I don’t care about:

  • smart notifications, because I have more than enough smart devices to ignore at the moment
  • music control
  • big fancy screen

game jam III

The 3rd Gameforge internal Game Jam (Hammerzeit) is over. It was fun and it was short. Our game won the 3rd place in the competition part and we are happy and proud of the results. The idea of the game was unique with innovative game mechanics. And the time, as usual was our worst enemy.

I think, people learn more from their failures than their success. At least, it is the case with me. This time, I learned one very interesting live hack from our success. In the brainstorming phase, people come with already shaped ideas and visions of the future project. When it is a team project, each part of the team should be equally motivated and excited about the results. That’s why we sticked to one unwritten rule:

When one member of the team is not happy with the goal, proceed with brainstorming immediately, without arguments. When your team comes up with the IDEA inspiring each and everyone of you, then you got it.

Goal of the game:
Serve your customers as inefficient as possible, but do not let them go away and complain to the boss.

Rules of the game:
– There are 3 waiters in the cantina.
– Each of them can be sent to bring nomnoms (food) to customers.
– The color of the chip on the table have to match the color of the plate to be served.
– Each customer gets more angry with time (the more angry customers give you more points).
– Additionally, the customer’s rage is higher when a waiter with her food passes by.
– When the customer is really pissed off, she takes the chip and walks through the door to complain to the cantina boss. This is the sad point when you loose a customer.
– After 3 lost customers, your waiters will be fired and game over.

And now the video tutorial how to break a score 🙂

favourite comic moments

from Transmetropolitan: just a favourite punchline in the spirit of the comics

from Ten Grand: the Death wearing a reflective vest and casually explaining his reason not to go to hell or heaven.. coooool with multiple oooo-s

from Ten Grand: familiar feeling on a dramatic background

from Choker: lady you don’t want to meet when she has a bad mood

from Singularity 7: Yes, they are. Unfortunately you will never know who is here.

from Singularity 7: I just like the drawing.. 🙂

from Transmetropolitan: Logic in action. Made me laugh and I like laughing.. a lot..

from Wormwood: Gentleman Corpse: What it means to have a bad day. Just next time your coffee machine is broken in the morning, remember, it can be worse.. much worse.. like “blue energy tentacles from another dimension” worse.

home made riddles

Riddles time!

Not long ago I was reading “The books of magic” comics from Neil Gaiman, when I stumbled upon the following riddle:

When there is a fire in me, then I am still cold; When I own your true love’s face then you will not see me; To all things I give no more than I am given; In time I may have all things, and yet I can keep nothing.

books of magic

Spoiler Alert: the answer to this quite well designed riddle is.. mirror. But more importantly, this small piece of surrealistic brain teaser reminded me how much I love small fairy taley riddles. On the one hand, they have answer wich is not 100% accurate, because they can fit a lot of answers. On the other hand, it does not matter if you guess right, because they just test your creativity and willingness to think abstract, to be wrong and learn, to poke your creativity.

So I decided to make a few of my own riddles. I won’t share the answers, though. If you are nice and ready to play, then ask me. We can arrange a riddling game in which the losers are the one who don’t play.

Riddle 1:
I am larger when cold and shrink when warm. You can see me, but you cannot touch me.

Riddle 2:
When people need me, they throw me away. when I’m not needed they take me back.

Riddle 3:
The more you give me, the richer you get. When you rob me, only you get poorer.

Have a nice riddling! 🙂

history repeats itself

Here I am, on the wings of slowly calming down annoyance.

Stop reading for a moment and think about the most annoying thing you encountered in linux. For me, it is definitely the never-ending dependancy waterfall. Satisfying the requirements of application’s requirements. It reminds me of the unique feeling of dealing with “dirty laundry” – in the very same moment you finish the laundry, the dirty clothes basket is half-full again. The story might resemble the myth of Sisyphus and yes, it does feel like it.

However, the topic of this post have nothing to do with Greek mythology, or even with dirty laundry. It is all about javascript and the carnival of happy frameworks jumping euphorically around it.. And about ruby.. And about java.. And about php or whatever precedes java in the web development..

First of all, I’m in love with angularjs. Said so, please don’t nail me to the cross for writing the following lines.

As all good stories, this one begins with nodejs. But nodejs is not so interesting on its own. So you, young traveller, will need a backpack of toys, just to create a simple angularjs project. Because as we all know, unit tests are even more important than the 10 hours you’ll spend collecting all the dependancies for the testing framework. And even more important than the century you’ll spent writing and maintaining them. Of course, they will protect your clean code from one or two typos in the absence of a compiler. And, of course you’ll be up-to-date with the latest fashion in software development. Therefore, it must be worth it.

As everyone knows, one programming language alone is not enough to build a page showing “hello world”. Two hours later and you have successfully downloaded all dependancies to start and half of the internet on your machine. But is it enough? Silly question, since there is still another half internet to board in the deepest folders of your personal space. Places, you even don’t know the existence of. Security? You gave that virtue 2 hours ago in exchange for the sweet feeling of completing something. And yet, you still haven’t accomplished anything. Except “reading” the 20-page agreement and selling your soul to google, microsoft, apple and Facebook at the same time.. At least you can hope that at the end their lawyers will fight spectacularly for its possession. Where was I.. Ah, ruby.. all the fancy js frameworks want ruby and compass and probably cupcakes, who knows.. The important thing is, you spent a quarter of your life to get here, so you are more than willing to make them happy.. even if they want world peace, or unicorns.. Nothing can stop you now.

Tomorrow the sun will rise again and new generation of programmers will be born. And this new generation will come up with simple tools to accomplish complicated tasks. And their tools will evolve in unmanageable ball of config files and libraries.. So it was, so it will be.. After all, our only purpose in this funny world is to increase the entropy. And as I am getting madder from loosing control of my time, I also get prouder of being part of all this insanely creative dough called humanity.