Planet Exherbo

May 21, 2019

Wulf C. Krueger

May 16, 2019

Wulf C. Krueger

Eleanor Oliphant Is Completely Fine, by Gail Honeyman

I was fine, perfectly fine on my own, but I needed to keep Mummy happy, keep her calm so she would leave me in peace. A boyfriend—a husband?—might just do the trick. It wasn’t that I needed anyone. I was, as I previously stated, perfectly fine.


Eleanor Oliphant most certainly is not fine.

Unless, maybe, Honeyman has read Louise Penny’s brilliant mysteries, among them “Dead Cold” (also published as “A Fatal Grace”) and actually means FINE (she even uses this term in all-caps herself) which stands for “Fucked up, Insecure, Neurotic and Egotistical”. That’s part of what Eleanor is.

I’ve read this book is about loneliness and, yes, it certainly is but it’s so much more – depression, childhood abuse and recovery.

Eleanor goes to work, trying to avoid any non-essential contact with her co-workers or, in fact, any human being for that matter. She relies completely on her routines (“I sat down and watched television alone, like I do Every. Single. Night.”) and abhors any deviations. Whenever she starts to actually experience feelings, she drowns them in Vodka. Suddenly and by pure chance, Raymond enters her life and Eleanor realises there should be more in life than routine.

This is not a romance, though. It’s not a “funny” book as such either – even though it has plenty of humour.

After much reflection on the political and sociological aspects of the table, I have realized that I am completely uninterested in food. My preference is for fodder that is cheap, quick and simple to procure and prepare, whilst providing the requisite nutrients to enable a person to stay alive.

The humour is always laced with Eleanor’s immense pain from which she is hiding; albeit not very successfully because you can’t “escape or undo” your past, nor can you just shed it:

The past could neither be escaped nor undone. After all these weeks of delusion, I recognized, breathless, the pure, brutal truth of it. I felt despair and nausea mingled inside me, and then that familiar black, black mood came down fast.

We are all defined by our past; what was done to us by our parents, by siblings, other relatives or other people we love(d). Since none of us are perfect, it follows that everyone will at least make mistakes. I made and still make mistakes raising my kids. I’m just trying to make my mistakes with as much love as possible.

Most of us can deal with what we experienced; some of us – yours truly included – just like Eleanor need help dealing with our past and we must learn to live with ourselves and our demons.

This “universal brokenness” is probably the reason this book is deservedly as popular as it is: We can relate to Eleanor because we at least recognise a few of her “eccentricities”. The consistent way she narrates her own story, her complete, disarming honesty even at the expense of her own dignity at times, makes her human.

The more Eleanor tells us about herself, the more she lets small remarks slip that are revealing with respect to her abusive “Mummy” and the one incident that forever changed her life. The further we get the bolder Eleanor becomes and she gets ready to face the truths she needs to confront to get better and once she has crossed the Rubicon, there’s no holding her back:

I was ready. Bring out your dead.

Until that point, though, it’s a struggle for Eleanor and it was sometimes a struggle for me because I so badly wanted her to get better and at one point, I realised I rooted so much for her I just had to have a happy ending or be crushed.

How can someone survive a mother like Eleanor’s? The conversations with her are written in a way that gave me the creeps; they start out relatively normal, harmless and even – in a few instances – positively…

You wouldn’t understand, of course, but the bond between a mother and child, it’s . . . how best to describe it . . . unbreakable. The two of us are linked forever, you see—same blood in my veins that’s running through yours.

… it already started sounding slightly weird here but it quickly escalates much further…

You grew inside me, your teeth and your tongue and your cervix are all made from my cells, my genes. Who knows what little surprises I left growing inside there for you, which codes I set running? Breast cancer? Alzheimer’s? You’ll just have to wait and see. You were fermenting inside me for all those months, nice and cozy, Eleanor. However hard you try to walk away from that fact, you can’t, darling, you simply can’t. It isn’t possible to destroy a bond that strong.

Eleanor “fermented” inside her mother – what a horrible thought! And, yes, even such a deprecating bond cannot completely be destroyed. We just have to learn to live with it.

That Eleanor is still a functioning – albeit damaged – human being after all that makes us admire her and her humanity. All the more so as we only learn the entire horrible truth bit by bit (“I was normal-sized and normal-faced (on one side, anyway).”): In her developing companionship with Raymond, Eleanor slowly realises there’s more to life and seeing how she works her way back into a more “normal” life is moving and enjoyable.

It’s never kitschy or soppy because her honesty (and often: bluntness) is very refreshing. Especially due to the fact that she knows full well that she’s not really fine:

You’re a bit mental, aren’t you?” she said, not in the least aggressively, but slurring her words somewhat. It was hardly the first time I’d heard this. “Yes,” I said, “yes, I suppose I am.

At other times I wanted to shout at her, e. g. when she decides a random good-looking guy will save her. By means of a partner, she intends to “reassemble”, to reinvent herself and make the “Eleanor pieces” fit – which can’t ever work that way.

You might not like Eleanor, maybe even loathe her for her constant denial, for her “weakness” or maybe you love her for her strength and her ultimate refusal to give up. Either way, you cannot be indifferent to her because she feels completely real. She could be your weird colleague, your rarely-seen neighbour.


All of this combined with Honeyman’s wonderful writing style, and the ending that is exactly as it should be, won this book a place among my favourites of all time.

Only a few days ago I read “Kaffee und Zigaretten” by Ferdinand von Schirach who wrote in that book “We’re looking for the books written for us.”.

I couldn’t agree more.


P.S.: To my Maria: If you ever read this, SvF, please know that I’m deeply grateful for all your help and let me quote Eleanor herself:

I felt very calm. “Essentially, though, in all the ways that matter . . . I’m fine now. Fine,” I repeated, stressing the word because, at last, it was true.




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at May 16, 2019 03:00 PM

May 11, 2019

Wulf C. Krueger

Kaffee und Zigaretten, von Ferdinand von Schirach

Die Würde des Menschen ist die strahlende Idee der Aufklärung, sie kann den Hass und die Dummheit lösen, sie ist lebensfreundlich, weil sie von unserer Endlichkeit weiß, und erst durch sie werden wir in einem tiefen und wahren Sinn zu Menschen.


Zu Ferdinand von Schirach kam ich über sein Buch “Verbrechen”. Irgendwo stolperte ich über den Namen dieses Buches und natürlich kannte ich die Familie von Schirach aus der deutschen Geschichte. Ferdinand von Schirach selbst war mir jedoch kein Begriff und so googelte ich ihn und fand schnell heraus, daß er der Enkel Baldur von Schirachs ist, des “Reichsjugendführers” im nationalsozialistischen Deutschland.

Nun ist der Nationalsozialismus ein Thema, das mir persönlich sehr wichtig ist. Ich bin 1975 geboren und so ist es vollkommen klar, daß ich keine Schuld an den Verbrechen der Nazis trage.

Ich bin aber in Deutschland als Deutscher geboren und so trage ich – mit allen anderen Deutschen zusammen – eine historische Verantwortung, die Geschichte nicht in Vergessenheit geraten zu lassen und eben keinen Schlußstrich oder ähnliches zuzulassen. Werden wir nämlich Geschichtsvergessen, tragen wir eine Mitschuld, sollte sich diese wiederholen.

Bis heute jedoch ist mir die “Motivation” für den millionenfachen Mord völlig unbegreiflich. Ich kann nicht nachvollziehen, wie es Menschen möglich war, sich an Planung und Umsetzung solcher Taten zu beteiligen bzw. diese gar zu beginnen.

Die Hauptschuldigen sind alle tot, die kleineren “Räder im Getriebe”, Hanning, Gröning und wie sie alle heißen, haben auch keine Antworten und die Angehörigen der Haupttäter schweigen zumeist.

So kam es, daß ich “Verbrechen” las, in der Hoffnung, mehr über Baldur von Schirach zu erfahren. In dieser Hinsicht wurde ich enttäuscht. Allerdings zog mich der Stil Ferdinand von Schirachs, seine unemotionale Erzählweise und seine Themen sofort in seinen Bann, in dem ich bis heute dankbar gefangen bin.

Ich habe seither alle Bücher von Schirachs gelesen und er gehört für mich zu den großen Autoren des noch jungen 21. Jahrhunderts. Das Rechtsverständnis und –Empfinden eines Ferdinand von Schirachs und der zugrundeliegenden Ideen sind unwahrscheinlich menschlich und menschenfreundlich, ohne dabei rührselig oder emotional zu werden. Das Recht wird als unveräußerliches Gut, das einem jeden Menschen zusteht, wahrgenommen.

Persönliches bleibt allerdings bei von Schirach nahezu vollständig außen vor. Es kommt, wie Privates, nicht vor. Das ist nicht schlimm, denn seine Bücher “sprechen” für sich selbst und werden ihren Autor überdauern.

Dies sind die Prämissen aller Bücher von Schirachs – bis zu “Kaffee und Zigaretten”, dieser Sammlung von kurzen Erzählungen, persönlichen Erzählungen und winzigen Einblicken ins Private.

Stilistisch entspricht auch das vorliegende Buch ganz seinen Vorgängern – direkte, klar Sprache, unmittelbar erzählt, manchmal mit feiner Ironie und dezenten Humor “angereichert”.



In 48 “Kapiteln” ist natürlich nicht alles Gold, was glänzt: Nicht alle Kapitel haben mich angesprochen, manche haben mich gar ratlos (aber nie verständnislos!) zurückgelassen. Andere dagegen, z. B. Kapitel 18, in dem es um die Würde des Menschen und zeitlose Grundideen des Rechts geht, haben mich zutiefst berührt.

Nicht deswegen, weil diese Ideen so neu wären (im Gegenteil, manche sind 3000 Jahre alt, wie von Schirach selbst schreibt), sondern weil nur ein Ferdinand von Schirach es fertigbringt, diese Ideen so einfach, klar und direkt ins 21. Jahrhundert zu übertragen.

Wenn wir heute Minderheiten nicht schützen – ganz gleich, ob es Juden, Migranten, Asylbewerber, Homosexuelle oder andere sind –, fallen wir wieder zurück ins Dumpfe und Dunkle.

Auch die Analysen der früheren RAF-Verteidiger, Otto Schily, Christian Ströbele und Horst Mahler, sind äußerst interessant zu lesen…

Auf einer Tonbandaufnahme ist Schily zu hören. Er brüllt durch den Saal: »Wir führen gegenüber der Macht das Argument des Rechts ins Feld.« Ich kenne keinen anderen Anwalt, dem spontan solche Sätze gelingen.

… und von Schirachs Schlußfolgerungen ebenso zutreffend wie amüsant, so z. B. über Ströbele:

Ich würde ihm ohne Zögern meine Brieftasche und meine Wohnungsschlüssel anvertrauen. Aber Schily würde ich als Verteidiger wählen.


Vieles von dem, was Ferdinand von Schirach schreibt, trifft mich bis ins Mark – und in manchen Fällen, weiß ich nicht einmal wirklich warum. Vielleicht habe ich in von Schirachs Werk so etwas wie “Heimat” gefunden, passend jedenfalls wäre es:

»Fehlt dir das alles nicht?« Harold dachte nach. In seinem Gesicht sah ich jetzt den jungen Mann wieder, der er damals war. »Ich glaube nicht, mein Lieber«, sagte er nach einer Weile. »Nein. Heimat ist kein Ort, es ist unsere Erinnerung.«


Und auch über Baldur von Schirach schreibt dessen Enkel ein paar Zeilen, die in der Feststellung kulminieren, vielleicht sei er, Ferdinand von Schirach, “aus Wut und Scham über seine Sätze und seine Taten der geworden, der ich bin.

Ich jedenfalls bin sehr dankbar für die Literatur Ferdinand von Schirachs und bin ganz bei ihm, wenn er gegen Ende des Buches schreibt:

Wir suchen die Bücher, die für uns geschrieben sind.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at May 11, 2019 02:15 PM

May 07, 2019

Wulf C. Krueger

Repentance, by Andrew Lam

The fact that they had nothing to do with Pearl Harbor didn’t matter. They were guilty by association, by the color of their skin and the slant of their eyes. It didn’t matter that they didn’t speak Japanese, or that they were American citizens. The bottom line was that their kind had perpetrated a horrid crime that came from the land of their ancestors. The shame was a burden that all Nisei silently bore, a burden every soldier in the 442nd was fighting to be free of.


I got this book for free as a win from LibraryThing’s Early Reviewers program. Thanks!

“Repentance” tells the story of Daniel Tokunaga, a successful surgeon, who is confronted with his estranged father’s past during the Second World War. Daniel’s father is of Japanese descent and fought as part of the 442nd Infantry Regiment, the most decorated unit in U.S. military history.

During (mostly) alternating chapters narrating of 1944 (Daniel’s father and his best friend) and 1998 till 1999 we learn a lot about Daniel and his own family as well.

Even though Lam doesn’t have his own style, his writing is fairly well, at times very atmospheric and – in the respective context – mostly absolutely plausible and believable. Lam’s prose at times feels even poetic:

The house sucked up his voice, offered no return. […] The house was a time capsule. A grave, he thought. Even a clock’s tick would have been welcome music. The dead room gave Daniel the creeps. Inside, the distant pulsation of the cicadas felt far away. Inside, time had died—life gone elsewhere. Even the past had passed on.

Especially the war time perspective is brilliantly developed and I found ourselves immersed in the narration:

The horror of their situation now dawned on Ray. Unable to advance, unable to retreat, six guys left against four machine guns, one of which they couldn’t see but which could see them the minute they lifted their heads or stepped out from behind a tree.


Why then only three stars? There are two issues with this book: First of all, “Repentance” is missing the chance to tell the story of the 442nd – why did it become the most decorated unit? Why did those Nisei fight so valiantly? Lam could have elaborated on this beyond the rather simplistic direct answer he gives himself:

The fact that they had nothing to do with Pearl Harbor didn’t matter. They were guilty by association, by the color of their skin and the slant of their eyes. It didn’t matter that they didn’t speak Japanese, or that they were American citizens. The bottom line was that their kind had perpetrated a horrid crime that came from the land of their ancestors. The shame was a burden that all Nisei silently bore, a burden every soldier in the 442nd was fighting to be free of.

Especially in the light of Americans of Japanese descent being held in civilian internment under harsh conditions, why would people volunteer to fight and die for the country that did that to them? The book leaves us without even trying to explain that.

The story “Repentance” tells us is a powerful one and it would certainly have been possible to highlight the special challenges that the Nisei faced in the USA before, during and – in part at least – after World War II. I for one would have been interested to learn more about that.

In the author’s “Historical Notes” there is indeed additional information about the 442nd but it comes too late (it should have been interwoven in the story) and it’s too little to make any great difference.


The second issue I have is with Daniel, the protagonist, himself: When he learns about a family secret his father, Ray, has kept, Daniel is very, very quick to condemn Ray. No doubt, under the specific circumstances Daniel is sad and confused and he says so:

He closed his eyes and exhaled deeply. “I still can’t wrap my head around the stuff with my dad. It’s just so bizarre.”

That is wholly understandable and believable. Nevertheless, he completely condemns his father and is generally awfully quick to judge:

No wonder his father hadn’t wanted the government to investigate his medal. Because he hadn’t earned it…worse, he’d lied […]”

Not quite the next second but at most hours later, he clearly identifies with his father again:

Celeste, I would love to tell you about my dad. I’m very proud of him.

Daniel actually “oscillates” between blaming his father for everything gone wrong in both their lives and blaming himself. Both with equal vigour and both implausibly quickly, often in the course of hours:

As Daniel perused his dad’s archive of his life, he felt a deep sense of regret. Was it my fault for keeping us apart all those years? Was it me who robbed both him and my children of a relationship they could have shared? And Daniel realized, it was.

“No, Daniel”, I want to shout, “it’s at most partly your fault but mostly your father who tried to mould you into the unrealistic picture he imagined someone else would have been having of you.” (Yes, the convoluted wording has a very good reason.)

In the relationship between the parent and a child, it’s extremely rarely the child to blame for the major failures.

Neither is it possible for anyone burdened like Daniel to follow his wife’s – Beth – trivial advice:

You can do it differently. Start right now. Just start by being a person who’s not carrying a burden. Now that we know where that burden came from, why don’t you put it down and leave it there?

No, Beth, you can’t just put such a burden down and move on. If things were so easy, a lot of shrinks would be out of a job.


All in all, “Repentance”, in spite of the shortcomings I mentioned, is a well-written, interesting book that could have achieved more but can still be recommended to anyone with an interest in historical fiction and especially those interested in World War II.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at May 07, 2019 05:32 PM

May 03, 2019

Wulf C. Krueger

The Buried Giant, by Kazuo Ishiguro

That’s true, good lady, but then we boatmen have seen so many over the years it doesn’t take us long to see beyond deceptions. Besides, when travellers speak of their most cherished memories, it’s impossible for them to disguise the truth. A couple may claim to be bonded by love, but we boatmen may see instead resentment, anger, even hatred. Or a great barrenness. Sometimes a fear of loneliness and nothing more. Abiding love that has endured the years—that we see only rarely. When we do, we’re only too glad to ferry the couple together. Good lady, I’ve already said more than I should.


Axl and Beatrice, an elderly couple, live in post-Roman Britain. They – like everyone – are suffering from some strange memory loss that prevents them from recalling large parts of their lives:

Now I think of it, Axl, there may be something in what you’re always saying. It’s queer the way the world’s forgetting people and things from only yesterday and the day before that. […] Like a sickness come over us all.

Sometimes, though, either Axl or Beatrice do remember things from their past; just like one morning Axl remembers their son who has moved to a village not too far from their home. Not having seen him for many years, they decide to visit him. The entire book is basically about their journey and the people they meet.


This book is definitely not for the casual reader – you always have to read closely and attentively or you will miss a lot of small details that are not always of great relevance but which help form the “big picture”, e. g. we learn early on that Beatrice and Axl aren’t allowed to own and use a candle at their home. When they’re talking about a cloak much later on, we learn said cloak was one they “later we lost in that fire”.

Furthermore, the entire book can be read in a number of ways – as a somewhat simple story of the arduous journey of our elderly couple, or maybe that journey itself isn’t one of physical hardship but an allegory for their life together and the challenges they encountered.

Even individual encounters and deeds during the journey can often be interpreted in many ways. The more abstract interpretation is all the more plausible as the writing style is very formal, sometimes excessively so:

Master Ivor told us of it, and we thought it poor news to succeed your brave intervention.

Nobody – at least today – talks like that. While this is, undoubtedly, yet another means to achieve a feeling of estrangement, it is too much for me.

In addition to this strange formality, the narrator often doesn’t directly describe the landscape but how it could or would have been at the time narrated:

There would have been elms and willows near the water, as well as dense woodland, which in those days would have stirred a sense of foreboding.

This adds again to the feeling of estrangement from the literal story itself and makes it harder for me to actually enjoy the story. It distances the reader from the story and while that might be the right way if you only care about your art and not your reader, I didn’t like that.

I always felt like I was being led by the nose somewhere and tried to anticipate it. I felt like being manipulated to be “educated” and I didn’t enjoy it.


The weird forgetfulness everyone is afflicted by makes for very strange dialogue like this one:

“What’s this you’re saying, princess? Was I ever the one to stop us journeying to our son’s village?” “But surely you were, Axl. Surely you were.” “When did I speak against such a journey, princess?” “I always thought you did, husband. But oh, Axl, I don’t remember clearly now you question it. And why do we stand out here, fine day though it is?”

Uh, yes, and why are you tormenting us with repeating dialogues like that all the time?! It’s really truly annoying to have to keep reading stuff like that.

On the other hand, it’s the most important narrative feature of this book so I do understand the general need to make sure we fully understand it and its implications. Even more so since both Beatrice and Axl do remember additional fragments of memories whenever they talk in length about any given topic. Quite a bit of information is given in that indirect way.

Especially information that has been hidden before – because every character in this entire book is hiding things – some major, some minor – from everyone else. Sometimes with good reason, sometimes we simply don’t know and have to find our own answer.

Everything in this book is taxing like that, even down to the names of our heroes:

Beatrice literally means “she who makes happy” – and she is Axl’s one and only. The only person for whom he really cares and she makes him happy.

Axl means “father of peace” (or “father is peace”) and even that is quite fitting as we will learn late in the book.


The abbot will insist we carry on as always. Others of our view will say it’s time to stop. That no forgiveness awaits us at the end of this path. That we must uncover what’s been hidden and face the past. But those voices, I fear, remain few and will not carry the day.

While I was reading “Giant”, I constantly felt like the author was wagging his finger at me and lecturing me. Literature, to me, though, is not about lecturing. I want “my” books to entertain me, to make me think and question things but not by moralising, lecturing, finger-wagging but unobtrusively.

Maybe that’s too near to “edutainment” (which I have no qualm with) for some but that’s just the way I feel. I don’t like reading the old classics (Schiller, Goethe, etc.) either anymore – they’re just too far from my life and times.

“Giant” does read like such a classic or, possibly, a play:

Should I fall before I pass to you my skills, promise me you’ll tend well this hatred in your heart. And should it ever flicker or threaten to die, shield it with care till the flame takes hold again. Will you promise me this, Master Edwin?


At least a few amusing passages found their way into this book (possibly by accident!):

“Let’s come away, child,” Axl said. “This is no sight for you or your brothers. But what is it made this poor ogre so sick? Can it be your goat was diseased?” “Not diseased, sir, poisoned! We’d been feeding it more than a full week just the way Bronwen taught us. Six times each day with the leaves.””


Ultimately, though, “The Buried Giant” is lost on me due to its excessively allegorical nature and narrative complexity – if a book is so taxing, I can hardly enjoy reading it anymore, it’s simply too much for me. Maybe it’s Ishiguro handing us all the essential information to make up our own mind and come to our own conclusions and it’s just me.

I didn’t give up on this book but I’m giving up on its author for good.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at May 03, 2019 01:12 PM

April 29, 2019

Wulf C. Krueger

Relic, by Douglas Preston & Lincoln Child

Every sixty to seventy million years or so, life starts getting very well adapted to its environment. Too well adapted, perhaps. There is a population explosion of the successful life forms. Then, suddenly, a new species appears out of the blue. It is almost always a predatory creature, a killing machine. It tears through the host population, killing, feeding, multiplying. Slowly at first, then ever faster.


“Relic” was a fast and easy read: New York City’s Natural History Museum has already had its share of dark rumours about a “Museum Beast” when two kids are found brutally murdered in the basement of the museum. And further deaths follow…

Thus, Lieutenant D’Agosta from the local Police department takes the lead in the investigation, closely followed by FBI agent Pendergast from New Orleans who knows the killer’s modus operandi from a previous case.

Furthermore, there are Margo Green, a graduate student, preparing her dissertation, supported in both that and her independent investigation by Professor Frock, her wheelchair-bound mentor who is part of the higher echelon of the museum.

Soon, all of them will find out that sometimes the hunters turn into the hunted quickly…



So, why read this? Simple: After a long streak of taxing reads, I wanted something simple, something easy and satisfying and, depending on the kind of “easy” I want, this could be a murder mystery who-dun-it or, as I this instance, a fast-paced thriller.

In a thriller I’m looking for…

– Thrills (obviously!) – check!
– Suspense – check!
– Surprise (as I knew the 1997 film, there was less of it than I would have liked but:) – check!
– Excitement – check!
– Anticipation – check!
– Anxiety – check!

… and I got it all. Especially the flight through the basement and subbasement of the museum was farily great and I certainly didn’t expect the ending which differs somewhat from the film.

Thus, if you’re looking for an easy read with a lot of thrills, just grab a copy of “Relic”, turn the lights low and get reading!



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at April 29, 2019 10:15 AM

April 24, 2019

Wulf C. Krueger

No Exit, by Taylor Adams

Thrilling, suspenseful – and completely over the top


No great quotation comes to the rescue in this case which could actually be good because “No Exit” promised to be a fast-paced thriller with a highly interesting premise: Darby, a college student takes refuge in a rest/service area during a blizzard. There she meets four other travellers who are stranded. When she finds a girl, Jay, in a van in the parking lot, she knows she’s going to have an interesting night ahead of her…

It was all really happening, right now, in vivid color, and a little girl’s life was really on the line, and tonight’s title match would be between a sleep-deprived art student and a human predator.

This outset got my hopes up high – after several books that taxed capacity for prolonged complexity (especially during a holiday!) I just wanted some action-flick-look-alike of a book. And, admittedly, I got one. So, why only three stars out of five?

Well, worst of all: Pretty much every single plot twist was foreseeable. Early on I guessed at two completely different possible story lines but once the first “big revelation” about a certain relationship has occurred, it was rather obvious in which direction we were heading. Not that it was a completely bad idea but it has been used so often before, I was slightly disappointed.

My next gripe is with Darby, our “sleep-deprived art student”, herself: Not only is she fairly sporty, ingenious with improvised weapons, full of wild ideas (in the vein of “if I mix this, put something in the toaster and run fast enough…”), no, she is willing to sacrifice herself for a complete stranger. Oh, and she’s really fast or so she thinks:

She wondered — if he went for the .45 under his jacket, could she yank the Swiss Army knife from her pocket, retract the blade, and cross the room quickly enough to stab him in the throat with it?

Riiight…

Which leads me to another huge issue: Especially towards the end of the book, Adams goes bat-shit insane with his story. While I’m absolutely willing to suspend my disbelief there are so many totally crazy things happening that I just can’t help it and think it might have been better to just let the book end.

Last but not least, the gore: It was just as over the top at times as those crazy ideas I mentioned before. Yes, the perpetrator is a sadistic psychopath but there’s no need to describe in gruesome detail how he kills a certain person.


It’s sad so much went wrong with this book because at its core, it was a decent thriller and could have satisfied my needs for some shallow fast food entertainment. As it is, I’ll have to “cheat” and read another thriller before moving on towards deeper waters again.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at April 24, 2019 10:42 PM

Die Geschichte der Bienen, by Maja Lunde

Sie findet den Weg hinaus aus dem Flugloch, dreht eine Runde vor dem Bienenkorb, ehe sie allmählich den Abstand zu ihrem Zuhause vergrößert. Aber noch ist sie nicht bereit.


Ein weiteres Mal läßt mich ein Buch recht ratlos zurück: “Die Geschichte der Bienen” von Maja Lunde ist zweifellos intelligent, kritisch und zutreffend. Am Ende – und immer, wenn es auch zwischendurch “menschelt” – ist es auch ein kraftvolles und berührendes Buch.

Leider sind die Längen zumindest am Anfang spürbar: Bemüht erzählt Lunde in drei Zeit- und Erzählebenen von der Geschichte der drei Protagonisten, ihrer Familien und ihrer jeweiligen Beziehung zu den Bienen.

William, im Jahr 1852, ist mäßig erfolgreicher Saatgutkaufmann und Naturforscher, der – so meint er zumindest – seiner Familie seine Leidenschaft für die Forschung geopfert hat und daran zerbricht.

George, der vermeintliche Realist mit großen Träumen, der als Imker in den ländlichen USA lebt und arbeitet:

»Ich liebe Star Wars. Deswegen bin ich noch lange kein Jedi geworden.«

Tao, die Getriebene, die die eine kurze Stunde, die sie mit ihrem einzigen Sohn, Wei-Wen, am Tag verbringen kann, dafür nutzen möchte, diesem eine bessere Zukunft zu ermöglichen. Vielleicht tut sie auch zuviel des Guten; vielleicht tut ihr Mann, Kuan, auch zu wenig desselben – es muß offen bleiben:

Wir haben viele Stunden, da können wir einiges schaffen. Ich würde ihm so gern das Zählen beibringen«, erklärte ich.

Sicher ist nur: Wei-Wen ist der Schlüssel zur persönlichen Geschichte Taos und Kuans sowie auch zur übergreifenden Handlung.

Etwa die Hälfte des Buches wird aufgewandt, die Protangonisten, William, George und Tao, und deren höchst unterschiedliche Charaktere haarfein zu beleuchten. Hier ist es auch, wo ich deutliche Längen gespürt habe – das Buch “zieht sich”.

Allerdings auf unbestritten hohem Niveau – nie wird die Charakterisierung plump oder platt. Das Mißfallen, der sprichwörtliche “Kloß im Hals” auf eine vermeintlich schlechte Nachricht hin wird “traditionell” behandelt und verarbeitet:

Ich warf einen ordentlichen Speichelklumpen aus, und die Fliege verschwand, ich sah nicht, wohin, wollte ihren Weg aber auch nicht weiter verfolgen.

Auf diese eher indirekte Weise werden Denken und Handeln der Personen glaubwürdig und lebensecht. Das ist zweifellos ein großes Verdienst und erhöht die Wucht des machtvollen Endes.


Auch ein leiser, feiner Humor findet sich an vielen Stellen des Buches und ich fühlte mich auch immer mal wieder erinnert:

In mir kribbelte es vor Erwartung, denn jetzt ging es los, endlich ging es los. »Es gibt Essen!« Thildas Stimme zerschnitt das Summen der Insekten und schlug die Vögel in die Flucht.


Andererseits aber leidet das Buch zeit- bzw. zeilenweise an “Kalenderspruch-itis”:

Ich hatte geglaubt, mich entscheiden zu müssen, aber ich konnte beides in Einklang bringen, das Leben und die Leidenschaft.

Dieses Motiv wurde so oft verwandt, daß es sich mittlerweile vorwiegend klischeehaft oder – sofern intendiert – selbstironisch liest. Eine ernsthafte Verwendung wie hier – nein, das kommt deutlich zu spät.


Dennoch: Nach etwa der Hälfte des Buches wird direkter und unmittelbarer erzählt. Es wird vielleicht ein bißchen weniger reflexiv, dafür aber lebendiger, zeitweise wirklich mitreißend und spannend, teils interessant und sprachlich ausgesprochen schön und fließend.

Menschlich glaubwürdige Dialoge zeigen die Befindlichkeiten; auch im beinahe Banalen spiegelt sich Nähe wider:

Er feixte. »Lass mal hören, Papa. Wie ist das mit den Bienen und Blumen?« Ich lachte. Er auch. Das wärmte.


Leider bleibt es nicht immer beim Indirekten, bei der Kritik ohne den erhobenen Zeigefinger; manchmal, so muß man vermuten, meint Lunde auf uns “grobe Klötze” Leser mit dem “groben Keil” Moral direkt einhämmern zu müssen.

Sie wird dann belehrend und moralisierend, was diesem Buch nicht gerecht wird:

Er sah mich nicht an, redete einfach nur weiter, hob seine Stimme. »Du wirst auch wieder einen Kollaps erleben. Es wird wieder passieren.« Jetzt sprach er laut. »Die Bienen sterben, Papa. Und nur wir können etwas dagegen unternehmen.« Ich drehte mich zu ihm. So hatte ich ihn noch nie reden hören, ich versuchte mich an einem Lächeln, das zu einer schiefen Grimasse geriet. »Wir? Du und ich.« Er lächelte nicht, schien aber auch nicht wütend zu sein. Er war todernst. »Wir, die Menschen. Wir müssen etwas ändern. Darüber habe ich doch gesprochen, als wir in Maine waren. Wir dürfen dieses System nicht unterstützen. Wir müssen etwas ändern, ehe es zu spät ist.«

Ja, sicher, wir müssen etwas ändern, aber nicht demonstratives Aufbegehren oder – noch drastischer formuliert – Aufwiegelung wird da helfen. Die weitgehende Finesse eines Romans wie dieses jedoch schon eher.

Insbesondere dann, wenn die drei Erzählstränge des Romans am Ende miteinander verknüpft werden und das Schicksal der Menschheit anhand des Lebens dreier Menschen (oder eines Menschen, wie man es nimmt) erzählt wird.

Da nimmt das “Schicksal” massiv seinen Lauf und man gibt sich, vielleicht auch nur für einen Moment, der Hoffnung wider besseres Wissen hin, um wenigstens einen Moment länger (wieder) zu glauben, alles werde gut. Wird es nicht; für niemanden in keiner Zeitebene:

Da beugte er den Kopf vor, sein Gesicht zersprang, es löste sich gleichsam vor mir auf. Er stieß drei tiefe Schluchzer aus. Sein Körper brodelte unter meiner Hand.

Hier am Ende brilliert Lunde sprachlich wie erzählerisch und spielt ihre Stärke aus: Sie spielt mit unglaublichen Formulierungen. Tief bewegend und authentisch.


Am Ende bleibt ein wenig Hoffnung…

Wir drehten uns zum Bienenstock um, und so blieben wir Seite an Seite stehen und betrachteten ihn. Unsere Hände waren sich ganz nahe, aber keiner nahm die des anderen, wir waren wie zwei Teenager, die sich nicht trauten. Die Wärme zwischen uns war wieder da.

… individuell in allen Zeiten…


»Es war nicht deine Schuld, Tao. Es war nicht deine Schuld.«

… wie auch global für die Menschheit.


Genau das ist der Verdienst Lundes: Sie zeigt im Kleinen und auf der persönlichen Ebene die Gefahr, die Tragik, aber auch die verbleibende Hoffnung und Liebe auf, die uns alle, als Menschheit, bleibt und letztlich hoffentlich eint.

Wäre Lunde dies etwas kürzer und prägnanter gelungen, so wäre ich auf jeden Fall bei vier Sternen; so bleibt es bei dreien und der etwas vagen und bangen Frage, ob das Ende ohne die lange Einleitung in der vorliegenden Form funktioniert hätte.

Was meinst Du dazu?




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at April 24, 2019 07:58 AM

April 21, 2019

Wulf C. Krueger

The Song of Achilles, by Madeline Miller

IN THE DARKNESS, two shadows, reaching through the hopeless, heavy dusk. Their hands meet, and light spills in a flood like a hundred golden urns pouring out of the sun.

(The last sentence of the book, almost the only good one.)


I was expecting to re-learn my Greek classics, told with a modern voice in modern language. I expected tales of heroism, of the great Greek heroes like Odysseus, of the Trojan war.

What I got was a pale romance, lots of pathos and characters I couldn’t care for at all. Achilles almost always submits to his mother’s wishes, Patroclus is annoying and whiny and both fall in love with each other for no discernible reason whatsoever – unless you count Achilles’s feet…

His dusty feet scuffed against the flagstones as he ate. They were not cracked and callused as mine were, but pink and sweetly brown beneath the dirt.

Or Achilles’s feet… Again…

Up close, his feet looked almost unearthly: the perfectly formed pads of the toes, the tendons that flickered like lyre strings. The heels were callused white over pink from going everywhere barefoot. His father made him rub them with oils that smelled of sandalwood and pomegranate.

Yes, feet and lots of them…


Everything else takes a backseat compared to the romance parts which simply bored me almost enough to put this thing away for good.

Because, honestly, I don’t like nonsense like this:

As for the goddess’s answer, I did not care. I would have no need of her. I did not plan to live after he was gone.

And whenever something threatens to happen in this book, e. g. for pretty much the first time after 50% (!) of the entire book…

The drums began to beat, and the oars lifted and fell, taking us to Troy.

… the chapter ends and the next one starts…

BUT FIRST, TO AULIS.

… with more stalling. The story never stands a chance against Miller’s prose, it drowns before ever flourishing. It almost feels like Miller is doing it on purpose and mocking us:

It was easy, in those moments, to forget that the war had not yet really begun.

Because we can’t ever forget that STILL NOTHING HAPPENED. Even the rare fighting scenes are incredibly boring and full of… feet!

I could not even see the ugliness of the deaths anymore, the brains, the shattered bones that later I would wash from my skin and hair. All I saw was his beauty, his singing limbs, the quick flickering of his feet.

And what do we get at the end about the legendary Trojan War?

THE PROPHECY TOLD TRULY. Now that Pyrrhus has come, Troy falls. He does not do it alone, of course. There is the horse, and Odysseus’ plan, and a whole army besides.

Wow. Just wow. How do you get to write so incredibly boring and be celebrated for it?!

I’m certainly not going to waste more time on Miller’s books.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at April 21, 2019 07:44 AM

April 17, 2019

Wulf C. Krueger

Age of Legend, by Michael J. Sullivan

Time had sneaked in and stolen her recklessness.


Michael J. Sullivan has done it again: He has written a book that doesn’t need to hide behind any other work in contemporary fantasy. His latest masterpiece, Age of Legend, the Kickstarter of which I had the honour to participate in, begins after the Battle of Grandford at the end of the previous book, Age of War.

This makes “Age of Legend” the fourth book in Michael’s “The Legends of the First Empire” series which I whole-heartedly recommend to, well, actually anyone who reads. (In fact, my wife isn’t really into fantasy but thoroughly enjoyed Michael’s Riyria books.)


I already wrote it in the review for the previous book but this latest instalment solidifies this feeling: More and more, “Legends” turns into Michael’s magnum opus. The Riyria books, which are fairly different from Legends, are undoubtedly great but the narrative depth of Legends is absolutely remarkable.


Michael gets pretty much everything right and this starts even before the actual book with his “Author’s Note”:

Now, there are a few things in this second half that I’ve done differently than my other books, and I want to warn you about them in advance.

This is expectation management done right – before we even get started Michael informs us about what he has done differently. I love his transparency.

The main part of the book again takes us to the war of the Rhunes against the Fhrey and lets us accompany our heroes Persephone, Suri, Brin, Gifford and the others in their global as well as their personal struggles. True, some of them take a backseat compared to the earlier books but to me at least this feels completely natural – there’s so much story to tell that the narration has to concentrate on slightly fewer characters. Some of them grow far beyond what I expected (and they themselves!) and some fall short of their own expectations.

Michael is a master of characterisation, though, and consequently, those characters he focusses on truly come to life and “feel” real, alive. Literally nobody here is perfect, none of them are spotless white-vested heroes. As do we all, our heroes struggle – against their own fallibility, their doubts and, of course, an enemy who considers them animals.

Among all the considerable developments in this book, Michael never loses his touch for careful world building, e. g. a very simple question…

I noticed a number of carts being lashed to horses outside. What’s that all about?

… leads us to the invention of chariots. Just as in the earlier books this is executed brilliantly.


And while all this plays out about 3000 years before Riyria and, thus, long before our time, Michael carefully makes us think of contemporary challenges but never preaches or lectures us:


The dwarf?” Malcolm paused and thought a moment. “Well, I wasn’t referring to him specifically. But now that you bring it up, I should point out that you run the risk of painting a whole race with the same ugly brush, which could have unexpected consequences in the future.


I think Michael’s greatest gift and the key to understanding his work but especially “The Legends of the First Empire” is his empathy. The downtrodden, the despised – however deserved that may be – are not beyond redemption. This deeply human attitude is part of what makes me love his books:


Empathy—the ability to understand and appreciate the feelings of others—is the cornerstone of civilization and the foundation of our relationships. Lack of it . . . well, lack of empathy is as close to a definition of evil that I can come up with.


In the beginning, I already referred to Michael doing Kickstarter projects for his latest works (and even this he does pretty much perfectly).

Kickstarter projects are great for this kind of stuff – the author finally gets more than just a meagre share of the proceedings and we, the readers, get to read the book earlier at the very least and, if committing by pledging higher amounts, lots of other goodies. I certainly wish more authors would make such good use of Kickstarter.


So, if you’re into fantasy go ahead and read Michael J. Sullivan’s fantastic books!




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at April 17, 2019 05:51 AM

April 13, 2019

Wulf C. Krueger

The Silent Patient, by Alex Michaelides

I didn’t know it then, but it was too late—I had internalized my father, introjected him, buried him deep in my unconscious. No matter how far I ran, I carried him with me wherever I went. I was pursued by an infernal, relentless chorus of furies, all with his voice—shrieking that I was worthless, shameful, a failure.

but

It’s not hopeless. You’re not a boy at the mercy of your father anymore.


It all started out so well: The narrator, Theo Faber, is a psychotherapist who goes out of his way to help Alicia, the “Silent Patient”. Alicia has been put into a psychiatric hospital after her husband was murdered with her standing next to him, the weapon at her feet. She refuses to (or can’t) speak at all.

Theo himself is damaged as well by an overbearing father who has always made him feel insufficient, worthless and a failure (cf. opening quotation). He feels like he’s pretty much the only person on earth who can help Alicia find her voice – metaphorically and literally – and so he sets out to help her.

The setting I described above intrigued me – it sounded exciting and promised suspense and I strongly related to Theo with whom I felt I shared some “history”.

Psychotherapy had quite literally saved my life.



The entire first part of the book struck me deeply and the narrative “vibes” resonated within myself:

I could feel myself thawing in the heat, softening around the edges, like a tortoise emerging into the sun after a long winter’s sleep, blinking and waking up. Kathy did that for me—she was my invitation to life, one I grasped with both hands. So this is it, I remember thinking. This is love.

I vividly remember a few situations (e. g. the restaurant in Amsterdam, C., where they “shot” me 😉 ) with my wife of almost 20 years now that triggered similar feelings and reminded me of similar experiences.

About love. About how we often mistake love for fireworks—for drama and dysfunction. But real love is very quiet, very still. It’s boring, if seen from the perspective of high drama. Love is deep and calm—and constant.

These “autobiographic connections” and the expectations they raised are, undoubtedly, part of why I feel so let-down by and disappointed in this book.

Soon, though, there were discordant tones within the narration that had rung true so far:

I wanted to reach out and pull her close. I wanted to hold her. But I couldn’t. Kathy had gone—the person I loved so much had disappeared forever, leaving this stranger in her place.

This is quite obviously delusional – Theo simply confuses his picture of Kathy with the real person. Sure, this is certainly a literary device but crudely wielded and, thus, it annoyed me slightly in the beginning.

Later in the book, Theo’s own issues become even more prevalent and, to me at least, more and more annoying. They escalate in their narrational crudeness as well:

Perhaps he wasn’t human at all, but the instrument of some malevolent deity intent on punishing me. Was God punishing me?

What?! Yes, sure, whatever…

Spoiler title
There are quite a few characters as well who take quite some space in the book but never really get used: There’s Jean-Felix, a caricature of a gallery owner and Alicia’s friend, there’s her brother-in-law, the latter’s wife, Tanya (his assistant, how cliched is that…), Alicia’s cousin Paul and others who pretty much all have something to hide or to be embarrassed about but who only ever serve as a means to an end – to distract us, the reader, from the simple truth which you begin to sense early on and which leads to “the big twist”.

Some characters, like the hospital’s director, Diomedes, are pretty much caricatures of themselves, so shallowly are they depicted.

On the other hand, Michaelides does get a few things right: Short, engaging chapters that keep you glued to the book (“just one more chapter and then I’ll sleep!”), inserting excerpts from Alicia’s diary helps as well and all in all, it’s still an interesting read – at least in the beginning.

The middle parts of the book are rather slow and uneventful. Lots of stuff is going on but only few things happen that actually drive the story forward. Towards the end, things are being rushed and the story, after “the big twist”, deflates as quickly as a punctured balloon.

Ultimately, this book has good ideas and an interesting premise but it feels sensationalist and simply can’t live up to the hype that’s been generated about it. Alex Michaelides is, first and foremost, a screen writer and it definitely shows in this book.

View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at April 13, 2019 12:40 PM

April 09, 2019

Wulf C. Krueger

The Bones She Buried, by Lisa Regan

“A completely gripping, heart-stopping crime thriller”


Nah, it’s not, just joking. This is just an annoying trend (lately?) to add such marketing bullshit to the title of any books feared not to sell otherwise – or so it seems.

“The Bones She Buried” is, of course, neither completely gripping nor, fortunately, heart-stopping. It’s pretty much a bog-standard police procedural featuring Josie Quinn, a thirty-something (I guess?) police detective in Pennsylvania (which doesn’t matter at all because the setting is usually completely generic), who is investigating for the fifth time now with the usual staff who, so far, “covered cases so shocking and high-profile, they’d made national news.

And, of course, Josie will eventually “[unravel] a scandal so massive and so complex that it’s still sending shockwaves through not just the region but the entire nation.” And it all starts with the murder of someone close to her.

Honestly, all that thickly-applied pathos is not even necessary: Sure, Lisa Regan (whose surname I tend to “prominently” misspell) will never become a new Hemingway or Shakespeare. That’s just fine, though, because the “absolutely unputdownable” “crime thrillers” she writes as if there was no tomorrow, are entertaining, well-paced, sometimes amusing, and always suspenseful.

Compared to many other books, this is fastfood – best devoured quickly and in secret, feeling slightly guilty over the wasted hours but, ultimately, happy to have read something that entertained me without taxing me.

Well, at times things do get a bit… complex:

Josie’s ex-fiancé, Luke Creighton’s sister had a farm up in Sullivan County, so Josie had been there before.

Such things happen if you mass-produce like Regan (but at least I don’t have to wait long for each new instalment):



Vanishing Girls: A totally heart-stopping crime thriller (Detective Josie Quinn Book 1) Jan 17, 2018

The Girl With No Name: Absolutely gripping mystery and suspense (Detective Josie Quinn Book 2) Apr 19, 2018

Her Mother’s Grave: Absolutely gripping crime fiction with unputdownable mystery and suspense (Detective Josie Quinn Book 3) Jul 19, 2018

Her Final Confession: An absolutely addictive crime fiction novel (Detective Josie Quinn Book 4) Nov 28, 2018

The Bones She Buried: A completely gripping, heart-stopping crime thriller (Detective Josie Quinn Book 5) Mar 27, 2019



So, if you can enjoy a run-of-the-mill police procedural, you can’t go wrong with Lisa Regan.


View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at April 09, 2019 03:54 PM

April 07, 2019

Wulf C. Krueger

The Priory of the Orange Tree, by Samantha Shannon

“Margret,” he said, “you are my child. I forgave you all your sins on the first day of your life.”



This book has been lauded for a lot of things – supporting feminism, its share of LGBT characters, its absolutely gorgeous cover and I’m sure it would heal the Draconic plague as well were the latter real.

The problem is, though: This book is way too long. The entire first third of the book basically consists only of (court) politics and scheming. There is no real storyline to follow yet; it’s basically all just building up slowly to the real story which is all the more sad as behind all the convoluted, long-winded, stilted writing hides a decent (albeit not very original) story:

After a thousand years of imprisonment by our heroes’ ancestors, the “Nameless One” – a dragon – is going to return and wreak havoc all over the world. Few people know this secret and even fewer are prepared and willing to actually do something about it.

Tané, a young lowly-born orphan, wants to become a dragon rider of “the East’s” sea guard but hides many a secret herself, harbours self-doubt beyond any reason and is one of those glorious few who rise to the challenge and act.

Sabran is the queen of Inys, a part of “Virtudom”, a political and religious alliance based on chivalric virtues, both pretty much the religious and secular leader and – by religious doctrine – the final bulwark against the Nameless One’s return.

Ead is a spy from the eponymous Priory of the Orange Tree at Sabran’s court and the latter’s confidant. She’s a capable combatant, honourable and virtuous (in more than just name) and fairly ambitious, aspiring to rise (out of her murdered mother’s shadow to beat!) from her respected but lowly position to much more exalted positions in the priory, meanwhile protecting and counselling Sabran, battling the Nameless One and pretty much anything else that threatens her or her charge.

And Ead is pretty much the boulder upon which this book precariously rests – and remains standing albeit an avalanche of issues. In short: Ead rocks!



So, to quickly summarise: We have a time-proven (formulaic) plot of good versus evil, we have three young women who will have to rise and shine beyond anything they ever expected, we have chivalric values codified into religion which complicates an already complex court and we still have about 70% of the book ahead of us…



And I must not forget to introduce the last two narrators:

Niclays Roos, an aging alchemist, on the other hand is a scoundrel, a villain from the books (sic!), an opportunist of the worst kind. Having tried to find the formula for a potion for eternal life his whole life long, he has been banished from Virtudom because Sabran lost her misplaced belief in Roos. He’s willing to blackmail himself out of any situation and would pretty much sell his grandmother or his own soul if it gave him an advantage.

Last but not (quite) least, there’s Loth: Sir Arteloth “Loth” Beck is the proverbial knight in shining armour – good-natured, honourable, an embodiment almost of the chivalric virtues but, alas, pretty much hapless and forgettable. He’s a nice-to-have-but-expendable sidekick, reliable and more lucky than competent.

That concludes the story and the most important dramatis personae but don’t despair if you’re into complex settings – after all there are about (wait for it…) 130 characters in total you’ll read about.

The long-winded, stilted narration in the beginning and the complexity are in fact the most important issues that drag this book down. Yes, the plot is formulaic, yes, the characters are “somewhat” archetypical as well but – and this is why “Priory” still gets three stars from me – when Shannon overcomes her own inhibition to go beyond what she seems to feel are the limitations of her genre, you feel the raw potential of an author who needs refinement, who needs someone to encourage her to break free from convention.

Shannon already does this fairly nicely when it comes to her heroines: First of all, almost all major characters (and lots of minor ones) are female. Not the helpless “damsel in distress” kind either but the strong and independent kind. I like that. What I like even more about it is, that it is – mostly! –unobtrusive – I didn’t even really notice this until I actually thought about it analytically. Of course, I knew Ead (did I mention she rocks?) and Tané are young women but I didn’t really care at all – why shouldn’t women be heroic and protagonists in fantasy?

So, yes, Priory can be read as feministic but in the way I personally prefer – not artificially trying to make a political statement or to throw it in the reader’s face but to simply “organically” make the point.

Similarly, the LGBT aspect works well for me: The LGB (T is missing) relationships are mostly well-written and believable – at least the female perspective (which, naturally, eludes me to some extent) reads well and is intrinsically plausible. I’m not quite as convinced about the male perspective: We only get to witness Roos’s and Jannart’s (Roos’s dead nobly-born lover) relationship post-factum as Jannart has died years before the book even starts. To me, a bisexual man, while not outright wrong, the remembered interactions do feel a bit “off” but that could be me.

As well as with feminism, tolerance/acceptance/open-mindedness/you-name-it towards LGBT (which is one of two major topics in my life) isn’t asked for or forced upon anyone. On the contrary: The relationship between Ead and her lover develops believably (again, from a male point of view at least) and organically which I appreciate greatly.

And, still, “The Priory of the Orange Tree” is, sadly, not a great book albeit written by an author who has the potential for greatness.

Whereas other authors simply try to bite off too much for their own good and overexert their limited talents, Shannon does have the talent required to write a great tale but lacks in experience. Thus, she makes a lot of mistakes even beyond the length of her novel, like killing off characters without it making much of a difference to anyone:

“Forgive me,” he said thickly. “Forgive me, […].”

… says one of our protagonists after one such needless death and that’s pretty much it. The victim does get a few “honourable mentions” but his death changes nothing. Do not kill off characters without a good reason and without an important impact on either the story or another character. The death here does nothing of the kind.

At other points in the story, Shannon is needlessly gory in her story-telling, e. g.:

“A musket fired and blew her guts across the cobblestones.”

This is simply not warranted and often annoys me and turns me away from a book.

Similarly, in contrast to her afore-mentioned subtlety and sensitivity Shannon sometimes has a tendency to be too explicit or in-your-face-ish:

“Something was changing in her. A feeling, small as a rosebud, was opening its petals.”

At the point in the story this occurs, any even slightly sensitive reader will long have envisioned said rosebud themselves. We’ve just been witness to the change we’re explicitly being told about here so it would better have been left unsaid.

Another even more poignant example comes towards the end of the book where Shannon thinks she has to really spell it out:

“A woman is more than a womb to be seeded.”

Yes, any sane person knows that and – I’m sorry – those who don’t are beyond redemption anyway.



Anyway, before I fall prey to overstaying my own welcome, let me summarise: “The Priory of the Orange Tree” is definitely overly long – only after almost two thirds of the book things really do start to happen.

There’s also way too much religious stuff around for my taste (“Virtudom”, “Dukes Spiritual”, I don’t need any of that) and, yes, some of the characters are formulaic and some sentences make me cringe (“Abandoning all hope of Halgalant [paradise], Loth waded after the murderous wyrm-lover.”)

Behind all that verbosity, formulas and some cringeyness hides a story that’s worth telling, characters worth knowing (Ead!) and an author that I’m going to keep an eye on.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at April 07, 2019 11:27 AM

March 31, 2019

Wulf C. Krueger

Jagger Jones and the Mummy’s Ankh, by Malayna Evans

“KA-TASTROPHY” Or “The story erupted from his mouth like vomit.”


I got this book for free as a win from LibraryThing’s Early Reviewers program. Thanks!

There are books I’d love to just completely forget about, e. g. Lord of the Rings or Harry Potter so that I could read them again for the first time. Others, I simply want to forget. This book is one of the latter.

Reading “Jagger Jones and the Mummy’s Ankh” does indeed feel like the story erupted from [the author’s] mouth like vomit. Seriously, as an author you should be able to at least stay above that level. That seems to be the primary issue, though: The author, Malayna Evans, is the self-professed “author of the middle grade time travel series, The Egyptified Joneses” (from her blurb at Amazon) – despite this being her debut title and she simply can’t write:

– Evans’s severely limited vocabulary shows all over the place, e. g. all people are doing if they’re in distress or even hurt is moaning:

Jagger moaned as his little sister spun and zoomed back into the house.
Jagger moaned when his phone
Jagger moaned as Tatia draped a dress over
Wenher moaned through clenched teeth as she slowed the horses.
Jagger moaned. Was he really being profiled in ancient Egypt?


And this is just a careful selection from around 30 moans. The characters’ voices often “crack” as well and oftentimes it’s not quite clear why – was the cracked voice trying to be stern? Is it just puberty or was the speaker so emotional his voice cracked? Mostly, we don’t know. Nor do we care.


– Oh, and grammar surely is important for any author to make themselves clear:

He flinched, startled by a huge, black cat that jumped onto the railing separating the street from the park, running miles along the lake, teeming with bikers and dog walkers.

The railing teems with bikers and dog walkers? Wow, that must be a busy railing, indeed, and so many artistic people!

She leaned into the captain, whispering, as the prince steered he and Aria into the rectangular building on

He and Aria? I think not. Maybe some comma might have helped to save that sentence but, alas, Evans liberally sprinkles them all over the place…

They must be in one of the small, storage rooms adjoining it.

… making it painfully clear she doesn’t know how to use them.



Now, I’ve read books that were saved by their story – not so in this case, though, because the story is bland and uninspired: Two kids get magicked back in time to ancient Egypt, save the Pharaoh and his family and secure “Death life” (afterlife) for one of his daughters. Story telling mostly consists of either someone using mono-syllabic magic (“Bind!”) to make happen whatever needs happening (and that includes everything but the book ending).
Alternatively, Aria (yes, seriously, the “y” stayed over at Ice and Fire) dives into her seemingly bottomless pink purse (or maybe it’s a disguised TARDIS?) and – TADA! – finds just the thing they need (chewing gum, bug repellent…) to save the day.


None of the characters are in any way relatable, interesting or at least likeable. In fact, each and every character is boring, clichéd and guaranteed not to develop in any way. You simply don’t care if Aria, her brother or anyone else lives or dies. Or the people they try to save.



In a nutshell: This book is a complete, utter, irredeemable failure without any saving graces. Don’t believe me? Want to know if this book might actually be for you?

Just try reading the following chapter headings without cringing (my favourites are written in bold) – if you’re successful, read the entire thing; otherwise, do something more worthwhile like watching paint dry or grass grow:


– IN DE NILE
– I WANT MY MUMMY!
– A ROYAL SHOCK
– KA-TASTROPHY
– STRUCK BY AMULET-NING
– DRESSED TO … KIDNAP?
FOLLOW YOUR PRINCE-IBLES
DON’T HATE ME ‘CAUSE I’M MUT-IFUL
– WHAT THE CROC?
– PARADING WITH KHONS-WHO?
– TEMPLE RUN
HOLY HERIHOR
– SNAKE HASTE
– SEIZE THE … SPRAY?
– THAT’S THE GENERAL IDEA
HISSSSSY FIT
– A BALL AND PAIN
– DA FEET
NOT TOO SHABTI
– STAY WOKE
FUR-EVER AND EVER?
– THAT’S CHARMING
– PURR-TING COMPANY
– SELFIE CARE
– HOW DO YOU SPELL HOME?




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at March 31, 2019 11:52 AM

March 28, 2019

Wulf C. Krueger

Uprooted by Naomi Novik

“I don’t want more sense!” I said loudly, beating against the silence of the room. “Not if sense means I’ll stop loving anyone. What is there besides people that’s worth holding on to?”

I read “Spinning Silver” first and liked it a lot. “Uprooted”, I’d heard, was even better and while it’s certainly a great book, I’m not actually sure if “Spinning Silver”’s minor pacing flaw wouldn’t have made this book even better.

“Uprooted” tells the story of Agnieszka who lives in a small village near the Wood. Capital letter, because it’s an evil wood! Evil as in, monsters roaming it and everyone going into it either staying there, never to be seen again, or coming out corrupted to the core.

Fortunately, a Dragon (who is actually a wizard called Sarkan) lives nearby and protects the village and its inhabitants – albeit at a price because every ten years he takes a daughter from the village and this time it’s Agnieszka. Afterwards, chaos ensues.

A good, highly entertaining chaos with, admittedly, a lot of method behind it but a bit breathless. Where “Spinning Silver” was slow at times because Novik took time to tell her story slowly and with great care, “Uprooted” mostly rushes through the highly enjoyable story. It feels like the story practically broke free from Novik, as if it simply had to get out and be told without any delay:

“The swelling heat of it filled me, burning bright, almost unbearable.”

You don’t leisurely read “Uprooted”; you feverishly turn the pages as fast as you can, you wolf it down in large chunks, not wasting any time with chewing carefully. You just want, no, need to get your fill of the story!

Yes, it’s that exciting. The excitement is so great, though, that it can become if not almost unbearable but slightly tiresome.

I just wish Novik had paced her storytelling a bit – why not tell us more about Agnieszka’s first months in Sarkan’s tower after having been chosen?

Why not tell us more about the wizards at the king’s court, especially Alosha? What about Sigmund? The children? The princess?

There are so many interesting and potentially lovable characters who make a – more or less – short appearance and are only ever mentioned again in passing. After all, pretty much all characters are so wonderfully human with their strengths, their weaknesses and everything that makes them so believable.

The breakneck speed at which large parts of the story are told doesn’t leave much room for pure literary enjoyment, it doesn’t lend itself to thoughts about guilt and redemption as was the case in “Spinning Silver”. It doesn’t leave enough room for losing oneself among the pages – the Wood is always lurking just around the corner and the reader never feels entirely safe; it’s literally “one trap after another”.


In spite of my criticism, I really, really enjoyed this book – it’s a fairy tale gone (action) thriller in part and it has the same dry subtle humour that I loved about “Spinning Silver”…

“but the thought of putting a knife into a man was something else, unimaginable. So I didn’t imagine it. I only put the knife on the tray, and went upstairs.”

… and the same beautiful and relatable style:

“Happiness was bubbling up through me, a bright stream laughing.”


Ultimately, “Uprooted” is a book that leaves me hungering for more. Hopefully a bit more relaxed and laid-back next time, a bit more like “Spinning Silver”. In fact, since we’re talking about modern fairy tales, let me make a wish:

Dear Naomi Novik, creator of amazing literary worlds, first among the fair folk, gifted among authors, please write a book that combines “Uprooted”’s thrills with “Spinning Silver”’s depth and eternal praise be yours!


P. S.: Naomi, what’s that grudge against poor squirrels?

“I stumbled over the torn and spoiled body of a rabbit or a squirrel, killed as far as I could see just for cruelty;” (Uprooted)

“He had a small bow and arrow, and shot squirrels, and when he hit them, he came and looked at their little dead bodies with pleasure.” (Spinning Silver)



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at March 28, 2019 04:50 PM

March 22, 2019

Wulf C. Krueger

Spinning Silver by Naomi Novik

“There are men who are wolves inside, and want to eat up other people to fill their bellies. […] You have fed each other, and you kept the wolf away. That is all we can do for each other in the world, to keep the wolf away.”

I don’t like fairy tales. Not at all. Especially not Grimm’s fairy tales. In fact, I dislike those so intensely for their cruelty and “rough justice” that I didn’t read them to my kids and hated them as a kid. Sorry, Little Red Riding Hood, for more than 40 years (and counting!) I’ve been rooting for the Big Bad Wolf!

Thus, it was with some reservations when I started reading “Spinning Silver” which turned out to be a fantastic story, masterfully told.

A soft-hearted moneylender’s daughter, Miryem, finds out she metaphorically has the ability to turn silver into gold which, in turn, becomes known to the king of winter. The king presses Miryem into his services and even kidnaps her.

The local duke’s daughter, Irina, is married off to the country’s tsar who is obsessed by a fire demon. Last but not least, there’s Wanda and her brothers whose lives are intertwined by fate with those of Miryem and Irina.

Sounds complex and maybe complicated? Well, yes, it is. Pretty much every major character gets to tell a part of the story from a first-person perspective which lends credibility and depth to the narrative. Unfortunately, this is one of the two notable flaws of “Spinning Silver”: Perspectives are usually switched with the chapter, sometimes even within a chapter and we, the readers, don’t get told but are “dumped” into the new point of view.

This makes things more dramatic at times but much more confusing as well. When I was even slightly tired (and who isn’t sometimes?!) or sleepy (e. g. when reading in bed) I would sometimes wonder who was actually narrating at that moment. The positive effect is, from my point of view (sic!), by far outweighed by the potential confusion. I would have wished for the narrator’s name in the chapter heading or whenever the perspective changed because the “confusion effect” would destroy the immersion.

Immersion, though, is a great factor of my enjoyment and despite my complaint “Spinning Silver” is one of those books between the lines and pages of which I could lose myself. While I read the words and absorbed the story, glorious pictures of green pastures during summer and snow-clad forests during harsh winters rose before my inner eye.

The story is so powerfully and yet gracefully and sensitively told, I felt like the narrated world got real and its inhabitants with their merits and flaws became fully fleshed-out human beings. As if that alone hadn’t yet been enough, Novik employs a decent, mostly subtle and sometimes dry humour, often finely laced with irony:

“I was reasonably certain he wasn’t going to try and devour my soul. My expectations for a husband had lowered.”

Each character, even the afore-mentioned husband, gets to develop “organically”: Rarely has careful character development felt as real as in “Spinning Silver”. You cannot help but believe the motivation of every single character and while some turns in the story are predictable, they are so delectably satisfying and wonderfully enjoyable.

Did I convince you to read this remarkable book yet? No, well maybe you want some “philosophical” depth to your books? Do not falter, “Spinning Silver” is for you!

While unobtrusive at it, this book deals with deep moral and philosophical matters – does the well-being of many outweigh the needs of few? May I even sacrifice one life to save many? Does the “greater good” allow for any means? The answers to those questions aren’t simply provided, though:

“I say to you, here are the dangers. Some are more likely than others. Weigh them, put them all together, and you will know the cost. Then you must say, is this what you owe?”

Depending on your personal answers to those questions you might find yourself in a bit of a moral dilemma at times.

On the other hand, even those who prefer a more “hands-on” approach may find themselves at home in this story as it’s perfectly summed up by one of our heroines:

“What did it matter that they didn’t speak of kindness, here; they had done me a kindness with their hands. I knew which one of those I would choose.”



In spite of all this praise I must not fail to deliver one more issue that slightly marred my reading enjoyment: At times, “Spinning Silver” does feel a little “slow”. As mentioned before, the story is lavishly told, in great depth and detail and, for me at two points in the story, it ever so slightly drags on.

Then again, if a story is that good, the language so enjoyable and even the villains so relatable if not likeable, how can I find fault in something like this?

“Warm gold blushed through the whole length of it with the slightest push of my will, and the child gave a soft delighted tinkling sigh that made it feel more like magic than all the work I’d done in the treasury below.”



And, thus, my review ends…

“I had spun the silk and then I had knitted it with the finest needles in the vines and flowers of the duke’s crest”

… and with equal care this story is spun. Reluctantly leaving the lines and pages I’ve rejoiced being lost between, I’m hastening towards Novik’s “Uprooted” next – and you go read “Spinning Silver”, and, please, keep the wolf away.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at March 22, 2019 06:24 PM

March 16, 2019

Wulf C. Krueger

Christmas Eve by Jim Butcher

“Christmas Eve?”, I hear you cry. Why that?! Why pick an unimportant short story from the Harry Dresden universe and write about that?

Simply because it lets me make a point: Harry Dresden is a male chauvinist pig; he’s a misogynist arse. And even an impromptu short story is worth reviewing it because the stuff is just that good.

I read the first book, “Storm Front”, expecting nothing, getting something weird. I certainly didn’t really like it – generous 3 stars. I was wondering if it would get any better and read book two. More of the same – but people said, “WAIT! It’s going to get better soon-ish!”.

I read on. Same experience with books three, four (yes, the one that’s supposed to have gotten better!), five… All three stars, all… interesting. Somehow… exciting, though… Harry still is all the above and yet, there are redeeming qualities. Not sure what they are but why ever else would I have read on?!

Book 10, lo and behold, actually did get better! People – for ONCE! – were right! Harry Dresden is annoying but I’m sitting here and can’t wait for book – wait for it – 16 of this weird literary junk food that so entices me, that calls out to me, that sounds like a Siren’s song to me!



This story? It’s just nice. The most important people we’ve come to love from Harry’s neck of the Chicago woods are around, the atmosphere is right and, well, it has Harry…



Hello, I’m Wulf and I can’t get enough of Harry Blackstone Copperfield Dresden.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at March 16, 2019 11:02 AM

March 15, 2019

Wulf C. Krueger

When All Is Said by Anne Griffin

An interesting book, falling short of greatness for me.


I started reading this book with high expectations – interesting setting, highly praised on GoodReads. I really expected to love this book but it was not to be, unfortunately.

Maurice Hannigan, 84, sits in an old hotel at the bar and drinks to the people he loved most and who all have passed away before him, telling us about his relationship with them and, consequently, about his life. The son of an Irish farmer, he, too, sets out on this path and soon by far surpasses his parents and becomes a wealthy and well-respected man.

We learn about the Dollards, formerly major land owners and employing Maurice’s mother and himself, whom he loved to hate for his entire life. He toasts to his brother Tony who died as a young man, his first child, Molly, his sister-in-law Noreen, his son, Kevin, a well-known journalist who has emigrated to the USA and, last but not least, his wife Sadie.

Griffin tells her story, Maurice’s life, in long chapters most of which overlap with each other in narrated time. This gives her room to explore each relationship deeply and allows for concentrating on their respective unique aspects. Unfortunately, the overlap does cause some conflicts that are hard to handle gracefully. Let me give you an actual example:


“It was twenty-seven years later that I learned the origin of the coin from Emily at that special dinner she’d arranged. But even then she’d been holding back. And it wasn’t until a year after that again that I found out the real consequence of its theft. And it was all because of Noreen, would you believe.”


I’m calling this, well, clumsy. You might consider it a narrative device, I don’t like it, sorry.


In between each of those toasts we’re getting a small glimpse into the current time and Maurice’s state of mind which is – at the very least – bordering on depression. By his own admission, Maurice is sleeping very badly (“I’ve stopped sleeping, have I told you? Two hours, three if I’m lucky now and then I’m awake.”), feeling bad and guilty as well as being prone to pondering (“Staring at the ceiling, going over it again, this bloody decision”). He’s tired and pretty much hopeless (“I feel tired and, if I’m honest, afraid.”) – all clinical symptoms of a depression.

Maurice even has people worrying about him (e. g. David, a social worker; Emily, the hotel’s owner; Robert, his notary) but none of them seem to recognise that and help him.

Griffin ends the book as anyone past the first chapter will know – “when all is said”, Maurice tries to take his own life. I’m sure Griffin doesn’t want to “promote” suicide as a way out of acute grief but a bestselling book ending like that does make me feel uncomfortable.



Putting that thought aside, I still didn’t really warm to the book. I can’t even put my finger on the exact reasons: Griffin’s language is believable (if restricted to Maurice’s vocabulary) and vivid. The story itself is plausible – everything in Maurice’s life could have happened just like it is told. Maybe that’s in fact part of my problem with the book – I felt myself nodding and registering the narrated facts but I was rarely touched by the story.

There were a few passages that really gripped me, especially since I’m a father and, obviously, a son myself (“fathers have a lot to answer for”), and made me swallow, e. g. this passage:


“But no, I mean, sorry for the father I’ve been. I know, really I do, that I could’ve been better. That I could’ve listened more, that I could’ve accepted you and all you’ve become with a little more grace.”


Boy, can I relate to that…



Unfortunately, this emotional engagement remains the exception for me in this book. Too rare and, in the end, too late.

To be able to really love a book, it needs to strike a chord within myself. I’m not an analytic reader, you won’t catch me scientifically dissect a book. The books I’ve loved most so far are those that make me enthuse about them to my wife and children till they send me somewhere else (or leave themselves). There are books (you can find them in my “Favourites” shelf on GoodReads) that make my soul thrive and rejoice (or only mentioning their names brings tears to my eyes) and I cannot help but sing their praise.

I fully expected “When All Is Said” to be such a book but it felt too shallow, it never engaged me emotionally and, quite possibly, maybe it’s all me, myself and I who’s to blame for that.

I guess you’ll have to find out yourself.




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at March 15, 2019 03:13 PM

March 11, 2019

Wulf C. Krueger

Der Trafikant by Robert Seethaler

Der Trafikant by Robert Seethaler

My rating: 5 of 5 stars


Durch eine Laune des Schicksals aus dem Salzkammergut ins Wien der Jahre 1937 und 1938 verschlagen, trifft Franz auf Otto Trsnjek, den Trafikanten (Betreiber eines Tabakwarenladens / Kiosks), findet mit Anezka die große Liebe und in Gesprächen mit Sigmund Freud heraus, daß er, Franz, nichts weiß und die Welt verrückt (und manchmal ziemlich unfair bis grausam) ist.

Franz ist ein netter Bauernbursche – respektvoll, freundlich und (scheinbar?) etwas “einfach gestrickt”. Der See bei seinem Heimatdorf und dessen mit den Jahreszeiten wechselnde Farbe ist bis zu Franz’ Aufbruch nach Wien sein größtes Interesse – von der Welt-Politik ist er weitgehend “unbehelligt” und Zeitungen werden von ihm zu eher “periphären” Zwecken genutzt:

“Hin und wieder hatte Franz vor dem Abwischen eine Überschrift, ein paar Zeilen oder vielleicht sogar einen halben Absatz gelesen, ohne daraus allerdings jemals einen sonderlichen Nutzen zu ziehen.”

Aus diesem amüsanten Versatzstück sollte man jetzt jedoch nicht schlußfolgern, daß das gesamte Buch nur nettes Geplänkel ist: Wir befinden uns in 1937 und damit der dunkelsten Epoche der deutschen Geschichte im 20. Jahrhundert und “Der Trafikant” schildert dies aus der Sicht Franz’, der ein feines Empfinden für Recht, Gerechtigkeit und ein respektvolles Miteinander besitzt.

Otto Trsnjek, sein Lehrmeister auch in ethischen Fragen, ahnt schon sehr klarsichtig, was noch passieren wird:

“»Bis jetzt ist nur das Geschäft eines Trafikanten besudelt worden. Aber hier und heute frage ich euch: Was oder wer kommt als Nächstes dran?«”

Ein Mensch wie Franz kann, ja, er muß in Konflikt mit der Ausgrenzung, Diskriminierung und Verfolgung geraten, die er in seinem Umfeld einerseits an Otto Trsnjek, aber auch an Freud, buchstäblich hautnah erlebt. Nun könnte man meinen, Franz werde sich zurückziehen, vielleicht in die innere Emigration, genau das aber tut er nicht.

Franz allein kann die Welt nicht verändern, so glaubt er, und wählt daher den Weg des “zivilen Ungehorsams”, der Widerständigkeit ohne Teil des organisierten Widerstandes zu sein.

Allein diese Geschichte erzählt zu haben, wäre bereits verdienstvoll und auch und gerade heute wichtig. Tut man das aber dann auch noch mit der wunderbaren Sprache, derer sich Seethaler wie nur wenige andere zu bedienen weiß, wird die Lektüre für den Leser zum absoluten Hochgenuß:

“Franz spürte einen merkwürdigen Stolz in sich aufsteigen, der irgendwo hinter seiner Stirn zerplatzte und wie ein warmer Schauer in seinen Kopf hineinrieselte.”

Als ich diesen Satz las, war das wie eine warme sprachliche Dusche; er evozierte Gedanken an ein Feuerwerk, das am Himmel explodiert und dessen Explosionsspuren herabsinken – ganz wundervoll!

Nimmt man dann noch Franz’ persönliche Liebesgeschichte – völlig frei Kitschigkeit, glaubwürdig und in ihrer Kompliziertheit so wahrhaftig – hinzu, so weiß man erst in seiner Gesamtheit diesen wunderbaren Roman wirklich zu würdigen.

Man leidet mit dem jungen Mann mit, wenn sein “böhmisches Mädchen”, seine “runde, böhmische Königin” plötzlich und unerwartet einfach mal wieder verschwindet:

“Nachdem es geschehen war und er wie ein Häuflein Glück auf dem Rücken neben ihr lag, stellte er sich vor, wie er am nächsten Morgen, gleich nach dem Aufstehen, um ihre Hand anhalten würde. Aber als er aufwachte, war sie weg.”

Selten wurde es so schön beschrieben und waren Glück und Unglück so nah bei einander.

An vielen Stellen jedoch zeigt sich in sprachlich ergreifendster Weise die innere Spannung dieses Menschen, der doch eigentlich nichts als leben und leben lassen möchte, der sein Mädchen lieben und ganz einfach sein möchte, es aber doch nicht sein kann, weil seine eigene Menschlichkeit und Anständigkeit dies nicht zulassen.

Dieses Buch kann nicht gut enden, aber es endet plausibel. Gerade in unserer Zeit muß man dieses großartige Buch beinahe schon lesen, aber es ist auch ein unglaubliches Erlebnis, das sich niemand verwehren sollte.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at March 11, 2019 04:15 PM

March 09, 2019

Wulf C. Krueger

Crooked Letter, Crooked Letter by Tom Franklin

Crooked Letter, Crooked Letter by Tom Franklin

Do you like watching glaciers move? Like, in real-time? Are you a German teacher of English? Do you hate someone very much? (You can even combine the last two!) 

Congratulations, this book is especially for you!  

I actually enjoy a good story, lavishly told in good time. Me possibly drinking coffee or wine and enjoying myself, even losing myself inside a story told slowly, delightfully, perhaps playfully. 

The story-telling here is mooooooooostly slooooooooow. Just slow. Not lavish, not delightful, not playful, just plain old slow.  

Now, slow food? Good stuff! Fast food only makes me fat anyway. Slow food doesn’t mean I have to enjoy chewing on a piece of granite – or reading this book. 

‘f slows the only prob, things mighta haven’t look so bleak. Ain’t just that, sirree, naw. The language. South’rn drawl my ass.  Short sentences. Clipped sentences, eh? Yeah, boy, might work. If yall are proper pen pushers, heh?! Franklin, ma boy, you ain’t a one.  

Ok, enough of this. It’s really annoying. I really, really hated those clipped sentences. They read like they hated their literary life for being, well, emaciated. 

Well, all of that could still have been forgiven (I can almost see the small teaching, pupil-hating, glacier-watching demographic from the introduction nod their approval!) but let’s take a look at the story itself: 

Young Larry (40 today) goes on a date, girl goes missing, people start hating Larry, apart from his “special friend” Silas (at this point, the German teachers get glassy eyes, remembering) and even more special Wallace Stringfellow. The former being a sorry excuse for a friend, the latter being worse.  

At the very beginning, poor Larry gets shot and Silas goes up and down memory lane for about 80% of the book, inspecting their miserable, boring lives in the past. Discovering “shocking” truths and a body. (Not, two, though. The mystery that all but ruined Larry’s life never gets solved.) 

The first words in chapter seven are basically a clue bat I, unfortunately, didn’t fully appreciate: 

“IT WAS 1982.” 

Yes, and we’re at 41% of the book and feeling like we’ve had to wade through decades of boredom but, wait, those guys are about 40 and no point whatsoever has been reached or made so far – we’re not safe yet, with decades before us yet! (Had I realised earlier and not only now, in hindsight, or given in to my instincts about bad books I might have preferred to watch grass grow but, alas, that exciting exercise has to wait for a worse book.) 

Still chapter seven (did mention those chapters can take an hour or more of a fast reader’s time (not to speak of the poor sod’s life!): “IT WAS THE slowest week of his life,” man, you’re taking the words right out of my mouth.

Anyway, why did I even finish this turd? Well, truth to be told, my daughter has to read this book for school and being the stupid oaf I’m sometimes maligned to be, I mouthed off to her about how good this book must be, having great reviews on Goodreads and how she should just get reading it! Sorry, my dear Schn…, I’m sure to do it again but for this book you have my sympathy. 

Drink, have fun with grass, do whatever you want with your life but don’t make people read this book. 

Oh, and if you really are a German teacher of English, I’m presenting you with a list of seven (because I can!) books better suited for your intended purpose which won’t make your pupils hate you (even more, at least): 

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at March 09, 2019 05:48 PM

March 04, 2019

Wulf C. Krueger

Die ewigen Toten by Simon Beckett

David “Selbstzweifel” Hunter ist zurück – leider nicht in Bestform

Der forensische Anthropologe David Hunter, bekannt aus Becketts früheren Romanen in dieser Reihe, wird diesmal zu einem Leichenfund in einem ehemaligen Krankenhaus, dem St. Jude, gerufen. Dort angekommen wird sehr schnell klar, daß sich ein größeres Geheimnis hinter den abrissreifen und finsteren Mauern des St. Jude verbirgt. Damit steht die Kulisse für einen ebenfalls eher düsteren Krimi mit gelegentlichen “Ausrutschern” in beinahe schon poetische Sprache und ein wenig Humor.

Ich freute mich auf einen neuen Krimi mit Hunter, der mir aus früheren Bänden sympathisch und interessant in Erinnerung war. Das bleibt auch bei diesem Buch so, jedoch wird es leider von den permanenten Querelen zwischen Haupt- und Nebencharakteren massiv überschattet – ein forensischer Taphonom verärgert Hunter, Hunter verärgert seine Auftraggeber bei der Polizei, ein frustrierter Bauunternehmer verärgert alle.

Als wäre das noch nicht genug, läßt sich auch Hunter von all dem Ärger ins Boxhorn jagen und an sich selbst zweifeln. Angesichts seiner Erfahrung und seines Renommees ist das aber nur sehr bedingt plausibel und hat mich zumindest doch sehr gestört.

So viel Ärger und Selbstzweifel machen einfach keinen Spaß mehr und trüben das gesamte Lesevergnügen deutlich ein. Völlig unnötigerweise noch dazu, denn Beckett schreibt – wie immer – gut und zeitweise geradezu poetisch…

“Die Stille, die auf allem ruht, hat eine andere Textur als tagsüber, ist besinnlich und noch gedämpfter. Sie hat ein fast spürbares Gewicht.”

… gepaart mit Einschüben (direkt auf das vorhergehende Zitat folgend) trockenen Humors…

“Vielleicht liegt es auch bloß an mir.”


Hemmend auf den Lesefluß wirken sich zudem die Zeitsprünge aus – da wird von einer dramatischen Entwicklung erzählt und an deren Höhepunkt ein Sprung in die Zukunft im nächsten Kapitel vollführt, von dem aus dann in Form einer Rückblende erzählt wird. Das nimmt Tempo heraus und mindert – ebenfalls völlig unnötig – die Spannung.

Ganz am Schluß tritt dann etwas ein, anläßlich dessen ich nur noch innerlich leise aufstöhnte, “nicht schon wieder!”. Völlig überflüssig und ärgerlich wird hier eine Nebenhandlung erneut in den Vordergrund gerückt, die besser einfach in der Vergangenheit verbleiben wäre.


“Die ewigen Toten” läßt mich insofern ein wenig ratlos zurück: Einerseits ist es ein durchaus gelungener Krimi, andererseits ist die Atmosphäre übermäßig angespannt und bedrückend. Darüber hinaus zieht sich das Buch bis zur Mitte reichlich in die Länge, um dann am Schluß im “Schweinsgalopp” zu einer mäßig glaubwürdigen Auflösung unter Einbeziehung “oller Kamellen” zu kommen.

Ich glaube, für mich ist der Zeitpunkt gekommen, mich von David Hunter und Simon Beckett zu verabschieden.

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at March 04, 2019 01:58 PM

March 01, 2019

Wulf C. Krueger

The Test by Sylvain Neuvel

The Test

The Test by Sylvain Neuvel

My rating: 3 of 5 stars


The Test – an exercise in superfluousness

“The Test” is a short story about an immigrant taking a citizenship test. What he doesn’t know: It’s all simulated. When a group of terrorists takes everyone hostage at the test and they put him into difficult situations, his behaviour is actually being evaluated with respect to suitability for citizenship.

The story isn’t bad at all but nothing here is new and all of it has already been executed a lot better by other authors. There are even a few things intrinsically implausible that are never explained and before you know it, you’ve finished the very short novella.

It’s a bit like Brecht once wrote: “Indeed it is a curious way of coping: To close the play, leaving the issue open…”

Unfortunately, Neuvel isn’t Brecht and can’t really pull this off as successfully but wrote a novella that’s simply superfluous.

Thus, to quote Brecht to the end, “There’s only one solution that we know: That you should now consider as you go What sort of measures you would recommend To help good people to a happy end.”

The measures I would recommend are simple: Find a better book to read.




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at March 01, 2019 11:25 AM

February 28, 2019

Wulf C. Krueger

Muttertag by Nele Neuhaus

Muttertag (Ein Bodenstein-Kirchhoff-Krimi #9)

Muttertag by Nele Neuhaus

My rating: 4 of 5 stars


Nele Neuhaus auf dem Weg nach vorgestern

Ich war skeptisch, als ich die Lektüre des neuen Krimis um das Ermittler-Duo Bodenstein/Sander (vormals Kirchhoff) begann. Allzu routiniert und lieblos heruntergeschrieben fühlte sich das vorherige Buch „Im Wald“ für mich an.

Dies schien sich auch zu bestätigen: Nach kurzer Einführung startet „Muttertag“ mit dem Auffinden der Leiche eines alten Mannes langsam und behäbig. Viele Figuren werden eingeführt, die Ermittlungen laufen in verschiedene Richtungen und – zeitweise – wirkt das zäh und arg bemüht.

Es wechselt zudem immer wieder die Erzähl-Perspektive zwischen der Haupthandlung, einem Nebenstrang und einem inneren Monolog des Mörders. Das hilft nicht wirklich dabei, sich in der Erzählung zurecht zu finden und wird langatmig. Bis etwa zur Hälfte des Buches.

Erst danach beginnen die Zusammenhänge klarer zu werden und Ermittlung wie Erzählung nehmen Fahrt auf. Denn nach der langen Durststrecke findet Neuhaus zurück zu alter Form der früheren Bücher, vorgestern: Spannend, mitreißend, dramatisch wird es und ein bis dahin laues Belletristik-Lüftchen wird zum Sturm, der die Seiten geradezu umreißt.

Ein versöhnlicher Schluss mit Nettigkeit und Charme rundet „Muttertag“ ab und macht zwar leichte Krimi-Kost nicht nahrhafter, aber doch appetitlich und lecker!




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at February 28, 2019 11:27 AM

February 20, 2019

Wulf C. Krueger

Mittagsstunde by Dörte Hansen

Mittagsstunde: Roman

Mittagsstunde: Roman by Dörte Hansen

My rating: 4 of 5 stars


Wieder ein großer Wurf, der an seinen Vorgänger erinnert.

Diesmal geht geht es um das Sterben eines Dorfes über Jahrzehnte hinweg. Damit einhergehend sterben aber nicht „nur“ das Dorf und seine Bewohner, sondern eine ganze „Dorf-Kultur“: Mit Flurbereinigung und allgemeiner Urbanisierung gehen Traditionen und manchmal auch Existenzen zugrunde.

Hansen glückt es jedoch, in diesem Untergangsszenario auch bereits den hoffnungsvollen Anfang einer Weiterentwicklung darzustellen. Insbesondere ist verdienstvoll, dass es Hansen mit großer Behutsamkeit und Zurückhaltung durchgängig glaubwürdig gelingt, die charakterliche Entwicklung insbesondere Ingwers sich organisch entwickelnd darzustellen.

Auch hier ist der „Wiedererkennungswert“ autobiografischer Erfahrungen potentiell groß: Viele Schilderungen im Buch haben mich schmunzeln lassen oder mich allgemein an meine eigene Kindheit „auf‘m Dorf“ denken lassen.

Insofern habe ich mich auch in „Mittagsstunde“ (bei uns übrigens eine Stunde später, von 13:00 bis 15:00 Uhr) sehr schnell heimisch gefühlt und habe Seite um Seite in Ruhe genossen; mit Ingwer, Sönke und Ella gebangt, geendet und neu begonnen.

Ganz reicht es dann doch nicht an „Altes Land“ heran, aber es fehlt nicht viel daran und ich freue mich schon auf den nächsten Roman.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at February 20, 2019 11:24 AM

February 17, 2019

Wulf C. Krueger

Altes Land by Dörte Hansen

Altes Land

Altes Land by Dörte Hansen

My rating: 5 of 5 stars


Ein Jahrhundert-Roman

Wie ein mächtiger Strom ist „Altes Land“ – mal ruhig und unaufgeregt erzählend von der Familie Eckhoff, Heinrich „Hinni“ Lührs und anderen Bewohnern des alten Landes, dann wieder mitreißend und voller Kraft.

Dörte Hansen erzählt mit größtmöglichem Respekt und großer Behutsamkeit von und über ihre Protagonisten. Keiner von ihnen ist frei von Fehlern, frei von Schuld, und alle erhalten Raum, ihren Blickwinkel darzulegen. So wird schwer Verständliches nicht besser, aber doch nachvollziehbarer. Man muss diese Menschen nicht mögen, aber es ist fast unmöglich, sich ihnen zu entziehen.

Das liegt wahrscheinlich auch daran, dass man Hansens Protagonisten beinahe zu kennen meint: Die Öko-„Familienmanagerinnen“, deren Kinder in die frühkindliche Begabtenförderung gequält werden, der alte Landwirt, der weiß, dass ihm niemand mehr nachfolgen wird und der trotzdem nicht aus seiner Haut kann, die seltsame (oder zumindest so wahrgenommene) ewig „Zugezogene“ – sie alle entstammen dem alten Land oder finden sich darin.

Es sind aber alles Menschen, die nicht nur dort anzutreffen sind, sondern die glaubwürdig und lebensecht in jeder Art von kleinem Ort leben könnten.

Meine Vera heißt Leane und lebt – mittlerweile über 90 Jahre alt – in einem kleinen Dorf irgendwo in Deutschland. Auch sie war geflohen und war jemand in Not, so war sie da und ihre Tür (natürlich die Hintertür!) stand (nicht nur) mir immer offen.
So vieles habe ich „wiedererkannt“ ohne jemals im alten Land gewesen zu sein. Über weite Teile des Romans hatte ich das Gefühl, Hansen schriebe mir förmlich aus der Seele.

Für mich ist „Altes Land“ ein Jahrhundert-Roman, ein seltener und kostbarer Glücksfall der Literatur, der mich begleiten wird wie sonst wohl nur Thomas Manns Buddenbrooks.



View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at February 17, 2019 11:28 AM

February 14, 2019

Wulf C. Krueger

You go me on the cookie! by Dana Newman

You go me on the cookie!

You go me on the cookie! by Dana Newman

My rating: 2 of 5 stars


Dear Dana,

I‘ve watched your videos on YouTube and really enjoyed myself – I like your style, your charming, fresh, delightful and funny presentation. It‘s both greatly amusing and relaxing as well as informative and interesting.
I’ll never forget the video in which you explain your opinions on the USA and their current administration as it deeply moved me and showed a side of you rarely seen.

Your book, too, started strong: Indiana Jones of linguistics – I could almost picture you wearing a fedora and whipping the German language; my native language. I feel thoroughly at home in English as well; I’m having a lifelong love affair with it. 😉

Unfortunately, the book becomes annoying pretty early as you start explaining even small things like quotation marks (“Anführungszeichen gewollt”). If you put something in quotation marks that doesn’t need it, your readers will get your meaning. We’re not daft, don’t spell it out.

At times, it looks like you’re forgetting you’re writing a book and not a blog post or something like that and start YELLING AT US.
Please don’t do that. It’s like taking a sledgehammer to crack a nut (Mit Kanonen auf Spatzen schießen 😉 ).

Another example of “blogisms” are the overused interjections like this one: “Haha! Scherz! Die versteht doch kein Mensch, oder?”
Either something is funny or it’s not. As you write yourself later, chances are high it’s not that funny if you have to explain it. Or, as you put it, “manchmal funktioniert der Witz auch nur für mich”. All to often that’s the case here.

At other times you start lecturing us, e. g. when writing about sentence structure and verb placement. Taking an unfunny longish sentence nobody would ever use doesn’t help either.

Really truly jarring are the factual mistakes, though: Starting with the fact that “Bretzel” is not a word but a simple misspelling of “Brezel” (cf. the Duden as the ultimate authority on German).
You don’t have to know that but your translator should have, and your editor, etc.

And don’t listen to Stefan, please, when it comes to German: The genetive might, unfortunately, not be used as it should be but that’s simply part laziness and part ignorance, sorry!
It really is “wegen des Regens”, not “wegen dem Regen”. If you want read about this, I strongly recommend Bastian Sick’s “Der Dativ ist dem Genetiv sein Tod” (sic).

By the way, wouldn’t you say “Sehnsucht” translates very well to “longing” or “yearning”?

Anyway, in spite of all of my criticism there is a lot of the 😉 Dana in here; if it’s you accidentally expressing your desire to eat all those animals in the park, or the following poetic passage which evoked images of you in some of your videos:

“[…] ich kann mich daran erinnern, dass mein Herz förmlich dahinschmolz, sich schnell wieder fasste, nur um dann vor Freude zu hüpfen und zu tanzen.”

I’m loving that one. 🙂

In short, Dana, please keep making amazing, funny, touching, beautiful videos. That’s where you shine the brightest.

(Oh, and while I certainly respect you deeply, I wouldn’t hesitate a second to Du’z you! 😉 )

Best regards, Wulf




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at February 14, 2019 11:35 AM

December 31, 2018

Danilo Spinella

Announcing Exherbo subreddit

I am delighted to announce the opening of the unofficial Exherbo subreddit1! You can discuss topic relavant to the distro, take up any problem that you have encountered or share your thoughts and setups. Note that Exherbo development takes place on our Gitlab instance2 and the critical discussions still happen on #exherbo IRC channel on Freenode3. Furthermore, distro documentation4 is currently under reorganisation, and we encourage you to open an issue (or even better a Merge Request!

December 31, 2018 03:00 PM

August 28, 2018

Wulf C. Krueger

Age of War by Michael J. Sullivan

Age of War (The Legends of the First Empire, #3)

Age of War by Michael J. Sullivan

My rating: 5 of 5 stars


Modest underrated genius

TLDR; Legends of the First Empire are magical pieces of art but accessible to everyone, created by an amazing author and you don’t want to miss out on any of his books if you even remotely consider reading fantasy.


I rarely feel compelled to write a review and it’s actually the first time ever I feel an obligation to write one.

Michael J. Sullivan is the creator of Hadrian and Royce, two unlikely heroes, put together by circumstance, fate or whatever you prefer. I enjoyed those novels greatly and can hardly wait for the next installment. They, both the characters and the books, are clever, entertaining and feature very unobtrusive yet important morals.
Those novel have always hinted at what Michael might accomplish and what, to me, seems to rapidly become his magnum opus: The Legends of the First Empire

Calling the books of the Legends a prequel would be unfair because even though their narration predates Hadrian and Royce by far, they shine on their own. In Legends, Michael narrates slowly and patiently (at first at least!) how humanity rose to power beyond the elves, dwarves and other races around in his world. Is it actually Michael’s world, though?

I would laud his world building as brilliant and hardly ever matched. That would be wrong, though, because Michael didn’t just invent a world and built upon it; instead he cautiously took our world and gave it a living, breathing history. I can imagine how my great-grandparents lived but that’s pretty much it. Everything that came before them is a rather murky affair; I have read about earlier times and while it (sometimes) sated my curiosity, I never really “connected”. In countless museums I’ve seen in great detail how people from pretty much any period lived and that, too, was interesting on an intellectual level but I never felt pieces falling into place.

And then Michael came along: Starting from the day-to-day life in a small settlement to leveling entire mountains using magic, he tells us how we might have come to be. While Micheal is certainly most capable of painting said history with broad strokes, he has an immensely human understanding when to apply the small brushes and use tiny strokes to unerringly add details that fit in so neatly that you might not even notice them.

Every little details has its place and its meaning. Every character is a small world in itself and fits into the big picture or, actually, the piece of art Michael created (did you try burning something with your mind yet, Michael? 😉 ) and you’ll understand them, feel with them, sometimes want to shout at them or grab and shake them.

Speaking of characters: Michael’s characters are far from Aragorn, Gandalf or any other heroic types. Michael’s heroes are you and me, everyone. Most characters actually do what they do because they simply have no viable alternative. They don’t want power, or lord over anyone or even create things – they just can’t help it.

Now, go and read those books – both you and they deserve it!




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at August 28, 2018 11:42 AM

June 13, 2018

Mike Kelly

Wunderground Datacollection in OpenNMS

I’ve become a fan of OpenNMS as a general purpose monitoring and datacollection platform.

It has a lot of “enterprise” features that I don’t need for most of my personal stuff, but (IMHO) it does a better job of doing basic service monitoring, performance metric collection, etc than things like Nagios (or other hacks I’ve made in the past).

One thing I’ve done with it is start to collect my local weather data, so that I can graph it side-by-side with data pulled from my thermostat, etc.

Unfortunately, the Weather Underground API is no longer free (“as in beer”) no longer available, but hopefully this serves as an example of the sort of stuff you can do with OpenNMS.


OpenNMS is able to collect data from a number of sources, including SNMP, and basically anything you get fetch over HTTP.

To get data from Wunderground, we’ll use the XmlCollector. Despite its name, it can also work with JSON, though in this case, Wunderground gives us XML anyways.

We need to update collectd-configuration.xml with two new parts:

   <package name="wunderground-conditions" remote="false">
      <filter>IPADDR != '0.0.0.0'</filter>
      <include-range begin="1.1.1.1" end="254.254.254.254"/>
      <include-range begin="::1" end="ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff"/>
      <service name="Wunderground-Conditions" interval="300000" user-defined="true" status="on">
         <parameter key="collection" value="wunderground_conditions_home"/>
         <parameter key="handler-class" value="org.opennms.protocols.xml.collector.DefaultXmlCollectionHandler"/>
      </service>
   </package>
   <!-- ... -->
   <collector service="Wunderground-Conditions" class-name="org.opennms.protocols.xml.collector.XmlCollector"/>

This tells OpenNMS that, if we have a node configured with the “Wunderground-Conditions” service, it should trigger this datacollection.

Next, we need to add some specific configuration for the XmlCollector, in xml-datacollection-config.xml:

    <xml-collection name="wunderground_conditions_home">
        <rrd step="300">
            <rra>RRA:AVERAGE:0.5:1:2016</rra>
            <rra>RRA:AVERAGE:0.5:12:1488</rra>
            <rra>RRA:AVERAGE:0.5:288:366</rra>
            <rra>RRA:MAX:0.5:288:366</rra>
            <rra>RRA:MIN:0.5:288:366</rra>
        </rrd>
        <xml-source url="http://api.wunderground.com/api/YOURAPIKEY/conditions/q/SOMEWHERE/Outthere.xml">
            <import-groups>xml-datacollection/wunderground.xml</import-groups>
        </xml-source>
    </xml-collection>

Here, the “name” of the collection matches up with the paramter we defined in the Collectd config.

If you’re lucky enough to still have a Wunderground API key, you just need to put it in place of YOURAPIKEY above, and change the rest of the query to be something like /conditions/q/NY/New_York.xml.

That tells OpenNMS where to get the data from, but we still need one more file to tell it how to parse the data, and decide what to store. We put that in xml-datacollection/wunderground.xml (the import-groups entry above):

<xml-groups>
   <xml-group name="wunderground_conditions" resource-type="node" resource-xpath="/response/current_observation">
      <xml-object name="temp_c" type="GAUGE" xpath="temp_c"/>
      <xml-object name="temp_f" type="GAUGE" xpath="temp_f"/>
      <xml-object name="UV" type="GAUGE" xpath="UV"/>
      <xml-object name="dewpoint_c" type="GAUGE" xpath="dewpoint_c"/>
      <xml-object name="dewpoint_f" type="GAUGE" xpath="dewpoint_f"/>
      <xml-object name="feelslike_c" type="GAUGE" xpath="feelslike_c"/>
      <xml-object name="feelslike_f" type="GAUGE" xpath="feelslike_f"/>
      <xml-object name="heat_index_c" type="GAUGE" xpath="heat_index_c"/>
      <xml-object name="heat_index_f" type="GAUGE" xpath="heat_index_f"/>
      <xml-object name="precip_1hr_in" type="GAUGE" xpath="precip_1hr_in"/>
      <xml-object name="precip_1hr_metric" type="GAUGE" xpath="precip_1hr_metric"/>
      <xml-object name="precip_today_in" type="GAUGE" xpath="precip_today_in"/>
      <xml-object name="precip_today_metric" type="GAUGE" xpath="precip_today_metric"/>
      <xml-object name="pressure_in" type="GAUGE" xpath="pressure_in"/>
      <xml-object name="pressure_mb" type="GAUGE" xpath="pressure_mb"/>
      <xml-object name="visibility_km" type="GAUGE" xpath="visibility_km"/>
      <xml-object name="visibility_mi" type="GAUGE" xpath="visibility_mi"/>
      <xml-object name="wind_degrees" type="GAUGE" xpath="wind_degrees"/>
      <xml-object name="wind_gust_kph" type="GAUGE" xpath="wind_gust_kph"/>
      <xml-object name="wind_gust_mph" type="GAUGE" xpath="wind_gust_mph"/>
      <xml-object name="wind_kph" type="GAUGE" xpath="wind_kph"/>
      <xml-object name="wind_mph" type="GAUGE" xpath="wind_mph"/>
      <xml-object name="windchill_c" type="GAUGE" xpath="windchill_c"/>
      <xml-object name="windchill_f" type="GAUGE" xpath="windchill_f"/>

      <xml-object name="display_location" type="String" xpath="display_location/full"/>
   </xml-group>
</xml-groups>

That should “just work” for any Wundergroud location, and should tell OpenNMS to hold on to basically all of the numeric values I saw in the results. All of that get stored in your time series database of choice (JRobin, RRDtool, or Newts).

It also holds onto the “display_location” string (just the latest value), which you can use to help give a more meaningful label to your graphs.

Finally, we’ll want to build a pretty graph to show that our datacollection is working:

reports=wunderground.conditions.temp

report.wunderground.conditions.temp.name=Temperature
report.wunderground.conditions.temp.columns=temp_f,feelslike_f,dewpoint_f
report.wunderground.conditions.temp.type=nodeSnmp
report.wunderground.conditions.temp.command=--title="Temperature" \
  --vertical-label="Degrees F" \
  DEF:temp_f={rrd1}:temp_f:AVERAGE \
  DEF:feelslike_f={rrd2}:feelslike_f:AVERAGE \
  DEF:dewpoint_f={rrd3}:dewpoint_f:AVERAGE \
  LINE2:temp_f#00ff00:"Temperature " \
  GPRINT:temp_f:AVERAGE:"Avg \\: %10.2lf" \
  GPRINT:temp_f:MIN:"Min \\: %10.2lf" \
  GPRINT:temp_f:MAX:"Max \\: %10.2lf\\n" \
  LINE2:feelslike_f#ee42f4:"Feels Like  " \
  GPRINT:feelslike_f:AVERAGE:"Avg \\: %10.2lf" \
  GPRINT:feelslike_f:MIN:"Min \\: %10.2lf" \
  GPRINT:feelslike_f:MAX:"Max \\: %10.2lf\\n" \
  LINE2:dewpoint_f#42e8f4:"Dewpoint    " \
  GPRINT:dewpoint_f:AVERAGE:"Avg \\: %10.2lf" \
  GPRINT:dewpoint_f:MIN:"Min \\: %10.2lf" \
  GPRINT:dewpoint_f:MAX:"Max \\: %10.2lf\\n"

That gets you a pretty little graph, like this:

Sample Weather Graph

Updated 2019-03-06: note that the Wunderground API appears to be really and truly dead.

by pioto at June 13, 2018 12:54 AM

May 27, 2018

Ali Polatel

alip's exherbo shortlog 20180527

Here is a summary of my recent Exherbo activity:

May 27, 2018 12:00 AM

January 30, 2018

Danilo Spinella

Termish = malloc(255 * size)

This is the preface for a series of post on terminal apps, called Termish. But why? I love staying in the terminal. A lot of things are faster to do and I don’t have to move my hands away from keyboard every now and then. The problem is: we don’t always have the right tool to use. Plus, a lot of goodies don’t have visibility. We will explore these programs covering a great range of categories, including a usage example for each one.

January 30, 2018 11:07 PM

January 12, 2018

Wulf C. Krueger

Operation Hail Storm by Brett Arquette

Operation Hail Storm (Hail, #1)

Operation Hail Storm by Brett Arquette

My rating: 1 of 5 stars


I was given this ebook for free by the author.

In short: An eccentric rich guy called Hail kills a North Korean bad guy, the US administration notices, sends Hail on a mission to break stuff and sends a female “supermodel” CIA agent, Kara, with him.

The story is lousy and the entire book has tons of useless techno babble in it that should simply have been scrapped. One of the main characters puts it very nicely:

“That meant nothing to Kara. But she did understand that the ship’s big gun was being loaded and brought online. How it worked, she didn’t care.”

Neither do we, especially not after having been treated to pages after pages about steering drones, activating weapons, etc.

The protagonist, Hail, is a highly annoying character:

Hail is sexist…
“It was so damn difficult to register this face, this body, this female package with a hardcore CIA agent.”
“It was just so damn difficult to take this supermodel for real.”

… a macho with nasty attitudes, seeing himself as “the executioner – an exterminator of vermin”, with a blatant disregard for people in general…

“The lieutenant said, “Even if I wanted to, look, there are people down there.” “They’ll move,” Hail argued. “I mean, if you saw a massive helicopter coming down on your head, wouldn’t you move?””

Then there are the typos and the grammar… One example:

“The truck is here,” Kornev said in English. “I have your man opening the warehouse doors.” He nodded sleepily and tried to stand.

/Kornev/ nodded sleepily? I don’t think so – it’s actually the guy he’s talking to but why would an author have to know how to write…

That’s really all you want to know about this book which consists pretty much entirely of sexism, senseless techno babble, copyright violations (multiple verbatim copies from Wikipedia) and not much else.




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at January 12, 2018 10:27 AM

Test

dsfsdfsfsd

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by krueger at January 12, 2018 08:59 AM

January 13, 2017

Ali Polatel

Shell Meditation

Seek your music. As you please.

    while true; do
        (( z = ${RANDOM} % 100 ))
        (( a = $z % 10 ))
        mpc seek $z% &
        sleep $a
        kill $!
        wait
    done

January 13, 2017 12:00 AM

Bright Side of the Moon

Quick Update: I have a flat! My German was barely enough to make it. Und zwar komisch. You get a flat on your birthday. Hard to say how it could get any fucking better than that.

Oh: Ev buldum lan. Na aşağıdaki! #direnkigülsünyüzün. Yolu düşen gelsin. Yoksa. Ayıp. Olur. Bana. Bak. Manifestolâmin.

Ay gidiyor

Last and least. Here is a poem and a song that describes everything so far. Life. is. just. pregnant.

Çağırın! Güneşin zaptı yakın! #martılaraselam #petşişeistemezük.

kaotik/dN-rWSWe24w

Pregnant

Hayali Ali, Çengelköy

drawing curtains
hiding fetus
behind venus
all Night long
let it flow
into snow
crystals in a row
mothers will bow
and swallow
their unborn babies!

Do the Evolution: https://www.youtube.com/watch?v=aDaOgu2CQtI

January 13, 2017 12:00 AM

January 03, 2017

Ali Polatel

Endgame Tricks

Chess endgames often look deceptively simple. Reduced number of pieces on the board brings reduced alertness to the player. Thus, it is not uncommon for the adversary to come up with sneaky ways to take advantage of this relaxed state. Thinking in terms of psychology, the most important feature of this relaxed state is the reduced feeling of danger which in turn leads to reluctance to justify moves with concrete variations. Even though, schematic thinking is an important feature of endgame technique, it has a psychological danger where player's reliance upon natural moves rather than logical ones can lead h/er to trouble when there exists a non-obvious nuisance in the position which establishes a significant distinction between the natural and the logical. At the end of the day chess is purely mathematics and the term natural is nothing but pattern recognition. Yet, no pattern is exactly the same.

One form of blunder which is very common to such a frame of mind is quiescence errors where the player is decepted by the natural aesthetics of a seemingly winning move sequence and fails to spot a trap which is no further than half a move away. The main reason of the blunder is psychological, the sudden change of excitement coupled with the reduced sense of danger literally blinds the player who could otherwise easily spot the problem with the move sequence at hand. Below is a simple, illustrative example of such an error. This is an online blitz game where I had the white pieces.

January 03, 2017 12:00 AM

December 27, 2016

Ali Polatel

Envtag 0.6

Envtag-0.6 has been released.

  • Fix alt_getopt and envutils for Lua-5.2 and newer.

tarball: envtag-0.6.tar.bz2
sha1sum: e1e1179198cab15717daea986f0a27cbe3a0e963

December 27, 2016 12:00 AM

December 26, 2016

Ali Polatel

Envtag 0.5

Envtag-0.5 has been released.

  • Add support for Lua-5.2 and newer.
  • Fix –delimiter option of get-xiph and set-xiph commands
  • Update alt_getopt to 0.7
  • Follow symlinks when determining filetype information using libmagic

tarball: envtag-0.5.tar.bz2
sha1sum: 04a8fb00cadd452899620bd168d36a6015b6b772

December 26, 2016 12:00 AM

September 16, 2016

Mike Kelly

First Post in Foreverz

It’s been a while since I’ve made any blog posts…

Here’s a quick update since the last time:

  • I've changed jobs twice.
  • I've had a bunch of kids.

I also switched everything (both blog and website) over to a Jekyll site about… 2 years ago.

I don’t have the time to contribute as much to open source as I used to, but here’s a little tidbit.

Deploying a Jekyll Blog to a Traditional Web Host, using GitLab CI

I’ve been using GitLab at work for a while now, and it’s grown on me. I’ve recently managed to get my entire website fully deployed by GitLab, both to a staging area with their Pages tool, and to my ‘ole reliable pair Networks hosting account.

I still have to audit my repo before I can make it fully public, but here’s the .gitlab-ci.yml I’m using:

# This file is a template, and might need editing before it works on your project.
# Full project: https://gitlab.com/pages/jekyll
image: ruby:2.3.1

before_script:
  - bundle install

test:
  stage: test
  script:
  - bundle exec jekyll build -d test
  artifacts:
    paths:
    - test
  except:
  - master

pages:
  stage: deploy
  environment: staging
  script:
  - bundle exec jekyll build -b /pioto-org -d public
  artifacts:
    paths:
    - public
  only:
  - master

production:
  stage: deploy
  environment: production
  when: manual
  variables:
    JEKYLL_ENV: production
  before_script:
  - bundle install
  - apt-get update && apt-get install -y rsync
  - umask 0077 && mkdir -p /root/.ssh
  - umask 0047 && echo "${PROD_KNOWN_HOSTS}" >> /root/.ssh/known_hosts
  - umask 0077 && echo "${PROD_DEPLOY_KEY}" > /root/.ssh/id_rsa
  script:
  - bundle exec jekyll build -d public
  - rsync -crvz --delete-after --delete-excluded public/ "${PROD_USERNAME}@${PROD_HOSTNAME}:"
  artifacts:
    paths:
    - public
  only:
  - master

Here’s basically how this works:

  • There’s a basic “test” job, which just confims that everything can actually be built.
  • There’s a “pages” job, which is how things get deployed to GitLab Pages. Every commit on the master branch goes there automatically.
  • There’s a “production” job, which is where the magic happens to deploy my site live:
    • Before the build, we make sure we have rsync, and set up the ssh keys needed for the deploy. The contents of the key files are stored as secure variables.
    • We build with the correct baseurl setting.
    • We build with JEKYLL_ENV=production, so that things like Google Analytics get wired in.
    • We use rsync (with rrsync set up on the other end) to deploy the site.

by pioto at September 16, 2016 05:59 AM

April 17, 2016

Wulf C. Krueger

Rise by Jennifer Anne Davis

Rise (Order of the Krigers, #1)

Rise by Jennifer Anne Davis

My rating: 4 of 5 stars

I received this book as part of the Early Reviewers program. As I’ve often received sub-par books, I was somewhat sceptical about this book as well. Turns out I was wrong, to some extent at least.


While “Rise” does have quite a few deus-ex-machina moments (a certain rescue comes to mind), even some (more or less) glaring plot holes (what are the “apparitions” during a trial of our heroine, are some of them actually there, etc. etc.?) and some “why did she do *that* now?!” moments, this book was a real page-turner for me. I’ve lost a not-so-small number of hours of sleep over it, actually, which doesn’t happen all that often.


In spite of the shortcomings I mentioned before, our heroine is likeable, smart (sometimes…) and obviously fairly powerful. Her primary adversary is written as a multi-faceted character (but still fairly shrouded in mystery at the end of the book) and due to that, a fairly interesting figure. As are several side-kicks of the heroine (yes, sorry, I’ve forgotten her name as neither her nor the book are ultimately *that* remarkable 🙂 ) who grow (despite formulaically at times) into their respective roles mostly well.


Another gripe of mine with the book is that certain terms (e. g. “Krigers” from the title) rooted in German are used but mutilated, e. g. in German it’s “Krieger” (and has been for centuries!). So if you use foreign words in an attempt to make your book more “exotic” take at least the time to do your homework and “import” those foreign words properly. (After all, we don’t write “computer” as “Komputer” in German either.)


Anyway, ultimately, for any fan of the fantasy genre (who has read all the genre’s classics) willing to suspend their disbelief a bit more than usual this book is recommended (with some reservations). I’m looking forward to the next instalment in this series.




View all my reviews

I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

by Wulf at April 17, 2016 11:06 AM

March 13, 2016

Wulf C. Krueger

Gerrit updated to 2.12.2 / Jenkins updated to 1.652

I’ve updated Gerrit from 2.11.5 to the latest release 2.12.2. These are the user-visible highlights:

  • New Submit Whole Topic setting: All changes belonging to the same topic will be submitted at the same time. Currently disabled because it’s still experimental but I will enable this once it’s considered stable.
  • Support for GPG Keys and signed pushes. You can add your GPG key in Gerrit and git push –signed to use this. This should work right now – but doesn’t for me at least. If you have more success, let me know. 🙂
  • New search operators, e. g. author:, committer:, commentby: and a few others.
  • Your preferences for editing and diff presentation can now be configured in your user settings.
  • Gerrit’s in-line editor has now support for Emacs and Vim key maps.
  • There are several new API calls available for those using their own Gerrit clients (yes, I’m looking at you, Kylie McClain! 😉 ).

You can find the complete release notes for the Gerrit versions here:

Gerrit 2.11.6
Gerrit 2.11.7
Gerrit 2.12
Gerrit 2.12.1
Gerrit 2.12.2

As for Jenkins, I’ve updated it to 1.652 as well. Nothing spectacular there but some bug fixes in the backend mostly; including two security fixes.

The full changelog can be found here.

P. S.: If you’re from Germany, specifically from Baden-Württemberg, Rheinland-Pfalz or Sachsen-Anhalt: STOP READING THIS AND GO TO CAST YOUR VOTE. I did.

P. P. S.: If you (want to) vote for the AfD or other fascist parties: Please let me know. I like to know my enemies.

I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂

     

    by Wulf at March 13, 2016 03:11 PM

    December 17, 2015

    Wulf C. Krueger

    A Banquet of Consequences by Elizabeth George

    A Banquet of Consequences (Inspector Lynley, #19)

    A Banquet of Consequences by Elizabeth George

    My rating: 1 of 5 stars


    Sodium azide? Just take it and be done with it, George.

    This book was so extraordinarily bad, I don’t even know where to start criticizing it.

    I’ve read all the Lynley novels and enjoyed them greatly until one of the protagonists was killed off. From then on, not only a life derailed but the entire series and its author.

    It looks like George would much prefer to become known for “serious” books instead of mysteries but doesn’t understand she simply doesn’t have it in herself to ever really succeed at that.

    Instead, she keeps writing horribly bad books that deserve no praise at all because they fail at being mysteries and serious social criticism both.

    Just calling it a Lynley novel doesn’t really make it one and this certainly was the last sham I’ve fallen victim of.



    View all my reviews

    I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

    by Wulf at December 17, 2015 11:01 AM

    October 27, 2015

    Wulf C. Krueger

    “Where have you been?!”

    As many of you will have noticed, I’ve been “gone” for almost two months. To some of you, I’ve explained my absence but I’d like to present a “compact” version here as well.

    As many of you know, I’ve been the head of my department at work last year. Due to problematic circumstances beyond my control, I decided it best for me to formally resign from said position effective December, 31st 2014.

    Fast-forward to mid 2015: A new head of department has been installed. Naturally, I’m her deputy. The “problematic circumstances” mentioned above have gone even more “challenging” by now. Both my new team lead and I do all we can for everyone involved.

    Mid September 2015 – things get rougher for a lot of reasons. The team lead goes on extended holidays and I’m taking over. There are lots of things to do and way too few hours in a day to work on them – even for a highly skilled and systematically working professional like myself.

    I’m working very long each week (I won’t mention how long exactly to avoid all kinds of trouble 🙂 ) and, thus, have to cut down on all other activities and since Exherbo is the most time-consuming one, it’s the first (but not the last) to suffer from that.

    By now, I have a few effective methods (and professional help) to avoid a burn-out, etc. and so, now that my team lead is back at work, things should slowly be going back to normal. Which – as you can see – effectively means: I’m back. 🙂

    I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂

     

    by krueger at October 27, 2015 01:52 PM

    Into the Decay by Justin K. Arthur

    Into the Decay (Gods of Destruction, #1)

    Into the Decay by Justin K. Arthur

    My rating: 4 of 5 stars

    This was yet another pleasant surprise from LibraryThing’s Early Reviewers program.


    This is a classic example for not judging a book by its cover because – let’s be honest – the cover looks like a failed experiment.


    The book itself, though, is fairly enjoyable. In fact, the story telling, the writing and the overall style (which *is* somewhat rough at the edges) reminds me of an early Brandon Sanderson.


    The story was interesting and fairly well told. 




    View all my reviews

    I am and have been working on quite a few F/OSS projects: Exherbo (Nick: Philantrop), Gentoo (Nick: Philantrop), Calibre plugin iOS reader applications, Calibre plugin Marvin XD, chroot-manager, stuff on github, lots of other projects. If you like my work, feel free to donate. 🙂

    by krueger at October 27, 2015 11:11 AM

    September 01, 2015

    Wulf C. Krueger

    Jenkins updated to 1.627

    Another quick news blurb: I’ve updated Jenkins to 1.627. It has a few bugfixes but nothing really spectacular.

    The full changelog can be found here.

     

    I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂

     

    by krueger at September 01, 2015 12:29 AM

    August 30, 2015

    Wulf C. Krueger

    Gerrit updated to 2.11.3 / Jenkins updated to 1.626

    I’ve just updated Gerrit to the latest release 2.11.3. These are the user-visible highlights:

    • When you choose a user (e. g. to add a reviewer) inactive accounts are not suggested anymore.
    • If you use side-by-side diffs (why ever would you?!), their performance has been improved
    • If your browser supports the JavaScript clipboard API (e. g. Chromium does) that’s preferred over the old Flash widget.
    • Quite a few bug fixes.

    You can find the complete release notes for Gerrit 2.11.3 here.

    As for Jenkins, I’ve updated it from 1.623 to 1.626 as well. Nothing spectacular there but some bug fixes in the backend mostly.

    The full changelog can be found here.

    I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂

    by krueger at August 30, 2015 02:06 PM

    August 08, 2015

    Wulf C. Krueger

    Jenkins updated to 1.623

    Quick news blurb: I’ve updated Jenkins to 1.623. It has quite few bugfixes but nothing really spectacular.

    The full changelog can be found here.

     

    I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂

     

    by krueger at August 08, 2015 09:37 AM

    July 14, 2015

    Wulf C. Krueger

    Gerrit updated to 2.11.2 / Jenkins updated to 1.620

    This morning, I’ve updated Gerrit to the latest release 2.11.2. These are the user-visible highlights:

    • Automatic suggestions in the search box work again.
    • Several issues that could potentially cause data loss have been fixed.
    • Newer jgit version

    You can find the complete release notes for Gerrit 2.11.2 here.

    As for Jenkins, I’ve updated it from 1.617 to 1.620 as well. Lots of bugfixes were implemented the most interesting of which concerned the console (log) output that could get truncated.

    The full changelog can be found here.

    I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂

     

    by krueger at July 14, 2015 03:03 PM

    June 13, 2015

    Wulf C. Krueger

    Gerrit updated to 2.11.1

    I’ve just finished updating Gerrit to the latest release 2.11.1. These are the highlights:

    • You can now link accounts to each other (Settings / Identities / Link Another Identity). This means, if you want to be able to use both Github and Google, just use that button.
      Furthermore, if you accidentally create a new account (you’ll know it happened if you can’t +2 changes for your own repository anymore), you can now just link both yourself.
      If things still somehow go wrong, just let me know and I’ll link your accounts manually.
    • Performance improvements for pushing changes to Gerrit and some other areas
    • Newer jgit version
    • Lots of bugfixes

    You can find the complete release notes for Gerrit 2.11 here.

     

    I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂

     

    by krueger at June 13, 2015 09:15 AM

    May 08, 2015

    Wulf C. Krueger

    Gerrit updated to 2.11 – being in-line, changing change screens and the return of the king!

    I’ve just finished updating Gerrit to the latest release 2.11. This gives us some amazingly cool new features to play with:

    • The Return of The King or: The Empire strikes back! Authentication using Google’s Oauth2 is supported now. When logging in, you can choose between github (the preferred supplier) or Google.
      (This is going to change once more this year and then hopefully never again. User accounts have been preserved now, though, and will be preserved when I’m done with the authentication changes I’m preparing.)
    • Gerrit is now back where it belongs – in Tomcat. That makes it faster and more reliable.

    You can find the complete release notes for Gerrit 2.11 here.

     

    I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂


    by krueger at May 08, 2015 05:06 PM

    May 07, 2015

    Wulf C. Krueger

    Great Article about Exherbo’s MultiArch is online!

    Here’s a great article about Exherbo’s MultiArch!

    You’ll find it on these sites as well (please up-vote it if you like it!):

    – http://slashdot.org/firehose.pl?op=view&type=submission&id=4410889

    – https://www.reddit.com/r/linux/comments/357rkz/exherbo_the_first_gnulinux_distribution_to_gain/

    – https://news.ycombinator.com/item?id=9508077

    Others will hopefully follow. I’ll update this post accordingly.

    I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂


    by krueger at May 07, 2015 08:42 PM

    Gerrit update tomorrow

    Just a short heads-up: I’m going to update our Gerrit installation tomorrow so please expect some downtime.

     

    I am and have been working on quite a few F/OSS projects:
  • Exherbo (Nick: Philantrop)
  • Gentoo (Nick: Philantrop)
  • Calibre plugin iOS reader applications
  • Calibre plugin Marvin XD
  • chroot-manager
  • stuff on github
  • Lots of other projects
  • If you like my work, feel free to donate. 🙂

    by krueger at May 07, 2015 05:23 PM

    April 04, 2015

    Ciaran McCreesh

    Paludis 2.4.0 Released

    Paludis 2.4.0 has been released:

    • Bug fixes.
    • We now use Ruby 2.2, unless –with-ruby-version is specified.

    by Ciaran McCreesh at April 04, 2015 11:55 AM

    October 01, 2014

    Ciaran McCreesh

    Paludis 2.2.0 Released

    Paludis 2.2.0 has been released:

    • Bug fixes.
    • Compilation fixes for Clang.
    • Added ‘cave resolve –chroot-path’.
    • Removed the “breaks Portage” feature.

    by Ciaran McCreesh at October 01, 2014 06:05 PM

    February 23, 2014

    Bryan Østergaard

    So I was dox'ed yesterday

    and nobody gives a fuck.

    Here's the associated spam:
    14:53 < ~dd0sb0ss> rip
    14:53 < ~dd0sb0ss> PARTY AT Vølundsgade 31, 3. th. 2200 København N
    14:53 < ~zsasz> ur unicode is broken dd0sb0ss
    14:53 < ~dd0sb0ss> fuq
    14:54 < ~dd0sb0ss> THE OFFICIAL FREENODE PARTYLINE IS REACHABLE AT +4533137886
    14:54 -!- dd0sb0ss was kicked from #freenode by kloeri_ [dd0sb0ss]

    Ignoring the broken unicode that's actually the correct information. Well done on finding this information that has been publically available (by my own choice) for several years.

    It's never been hard to find me and that's not changing in the future just because of some silly kids either. Unlike these kids I'm actually proud of what I do and I'm more than happy to stand by my actions with my real name and even address widely available.

    And for all those sensible people out there just shaking your heads at this sillyness - you're welcome to visit, especially if you are interested in open source software or need a consultant on some project :) I'd suggest contacting me by email first though.

    PS. Thanks to GNAA for this obvious advertising opportunity.

    by kloeri at February 23, 2014 08:49 PM

    October 13, 2013

    Ciaran McCreesh

    September 24, 2013

    Ali Polatel

    A Study in Sydbox

    Due to the fact that sydbox is a low level tool which inspects system calls, debugging its bugs become cumbersome at times. GDB and Valgrind are two valuable tools which comes to rescue.

    I hit this bug when I was investigating Exherbo bug 369. I wrote a small C program to reproduce the problem:

    #include <errno.h>
    #include <string.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <fcntl.h>
    #include <elf.h>
    #include <sys/auxv.h>
    #include <sys/types.h>
    
    int main(void)
    {
        pid_t pid;
        int pfd[2];
        unsigned long val;
        char buf[1024];
        int auxfd;
    
        val = getauxval(AT_SECURE);
        fprintf(stderr, "getauxval(%lu) = %lu (errno:%d %s)\n",
            AT_SECURE, val, errno, strerror(errno));
    
        pipe(pfd);
        pid = fork();
        if (pid == 0) {
            /* 23 is AT_SECURE as defined in elf.h */
            char *const argv[] = {"sh", "-c", "od -t u8 | awk '{if ($2 == 23) print }'", NULL};
            close(pfd[1]);
            dup2(pfd[0], STDIN_FILENO);
            execvp(argv[0], argv);
        } else {
            close(pfd[0]);
            auxfd = open("/proc/self/auxv", O_RDONLY);
            while (read(auxfd, buf, 1024) > 0)
                write(pfd[1], buf, 1024);
            close(pfd[1]);
        }
    }
    

    I compiled this small program with gcc and when I run it under sydbox-1 I witnessed an interesting output:

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % ./sydbox ./a.out
    getauxval(23) = 0 (errno:0 Success)
    sydbox@1379972151: bash[26306.0:26305] sys:4|stat| PANIC_KILL
    

    Note there is not a prompt at the end. sydbox-1 hung right after logging PANIC_KILL. Before firing up a debugger and start to debug, let’s gather as much information as possible by checking whether verbose logging will tell us something:

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % ./sydbox -m log/console_level:511 ./a.out
    ...
    sydbox@1379972294: [wait(-1, 0x857f) = 28848] WIFSTOPPED,sig=133|(null)|
    sydbox@1379972294: [wait(-1, 0x857f) = 28848] WIFSTOPPED,sig=133|(null)|
    sydbox@1379972294: [wait(-1, 0x857f) = 28848] WIFSTOPPED,sig=133|(null)|
    sydbox@1379972294: bash[28848.0:28847] sys:4|stat| entering system call
    sydbox@1379972294: bash[28848.0:28847] sys:4|stat| PANIC_KILL
    sydbox@1379972294: bash[28848.0:28847] sys:4|stat| trace_kill(sig:9) failed (errno:3|ESRCH| No such process)
    sydbox@1379972294: process 28848 ignored
    

    After a couple of wait(2) loops the stat(2) system call handler - which takes magic commands as input paniced for some reason and called the function panic() which decided to kill the traced process.

    So far so good. Although this looks unrelated to the bug at hand, it is still a good idea to fix it when you have some free time. Let’s fire up the debugger and try to do a reverse debug. I use cgdb which provides a nice curses frontend to gdb.

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % libtool --mode=execute cgdb --args ./sydbox -m log/console_level:511 ./a.out
    GNU gdb (GDB) 7.6.1
    Copyright (C) 2013 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-unknown-linux-gnu".
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>...
    Reading symbols from /home/alip/src/sydbox/sydbox-1/src/.libs/lt-sydbox...done.
    (gdb)
    

    First let’s break on main(), run the program and when the breakpoint is hit set another breakpoint on sys_stat (the stat(2) system call handler function) and start [recording][recording] the program instructions and continue.

    (gdb) break main
    Breakpoint 1 at 0x419d98: file sydbox.c, line 1255.
    (gdb) run
    Starting program: /home/alip/src/sydbox/sydbox-1/src/.libs/lt-sydbox -m log/console_level:511 ./a.out
    warning: no loadable sections found in added symbol-file system-supplied DSO at
    0x7ffff7ffa000
    warning: Could not load shared library symbols for linux-vdso.so.1.
    Do you need "set solib-search-path" or "set sysroot"?
    
    Breakpoint 1, main (argc=4, argv=0x7fffffffd428) at sydbox.c:1255
    (gdb) record
    (gdb) break sys_stat
    Breakpoint 2 at 0x411d58: file syscall-special.c, line 150.
    (gdb) cont
    Continuing.
    Do you want to auto delete previous execution log entries when record/replay buffer becomes full (record full stop-at-limit)?([y] or n)
    

    This takes some time. When the record/replay buffer is full, gdb kindly asks you whether you want to continue execution and auto-delete previous log entries or stop instantly and investigate further on. We’re not interested in the previous log entries so let’s just hit [enter] and continue.

    Process record and replay target doesn't support syscall number -1
    Process record: failed to record execution log.
    
    [process 8201] #1 stopped.
    

    This is a weird message by gdb which fortunately I have seen before. sydbox-1 makes use of some rather new system calls which gdb does not support. The newest of those are process_vm_readv and process_vm_writev which were added to Linux as of kernel version 3.2. I’ll add a small one-time tweak to the auto-generated pinktrace/system.h file telling sydbox-1 that these system calls are not supported by the system and let it use the good old ptrace(2) way of reading one long at a time:

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % cd ../pinktrace
    alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % sed -i -e '/^#define PINK_HAVE_PROCESS_VM_\(READ\|WRITE\)V/s/1/0/' system.h
    alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % grep PINK_HAVE_PROCESS system.h
    #define PINK_HAVE_PROCESS_VM_READV      0
    #define PINK_HAVE_PROCESS_VM_WRITEV     0
    alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % make clean && make -j
    

    Now let’s return to src/ and rebuild sydbox:

    alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % cd ../src
    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % make clean && make -j
    

    Let’s re-run sydbox to make sure the bug is still there:

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % ./sydbox ./a.out
    getauxval(23) = 0 (errno:0 Success)
    0000340                   23                    0
    

    This is where my luck kicks in! The bug is not there anymore. Now we know the problem is actually in pinktrace, the underlying library providing thin wrappers around the ptrace(2) system call. We have also narrowed the problem down to one of process_vm_readv and process_vm_writev functions. Now let’s go back to turn the #defines on and retry with gdb:

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % cd ../pinktrace
    alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % sed -i -e '/^#define PINK_HAVE_PROCESS_VM_\(READ\|WRITE\)V/s/0/1/' system.h
    alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % grep PINK_HAVE_PROCESS system.h
    #define PINK_HAVE_PROCESS_VM_READV      1
    #define PINK_HAVE_PROCESS_VM_WRITEV     1
    alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % make clean && make -j
    alip@hayalet ~/src/sydbox/sydbox-1/pinktrace (git)-[master] % cd ../src
    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % make clean && make -j
    

    Now we will start recording only after we enter the sys_stat() function:

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % libtool --mode=execute cgdb --args ./sydbox -m log/console_level:511 ./a.out
    GNU gdb (GDB) 7.6.1
    Copyright (C) 2013 Free Software Foundation, Inc.
    License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
    This is free software: you are free to change and redistribute it.
    There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
    and "show warranty" for details.
    This GDB was configured as "x86_64-unknown-linux-gnu".
    For bug reporting instructions, please see:
    <http://www.gnu.org/software/gdb/bugs/>...
    Reading symbols from /home/alip/src/sydbox/sydbox-1/src/.libs/lt-sydbox...done.
    (gdb) break sys_stat
    Breakpoint 1 at 0x411d58: file syscall-special.c, line 150.
    (gdb) run
    ...
    sydbox@1379974050: [wait(-1, 0x857f) = 31387] WIFSTOPPED,sig=133|(null)|
    sydbox@1379974050: [wait(-1, 0x857f) = 31387] WIFSTOPPED,sig=133|(null)|
    sydbox@1379974050: bash[31387.0:31386] sys:4|stat| entering system call 
    
    Breakpoint 1, sys_stat (current=0x62fa00) at syscall-special.c:150
    (gdb) record
    (gdb) cont
    Continuing.
    Process record and replay target doesn't support syscall number -1
    Process record: failed to record execution log.
    
    [process 31382] #1 stopped.
    0x00007ffff78fa048 in process_vm_readv () from /usr/lib/libc.so.6
    

    Gdb kindly stopped where the bug is actually located. Let’s stop recording and single-step to see what error this function returns.

    (gdb) record stop
    Process record is stopped and all execution logs are deleted.
    (gdb) n
    Single stepping until exit from function process_vm_readv, which has no line number information.
    _pink_process_vm_readv (pid=31387, local_iov=0x7fffffffbe10, liovcnt=1, remote_iov=0x7fffffffbe00, riovcnt=1, flags=0) at vm.c:199
    (gdb) n
    (gdb) p r
    $1 = -1
    

    The function _pink_process_vm_readv is returning -1 which is the negated errno value EPERM. This makes pink_vm_cread_nul fail with -1 which in turn makes pink_read_vm_data_nul return -1 which in turn makes syd_read_string function to call panic(). Now we have a detailed information about the panic happening.

    Another valuable tool to aid in debugging system call inspection is strace. Let’s check with strace what these stat(2) system calls’ arguments are. I have not updated my strace.git tree for a while and trying to compile it I have found a problem due to an inconsistency between glibc and linux kernel headers which keruspe fixed for pinktrace with commit e1aa031 a week ago:

    alip@hayalet ~/src/strace (git)-[master] % make -j1
    ...
    gcc -DHAVE_CONFIG_H -I.  -I./linux/x86_64 -I./linux -I./linux  -Wall -Wwrite-strings -D__ALIP_WAS_HERE -g -ggdb3 -O2 -march=native -D__PINK_IS_BEHIND_THE_WALL -MT process.o -MD -MP -MF .deps/process.Tpo -c -o process.o process.c
    In file included from process.c:66:0:
    /usr/include/linux/ptrace.h:58:8: hata: 'struct ptrace_peeksiginfo_args' yeniden tanımlanmış
     struct ptrace_peeksiginfo_args {
            ^
    In file included from defs.h:169:0,
                     from process.c:37:
    /usr/include/sys/ptrace.h:191:8: bilgi: originally defined here
     struct ptrace_peeksiginfo_args
            ^
    

    struct ptrace_peeksiginfo_args is a recent addition to ptrace.h headers and both sys/ptrace.h of glibc-2.18 and linux/ptrace.h of Linux define it. Thus defining the same struct twice fails. Fortunately we have seen this error before with the IA64 architecture where the same happens with struct pt_all_user_regs and struct ia64_fpreg.

    Having hit another totally unrelated bug, I have prepared a patch and tested it:

    alip@hayalet ~/src/strace (git)-[master] % make
    gcc -Wall -Wwrite-strings -D__ALIP_WAS_HERE -g -ggdb3 -O2 -march=native -D__PINK_IS_BEHIND_THE_WALL   -o strace bjm.o block.o count.o desc.o file.o io.o ioctl.o ipc.o loop.o mem.o mtd.o net.o pathtrace.o process.o quota.o resource.o scsi.o signal.o sock.o strace.o stream.o syscall.o system.o term.o time.o util.o vsprintf.o  
    make[2]: `/home/alip/src/strace' dizininden çıkılıyor
    make[1]: `/home/alip/src/strace' dizininden çıkılıyor
    

    It compiles and runs fine. Time to prepare a git-format-patch and send to strace-devel mailing list. These git tools make it really easy to prepare patches and submit them. Here is the link to the actual mail.

    So far so good. Another bug fixed and submitted upstream. Let’s go ahead and see whether strace can make sense of those stat(2) arguments:

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % ~/src/strace/strace -f -e stat ./a.out Process 18698 attached [pid 18697] +++ exited with 0 +++ stat(0x9db090, {…}) = 0 stat(0x485897, {…}) = 0 stat(0x485897, {…}) = 0 …

    
    Note the `-f` argument. Remember our panic line started with
    `bash[31387.0:31386]` this does not happen in my small program but in bash which
    is spawned right after `fork(2)`. The `-f` argument of [strace][strace] follows
    forks.
    
    Now the question is what those hex values in the first arguments are.
    [strace][strace] usually does a good job in decoding strings so something is
    weird going on here. Let's go one step ahead and try to trace [strace][strace]
    using [strace][strace] itself. One has to be careful here not to use `-f` with
    the first [strace][strace] because *only one process may trace a process at a
    time* and we want the first [strace][strace] to only trace [strace][strace] not
    our small program `a.out`. We also use the option `-e 'signal=!all'` so that we
    filter some of the unwanted output:
    
    

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % strace -q -e ‘process_vm_readv’ -e ‘signal=!all’ – strace -e ‘signal=!all’ -f -e stat ./a.out getauxval(23) = 0 (errno:0 Success) Process 22286 attached [pid 22285] +++ exited with 0 +++ process_vm_readv(22286, 0x7fff71faed40, 1, 0x7fff71faed50, 1, 0) = -1 EPERM (Operation not permitted) stat(0x1938070, process_vm_readv(22286, 0x7fff71fafce0, 1, 0x7fff71fafcf0, 1, 0) = -1 EPERM (Operation not permitted) {…}) = 0

    
    The output of the two strace processes are mixed but here we can also see that
    the system call `process_vm_readv()` returns the error condition `EPERM`.
    Consulting the [process_vm_readv(2)][man_process_vm_readv] manual page:
    
    

    EPERM The caller does not have permission to access the address space of the process pid.

    
    Now, why on earth is `ptrace()` is permitted but `process_vm_readv()` is not? It
    is clear that they are two different APIs. It is time to dig into the kernel
    source. Having walked through the kernel code on [lxr][lxr] for a while, I
    figured this [sydbox-1][sydbox_1] PANIC was due to the fact that I have the
    sysctl `kernel.yama.ptrace_scope` set to 1 which is [YAMA restricting
    ptrace()][yama_restricts_ptrace]. After:
    
    

    alip@hayalet ~/src/sydbox/sydbox-1/src (git)-[master] % sudo sysctl kernel.yama.ptrace_scope=0 kernel.yama.ptrace_scope = 0 ~~~

    Everything works OK and now I am aware of the fact that there is another way to restrict ptrace() and I will work on sydbox-1 to make it handle such errors gracefully (without hanging) but that’s for another night.

    Confession: I started working at Özgür Yazılım A.Ş. as a Linux system administrator and programmer and I have been using Arch Linux for a while which means I have not been configuring/compiling my own kernel. This was a nice message to me that I should stop being a slacker and return to Exherbo now.

    The Exherbo bug 369 is still not fixed, but I am working on it :-)

    September 24, 2013 12:00 AM

    September 21, 2013

    Ali Polatel

    Killing tracees on exit with sydbox-1

    As I’ve written in my blog post Recent Linux changes to help sandboxing Linux has a few new features which may aid in enhancing sydbox-1.

    One of these features is PTRACE_O_EXITKILL. This is a new ptrace option to kill tracees upon tracer exit. Quoting from ptrace(2)

    PTRACE_O_EXITKILL (since Linux 3.8)
    If a tracer sets this flag, a SIGKILL signal will be sent to every
    tracee if the tracer exits.  This option is useful for ptrace
    jailers  that want to ensure that tracees can never escape the
    tracer's control.
    

    This is a simple feature providing a nice enhancement. sydbox-1 had a similar feature to prevent tracees from running upon an abnormal exit. There are two options, namely core/abort/decision and core/panic/decision, which when given the value killall sends SIGKILL to all traced processes upon abnormal exit. There is also the option core/trace/exit_wait_all to make sydbox-1 wait for all tracees to exit before exiting.

    However, doing this in user-space is tricky and error-prone. Considering it’s the tracer who is dying unexpectedly, it may not always be possible to kill tracees which will then run in potentially unsafe mode. You can read this lkml thread and many more to dive into the internals of ptrace(2).

    Thus, sydbox-1 learned a new magic command with the name core/trace/exit_kill to turn this functionality on with the two commits I pushed to master today:

    One restriction is the option core/trace/exit_kill is only useful when it is set upon startup. It does not work with the magic stat() system call. ptrace(2) options are inherited from parent to children thus trying to set this on a per-tracee basis requires one to change the value of the option for the parent and all its children. Although this is possible in theory (sydbox-1 keeps track of parent<->children relationships) it would add some complexity to the program which I do not want unless I see a well-founded reason to do so.

    September 21, 2013 12:00 AM

    September 14, 2013

    Alexander Færøy

    Enhancing SSL Security for IRC: DANE Support

    September 14, 2013.

    A couple of weeks ago, I had a discussion with some of the Quakenet coders on how to add SSL support to their IRC daemon, but the discussion ended up being about the false sense of security that SSL potentially can give to the user. The Quakenet hackers have an interesting article online about their thoughts on the matter and while I do understand their points, I do not agree with it being a good enough reason to completely avoid SSL on your IRC network.

    We quickly changed the discussion to be about how the IRC clients should be able to verify that the SSL certificate, received from the server, is not a malicious certificate from someone doing MITM attacks. This was not the discussion I had hoped for, but nevertheless, it was an interesting discussion to participate in and made me spend a few days thinking about their concerns.

    Sadly, as it is today, some IRC clients, including Irssi, only do full SSL certificate validation as an opt-in option (via the -ssl_verify option for /connect in Irssi’s case) rather than having it as an opt-out option, which would be ideal. This is simply because people in the IRC community have historically not wanted to spend money on certificates from the so called “trusted” Certificate Authorities like we have seen on the web. Changing this from opt-in to opt-out is something that I would like to see happen, but it is not something that is going to be easy. We saw how many web sites got a “proper” certificate after the Mozilla guys made it slightly harder to actually mark a self-signed certificate as trusted. This was at first a very annoying move, but these days we rarely see self signed certificates when we browse around the web.

    A few days after the discussion on IRC, I was having dinner at Thomas’s place and I mentioned the discussion with the Quakenet hackers. Thomas knows a lot about security, privacy and DNS, and he is an avid Quakenet user, so it appeared more than obvious to take the discussion with him and hear what his take to the problem was. His suggestion was to take a look at DNSSEC and DANE and see if that could be used as a possible solution.

    Luckily for me, it was exactly what I was looking for.

    A few days after the dinner conversation, I pushed a patch to Irssi’s source code repository that enabled support for DANE validation of SSL certificates.

    Let’s have a look at how DANE works. This will hopefully give you enough knowledge to understand the basics of what is going on. I will document how to compile Irssi with DANE support enabled and test whether it works or not.

    What is DANE?

    DANE is an acronym for “DNS-Based Authentication of Named Entities” and comes with a protocol named TLSA. DANE is an internet standard and you can read the full technical specification of DANE in RFC6698, but hopefully, this article will give you an introduction to get started using DANE for your IRC servers right away. The concepts are totally protocol agnostic so this will work for other protocols than IRC as well, but it does require modification to the client software to work.

    DANE is a simple way of storing information about a certificate in the DNS system. Adding DNSSEC on top of the cake, gives you a very powerful way of validating certificates where the client relies on a trusted source (their ISP’s DNS server and DNSSEC) validating the information from the possibly eavesdropped IRC server.

    DANE is implemented as a new DNS resource record named TLSA. You can see an example of such record here from our test IRC server linked to the IRCsource IRC network:

    $ dig TLSA _6697._tcp.ircsource.baconsvin.org
    
    ; <<>> DiG 9.8.3-P1 <<>> TLSA _6697._tcp.ircsource.baconsvin.org
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38406
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 9
    
    ;; QUESTION SECTION:
    ;_6697._tcp.ircsource.baconsvin.org. IN TLSA
    
    ;; ANSWER SECTION:
    _6697._tcp.ircsource.baconsvin.org. 3358 IN TLSA 3 0 1 9B954A014881108A9058DB80020909FFD8B4C44C6F41C8796B3A1EA4 3A444B94
    
    ;; AUTHORITY SECTION:
    baconsvin.org.      50607   IN  NS  ns1.gratisdns.dk.
    baconsvin.org.      50607   IN  NS  ns5.gratisdns.dk.
    baconsvin.org.      50607   IN  NS  ns3.gratisdns.dk.
    baconsvin.org.      50607   IN  NS  ns2.gratisdns.dk.
    baconsvin.org.      50607   IN  NS  ns4.gratisdns.dk.
    
    ;; ADDITIONAL SECTION:
    ns1.gratisdns.dk.   7417    IN  A       109.238.48.13
    ns1.gratisdns.dk.   36319   IN  AAAA    2a02:9d0:3002:1::2
    ns2.gratisdns.dk.   25447   IN  A       185.10.10.53
    ns3.gratisdns.dk.   31182   IN  A       194.0.2.6
    ns3.gratisdns.dk.   28269   IN  AAAA    2001:678:5::6
    ns4.gratisdns.dk.   31182   IN  A       87.73.3.3
    ns4.gratisdns.dk.   28269   IN  AAAA    2a01:558:4000::3
    ns5.gratisdns.dk.   25447   IN  A       85.17.221.46
    ns5.gratisdns.dk.   28269   IN  AAAA    2001:6f8:3ad::1
    
    ;; Query time: 55 msec
    ;; SERVER: 89.233.43.71#53(89.233.43.71)
    ;; WHEN: Sat Aug 10 13:16:23 2013
    ;; MSG SIZE  rcvd: 393

    Note: If your version of dig doesn’t recognize the TLSA type, you can easily replace it with TYPE52 like this: dig _6697._tcp.ircsource.baconsvin.org TYPE52.

    Notice how the port, 6697, and protocol, TCP, is part of the DNS query. This will be familiar for people who have worked with SRV DNS records.

    The interesting part of the output is the answer section where you see the following:

    3 0 1 9B954A014881108A9058DB80020909FFD8B4C44C6F41C8796B3A1EA4 3A444B94

    What does all of this mean?

    Let’s start out by looking at the format. The format for a TLSA reply is as following:

    <certificate usage> <selector> <matching type> <certificate association data>

    This means that our certificate usage field is 3, our selector is 0 and our matching type is 1. The associated data is the string "9B954A014881108A9058DB80020909FFD8B4C44C6F41C8796B3A1EA4 3A444B94".

    It is important to understand the semantics of these fields, because they will dictate how and if the client is going to do further validation of the certificate once the client has received it from the IRC daemon.

    Using 3 0 1 means that we are using a self-signed certificate and we will rely on DANE for validating the certificate only (3); that we are using the full certificate and not just the SubjectPublicKeyInfo part (0) and we will be using a hexadecimal encoded SHA256 hash of the DER-encoded certificate (1).

    To fully understand the various options available, I suggest you take a look at RFC 6698 section 2.1.

    Enable DANE Support for your IRC Server

    The first step you will have to take is to ensure that whoever runs your DNS servers supports both DNSSEC and TLSA records. In Denmark, a lot of users are using the free DNS hosting provider GratisDNS. GratisDNS supports both DNSSEC and TLSA records which makes setting this up a lot easier.

    Sadly, GratisDNS’ interface is currently only available in Danish, so you might have to look for other solutions available online.

    Once you have a DNS provider that supports DNSSEC and TLSA records, it is fairly easy to create the records. In our example, the following assumptions are made:

    1. You already have an IRC daemon running with SSL enabled on port 6697 and you have verified that it actually works as expected.

    2. Your certificate is self-signed, so you would like to rely on DANE support only for the validation. This means that the user will not see any self-signed certificate errors when connecting with certificate validation enabled.

    3. We will create a record using a SHA-256 hash of the certificate data. Feel free to use something stronger, if you are more crypto paranoid than I am.

    This means that our TLSA record will end up looking something similar to this:

    _6697._tcp.irc.example.org TLSA 3 0 1 <SHA-256 hash of the certificate data>

    This is basically going to be a description of the exact same setup that I am using for ircsource.baconsvin.org.

    To find the SHA-256 value of your certificate, start by logging onto the server running the IRC daemon and find the directory that contains your certificate files. We are then going to find the SHA-256 value of the DER representation of our certificate:

    $ openssl x509 -in ircsource.baconsvin.org.pem -outform DER | sha256sum
    9b954a014881108a9058db80020909ffd8b4c44c6f41c8796b3a1ea43a444b94  -

    This is the value we will be using in our final TLSA record, which now looks like the following:

    _6697._tcp.irc.example.net TLSA 3 0 1 9b954a014881108a9058db80020909ffd8b4c44c6f41c8796b3a1ea43a444b94

    Once you have added this record to your DNS zones, it is now time to actually test whether it works as expected.

    Building Irssi with DANE Support

    This part is tested on FreeBSD 9.2-PRERELEASE. Hopefully, it works for other people as well. Feel free to report any issues you may experience.

    1. Download the dnsval tarball from its download page. This is quite new software so I haven’t run into many distributions that have packages available, so we will assume that we have to compile it ourselves.

      $ mkdir dane
      $ cd dane
      $ fetch http://www.dnssec-tools.org/download/dnsval-2.0.tar.gz
      $ tar zxfv dnsval-2.0.tar.gz
      $ cd dnsval-2.0
      $ ./configure --prefix=/usr/local
      $ make
      $ sudo make install
    2. Next we will download the Irssi source code from the Git repository. We start by cloning the repository into our newly created dane directory:

      $ cd dane
      $ git clone git://git.irssi.org/irssi
      $ cd irssi
    3. We bootstrap the build system:

      $ sh autogen.sh
    4. We configure our test Irssi client:

      $ CFLAGS="-I/usr/local/include" LDFLAGS="-L/usr/local/lib" ./configure --enable-dane --with-perl=no

      Make sure that somewhere near the end of the output of the configure script contains:

      Building with DANE support ....... : yes

      Otherwise you should take a look at the config.log file and look for places where libval is mentioned and figure out why it doesn’t find the library correctly.

    5. Compile Irssi:

      $ make
    6. Fire up your new Irssi client and give it a spin:

      $ ./src/fe-text/irssi -!
    7. Try to connect to our test server, ircsource.baconsvin.org, using DANE:

      /connect -ssl -ssl_verify ircsource.baconsvin.org 6697

      If everything was done correctly, Irssi will now connect to the server, verify the signature of the certificate using TLSA and allow you to connect without seeing any self-signed certificate errors.

    DANE Enabled IRC Servers

    Here’s a list of IRC servers that supports DANE. If you are running a public IRC server and would like to see the server added here, feel free to drop me an email at ahf@irc6.net with information about the server.

    IRCsource

    IRCsource is a small network where people with a general interest in IRC hang out together to discuss and test various new concepts and ideas for IRC.

    • ircsource.baconsvin.org (SSL ports: 6697 and 9999)

    I will do my best to maintain this list of servers supporting DANE in the future.

    Next Stop?

    The next step for me is to start securing server-to-server links within the IRC networks with DANE. This will require some modifications to the IRC daemons themselves. I plan on looking into adding support for DANE in a personal feature branch of ircd-ratbox and some of its derivatives.

    Conclusion

    I am unable to say if DANE support is what the IRC community will be adopting. The IRC community is very conservative in general so time will have to tell.

    If you believe you have found a bug in my code or have any troubles setting DANE up for your own IRC server, I will be more than happy to help. Drop me an email and I will take a look at it whenever I have time. Otherwise, feel free to poke me on IRC. My nickname is ahf and I am available on most of the “larger” IRC networks (EFnet, Freenode, IRCnet and Quakenet).

    All of this code will be available in the upcoming Irssi 0.8.16 release, but if you want to test it right away, my suggestion is to follow my guide from above and use Irssi directly from Git.

    Hopefully, we will see other IRC client and server hackers implementing DANE support in the nearby future. If you like what you have read here, please help me making this happen by spreading the word about the possibilities available for enhancing the SSL support in IRC clients as well as other SSL based online services.

    This is too easily implementable to be ignored.

    Credits

    I would like to thank Thomas Steen Ramussen for being the originator of the idea and setting up the initial DNS server for testing purpose; Peter Larsen for expeditiously implementing TLSA support for GratisDNS; the IRC6.net guys for late night discussions about DANE; Mickey Fischer for testing the Irssi patches on Gentoo Linux with various options enabled and disabled; the DNSSEC-Tools Project for creating the libraries used and finally the rest of the Irssi team for reviewing the patches and coming with recommendations for my code.

    September 14, 2013 12:00 AM

    September 02, 2013

    Ciaran McCreesh

    Paludis 1.4.1 Released

    Paludis 1.4.1 has been released:

    • Compatibility with newer Boost.
    • Minor bug fixes and UI tweaks.

    by Ciaran McCreesh at September 02, 2013 01:00 PM