If you’re using npm you already know this. When running a npm install on a fresh big project setup you can go and grab a cup of coffee. Or maybe two. I’m working with Yarn (an alternative / replacement to npm) for some while now and it’s running very fast and stable. It arrived in the Gentoo repo a few days before so I decided to write a small blog entry about it.

Problems with npm – slow and unpredictable

Libraries or frameworks with many dependencies needs their dependencies and the deps of the deps and so on. npm downloads everything and your node_modules folder grows and grows while your internet connection is busy. This is very annoying especially if you’re doing some CI and build things within containers from scratch. And it’ll be much more complicated if your CI is sandboxed without network access. You only can move your node_modules folder around but then you have to control the content by a VCS for example. And here’s the next problem. npm will install the packages non-deterministically. This may cause some bugs because the setup on each developers or CI machine is not the same so that’s why the VCSed-package of your node_modules folder is necessary. But because the installation is non-deterministically an update of a single package and it’s dependencies can change many things in your node_modules folder and tracking by a VCS can be inefficient because there are huge changes and they’re hard to review.

Speed up your build process

And here is Yarn! Facebook and other big companies with a huge amount of Node.js-modules within their projects had the same problems in the past and they developed a new tool which covers these problems. Yarn supports npm and Bower repositories and caches modules in a global cache directory for further installations so dependencies are not downloaded twice. And this global cache can be source-controlled for example. After everything is downloaded, Yarn links all the content together within your node_modules folder. Fast, easy and secure. And they’re hosting their own repository

Install Yarn on your local machine

Yarn is available for Linux, Windows and MacOS. It’s available in many Linux repositories like on Gentoo or Arch and there are custom repos for Debian and Fedora / CentOS / RHEL users.

On Gentoo you can compile it via

# emerge yarn

After this you’ve got your new executable in /usr/bin/yarn
On the Yarn website there

Use yarn

When you installed Yarn, you can use user existing package.json setup. It’s very simple to use it – the equivalent command to npm i is

$ yarn

Enter this on your command line within your project directory and this will downloads all the dependencies specified in your package.json. Much faster and way more easier to control. So be sure you grabbed your cup of coffee. Check the documentation and more features at the Yarn website

Categories Web


Freedom, independence and you can set it up by yourself – that’s what YaCy is. The free and open source search engine can be used and hosted by anyone. Instead of search engines provided by (commercial) hosted providers, who (may) track user’s search behavior for marketing or research YaCy won’t track you for this reasons.

How it works

YaCy is a peer to peer search engine. This means that all the indexed file are not stored on a single server or server farm maintained by one person or company. The indexed websites are stored on all the devices of the community who are participating and results come together on a user search request. This has some advantages and disadvantages. First of all, you as a user are not completely anonymous. Keywords can be tracked by all the instanced of the community were the search results are requested at. But they only can see that someone searched for “How to install Gentoo on my toaster” but not the IP of the user and no geo-location, browser, operating system or screen resolution. And if you click on a link, this click won’t be tracked as well. So the privacy of the user’s are very high.

Peer to peer

The peer to peer system makes the search slower than on other centralized search engines. When you (the user) searches for a keyword, this keyword has to be redirected to other devices in different network environment and countries. Maybe home-devices with a slow upstream connection. So you have to wait longer for your search results than on other search engines. But you’ll get all crawled websites – things like censoring are not possible here. Another problem is when big P2P server disappear; they will take a huge amount of crawled websites offline as well and they’re no longer searchable.

Index quality

The quality of the index depends on the number of active peers within the network. They are called “seniors”. Seniors are crawling new and existing pages and provide updated search results. The higher the number of seniors within the P2P network, the higher the number of results.

Download and how to use it

You can use YaCy on your local machine. You don’t have to contribute to the community – you just can use it just to search the web for yourself. Download YaCy from for Linux, Windows or Mac and run it. Open your web browser, enter http://localhost:8090 and start browsing.

How to contribute

Everybody can contribute. Start YaCy on your server or local machine and switch to the admin interface. If you want to run your server in senior mode, you have to expose port 8090. This allows YaCy to connect to other peers in the network. You can start to crawl custom websites or enable the auto crawler to start to crawl the web automatically. There are great videos tutorials how to start at YaCy Tutorials Page

But there is more

You don’t have to use YaCy to search the whole web. You can use it in-house for your intranet or for your personal forum or website as well. Within the admin interface you can select “Community-based web search”, “Search portal for your own web pages” or “Intranet Indexing”. With YaCy you’re free to do whatever you want. It’s your search engine!

Public hosted YaCy

I’m running YaCy in senior mode by myself and contribute to the P2P network. You can access the public search interface here at

Categories Web


The new version of AFOS 2017.3 brings a big new feature – the new level system. The level system makes things more exiting and will unlock features step by step. You’ll start at level 1 – the rookie level. Here you have two possible build slots and you can construct your first wooden house. After creating your first house, you should set up your weapon and start the fight mode to collect experience. When destroying some alien-ships you’ll increase it and then you’re allowed to unlock some more build slots and Bob’s weapon shop at level 2…

Audio improvements

Another improvement is the music. From now on you have got a relaxing background music when building or repairing your existing buildings and another more exiting soundtrack when fighting against the aliens. Some new / improved audio effects are in this release as well.


  • You cannot access Bob’s weapon shop during fight mode any longer
  • The news reader can show more than one news item
  • The URL of the website in the about section was fixed


The next release will cover the city build system. This won’t be a very complex system but you need e.g. a small wooden house for Bob to keep his weapon shop running. If there are not enough people in your city, Bob has to close his shop so be sure that you keep the people in your city. And if the shop is closed, you cannot buy new weapon parts…

Get the game for Android:

Get it on Google Play

Categories Projects, AFOS


Piwik, Google Analytics or StatCounter are great tools to analyze the traffic of you website and they’re very powerful and customizable. But they’re on client side and it’s complicated to track for example your new COBOL-driven REST API or the number of downloads of a PDF on your server. AWStats was my favorite tool in the past to analyze those server web log files. But it’s written in Perl and the design looks like from the age of COBOL. Now it’s time for a new cool and fancy tool – with real time stats in the terminal and your browser, dashboard, export tools and responsive design to check the success of your web tools on the go: GoAccess


It’s very easy to install GoAccess on your Gentoo machine. Simply type

# emerge -a net-analyzer/goaccess

And that’s it. Enable geoip to track visits by continent. For a minimal setup there’s only one required dependency ncurses so it’s very easy to compile it from source if you want.

Quick start

Installation done, don’t talk around, lets see something. Check where your log files are – I’m using nginx and I’m using the NCSA Combined Log Format. To get started, type:

goaccess -f /var/log/nginx/mylogfile_access.log

and you’ll get the log format configuration screen. Select your log format (mine is NCSA Combined Log Format) and press [Enter]

Now you can see some wonderful stats in your terminal. And they’re in real time. Access the website you’re monitoring and check the changes in your terminal.


The configuration file of GoAccess is located in /etc/goaccess.conf by default. You can adjust the settings to skip the log file settings dialog for example. Open the file and set the following lines (you can uncomment the existing entries)

time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^] "%r" %s %b

Static HTML Export

To export a static HTML page with all the stats, type:

goaccess -f /var/log/nginx/logfile_access.log -o /var/www/localhost/stats/index.html

The index.html contains all the data, JS and a nice look (responsive design). Open your browser and check the details.

RealTime HTML export

With GoAccess you can generate a real time web view as well (like the ncurses-one on the command line). This will generate the static HTML file and will establish a WebSocket connection to your host when calling this index.html file. To generate the file and allow real time connection, type:

goaccess -f /var/log/nginx/logfile_access.log -o /var/www/localhost/stats/index.html --real-time-html

That’s it. If you call your index.html you will get all the details in real time.

Happy analyzing!

Categories Web, Server


After a full weekend of developing new features, fixing some bugs and improve the user interface, the next alpha version 2017.2 of AFOS – Aliens From Outer Space was released for Android today. All testers will get the new version from the Play Store now. Please share any bugs or problems.

Improved user interface

The new small navigation links on the top-right of the game will give you access to some menus, which are not related to the main gameplay. The new information button will show you the version number of your game and a link to this website. The news button was described in the section before and the last button will show you the game settings.

On the bottom-left you have the main game related buttons. Here you can start the weapon builder where you can configure your weapon based on equipped parts. With the fight button you can start the next invasion.

Aliens attack

From now on the alien spaceships will destroy your buildings if they’re in range. So keep an eye on the health of your buildings. You can see the current health in the status bar above each construction.

After an invasion (fight mode) you have the possibility to repair your building for some money.

Destroyed buildings

If a building is destroyed by alien ships you will see a ruin on this place. The ruin does nothing and has to be removed if you want to use this place for another building. But demolishing this will cost you some money as well. So try to keep your existing constructions in a good structural order,

News section

In the new news section you can read all the latest entries from this blog. So you will be always up to date and stay informed when new features or releases arrived.

Other small enhancements

There is the improved background and a new optimized sky which will increase the game speed a little bit. The new moon works better with the existing style, the mountains and the sky are darker now to improve the visibility of the spaceships.

Some new sounds are there as well: If a building is destroyed, when an alien ship attacks your building and when you destroy an alien ship.


Next big part is the music of the game. There will be music for the build mode and the fight mode, as well as some sound effects when you construct a building (or demolish an existing one). So the next release will be one for your ears – stay tuned.

Get the game for Android:

Get it on Google Play

Categories Projects, AFOS