Hugo

| Tags: blogging

I read about that new static site generator called “Hugo”. It was said to be really fast, much faster than Jekyll. Well, build performance isn’t an issue for my website and currently it doesn’t seem to ever become an issue. During the 17 years my blog exists I wrote 290 posts and there are a few other pages. Jekyll only needed seconds to build it. Performance would therefore not be a reason to change from Jekyll to Hugo. I just wanted to try something new.

I made Hugo create a scaffolding for me and copied my posts into that structure and started tinkering with it. It was an opportunity to look into the go programming language and while doing that I came to the conclusion that it is OK but doesn’t excite me much. And you actually don’t need to know much about go if you only use Hugo and do not take part in the development of it, but it helps to know the basics. And you totally have to learn go templates because that is the template language used by Hugo.

I prefer go templates to liquid which is used by Jekyll. go templates look nicer. That’s also not really a pressing reason to switch to Hugo but it adds to the overall good opinion about it.

While Hugo is probably mostly used for blogs it can be used for all kinds of websites and blog posts don’t have a special meaning like they have in other generators like Jekyll. Blog posts are just a collection of markdown files that are typically placed in a folder called content/posts but that is actually only a convention and you can put them somewhere else. And you can have other collections as well. You just define how the permalinks for the items of a collection shall look and then you add a template file for the pages for the single items and one for the list of those items. And if you need, you just add paging to that list and it will be split into multiple pages. You don’t need to install any additional modules. This is all part of the core Hugo. Tagging is also there out of the box and the creation of a menu for the sections of a website is a no-brainer.

That generic handling of lists of pages has one effect that is a bit disturbing at first if you migrate from a website generator like Jekyll that has special handling for blogs. There are no yearly and monthly archives. The Hugo forums have some discussions about this and some people have come up with creative workarounds. My blog always had archives and I was very intent to recreate them with Hugo. But it’s quite understandable that Hugo does not have archives. This is how you define permalinks in the Hugo configuration

  permalinks:
    posts: /:year/:month/:filename/
    tags: /tag/:title/

Ah, OK. For the pages in the posts collections, there is a year and month in the permalink. Fine. And for tags there’s a title in there. Also fine. And that’s it.

After looking at some of the creative workarounds and thinking about archives I realized that I never looked into any archives on the blogs I read. Mostly I read them in my feed reader. And when I visit a blog website itself in most cases I do so because I clicked on some link. I never look at what someone wrote in some specific month or year. I may look at other posts with the same tags and I might browse older posts, but I never use yearly and monthly archives. With that insight I decided that I don’t need archives.

But where would I put my tag cloud when there is no archives page? Should I put it on each page? Some years ago tag clouds were the cool stuff and each blog had to have them on each page and clearly visible. But tag clouds aren’t that exciting anymore and they probably never were anyways. Content is more important. So no, no tag clouds on every page. You can still look at my nice tag cloud which is now located at the bottom of every tag page. It actually looks nicer now. It uses logarithmic distribution and is styled a bit nicer. Take a look at the blogging tag as an example.

That generic list handling greatly simplifies the maintenance of the creations section. In the Jekyll version of this website I had pages for each piece of software I wanted to present there and an index page with short intros and links to those pages. Now I only have markdown files for those single pages and one template for the single page and one for the list and the list extracts the intro from the front matter of those markdown files. There is probably a better solution for this with Jekyll than how I did it, but it wasn’t apparent to me and with Hugo it was obvious.

As to be expected for a static website generator there are tons of themes for Hugo and every week or so another one is released. I’ve never been one to use prefabricated themes. What better opportunity to play around with html and css than to do it on the own website. The website looks mostly like it looked with Jekyll. The structure of the pages hasn’t changed and I actually translated the layouts from Jekyll and liquid to Hugo and go templates. I changed the icons that I use from FontAwesome a bit. I now only use the solid variant everywhere.

I like that Hugo already contains all I need for my website. There’s no need to install and update any plugins. I just update Hugo with homebrew when a new version becomes available and that’s it.

If you are on the search for a static website generator or just want to try a new one, I recommend to look into Hugo even if build performance is not really an issue. Hugo comes with extensive documentation and often there are also tutorial videos showing how things work. It takes some time to understand how Hugo works but learning is fun and pays off.

Vigilance

| Tags: book, fiction, sci-fi

Compared with last weeks “Anna Karenina” “Vigilance” by Robert Jackson Bennett is a quick read. The action in the book also mostly takes place on a single evening.

“Vigilance” is a science fiction story set at some years in the future in America. The book was published just this January and builds upon current events. The climate change also gets mentioned on a sideline, but the main topic it expands on are the mass shootings that seem to happen every now and then in the USA. Many of those who insist on their right to own weapons conclude that that the normal good people should be armed. And if they were then they would prevent many of those tragedies by simply shooting the attacker before the attacker can kill any innocent people.

Bennett envisions a TV game show in which some selected attackers are brought into some area — a train station, a school, a mall or whatever — and then that area is closed and infested with drones that record everything. Nobody knows beforehand what area is chosen for the next “Vigilance”. And that’s the whole point. The citizens are expected to be vigilant. They are expected to be armed at all times and to be on the lookout for some attackers.

If one of the attackers succeeds to kill all people in that area, they win some amount of money. If the people in that area are vigilant enough and succeed to take down all attackers, they win some money.

Aside from that already gruesome action we also get a look at some possible developments in the advertisement sector, because a TV show is only successful if it succeeds to place fitting adverts at the right times. Yes, you can sell products while showing how people are killed.

There is a bit of “Running Man” in this book and near the end also a bit of “The Purge”. I’d like to think that it is improbable, but unfortunately with the current developments it cannot be ruled out.

“Vigilance” isn’t a deep book, but it makes you think and that’s good because more people should think about what reactions they demand to all those shootings.

Anna Karenina

| Tags: book, classic, fiction

I have been planning to read some Russian classics for some time and finally chose to read Leo Tolstoy’s “Anna Karenina”. It’s a huge book and took me 2 and a half months to finish.

The most remarkable thing about this book is the writing style. I read a German translation. So I cannot say anything about the original Russian text. But even in the translation, the book has a flow that I haven’t seen in many books. Even in passages that were somewhat too detailed for my taste — describing ideas and situations I didn’t deem overly interesting — the story just flows nicely and I had to keep on reading.

I liked the people this book presents — each one with their own believable personality. Although Anna Karenina gives the book its name, she doesn’t really dominate the book. The other protagonists like Ljewin and Kitty seem to get an equal share of attention. Or maybe it’s because Anna gradually withers away, that I didn’t perceive her as a spotlight character.

Actually the description of how Anna sinks deeper and deeper into her depression and finally only finds a very fatal way out is one of the very strong story telling aspects of the book. It’s really breathtaking and sad. And then the perspective changes again and you see how other people have the best times of their lives.

Besides looking at the varied lives of all those people one also gets a feeling for how living was like in 19th century Russia. Especially the problems and restrictions women had to cope with then are unbelievable nowadays.

So I fully recommend “Anna Karenina” but with the warning that it’s a long book with a rather slow but nice pace. It takes time and patience but is totally worth the effort.

American Gods

| Tags: book, fiction

Neil Gaiman isn’t really a new name to me. I watched Caroline, a film based on one of his young adult books, and liked it. His Graveyard book is on my list of books to read someday. I also enjoyed his reading of Charles Dickens “A Christmas Carole” and will probably listen to it this year again. So I always somehow thought of him as an author of children and young adult books. “American Gods” has also been on my list for quite some time now, but I didn’t really remember what it was about. Browsing my list some day I noticed that I could get it for a pretty low price and because it had been made into a show by Amazon recently I decided to get it and started reading it.

And I realized pretty fast that it’s not a book for children. It starts off with explicit language and keeps on using it regularly throughout the whole book but in a manner that fits the the subject and not like it is used in some other books that try to hide the lack of an interesting story by the usage of boisterous language.

“American Gods” is both fun and interesting. It is built on the premise that every time people come to a new place they bring their gods and myths with them. The belief of the people incarnates their gods in the new place who then move around as humans.

Gaiman tells the stories of how several different groups of people reached America and which gods they brought with them. And some of those gods take part in the action of the book. One of the main protagonists is Odin but there are several others besides him. Some of them I even don’t know anything about, but I liked the appearance of Easter who’s enjoying a picknick in a park and eats eggs.

Those old American Gods now have a problem. They’ve got enemies. There are new gods. There are the gods of the internet and of the media and they want to take the place of the old gods and get rid of them.

Odin tries to unite the old gods and to lead them into a battle against the new gods. This book is somewhat like a road movie in the form of a book. It visits various places in the United States and at every stop some nice story unfolds.

The book won several prizes for best science fiction, best fantasy and best horror book. I would place it in the field of contemporary fantasy. But the exact categorization isn’t that important anyways. It’s just a fun book worth reading.

I also watched two episodes of the show based on that book, but wasn’t really captivated by it. But that’s really no wonder. In most cases I prefer the books over the movies and shows based on those books.

WeightGlance and Website Restructuring

| Tags: app, weight, blogging

When I got my iPhone X late last year, I thought “Those apps not supporting this new kind of device are really looking old”. That was also the case for my weight tracking app that I still use daily. So I started working on an update and finally released it last week. It got a new name — WeightGlance — and some other aspects were also fixed and improved. You can read some more about it here.

While working on that update, I’ve also started thinking about the separate websites I have been setting up for my apps. They seemed to communicate “I’m big business” although I neither feel nor am big business. And each new website costs some more money and requires additional maintenance. I had website for things I’ve created and abandoned years ago. They really looked old.

So I came up with the idea of closing all those separate websites and creating smaller pages for those apps and other stuff that I’ve created on this website here. And I thought it might be fun and interesting to write some kind of postmortems for the stuff I no longer maintain describing how I came to create a specific something and what I learned from it.

That’s how this website gained a new section called Creations which contains pages about stuff as old as Squareness up to new and fresh stuff like WeightGlance.

MetaGame

| Tags: book, fiction, sci-fi, game

I read “MetaGame” by Sam Landstrom the first time more than 5 years ago, but somehow didn’t get around to write about it. When I don’t write about a book within two weeks after finishing it, I usually don’t write about it at all, because by that time I’m already immersed in the next book.

After reading “Ready Player One” I remembered “MetaGame” again and that back then I thought it was the coolest gaming themed book I had ever read. So I read it again and it still is the coolest gaming themed book I’ve ever read.

Usually gamers in those game related books use some kind of more or less advanced virtual reality system. They either have some VR goggles or they get the VR environment somehow projected on their eyes. They then use some kind of special gloves or jumpsuit to enable them to move around in the virtual reality.

“MetaGame” is different. The whole world and the entire life is gamified. There are no jobs as we know them nowadays. It’s all games and you need to play games to earn points which you can use to buy stuff. The somewhat tedious games like law enforcement and programming are called grinder games. You play them because they provide more points. The games played for fun are spank games.

Through a kind of nanobots which attach themselves to every surface — living or dead — the whole world is mapped by the computers. Depending on the game a player currently plays, the surfaces look different to them.

There are no more separate nations on earth and bio engineering is quite advanced. Aging has been removed from the human genom and immortality is possible but not available to everyone. You need to play to gain the privilege to become immortal.

As bio engineering is quite advanced products which have a DNA that resembles the human DNA up to 96.3 % are created. They are always build for a specific job and with an ingrained desire to do that job as good as possible. So if you buy a product that is build to keep your house clean it will happily do just that.

As to be expected this produces some philosophical and ethical issues and the author plays them out quite well.

I liked “MetaGame” five years ago and now again for it’s grandiose ideas, good story and a somewhat critical contemplation on the issues such a world would bring.

There’s actually a story there in that book. I haven’t said anything about it here except that I liked it. It’s good. It encompasses all those elements I’ve talked about here and some more. It’s about a special kind of game a group of players play. You might have guessed it, it’s a meta game. You’ll have to find out more about it yourselves, though.

Ready Player One

| Tags: book, fiction, sci-fi, game

When “Ready Player One” by Ernest Cline was published 6 years ago all around me people started reading it and were totally excited by it “There’s so much 80s trivia in it”, “It’s about gaming in the 80s”. I didn’t read it. I didn’t want to read some kind of documentary about video games in the 80s. Although one of the first computer games I remember ever playing — Digger — is from the 80s, I’ve got fonder memories of 90s games like Commander Keen and Duke Nukem. The 80s didn’t interest me that much.

Turns out the book isn’t really a documentary and it’s not about the 80s either. It’s actually a quite suspenseful and well written story about people living and playing games in a massive virtual reality universe called OASIS in the year 2044. The protagonists of the book take part in a contest to win much money and control over OASIS.

The creator of that virtual reality universe dies and initiates this contest as a means to find his heir. The contestants need to solve puzzles and play games and because the creator loved the movies, the music and the games of the 80s those are all about the 80s.

Although it’s advantageous to know those movies and games, that’s not a requirement to have fun reading the book. I either don’t know half of the mentioned games or only by name.

I’ve read some game relatated books in the past and most don’t really get it right. Some are Ok, some are just really boring and only a few have been good so far. “Ready Player One” is one of the good ones. It has the right mix of sci fi near future technology, nerdy 80s trivia and — well — gaming in it.

GoAccess

| Tags: blogging, tool, web

Over the years I used some web statistics tools to find out who visits my website and what they access most frequently. I’ve used Google Analytics and Mint among others but some years ago I stopped using such tools.

They always slowed down loading a bit as their respective javascript scripts needed to be loaded and executed which then again called back home to record that statistics data. I didn’t feel good about using a service like Google Analytics and share who visits my website with them. More recent laws in Germany would also require me to tell my visitors about the usage of it. That wasn’t that big of a problem with Mint as it was self hosted. But anyhow I came to the conclusion that it added too much bloat and wasn’t worth the hassle.

The Apache server my hoster uses logs every access into nice log files and that doesn’t need any added scripting on the delivered pages themselves. My hoster even provides some statistics based on that log files and uses Webalizer for this, but Webalizer looks really horrible. So I didn’t use that very often.

Some days ago I got the idea, that it should be possible to transform those log files into something better looking and more useful. I played around with the idea of developing something myself, but before investing time into a new project diligent research of already existing solutions is always useful. And in my research I found GoAccess which does exactly what I had in mind.

GoAccess can read all kinds of log file formats. Strangely none of the predefined formats matched the format my log files use, but that wasn’t really that big of an issue as the format is customizable and well documented

GoAccess can run in the terminal or among others generate a static html page. I use the latter. All nice and well. I now could look at the nicely formatted statistics data for my website, but one piece was still missing. The documentation stated that I could also get data about from where in the world my website was accessed. It took some time, but finally I realized that I didn’t use the correct options to install GoAccess via Homebrew. So I reinstalled it like that:

brew uninstall goaccess
brew install goaccess --with-libmaxminddb

Nice, now the section “GEO LOCATION” showed up in my GoAccess html page, but it was empty. Ah well. Turns out you still need to install a geolocation database. A free database is available at MaxMind. More accurate databases can be purchased from the same company, but for my purposes the free one is totally sufficient and I don’t know whether GoAccess would do more with a better database anyways.

Now there are different ways to use GoAccess. Mine is a very simple one, that is probably not really efficient, but it works for me. I have a directory on my MacBook into which I copied that geolocation database and into which I copy the log files from the web server.

In the same directory I also have a file named config that looks like this:

log-format %v %h %^[%d:%t %^] "%r" %s %b "%R" "%u"
date-format %d/%b/%Y
time-format %H:%M:%S
geoip-database GeoLite2-City.mmdb

And there is also the following script that generates the html report:

#!/usr/bin/env bash
gunzip *.gz
goaccess -f beeger.net-* -p config -o rep.html --real-os

Those log files are zipped when they come from the server and they start with the domain name of my website. So I unzip them before passing them to GoAccess. I use that --real-os flag to have real names of the operating systems used by the visitors of my website instead of some internal build names.

So if you don’t need the full features of an analytics solution like Google Analytics and don’t want to bloat your website with third party javascript code just to get some simple statistics about your website, I recommend taking a look at GoAccess, which is open source by the way.

A Wrinkle in Time

| Tags: book, fiction, sci-fi, fantasy

“A Wrinkle in Time” is a trilogy by Madeleine L’Engle about the time traveling adventures of Meg Murry and her brother Charles Wallace. Those adventures have science fiction and fantasy elements and are classified as young adult literature.

The first book which gives the trilogy its name is “A Wrinkle in Time”. After reading the first pages I came to the conclusion that this is an insanely cool book and I didn’t change that opinion after finishing it. The author has some really strange ideas and a great talent to pour them into a book.

Meg — also called Megatron by her father — and her brother Charles Wallace, who has some unusual telepathic capabilities, are searching for their father, a physicist who didn’t return from a secret government mission. They are helped by three elderly women called Mrs. Whatsit, Mrs. Who and Mrs. Which, who are not really what they seem to be at first. With the help of those three the children travel to other planets, times and even other dimensions. They also shortly visit a two dimensional world, but that visit is very painful for them as they are three dimensional creatures and cannot deal with the two dimensionality.

In this first book the children get to know the Echthroi who reappear in the other two books and are the enemies of all independently living creatures. Those enemies aren’t named in the first book, but in all three books it’s a fight against the ultimate evil that wants to unmake happiness and individuality.

This first book has some nice tidbits for people with interest in mathematics and science in general like discussions about dimensionalities, tesseracts and folding space and time.

The second book “A Wind in the Door” is interesting. It has the same great story telling you get to know in the first book, but it’s not as good as the first one. At some point some repetitive parts became somewhat tedious to me and I asked myself when the author would finish that. But there was still enough fun and interesting concepts in it to keep me reading it. Much of it happens at a microscopic level inside a cell of Charles Wallace’s body who suffers from an illness his mother, who is a biologist working in her home laboratory by the way, is trying to find out more about.

I liked the third book “Swiftly Tilting Planet” best. I also think this one is more for the adult than the young in “young adult”. It’s a huge story spanning centuries. Charles Wallace is the main protagonist here. He travels through time with a unicorn called Gaudior. It’s really easy for Gaudior to travel through time but really hard and even hazardous to travel through space. So whenever the two of them reach a new destination and Charles Wallace asks “Where are we?” he is reminded by Gaudior “It’s not where but when!”. So they mostly stay in one place and relive different parts of the American history in which Charles Wallace has to use his telepathic talents to merge his mind with the minds of specific people of the time they are currently visiting and to nudge those people to do the right thing to prevent the Echthroi from manipulating the events to a bad outcome for humankind.

I really liked those glimpses into history and all those events have some kind of effect on later generations. And there’s also a nice wrap up that changes the perspective on a person introduced at the beginning of the book.

So I really recommend this trilogy for its cool ideas and the great story telling talent of its author.

Tom's Midnight Garden

| Tags: book, fiction

In the vast multitude of fiction books, some are specifically recognised as children’s books. I guess children’s books are recognised as such because they tend to be more predictable and structurally as well as thematically simpler than books for adults. Some people take great pride in not reading children’s books once they become adults. I’m not one of those and like to read well written children’s books from time to time.

“Tom’s Midnight Garden” by Philippa Pearce is one such book. Tom, the protagonist of this book, needs to spend some days with his aunt and uncle while his brother gets rid of the measles. His uncle and aunt are a childless couple who are happy to have a child at their place for some time, but who also don’t know a thing about children. So Tom gets bored and as he wanders around the house, in which his aunt and uncle occupy one apartment, he discovers a garden that seems to only exist during the night.

So now Tom visits the garden every night where he meets a girl named Hatty. They become friends and have some adventures while playing in the garden.

At first it seems that Tom visits are linear in time but then it’s suddenly winter in the garden while it was summer the night before. He also seems to jump forward and backward in time with his visits. And Tom also has some special capabilities while in the garden.

I wouldn’t call this a fantasy book. There are no knights or kings and wizards are also not to be found here. It’s a tale for children about friendship and loss in which the world has some fantastical properties that the rational mind dismisses as highly improbable.

But if you read it as a child and just take the world like it is described without questioning it, it is a wonderfully written story.

Only the end felt somewhat disappointing to me. It felt like a rather fast and abrupt wrap up after a nice tale. Somewhat like “Well, I told you the story. That’s it and here’s the explanation of the loose ends. Get lost.” But as an adult reader you will have an inkling of what’s going to happen some time before it ends and maybe it’s the disappointment to not have been proven wrong that gives the ending a bad taste.

But even with that little stain, I recommend this book to anyone who likes to become a child from time to time and read a really nice children’s book or to anyone who’s on the search for a book for their children.