A new Game on the Horizon

I have been playing computer games for almost all my live – the first ones in the early 1980s in an Amstrad / Schneider CPC464 computer. And once in a while, a game comes along that is different. One such game is Foundation which is produced by Polymorph Games.

So what is different in Foundation? Well – it is a game without any actual goal or target except naturally growing your little village by adding vital functions and making sure your people are staying happy and productive. This review is based upon version

Foundation Main Menu – Starting a new Game

When starting a new game, you have a choice of the countryside you want to play within – hill country, coastal country, a mountain or valley layout or a river-style world. For this game, I will chose “coastal” as it gives me ample access to water (which will be an important aspect of food production later).

First and foremost, you should pause the game when it is started and give yourself a break to explore the map and make some initial decisions on the layout of your settlement. In this case, I am opting to found my village (by placing the village center) in an area that has little forest, berries and stone. These items will provide me with building material (wood and stone) as well as food (berries). I will be able to expand my territory to get some more wood and also access to water soon enough.

Your first task: pick a place for your Village Center.

Once the village center is placed, the game starts with eight initial settlers that now need to grow the settlement. The first thing we need is wood so I am going to place a a lumber camp (remember: the game is still paused!).

The beginnings – the Village Center is placed, the first eight villagers have arrived.

Foundation is all about “efficiency” but in the early stage, with only one field to worry about, this can somewhat be neglected. I am placing the lumber camp within the larger wooden area but I am intending to cut free the smaller forest areas on the right first. The workers have to walk a bit but that will change soon enough.

With the lumber camp in place, the next item that is needed is food – the berries will provide that but the settlers need a Gathering Hut nearby. The Gathering Hut requires wood so therefore, I will prioritize the Lumber Camp on the building list.

We will then need stones for the other buildings – so a Stonecutter Camp is placed near the stones on the right side. Last but not least, I am building a Well to allow the settlers some drinking water.

The first Buildings are placed – just enough to get us through the early time.

You can see that all buildings are saying “Waiting for a Builder” so the last thine to do before unpausing the game is to bring up the settler list and make at least one settler (but preferably more) builders.

The First Settlers

In this case, I have opted for Joacob and Thomas to serve as builders but I could also have picked the women – it does not make a difference in Foundation.

Now let’s run the game and wait for the first buildings to be finished – this will work without additional actions as most of the supplies needed are coming from the village center depot.

As you can see, the Lumber Camp and the Gathering Hut are done and are ready to have settlers assigned for some work. The Stonecutter Camp and the Well are not yet done – they are lacking resources: the Stonecutter Camp needs Tools, the Well needs Stones.

In order to allow settlers to perform work in a Lumber Camp, Gathering Hut or Stonecutter Camp, you need to define where they are going to perform their work and who is doing the work: the “who” is easy: simply assign available villagers to the individual sites. At this stage of the game, you don’t have to worry where they live because everyone will be near to their working place. Of our eight settlers, six are remaining without job at the moment. So let’s assign to gatherers and two woodcutters. Then, we need to define the Extraction Zones (blue) that show where the settlers will be working.

Extraction Zones for Berries and Wood

It takes a little while but once we have assigned a stonecutter and defined the Extraction Zone for the stones, the settler will produce stone which the builder will pick up to complete the Well.

All initial Buildings are done…

So far so good – but our villagers are hungry: we have gathered berries by now but there is no place to sell the berries to the settlers. We need a Market and a Market Tender to collect the berries and sell them as food, thus producing our first income.

Two Builders are setting up the Food Stand…

The Market should be located close to the Well because the actual distance to travel for a settler for food and drinks is now relatively short. And despite the fact that I currently have a limited supply in Woolen Cloth, I opt for a red tent to make my food stall visible (also to myself in case I need to find out quickly where I am selling food or other goods.

Because this is the only building site I have at the moment, my two builders are working side by side and the Food Stand is up pretty soon. I can then assign Florence as the Market Tender and define that in Slot 1, she is selling berries as food.

The finished Food Stand with its Red Tent

Now let the game run for a few moments for things to unfold… after a few minutes, you can see that things develop: food is sold at the market, producing revenue (approx. 64 gold this week). The trees are cut from the Extraction Areas. And two new villagers have joined our prospering community.

New Settlers have arrived

The next step requires a little bit of planning – so far, everything we have built we could place directly. But our villagers need homes – and those are built automatically in Residential Zones.

Unlike the Extraction Zones, the Residential Zones cannot simply be placed anywhere – settlers will only build in areas that are “attractive”. If you switch on Residential Zone marking, the green areas are the ones that settlers will build there houses in – and the red ones are those where they will (most likely) not.

At this time, I have defined that valid residential areas are around the village center and towards the right area of the screen. Which is why I have cleared the trees in that area to secure the wood first.

Residential Areas with first building activities

Just in time, I have accumulated enough money (500 gold) to acquire a second hexagon and I have opted for the one to the “south” which gives me access to the sea. It also allows me to extend my Residential Area into that zone as the initial marking might have been to narrow to support building activities.

The extended Residential Area with the first houses appearing.

As our community is growing, we will need a Warehouse pretty soon but in order to build one, we need to have the ability to process our raw wood first. However, things are not that easy now: the Sawmill and the Warehouse cost a significant amount of money and we may have to wait for a bit for it to be available.

The Money System

You will need money to grow your village – and although the money system is straight forward, you need to pay attention to your income and spending. Each building you have essentially “costs” maintenance. Territories cost tax and trade also consumes money.

On the income side, you have the trade you are profiting from – to your villagers as well as externally. Use the budget screen to get an overview.

The Budget Overview

At this moment in the game, I have 102 gold available – just enough to pay for my Sawmill. But that will produce the Planks that I need. Location-wise, this goes close to the Lumber Camp’s current position and into a place where it does not take valuable Residential Area from me.

Next to consider is the building place for the Warehouse. The Warehouse can hold up to 50 items of four different goods. And it changes the way the distribution of goods works: so far, our villagers have picked up their good from wherever they were produced and stored. But with a Warehouse, they get a second choice of where to get their goods as long as a Warehouse has them in stock as well.

So Warehouses should be placed strategically – they can greatly help to streamline the distribution and availability of goods across your settlement.

The Sawmill (upper left) and the Warehouse Locations (right, next to the Stonecutter Camp)

With the Warehouse built and four new arrivals of settlers, next things need to be considered. In order to enable the first Trade Route, 20 planks are needed in a Warehouse. Also, pretty soon some quests will start to pick up that will require Berries and later Fish. And the first Trade Route will allow to buy Tools which we will need for a variety of buildings until we can produce them ourselves. In addition, Polished Stone (which we could produce by building a Stone Mason hut and Planks can be sold for money.

So let’s define that our Warehouse shall store Planks, Berries, Fish, and Tools (when we buy them). And let’s unlock and build a Fisher’s Hut which needs to be build – surprise, surprise – on the waterline with the ladder facing seaward!

The Warehouse with the two transporters assigned (in the back) and the Fisherman’s Hut in the front.

With the Warehouse built and an initial set of 20 planks available, you can enable the first Trade Route. Once established, you can buy Tools, Bread, and Fish (if you want) – but more importantly, you can sell (and make money from) Berries, Polished Stone, and Planks.

In order to buy and sell, you need to adjust the settings on the Trading Resources screen – basically, you will need to specify which goods you want to trade at all and – when buying – to what extent to buy or – when selling – what you want to keep as minimum reserves.

In our case, we are going to trade all of the items we can sell but keep a minimum of 50 from each one. And we are going to buy Tools, again until we reach the maximum of 50 units in stock.

You correctly might have noticed that we are trading a good we don’t have yet: Polished Stone. And you are correct – but we are going to change that and build the Stonemason’s Hut to produce it.

Reason is simple: it sells for 3 gold (instead of two for the food) but we also need Polished Stone for future buildings anyway.

When you are trying to build the Hut, you will see it requires Woolen Cloth, a good we also do not have available. However, we will find that we are lucky and have some rest of it in our initial supply. With that done, we will be able to produce Polished Stone and sell it from the Warehouse for profit.


Very soon, the first quest will pop up. All it is about is delivering a certain resource (mostly bread, berries, or fish) to one of the parties to gain reputation with: the King, the Clergy, or your People. When successfully completed, you gain points with the respective party with – together with the splendor for that party – help you to unlock other important items.

The first quest pops up.

This one is a bit unfortunate: we need to provide bread (which we don’t have but could buy) but it needs to be in the Warehouse (which is currently busy in all slots). I will let this first one go by but we need a second Warehouse to stock goods for the Quests. Meanwhile, I am using my last remaining points with my own people to unlock the Lord Manor which we will need to increase the possible maximum our treasury can hold.


Typically, resources such as Berries and Stone (or later iron) are non-exhausting. A different story is wood – or rather the trees your tree cutters are cutting down: you can use a Forester to re-grow the wood… or you need to move your Lumber Camp elsewhere.

The original woodcutting area has been exploited and will serve better as residential zone.

Our original woodcutting area is now making better use as a residential zone – the new Woodcutter Camp will be setup next to the forest in the lower part of the screen. So I will abandon the initial camp and build a new one. The Sawmill will stay in the original location, the distance is larger than I want it but not large enough to justify the cost for a new one.

And then… I will simply grow my village until the next part of this tutorial…

Posted in Computer Games | Comments Off on A new Game on the Horizon

DS-GVO – “Datenschutz-Grundverordnung”: a German tounge-breaker for “General Data Protection Regulation”

The EU has a new law (OK, it is not “new” but it comes into effect May 2018). And that has stirred up some mud because it has an impact on almost any website, blog, forum, etc. I am talking about the EU General Data Protection Regulation (GDPR) in general and the German Datenschutz-Grundverordnung (DS-GVO) in particular.

Without going into the details of the regulation, I still wanted to share some changes I applied to my website operated under WordPress. I am not claiming these are “complete” or all “necessary” or “correct” but this is what I have done.

  • First of all, I have disabled the ability to register as a user (Settings > General > Membership > Disable “Anyone can register”).
  • Then I have turned off all ability to comment on my posts (Setting > Discussion > Disable “Allow link notifications”, “Allow people to post comments on new articles”, “Comment author must fill out name and eMail”)

The ability to comment is vital on some blogs and this is a case-by-case decision that might hurt. For me, most of my comments where nonsense or of no general interest. It just makes my life easier. And people can still contact me via my eMail which is posted anyway.

  • I then went in and deleted all registered users (6.000 of them where spam accounts anyway…)
  • I also deleted all existing comments.
  • I set the comment settings for all existing posts to “Not able to comment”) – you can do that from Posts > All Posts, then select all articles and chose “Edit” as Bulk Action, then click “Apply”. Set the “Comments” to “Do not allow”).

Last but not least, I am running WP Statistics so I went to the Statistics Settings and enabled “Hash IP Addresses”. With the result that from that point forward, all IP Addresses are hashed (but still counted properly).

If you are running some external, even free plugin to track visitors (like a visitor map) you might have to check what your plug-ins do…and maybe disable them if they are sending data elsewhere…

Last but not least, you have to update your Data Privacy Statement to reflect what you are doing, what you are not doing and for the things you are doing, why you are doing it. Plus grant the rights to your users to send you an inquiry about their stored data (if you store any data) and report/remove/correct at their requests.

Posted in Allgemein | Comments Off on DS-GVO – “Datenschutz-Grundverordnung”: a German tounge-breaker for “General Data Protection Regulation”

Data Privacy Statement

In accordance with the EU Legislation on Data Privacy and Data Security, the Data Privacy Statement of this web site has been updated. By continuing to use this web site, you are accepting the statements provided as adequate and acceptable to you.

Posted in Allgemein | Comments Off on Data Privacy Statement

FHEM Home Automation – Cleaning up the Server – Part I

My FHEM Server has now been working without any issues for quite some time, definitely more than a year, probably closer to two years. Time to clean up some parts, especially since the latest updates did not install successfully and I had to revert back to the installed version.

Over the last year(s), things “worked” and while they still do, it is time to also come up with a new configuration – things, that I have learnt in the meantime. Hardware that has been bought in the meantime. New ideas that have developed in the meantime. To get all these “into a new system”, I have decided to build a playground on a Virtual Machine. The operating system of choice is Debian 9, because it is so similar to the Raspberry Pi that I eventually want to move the installation to.

So this one should be fast enough for some playing. And maybe I will regret the settings later, the Raspberry Pi is much slower.

I have decided for the “Desktop installation – that is: a graphical desktop environment (which is not the same than the Raspberry Pi will be). And a Terminal window for “command line to the bitter end”…

After the installation has finished, there are some things that should be done – the first one is to update the system to the latest patch level (the two commands can be executed from a Terminal window in superuser mode):

apt-get update
apt-get upgrade
apt-get install net-tools

Next, I need to install VMWare Tools (which, of course, is only necessary if you are running VMWare Player or VMWare Workstation). That, by the way, is the reason why in the command sequence above the net-tools package is installed…

Getting FHEM onto the Box

There are a few things that need to be done now – the first one obviously being the installation of FHEM on the box. This is best performed as “manual installation” – the most current instructions are here: debian.fhem.de

The first three steps of the instruction for the manual installation (ending with the command dpkg -i fhem-5.8.deb are responsible for installing the required libraries, fetching the FHEM Package and installing it. This includes the creation of the fhem system user:

grep fhem / etc/passwd

shows the user’s definition. It also shows that the user’s home directory is /opt/fhem (where the installation resides) and there is no shell assigned – /bin/false – which makes the user unable to login.

Technically, the last statement might not be quite correct: the user can login but it would not get any shell and therefore no command line (plus: no password unless we would set one…)

Now this presents an interesting problem: if you do the following:

cd /opt/fhem
ls -l

to display the files and their permissions in the FHEM installation directory, you will notice that all files are owned by the user fhem and the default group is set to dialout.

Catch-22 with the Configuration Files, Users, and Permissions

To me, that poses a small problem: the configuration files that we will need to create for FHEM. Of course: you can edit the fhem.cfg file straight through the web interface but that is a tedious and rather stupid way of doing it (imho). Just two reasons: there are far better editors than the built-in one (I, for example, prefer Notepad++ on a Windows Box) and it is hard to do version control on your files straight on the Unix File system.

Of course, there are plenty of ways of getting files to and from a Linux system (including direct drag & drop into my virtual machine) but considering a headless (no user-interface) environment on my Raspberry Pi, the most logical way seems to be a FTP Server on the Unix box.

Installing ProFTPD into the environment

An easy-to-install and powerfull FTP Server is ProFTPD. You can get it installed via

apt-get install proftpd-basic

Once installed and started, the default is listening on TCP/IP v6 – which is the first thing I need to change. At the same time, we can ensure that a user that is allowed to log in using FTP does not require a Shell assignment (like the fhem user discussed above) and last but not least we can control the default home directory for the FTP Users.

Most of this already plays also into the Unix Permission Concept so it will be a mixed discussion here.

Fist of all, the additional configuration for ProFTPD is applied using a custom config file located in /etc/proftpd/conf.d – that directory will be maintained even if ProFTPD is updated. Let me call my file custom.conf – it is a simple XML File:

Note: Please understand that this is a most basic security setting and is sufficient for FHEM Boxes that are in a secure environment (e.g. not accessible over the Internet, only your and yourself on the network, etc.)

ProFTPD can do much more in terms of security – secured connections using SSL/TLS Encryption, non-standard FTP Ports, etc. – if you want to find out more, please make sure that you use the search engine of your choice to locate the appropriate information on the Internet. And never use the above configuration in anything else but a test environment!

Once the configuration file is placed, restart the FTP Service

systemctl restart prodtfd.service

You can then check of the service is actually running

service proftpd status

and if it is listening on Port 21, the default FTP Port.

netstat -tlp | grep proftp

With that said, you should be ready to access the server via FTP – at least, after you have added your user of choice to the ftpuser group…

groupadd ftpuser (if it does not exist yet)
usermod --append --groups ftpuser [UserName]
grep ftpuser /etc/group

The last command must return one line with the definition of users in the group.

To be or not to be…

The next question – hotly discussed, I am sure – is the user to work with. Of course, you can use ProFTPD with a more elaborate configuration to allow any user to connect and still set those users’ root directory to /opt/fhem (where you want to copy the configuration files to). You can even go as far to make sure that any file copied is placed with the appropriate file permissions, having fhem as the owner and dialout as the group (which is what the FHEM installer sets by default when you install a fresh copy).

But there are alternatives: you can work directly as the fhem user (which requires you to give the user a password and place him in the ftpuser group).

passwd fhem

I am sure there are plenty of people around that will object to that approach because fhem is considered a service account and should not be used for login…

Alternatively, you can work “as your own user” and adjust the file permissions afterwards (each file you will copy into the directory using FTP will by default have your user as owner (instead of fhem) and your primary group as group (instead of dialout).

To change the owner of all files in /opt/fhem use the following command:

chown -R fhem:dialout /opt/fhem

which you need to execute as superuser. Bottom line: there are so many ways of doing it – and each one has its own rights and wrongs. Pick your own one but make sure you understand the implications with respect to the security of your FHEM Installation!

One more thing…

One more thing about security: by default, the fhem user ends up in the group dialout. It is important that fhem also is member of the group tty which controls access to serial and USB Ports (in case you have a USB Device attached to your FHEM Server…)

usermod --append --groups tty fhem

takes care of that.

Is it working or not?

By now you might have a working FHEM Server – which you can check on the command line via

/etc/init.d/fhem status

and it might be accessible via HTTP under http://[Your server]:8083/fhem

If the server is not working or is not reachable, it is time to take a first look at the logs (well, even if it is working, it might be a good idea…)

The FHEM Logs

The FHEM Logs are located in /opt/fhem/log and depending on your way of access to your server, you can either view them straight on the box (e.g. using the tail command) or access them through the FTP Server and view them in an editor like Notepad++:

This one is a log file of the first successful start – it shows the config file that is read (fhem.cfg – oh wonder!), the status of the outbound ports (8083, 8084, 8085), a security message, the server’s FeatureLevel (5.8) and the fact that “9 entities” have been defined…

If there are errors, this is your first place to go – as we will see in a moment.

Updating FHEM

I want to provoke a situation that has caused me a lot of headache because I did not see the issue – only with the help of the FHEM Forum (suggestion to every FHEM user!) I got it solved (in minutes!).

My FHEM Installation is still the one that was installed with the package above – but FHEM is constantly updated. So in the Web Interface, go to the command line at the top and type the following:

update check

This will (likely) create a long list of files that can be updated – and should be updated (especially since we are just starting with the installation). But keep in mind: an update can cause nasty surprises as we will see…

To update FHEM, issue the command


and wait. After a short while, you should see more or less the following:

The important line is “update finished, ‘shutdown restart’ is needed to activate the changes”. So issue the following command in the Web Interface:

shutdown restart

The nasty surprise in this one: the Web Interface ceases to work after the update! No connection is possible – and at the first glance, you have not changed anything! I have to admit: this pissed me off for quite some time.

I understand that if you want to run an environment like FHEM, you need to be familiar with what you are doing (and I appreciate this fact). On the other hand, if a working environment is turned “non-working” with an update that immediately renders the system inaccessible… that is not necessarily the way I would prefer it to be.

But back to the problem (and as I said: the solution was straight forward, thanks to the FHEM Forum!). Check the FHEM Log File again:

There are some significant changes compared to the previous log (and we did not change any of the configuration, just performed an update!)

There now is a PERL Warning that seems to be associated with the USB Checks. If you search for the error message, it becomes obvious that is related to the USB Check defined in the default fhem.cfg file:

define initialUsbCheck notify global:INITIALIZED usb create

It appears that the system’s behavior has been changed but I cannot see any reference to that change in change log /opt/fhem/CHANGED. In any case: you can remove or comment out the respective line and the error should be gone.

That, however, does not bring back the Web Interface. Again, a look at the CHANGED file does not bring up anything obvious. Except for:

 - feature: allowed module added. allowedCommands, basicAuth, password,
 globalpassword attributes moved to this module.

Well, look at the error message in the log again:

Connection refused from the non-local address 192.XXX.XXX.XXX:53262, 
as there is no working allowed instance defined for it

At this point, it becomes a language issue: because of the wording, I interpreted the “allowed” part as part of the sentence – if you know what to look for, it tells you that a connection is refused because there is no defined instance of the allowed device.

If you would have understood, you could have looked it up in the FHEM Reference. And it could have been corrected earlier.

Please note that I have defined a clear text username and password in this example – which obviously is inappropriate for anything but a test environment!

The better way of doing it is to create a base64-encoded password string from the Unix Command Line and use this instead:

echo -n fhemuser:secret | base64

Creates ZmhlbXVzZXI6c2VjcmV0 as password phrase which then can be used in the config file:

So now: copy the fhem.cfg file back to the server (unless you have edited it there directly) and restart FHEM:

/etc/init.d/fhem stop (if it is not stopped anyway)
/etc/init.d/fhem start

And now try the Web Interface again – you should see it working now. With all of that done, we are through with Part I of creating a brand-new FHEM Environment. The initial configuration parts will follow in Part II.

Posted in Home Automation, Raspberry Pi | Leave a comment

Creating large-scale high-resolution Maps from various Sources

Everyone knows services such as Google Earth or Microsoft Maps. They are great for exploring but they are not so great when it comes to creating large-scale high-resolution images, e.g. for a wall poster or alike. Also, they have their shortcomings when it is about comparing maps or images from different sources to “pick the best”.

So I went out searching… and here is a little process to share. The task is: to create a single-image map of Mallorca with a high-level map resolution. So let’s see…

The software I am using for this is called SAS.Planet – and it seems to be a Russian-built piece of software (so my first installation came up all Cyrillic…). I ended up downloading a copy from “somewhere” and then used the internal Help -> Check for Updates feature to grab the latest release.

So this is all of Mallorca (using a Google Maps layer) but not the level of detail I want… which is more like this:

So in general, I have a choice of seeing “all of it at lower level” or “seeing more detail but lesser area”. Let’s change that: zoom back out until you see the whole of the island. Then use the Rectangular Selection tool to draw a map around it.

A window will open that allows for a couple of options. In general, I have had the best experience with downloading the required tiles first, then stitching them together. So on the Download tab, all I do is to download all tiles of Zoom Level 15 and click Start.

If you want to monitor the download process, you may switch on Tile Shading using View – Cached Tiles Maps and select the level you are downloading – z15.

This will display each tile downloaded for that Zoom Level to appear with a gray shading. In addition, you can monitor the progress in the Download Window. Now, you need some patience and wait…some tile servers are faster, some are slower.

When all tiles have been downloaded, go back to your current selection via Operations -> Selection Manager -> Last Selection and switch to the Stitch tab.

Enter a file name and location in Save to and select the appropriate Zoom Level (15 in our example). Then click Start.

The image that is now created is roughly 10 MB in size – the dimensions are 15000 x 11000 px – so pretty large.

Of course, one cannot see much at this magnification but zooming in anywhere onto this picture shows the true level of detail:

Another nice feature: if I do not like the map that has been produced, SAS.Planet allows me to switch to a different tile server but maintain the current selections. So let’s use Google’s Landscape Tiles instead to see if we can get a better result on the mountain region of the island.

You can see: the selection box is still present so I go back to the Selection Manager and download the tiles for Level 15 of Google’s Landscape Layer – same procedure as above.

When I go back to create the stitched image from the downloaded tiles, the result again is a file of 19 MB, same dimensions as the first one.

The level of detail, again, will only reveal itself when zooming in but the overall representation is more what I think I would like to have on the wall… the hills are showing as a well defined relief…

There are plenty of other layers available in SAS.Planet – using the OpenTopo Tile Server provides yet a different view for the map:

And of course – if I do not like a map-type of poster on my wall, I can always switch to the various satellite image providers – mainly Google Earth and Microsoft Bing. Here is a comparison between the image quality of the two – Microsoft on the left, Google on the right.

It comes down to a matter of taste at this level – on a higher level of detail, the Microsoft tiles are more crisp but the Google tiles are more up-to-date.


Posted in Allgemein | Leave a comment