1. Installing Rocket Chat with own MongoDB instance on a Raspberry Pi B

    I was tasked with installing Rocket.Chat on a raspberry pi. Currently I have a PiB and a Pi3 that are not tasked with anything. Since I expect myself having other plans for the Pi3, I chose to try installing Rocket.Chat on the PiB.


    First we start with installing raspbian on our pi. The light edition should do it. Do not forget to resize the root partition (using fdisk or parted) if you're using the light edition since it is not so easy to do from inside the raspbian system.

    But let's say we have a fresh raspbian installation and start from there.


    First we have to install all dependencies. Those are Node.js, MongoDB and graphicsmagick. Graphigsmagick we will install through the repository while we will build node, to get the latest and greatest version, ourselves.

    Starting with node, we download the latest node source code and unpack it wget https://nodejs.org/dist/v5.9.1/node-v5.9.1.tar.gz && tar -xzf node-v5.9.1.tar.gz. We now can just cd in there (cd node-v5.9.1) and build and install it (./configure && make && sudo make install). This will take quite some time. This might even take a few hours. After the configure step, you can make > makelog & and then disown in order to leave that session alone and even close it. But don't forget to sudo make install once it's done.

    In the meantime, if we have multiple terminal sessions or another ssh session, we can start installing the other stuff. graphicsmagick we can install with sudo apt-get install graphicsmagick. No problem there.

    MongoDB is a little bit more complex. They do not supply packages for our system, so we need to compile it ourselves as well. But this needs much more memory than our Pi has, so we need to add some swap memory as well.

    I had a spare 1GB usb stick lying around so I formatted this drive to swap (with gparted), plugged it into my Pi and enabled it for swapping with sudo swapon /dev/sda1. With more than 1Gb of swap, we are good to go (from what I've seen, the build process peaks at about 800MB of memory).

    Now we need to install scons with sudo apt-get install scons. We download and extract the latest source release from the mongodb download page (in my case, this was 3.2.4) with wget https://fastdl.mongodb.org/src/mongodb-src-r3.2.4.tar.gz && tar -xzf mongodb-src-r3.2.4.tar.gz The build process is not so hard, it just takes time. Once we cd ed into the source folder, we can start building the database server with scons. For me, this took slightly less than 30 hours so putting this one in the background as well and then going for a long walk, then a sleep, and then for a long walk again, might be good idea.

    After this is done, we install MongoDB with sudo scons install. This will, again, take a some time.

    If you've put all the stuff in the background, you can, once in a while, log in and check with top, whether your Pi is still doing something.


    I tried building MongoDB myself, before opting for the packages provided. During this exercise, I learned something, that makes me a bit wary.

    MongoDB's build process does not work with the source from github. The configure process fails with a source archive from github while the one from the download page, which should be identical, fails. This is quite an issue. Also, I couldn't find a MongoDB bugtracker linked anywhere from github or the MongoDB homepage. This leads me to believe that MongoDB is not really interested in the open source community and fostering an open infrastructure. Rocket.Chat is built upon MongoDB but I won't be using MongoDB for any of my projects.


  2. Published: Mon 25 January 2016

    Gnome Foundation membership renewed

    My membership in the Gnome Foundation has been renewed. I've been co-maintaining several of the included games for the last two-and-a-half years. My membership has now been renewed until early 2018. I hope I can find a little more time to spend on our favorite desktop environment in the near future.


  3. Teaching theoretical computer science in January

    In January I will give six hours worth of exam preparation for this year's theoretical computer science master's students.

    We will cover the following topics:

    • Deterministic and Nondeterministic Finite Automata, reduction from NFA to DFA and pumping lemma
    • Context-free and Context-sensitive grammars and corresponding languages and pumping lemma as well as the word problem in Context-free grammars
    • Basic complexity theory (P, NP, NP-Complete), decidability and reductions between several NP-Complete problems

    I am looking forward to it.


  4. talk at Leipzig's Haskell conference HaL-10

    As I said before: I will hold a small talk about dogelang at Leipzig's next Haskell conference HaL-10.

    Here's a translation of the abstract (original in German):

    dg - The better Haskell is named Python

    Who needs typeclasses? Or static type system even? Why have side-effects to be so complicated? And what are monads?

    There must be something better!

    dg is Python with Haskell syntax. In a short talk (15 minutes) I want to introduce, on a funny note, the "better Haskell".

    Under the slogan "what we don't have, you won't need" we will be looking at features of the Haskell language and their counterparts in dg. To conclude, we will take a look at how intelligent a Python program can look, if it has the proper syntax.


  5. Published: Wed 04 November 2015

    technically, Hello Internet

    This is my new blog housing all the technical computer-science and programming stuff that doesn't fit nicely within my wordpress installation. I will also post links and the usual "to-remind-me" stuff.

    This page will be in English where applicable.


« Page 2 / 2

links

social

Theme based on notmyidea