The Last Unicorn

| Tags: book, fiction, fantasy

“The Last Unicorn” by Peter S. Beagle is on Amazon’s 100 Science Fiction & Fantasy Books to Read in a Lifetime and appears on other lists collecting great books. People confess having cried while reading it. Long story short. I was intrigued by this phenomenon.

I can assure you that crying is not the only possible reaction to this book. Simply being content at having read a beautiful book is another one.

The book is written in the style of a fairy tale. There is just one quest and several characters appear on the road to its culmination. Some stay and some leave again. There are no flashbacks, no side tracks. It’s fairly simple.

It begins with a unicorn. After hearing two people talk about there being no more unicorns, it becomes restless and sets out to find out whether it really is the last one and what happened to the other ones. Unicorns only die when they are killed. So the disappearance of all but one unicorn is a mystery.

On its quest for knowledge it meets Schmendrick, a magician who is most of the times unable to do any magic. Schmendrick is a very likable character. It’s quite enjoyable to follow his endeavors at doing magic. And Schmendrick stays till the end of the book.

I liked the tone of the book and the short stories it tells on its way to the uncovering of the great mystery. The characters are well crafted. The unicorn especially feels somewhat alighted or nearly arrogant. You would probably expect it from an immortal being and the unicorn actually says at one point:

You are a man, and men can do nothing that makes any difference.

So while it’s not a book that is guaranteed to make you cry, it’s beautiful in its way and an enjoyable read.

Bone Clocks

| Tags: book, fiction

“Cloud Atlas” was a collection of stories ranging over a long period of time that starts somewhen during the colonization time and ends in the future. And all the stories were somehow mysteriously connected.

“Bone Clocks”, the second book by David Mitchell that I finished reading some days ago, has some similarities to “Cloud Atlas”. This time there are six stories and they again start in the past and end in the future. But the past and future aren’t as distant as in “Cloud Atlas” and the connections are more obvious.

There is a woman — Holly Sykes — who appears in all stories and even tells the first and the last one. It all starts while Holly is a teenager and ends with her being a grandmother.

I liked the first story. There are some really funny tidbits like this one:

Over her head is a faded poster of a brown goldfish bowl with two eyes peering out and a caption saying: “JEFF’S GOLDFISH HAD DIARRHOEA AGAIN”.

I still start smiling when I think about that one.

The second story is the greatest of all of them. I’m not quite sure whether I would recommend reading the book just for this one story, but it is really great. It’s reminiscent of the Bret Easton Ellis’ books. There’s no way to remember all the details, because there are too many, and there’s actually no point in trying. It’s fun while it lasts but nothing you’ll keep thinking about during the days and nights that follow.

By now you’ll have an inkling of something strange going on. And that will get more obvious during the next two stories, but an unveiling will not happen before the fifth one.

I’m not into wartime hero stories. So the next story dragged along quite a bit. The fourth one was more interesting, although I sometimes thought that Mitchell created a self-fulfilling prophecy by stating early on in this one:

… what surer sign is there that the creative aquifers are dry than a writer creating a writer-character?

Each story is told by a different narrator and story four is told by a writer. But in the end it’s OK and quite fun on some occasions.

Story number five brings answers to the “What the …” questions that started piling up by now. There are some nice ideas presenting two groups using two different means to live forever. Those two groups fight each other and this story also shows a somewhat ridiculous fight involving force fields, lightning and so on.

The last story wraps up the whole thing nicely and Mitchell cannot let the occasion pass to tell a story about a gloomy future. While reading it I thought “Damn, we don’t make it to the part with flying cars in this one.” As fitting the current time, this dystopia is caused by climate change and careless usage of earth’s resources.

I liked how the perspective changes from one story to the next as the narrator changes. Most people reappear in the next stories, but you get a different look at them as the next narrator has their own views and ways to describe people.

Although it’s really slow and dragging on some places, the good parts make up for that. So, yes, “Bone Clocks” is a recommended reading — not as much as “Cloud Atlas”, but still recommended.

Everything I Never Told You

| Tags: book, fiction, tragedy

After a disappointing science fiction novel, about which I wrote last month, and a disappointing fantasy novel I didn’t bother to write about, I was again scanning my closed Amazon wish list for the next book. And so I came to read “Everything I Never Told You” which is the debut novel of Celeste Ng.

It’s what I sometimes call a “normal people problems” book. No lightsabers are used and no wizards appear out of thin air.

There is a family of five people: mother, father, son and two daughters. One of the daughters is found dead and the whole book revolves about the question why and how she died.

Through various flashbacks and inspections of the current situation from the viewpoints of each of the members of the family the problems that shaped the lives of the individuals and the family in its entirety are revealed.

At first it all seems to be rather mundane and a standard case of unfulfilled dreams and feelings of inferiority of the parents which they long for their children to implement and overcome. But it’s much deeper than that and the consequences are way more disturbing.

Ng succeeded to change my attitude from “Why did they recommend this book?” during the first pages through “That might be a good source for a drama movie.” to finally “So that’s how life sometimes plays. You die shortly after you realize what you can change to actually reach happiness.”

Congratulations to Celeste Ng for a great first novel. If you like to read touching stories with a good portion of tragedy, I recommend this one to you. If you are a parent and have specific ideas about the future of your child, I even urge you to read it.

Seveneves

| Tags: book, fiction, sci-fi

When “Star Wars Episode 1” arrived in the cinemas many fans were shocked and some came up with a conspiracy theory in which George Lucas had been kidnapped and replaced by an imposter.

When I look at Neal Stephenson’s books after “Anathem” I fear a similar conspiracy is taking place here.

I didn’t like “Reamde” and I don’t like “Seveneves”.

The setup of “Seveneves” isn’t overly exciting. One day the moon breaks apart into seven pieces and scientist predict that within two years it will split into many more small pieces that will produce a “hard rain”, which in turn will burn Earth and extinguish all life on it.

Similar scenarios have been used and reused for movies with beautifully rendered catastrophes.

But this is a book by Neal Stephenson and I believed in him doing something special with this. And he probably does. The book consists of three parts. In the first part the world prepares for the catastrophe by sending selected people to the ISS and creating a “Cloud Ark” with the ISS at its center. The second part shows the catastrophe and the third part takes place 5000 years afterwards.

I gave up at the start of the second part which is after 1/3 of the book. The problem is that the story is broken into little chunks by overly detailed descriptions of all sorts. It seems like Stephenson is trying to make sure some scientists will be inspired to actually build the things he describes. With that those descriptions look like small technically detailed essays.

The book is likely a contribution to his Project Hieroglyph. The project wants to bring together big ideas, real science and great stories.

The big idea in Seveneves is how humanity will deal with a catastrophe destroying all life on Earth. I’m convinced that Stephenson did a detailed research on all the topics he talks about in his essay-like descriptions.

The last one — great stories — is where the book is sorely lacking. Where is the engaging, exciting storytelling from “Diamond Age”, “Snow Crash” and the “Baroque Cycle”?

Is this an imposter at work? So sad. I really miss the old Neal Stephenson.

Jean Le Flambeur

| Tags: book, fiction, sci-fi

I pity those who read “The Quantum Thief” by Hannu Rajaniemi shortly after it was published and had to wait two years for “The Fractal Prince” and again two years for “The Causal Angel”. That’s because this trilogy is actually one huge story.

There’s so much going on here and so many things, that make their first appearance in the first volume, are explained in the second or third. It’s dubbed a space opera by some while others complain that it only takes place in our own solar system and so on a far too small scale to be a space opera. Even though the spaceships only visit Venus, Earth, Mars and Saturn, the actual action is grand enough for me to call it a space opera.

The protagonist here is a Jean Le Flambeur who is said to resemble Arsène Lupin. I don’t know whether that’s true or not, because I never read a Lupin novel and the last movie featuring him, that I remember watching, bored me somehow. Anyways, Jean is what you’d call a gentleman thief and throughout all three volumes he steals or tries to steal things, but while the original Lupin would steal crown jewels, Le Flambeur steals quantum information and other science-fictionally fantastical things.

The whole setup is really crazy. There is an organization called the Sobornost trying to finish the “Great Common Task” which involves uploading all humans into big planetary sized computers. It’s like a new kind of socialism inspired by the Soviet Union.

Then there is another group — a group of gamers — who spend their time in virtual realities called Realms and for whom even the war against the Sobornost is a game.

And then there are people of flesh and blood who just don’t want to be uploaded.

The books are filled with nerd talk to the brim. Here’s one piece I took the time to write down while reading:

There are two problems, really. The first is that we can’t solve any hard problems. Not really. Anything that’s NP-complete. The Travelling Salesman. Pac-Man. They’re all the same. All too hard.

Kindle’s feature of not only displaying a dictionary definition for a word but also being able to look it up in Wikipedia, was really helpful here. Regularly I came across terms that a Wikipedia entry would identify as culturally belonging to Russian or Japanese history.

The books are really crazy and if you’ve read any books about virtual realities, singularities and transhumanism then those will probably look like children’s play compared the the Le Flambeur books. Many of the concepts presented here are just fantastical and seem to be totally impossible, but then, no one can really know, how transhumanism would really work. And it’s a real joy to read those nerdy novels.

So I highly recommend those books and also to take the time to read them directly one after the other without any breaks.

Solved Problems

| Tags: dev, ios, swift

I’m that kind of guy who loses interest in problems once they are solved. That’s why I seldom write about software development on this site although developing software is what I’m doing most of my time.

Problems interrupt the flow. They require me to experiment again and again with seemingly not getting anywhere for some time. Solving problems also involve finding some good search terms that will make DuckDuckGo bring up some StackOverflow page or some blog post that at least contains some hints at where the solution might be lurking. Having solved a problem is fun. Achievement unlocked. Problem solved.

After a problem is solved the flow becomes tangible again. So I usually don’t write about solved problems. I plunge into the flow towards new challenges.

I applied for a job as an iOS developer some days ago and they asked me to do a homework to verify the truthfulness of what I told them about my skills. They asked me to develop an app showing fake statistics data for an unnamed website. The app was also required to contain a today widget.

As I developed the app and the widget and wrote tests for both, I realized that it presents the solutions to some problems in a pretty uncluttered way that might be useful to other people.

So I put it on GitHub. It shows my current opinion on the development of testable iOS apps in the Swift programming language.

Although it makes some use of ReactiveCocoa 3, I’ve still got the inkling that there is much more to functional reactive programming than how I use ReactiveCocoa now. So don’t take it as a primer on that subject. It’s still a good starting point, though.

I’ve read many comments from iOS developers complaining about AutoLayout. Perhaps because I’m used to this kind of layout management from the Java projects I’ve worked on, AutoLayout has never been a big issue to me. I actually like it. I’ve never been a fan of GUI builders and avoid Interface Builder whenever possible. I create my UIs programmatically. Sure, it’s quite verbose when you use the low level API, but I always have a simple wrapper around it that I started developing while working on Space Primacy. It’s so simple that I didn’t bother releasing it as a framework. That’s one of those solved problems I mentioned above.

Weighort

| Tags: app, health, weight, dev, ios

When I created the first project that I would show to the world, I had quite a problem to find a good name for. I read all the tips about naming software and somehow came up with the name “Squareness”. It was a look and feel for the Java Swing library that used rectangles quite a lot because rounded corners looked bad back then a decade ago. But I couldn’t come up with a nice sounding name containing “rectangle”, “rectangular” or something like that and “squareness” also had other meanings that seemed fun to subtly add to this project.

I realized very soon that the name was a mistake. As many — or maybe all — who release something to the public, I wanted to know if others talked about it and what exactly they said about it. Use your favorite search engine to search for “squareness” and you’ll get many search results. Back then when Squareness was in active development it wasn’t any easier than today to really find the results that dealt with my project.

So for the next big project I came up with a new strategy. I wrote down a sentence describing it, “OSGI Module Layer and Eclipse RCP support”, and played with the beginnings of the words until I came up with “Osmorc”. That name had a nice sound to it. It was also short and searching for it produced only very few results.

I used similar strategies for Bookitics which came from “book critics” and Appiast which came from “app enthusiast”.

So after this lengthy prelude let me introduce my next app: “Weighort”. This is from “weight report” and the app is a weight tracker. I like that it rhymes with “weird” and “way”, because it probably looks weird to release another weight tracker and because it gets along with the bold tag line “your way to your target way” which I’ve chosen for it.

What sets it apart from other weight trackers is that it integrates perfectly with the Health app and just looks better than any other I looked at. It’s a joy to enter your daily weight into it and instead of those graphs present in every weight tracker nowadays, it just shows two informative bar charts that motivate you to work on reaching your target weight.

For more information about it and a convenient link to the App Store look at its website.

Octopress 3

| Tags: blogging

It’s now a bit more than two years since I started using Octopress to generate this website. Although Octopress was always reliable and a joy to use, one aspect bothered me from the beginning.

To use Octopress you had to clone its git repository and add your stuff into it. So there was no separation between the source of the website and the tool to generate it.

This changes with the new Octopress 3 which is now a set of Ruby Gems. Things which were earlier part of Octopress are now available as plugins and it’s quite easy to activate the usage of a plugin. Octopress 3 isn’t finished yet. For some of it’s parts release candidates are available while others are already marked “1.0” or higher. The biggest missing thing is probably an updated documentation and some kind of guide how to move from Octopress 2 to Octopress 3. octopress.org already gives an overview of what’s coming.

My website is a rather simple one. So I took the plunge and ported it to Octopress 3. I got Octopress to generate a new site with octopress new and found that it generated a directory structure that I was partly familiar with. That’s really no wonder as both are Jekyll sites and although Octopress 3 supports the current version of Jekyll where my Octopress 2 site still used a much older one, the main building blocks of a Jekyll site stay the same. There’s still a folder for posts and others for templates and includes. I replaced the generated stuff with the counterparts of my Octopress 2 site.

After temporarily deleting some parts that depended on plugins I hadn’t found Octopress 3 replacements for yet, I got a first raw site that looked OK.

Now I had to weed through _config.yml. Octopress 2 had generated a bunch of entries here I didn’t see in the generated output from Octopress 3. Some of them I could ignore, because I hadn’t filled them in for the old version. Those were settings for various social networks like Facebook, Twitter and so on. Others I had to search for on jekyllrb.com to verify that they are Jekyll settings and not some Octopress specialty that might not exist in Octopress 3.

One of those Octopress specific settings is date_format which allows to define a format for dates and then provides convenient functions to get dates in that format. This is one of the Octopress features which are now extracted into a separate plugin octopress-date-format.

Jekyll now handles SASS directly and with octopress-asset-pipeline the resulting CSS can be merged with other CSS files like normalize.css and minified.

I was lucky that one of the plugins my site depends on, jekyll-tagging, still works with the newest Jekyll and Octopress 3. So that was quite easy.

The next one was harder. Since the early days of the blog — when I used MovableType —, the site provides monthly archives and an overview of the times when I wrote something. When I moved to Octopress 2 I searched and finally found one Jekyll plugin that created the monthly archive pages. After playing around with it some time I succeeded to add the overview to it. Unfortunately that plugin didn’t work with Octopress 3 and the newest Jekyll. Luckily while browsing the list of Jekyll plugins I found one that did most of what I needed: jekyll-monthly-archive-plugin. After reactivating my dormant Ruby knowledge and trying around, I succeeded to make it do what I wanted. There surely is a more elegant way to do it, but here it is for anyone interested. You just need to put {{"{{ site | archive_block "}}}} somewhere you want that archive overview block to appear.

I’ve been using Octopress 3 for nearly 8 months now. Sometimes when I update the Octopress gems, something breaks, but the developers of it are usually fast at finding and fixing the problem. If it takes them longer I always can go back to the last collection of Ruby Gems that worked as I use git to keep the history of all changes I make to it.

South of the Border, West of the Sun

| Tags: book, fiction

After more than half a year, it’s again time for a book by Haruki Murakami today. One surprising aspect of “South of the Border, West of the Sun” is that it doesn’t contain any fantastic elements. There are no weird parallel worlds, no talking cats and also no strange sheep men.

This book is rooted in the world of here in Japan of the eighties. It’s a story about a man and his different relationships with women. It starts in his childhood and ends in his adulthood.

After reading it, I felt oddly reminded of “Old Boy”. The book is different. The pain inflicted and the vengeance — if it really is vengeance at all — is different, but somehow the feeling of sorrow is very similar.

It’s a book that lives in its dialogues. In that way it reminds me of another favorite Murakami book “After Dark”. Like “After Dark” it’s also a rather short book. So it’s a nice fast read that doesn’t branch out into any side narratives.

Space Primacy

| Tags: app, game, dev, ios

Coincidentally at the time I was thinking about what new endeavors to undertake, Apple announced its new programming language Swift. Swift looked fresh and exciting and it didn’t have those square brackets that somehow always got in the way. So I dived into the new material and started learning Swift.

Then I got that crazy idea about developing a game. Probably since getting my first computer and playing “Digger” and “Duke Nukem” on a CGA monitor attached to an MS-DOS PC, I’ve been thinking that developing a game would be quite cool. But somehow I never got beyond programming some animations.

Looking at the games I played on my iPhone and iPad, I realized that there is just one that I keep returning to. That game is Letterpress. The reason for my sticking to this game is that it is a turn-based strategy game I can play against random opponents via Game Center. There’s no need for finger acrobatics and no timer ticking away on you. And although the game has rather simple rules it’s always new as you play on a different board against different people.

So I wanted to create something of that kind. The barriers looked quite surmountable. Game Center provides the whole networking layer and SpriteKit is a nice and simple game engine.

Looking around the internet, I came across a description of a board game that looked perfectly suitable for an adaptation as a game for the iPhone and iPad. It has interesting rules and the board is dynamic in a way that it can be laid out perfectly on any of the different iPhone and iPad screen sizes.

8 months later we’re here and Space Primacy is available on the App Store. As the packaging tells , it’s a turn-based strategy game for two players. Your goal as a player is to assert your space primacy — that’s where the name of the game comes from. Each match is played in a different galaxy and to win it you have to either destroy the headquarters of you opponent or expel them from it. There’s no diplomacy. It’s all about winning a war. So it’s down to tactics and a good portion of economics.

Apart from the mentioned online matches via Game Center, there are also two modes for local matches. There is one local mode for when you are on a train with your opponent or otherwise sit side by side on a sofa or something like that, passing the iPhone between the two of you for each turn. In that case Space Primacy rotates the board so you don’t need to rotate the device between turns.

The other mode is the classic board game mode where you and your opponent sit across from each other with the iPad or iPhone on a table between yourselves. Neither the device nor the board needs rotating and both players have optimal access to the controls needed to issue commands to their space ships.

As I dislike ads and freemium apps that nag you to buy another chest of gold, Space Primacy has neither. It has a price and if you pay it, you get all of it.

And here’s the magical last sentence: I hope you’ll enjoy playing it as much as I enjoyed developing it.