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.

The Great Gatsby

| Tags: book, fiction, classic

Here’s another literary classic. In some article on Quora someone claimed “The Great Gatsby” to be a great and beautiful book that anyone should read.

I’ve watched at least two movie adaptations of this book. The latest one with Leonardo DiCaprio was quite good. The book is a short one and as it is a classic from 1925 I grabbed a free Kindle edition of it.

It is a heartbreaking story of a poor man who falls in love with a woman from a rich family. He disappears for some years, earns some medals in the first World War and tries very hard to earn enough money to be worthy enough to marry his love. Unfortunately she gets bored and marries a rich man before Gatsby, the poor boy turned rich gentleman, can return and ask her to marry him. He tries to make her leave her husband, who’s having an affair with another woman, but fails. The moral of the story is that the rich destroy the lives of the poor without noticing or even caring.

I was a bit disappointed by the book. I had expected a deeper experience. The book didn’t add anything that might have been missing from the movies. There were no deeper explorations of the inner workings of the protagonists. The whole book felt somehow superficial. But somehow this superficiality is true to the story about people living their superficial lives and looking at the rest of the world from a superior position that prevents them from seeing any details.

So while I didn’t like that book much because I couldn’t submerge myself in its story, I think, the author — F. Scott Fitzgerald — succeeded to convey how a snobby upper class looked at the world around them in the early 20th century. From that point of view, the book is interesting and it stirs some emotions of sorrow for the poor ones and contempt for the careless ones.

Flatland

| Tags: book, fiction, classic

“Flatland – A Romance of Many Dimensions” by Edwin A. Abbott is one of the strangest books I’ve read to date. It’s also an old book from 1884, but I only recently learnt about it in an article about the movie “Interstellar”.

When it first was published the author used the pseudonym “A Square”. It’s a rather short book of — depending on publication — a bit more than 100 pages. In the first third of the book the square describes how life looks like in Flatland, which is a world of two dimensions.

The inhabitants of Flatland live in strict hierarchies. The circles are at the top and triangles with non-equal sides are at the bottom. Even below them in the hierarchy are the lines, which are the women of Flatland, who are said to be brainless because they have no interior. Many of those hierarchical descriptions are strange to us now and the low regard of women seems outrageous, but apparently it reflects the situation as it was at the time the book was written.

More interesting than the hierarchies is the way the inhabitants of Flatland live. As they live in a world of two dimensions, a square that meets a pentagon doesn’t see that it meets a pentagon. It only sees a line. Because conveniently there is always some kind of fog in Flatland, the line has different levels of brightness and those higher in the hierarchies can infer from those patterns what they are seeing. Those of lower positions must feel each other to recognize the angles of the other inhabitant.

So that’s really strange, but the square also visits Lineland, which is a world of one dimension, and Pointland, which is one of no dimensions.

But actually the core of the book is when a sphere from Spaceland visits the square and tries to tell it about it’s own world of three dimensions. That’s really quite a bit of an undertaking. It’s probably as hard as if someone from a world of four dimensions would try to explain that to us.

So the connection to “Interstellar” is this difficulty of grasping a higher dimensionality than the one we are living in. The iPad-app “The Fourth Dimension” does an amazingly good job of explaining the geometrical aspects of the fourth dimension in terms of the three we are acquainted with, by the way.

But the book is more than a treatise on different levels of dimensionality. It also shows how hard it is to accept new ideas and facts and how those who try to convey them are often faced with hardships.

There is no real story or adventure in this book. There’s no red thread that will captivate you from the start till the end, but just coming up with those ideas about Flatland, Spaceland and the others is mind blowing.

So while not for great storytelling, this books gets full marks for inventiveness.