Yesterday I played DOTA (a video game, yes). I’m pretty sure that I’ll uninstall it soon, but Luca The Italian insisted that I should give it a try. Already the idea of him shouting to me what to do with his hilarious accent made me laugh, so what the heck, why not.

It was incredibly confusing. I spent most of the time just fighting with the interface. I got annihilated several times while trying to drag items from the ‘stash’ to my ‘inventory’. I had no time to read the descriptions of what anything did, so I found myself just practicing the basic moves, and mostly trying to avoid death, which from my gaming days I learned is the first thing one should master in any online game. All the time I just kept wondering how was is it that a game with such a Heaviside learning curve ended up being so incredibly popular. It is somewhat true that good games that are hard to master take a while to become popular, but stick around for a long time (e.g. real rogue-likes, the Civilisation series, Counter-Strike.). Also good but idiot-proof games, on the other hand, seem to linger for just a few weeks and then they’re quickly forgotten, if just because there is nothing more to talk about them anymore.

There is some underlying truth to the fact that hard things are more rewarding. A good bait is fundamental though, the promise of a good treasure (the princess) at the end of the adventure that makes the pain tolerable. Usually we know of this just from vox populi, or more generally, critic. I saw The Mirror by Tarkovsky last week, recommended by the internet. It was a painful experience. I had to struggle with my thoughts ‘common Nico, you should be able to get surrealist films by now!‘ And even though my first reaction was to consider it completely over-rated, since then it has constantly popped up in my thoughts, kind of like a trauma. And I’m starting to like it. If I knew more about psychoanalysis I’m sure there would something deeper to say about this. My image is: only traumatic experiences have enough power to leave a mark in our mind, and there’s intrinsic value in survival, like that object that we love just because we haven’t lost it for 20 years.

common Nico, you failed nerd, you have be able to kill at least someone in a Moba!’

A name for identity

How valuable are words. Reading this excellent article on Quantum wierdness (from Nautilus, of course) I stumbled upon the word ‘haecceity‘,

(/hɛkˈsiːɪti, hiːk-/; from the Latin haecceitas, which translates as “thisness”) […] denotes the discrete qualities, properties or characteristics of a thing which make it a particular thing

I feel that this concept now serves me as a firm, indivisible pilar on which I could edify more intricate ideas. The wonderful utility of succinctness; my mind being so limited I tend to value as treasure those things that can save me expensive mental steps. Now I just don’t want to look at it too much, as I know it will eventually disintegrate, like all mediaval stochastic philosophical terms should. Let us for a while asume that haecceity has some haecceity.

GitLab with Apache and Ubuntu

Let’s make it ab ovo. Big Boss wants to keep track of The Code bug, objectives, and whatever else somehow nicely, and after a few ‘I don’t know what is the best solution’ I got the hint: I should investigate myself and just do it™. We both agreed on using GitLab (I’ve never actually used it, but I like GitHub and Git), but Big Boss was not so sure as he’d had problems before installing it next to an Apache server. As our server still hasn’t arrived, I decided to install GitLab on my own machine, a Linode server on which basically all my academic life depends on. It is already running my personal website and some svn/git servers, so it was no option to use the out-of-the-box solution from GitLab, which includes its own Ruby server.  So, that’s why, here, a quick guide to install GitLab next to an Apache server running on Ubuntu:

  1. Get the last version of GitLab Community Edition (CE) through their repository. For this, I just followed the instructions on the GitHub website.
  2. When that is finished, GitLab should be installed and there should be a conflict between Apache and the server used by GitLab, Unicorn. First we have to reconfigure GitLab.
  3. Find the gitlab configuration file gitlab.rb, in my case in /etc/gitlab/. Edit (or uncomment) the following fields:
    external_url ""
    nginx['enable'] = false
    ci_nginx['enable'] = false
    web_server['external_users'] = ['www-data']

    Where should be the host of your GitLab code. Port 80 can be changed to anything, but then keep that in mind for what follows. Also, www-data is the username used by your Apache configuration; this is the default value.

  4. Reconfigure GitLab:
    sudo gitlab-ctl reconfigure
  5. Next, we need to create an appropriate Apache config file. Luckily, the guys of GitLab provide one. I used gitlab-apache24.conf, but they’re all pretty similar. There are some things that need to be modified in this file, basically just replace all appearances of YOUR_SERVER_FQDN with the host address,
  6. You probably need to activate the necessary modules of Apache. In the terminal:
    sudo a2enmod rewrite
    sudo a2enmod proxy
    sudo a2enmod proxy_http

    Most probably the two first ones were already activated.

  7. If you’re running Ubuntu, then the Apache configuration file needs to be placed in the right place. In the Apache config directory (usually /etc/apache2), move gitlab-apache24.conf to sites-available, and rename it to reflect the domain name:
    mv gitlab-apache24.conf /etc/apache2/sites-available/
  8. Then enable the site:
  9. That should actually be it. In my case, I was struggling for a while with a 504 error. All I had to do was go to the DNS Manager of Linode and add a CNAME Record for my new virtual server. And then, back to The Code.