Hills and Sheep Carcassonne Expansion Review

Last night I had the opportunity to play Carcassonne including the Hills and Sheep expansion and now the almost ubiquitous River 2 starting expansion.

The Hills and Sheep expansions adds a number of interesting elements to the core Carcassonne game which are quite easy to understand and in my opinion help to balance out the scoring potential of features. Firstly the introduction of the vineyards helps to boost the scoring potential of Monk meeples but in a nice non overpowered way, more reward for completion of cloisters but no penalty for the lack of completion. The hill pieces have two effects firstly they provide a way of loosing tiles blindly which introduces a nice way of varying the playing titles available in any given game. Secondly they provide a means of resolving a tie between meeples within scoring features which introduces a nice extra element of game play.

The best of the expansion in my opinion though was the sheep game play, in which once a player has played the shepherd meeple they were able to add sheep to their flock when they expanded the shepherds field. This within our game unintentionally encouraged more ambitious road building as players found they could expand both the shepherds field and the thief’s at the same time scoring significant points. This gave added purpose to the typical straight road piece which in later game play can become a little boring to play.

Overall for experienced Carcassonne players the Hills and Sheep expansion offers a nice variation to the game which requires minimal explaining but does introduce new game winning strategies and hence would be recommend.

The Hills and Sheep expansions rules can be found online here.

Last night after completing the frequent task of applying application and system updates I discovered that notmuch mode within emacs which I use to read email was broken.

Now you might expect this to be a rant about package management on Linux systems, or Ubuntu in general but that is not the case as I allow Ubuntu to manage notmuch, offlineimap and emacs. While I use emacs MELPA to manage notmuch mode within emacs. SO expecting two different package management systems to allows get it right when they don’t talk to each other is a little much to ask.

So returning to the problem I found myself unable to read my hosted email. I was about to login via the web interface, which would solve the reading problem, give me a horrific web interface to work with and the problem of maintaining the sent mail record when I realised that even though notmuch much was broken, offlineimap was working just fine. A great endorsement of the *nix method small programs doing one thing well and also the advantage to open formats. Consequently I quickly installed Mutt through apt-get pointed it at my local mail boxes and was sorted.

Now it still leaves me with a broken notmuch mode with emacs which I hope will get fixed by a future update. However, to be honest I am considering just sticking with mutt as it resolves the meta key iOS bluetooth problem, but thats an entire blog post in its self.

In the process of developing a method of automatically build the numerous Jekyll based sites I am now running I came across a couple of problems to do with deploying with git, through shell scripts launched by crontab.

Architecturally the sites receive content from shared folders which are symbolically linked in to the Jekyll site folders. A shell script script that is launched by cron runs Jekyll and then use git to version and push the site onto the web server.

Firstly the users own crontab, editable as crontab -e, runs with a different executable path so the user path must be explicitly set within the shell script being used.

export PATH=""

Once the path was set correctly the next issue I faced was the failure of git push commands with this error message.

ssh_exchange_identification: read: Connection reset by peer fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.

I gather this is again caused by cron, as cron is unable to access or use the users ssh keys even if they do not require pass phrases. However on Ubuntu 14.04 LTS this can be resolved by prefixing the git command with the home directory path.

HOME=/home/bob git push origin master;

This makes the complete script,

export PATH="/usr/local/sbin:/usr/local/bin"

cd -complete path to folder-

if /usr/local/bin/jekyll build; then
        git add .;
        git commit -m "auto build";
        HOME=/home/bob git push origin master;
        echo "build error"

This script can then be launched from cron as required to cd into the build directory, run Jekyll to build the site and then push the site using git.

This works on Ubuntu 14.04 LTS as of today.

I have been exploring using sed to achieve a number of text manipulations in the course of rolling out a number of new Jekyll based websites.

Recently I have been working on streamlining the process of moving from the pre TheAudioPodcast show notes to the podcast feed notes after the show is recorded. The required differences between the files is achieved through the use of this single sed command.

 sed -e "s/v2post/post #v2post/g" -e "s_permalink: /show/\([0-9]*\)/_permalink: /show/\1.html_" $FILENAME > output-$FILENAME 

The command changes the yaml front matter in two ways. Firstly the command,

"s/v2post/post #v2post/g"

changes all values ‘v2post’ into ‘post #v2post’.

Secondly the command,

"s_permalink: /show/\([0-9]*\)/_permalink: /show/\1.html_"

changes the permalink yaml entry from ‘/show/99/’ in to ‘/show/99.html’.

The second command also demonstrated the ability to choose the command delimiter for sed. The first command uses ‘/’ while the second command uses ‘_’.

After a number of weeks of work I have finally completed the move of scotthewitt.co.uk away from the wordpress site of the last few years and onto a Jekyll built static site.

While Wordpress has served me well for the last few years the effort of maintaining multiple wordpress installs, constantly plugging security holes and trying to keep the site nice and fast in use has a become a time drain.

So I felt it was time to try a static site approach. Static sites remove the hassle of maintaining dynamic server and instead allow you to just build pure HTML files instead. This means that every page has a unique file representing it and also that the site is much quicker to serve.

I also felt it would be time to have a little redesign as well and so have shifted to pre-processors as well.

While I have tried to maintain URLs I suspect that some will have been lost as this is the forth website that has occupied this URL since my first blog post on the 7th April 2008.