Author: Fabio T.

Gamedev-themed game plays with the minds of “pirates”

Just beautiful – read the story. I might buy the game (although not my genre) just because of this.

What happens when pirates play a game development simulator and then go bankrupt because of piracy?

Review: “Morningstar” by David Gemmell

MorningstarMorningstar by David Gemmell

My rating: 2 of 5 stars

This is somewhat bittersweet for me. I love David Gemmell and I longed to enjoy one of the few of his work I haven’t read yet, but it proved to be a discordant note instead, almost unsettling.

Firstly, I must say it’s strange that it comes after Legend and Knights of Dark Renown: both are much better, in my opinion. This “feels” like a first novel, and a bit unpolished at that.

Then, he used first person POV, unlike all others that I’ve read. I think he’s much better at third person POV.

Don’t get me wrong, it’s still a Gemmell’s story. You have the archetypes you are used to with DG’s work: the large, good-natured, axe-wielding man (but without the wisdom and charisma of Druss); the excellent swordman, sly and antihero-ish (but in no way as deep as Skilgannon or Rek or even Groundsel!); the crone, very powerful (but Hewla is a much more interesting character, although on the other spectrum of the good-evil axis); the bard (but do we want to compare Owen to Sieben?!).

And also most of DG’s themes: redemption; the reality of heroism, courage, cowardice; the “banality of evil” of most men, and the extreme wickedness of a few that needs to be fought despite all odds; etc.

But the execution does not live up to DG’s standards. It felt wrong somehow, as if not written by him or not edited appropriately or if a much earlier, inexperienced work. I don’t know.

My only advice is: if you don’t know DG, DON’T START WITH THIS. Start with “Knights of Dark Renown”, or “Legend” or “Waylander”.

View all my reviews

Lethetic and Alethetic: two sides of Fantasy

Learned a new word today. Actually, two.

  • Lethetic: failing to mirror reality, therefore purely escapist or nonsensical.
  • Alethetic: non-lethetic, therefore mirroring reality, often indirectly (e.g., allegories).

These two terms are now very dear to me – this is because they map, in my opinion, two different types of Fantasy literature that I have encountered but didn’t have the right words to categorise (apart from crappy vs good – not very articulate, wouldn’t you agree).

Lethetic fantasy, for me, would be a shallow type of reading: maybe even well written and with a good story, but it’s unlikely it will stick in my mind, or warrant a re-read. The cycle of Landover from Terry Brooks would probably fit the bill, apart maybe from the first book, as well as quite a few bestsellers (that’s the sad part). Plus a huge amount of self- and traditionally- published books that don’t achieve any renown.

Alethetic fantasy would be a book that has something to say, that tries to uncover (through the mind of the author) an aspect of reality. We’d probably be better off reading an essay to get an academic sense of a political, sociological, anthropological aspect of humanity. But fiction reaches deeper within. Studying the Problem of Evil is all good, makes for a tedious (if intellectually challenging) effort. Reading a book that allegorically shows the different arguments within the Problem and their real-world consequences would hit much closer to the target – and it’s also, usually, much more memorable. It stimulates our emotional intelligence and only later our rationality – exactly the opposite of academic writing. A clear, well-known example of this type of fantasy is Tolkien’s LotR of course, but also LeGuin’s Earthsea and many, many others.

In this context, new fantasy readers would do well to focus their efforts on the second type – notwithstanding the need for a good story, or the read would only be boring (better an academic essay, at that point).

If you thing fantasy literature is shallow and childish, you probably have only read lethetic books. Please do some research and find something better in the alethetic category. It’s worth it.

Review: “Imago Mortis” by Samuel Marolla

Imago Mortis (ITA)Imago Mortis by Samuel Marolla

My rating: 4 of 5 stars

Note: I actually read this book in italian, but it’s available in english too.

TLDR: A small book, can be read in a few hours – better if all at once, snorted up like the ashes Ghites is addicted to. Absolutely recommended even if you are new to the hard-boiled/noir genre, but don’t mind a little creepiness.

The first 2/3 of the book got me completely hooked up with its great pacing, the unbelievably vivid depiction of modern Milan and its underground “bestiary” – and with the basic premise of this work which I find very original. Although I have to admit I’m not a fan of the genre, so take that comment with a grain of salt.

The book lost some of that juice in last third, where it gives some weak, kind-of-sciency description of what Ghites thinks he’s doing and a non-supernatural scene which I found too unrealistic and stretched. I think the book would have gained from a bit more supernatural and a bit less tentative fake-science, but that’s me.

Despite this, I still enjoyed it to the end and couldn’t stop reading. I’m actually quite sad it’s a one-off. It’s a pity Acheron Books doesn’t like book series – I could see this being a creepy series of “detective” stories, and would surely buy them.

View all my reviews

How to compile Ncbi IgBlast with GCC >= 5.X

If you are trying compiling igblast from sources and get this error:

configure: error: Do not know how to build MT-safe with compiler /usr/bin/g++  5.2.1

the fix is very simple. Open the file src/build-system/configure and search for this section:

if test "$GCC" = "yes" ; then
   compiler_ver="`$real_CXX -dumpversion 2>&1`"
   case "$compiler_ver" in
     2.95* | 2.96* | 3.* | 4.* )
                 WithFeatures="$WithFeatures${WithFeaturesSep}GCC"; WithFeaturesSep=" "

What it does is it checks that GCC has one of the specified versions, including any version 3 or version 4. No version 5, sadly.. so just change the following line:

2.95* | 2.96* | 3.* | 4.* )


2.95* | 2.96* | 3.* | 4.* | 5.* )

Now save and go back to the release/ directory, and run the usual ./configure && make && sudo make install command.

Short C++ remainder on passing objects to functions

Suppose you have an Object class. You instantiate three objects locally:

Object o1, o2, o3;

Then you have a function:

void f(Object o1, Object &o2, Object * o3);

This summarises the three ways you can pass an object to a function: by value, by reference and by reference via a pointer (let’s call it for simplicity call by pointer). Say you call the function like this:

f(o1, o2, &o3);

Inside the function, you may access these objects’ fields like this (note o3):

o1.x  += 3;
o2.x  += 3;
o3->x += 3;

These are the take home messages:

  • [Call by value]: o1 is going to be copied inside the function f, then after f returns the copy is going to be destroyed. This means that any changes made by onto o1 are not going to be visible outside fIn addition to being unsuitable to persist changes, the copy overhead can be very deleterius in certain high-performance applications – however, there is no access overhead.
  • [Call by reference]: o2 is NOT going to be copied, so any changes made to o2 inside f are going to remain even after f returns. This is very efficient: no copy and methods/fields have no access overhead.
  • [Call by pointer]: you are actually passing a pointer to o3 to f, so to access the objects’ fields and methods you need to dereferentiate every time (using the -> operator). This makes it averagely efficient: no copy but access overhead.

It’s clear that, even when you don’t actually need to modify an object, call by reference should be your default approach.