and has 0 comments
You might wonder what a fractional number in a book series means. For some authors, it means books that are part of the universe, but not of the story, inbetween events that are defined maybe just chronologically. For others, it's even less, short stories that bring completion to their vision, different in scope, style and/or characters from the main books that maybe made you find and read them.

Unfortunately, The Slow Regard of Silent Things is part of the latter category. It is a short story about a few days in the life of Auri, the autistic-like little girl that Kvothe meets with occasionally on rooftops. Patrick Rothfuss even tells about how he came to write the story and fear people will not like it: it has no real narrative structure, it shows only boring things, like eight pages of someone making soap, it has only one character and, I assume, people will get angry for wanting more of Kvothe storytelling and getting dumb little Auri instead. And he was right. I am actually a little bit pissed.

The Wise Man's Fear was written 7 years ago! If you want to do a bit of experimentation, make an effort to name it such: "A silly little story that happens to take place in the Kingkiller universe" or "The Kingkiller Chronicle #2.001" or something like that. Instead he brings hope to readers that it's some sort of companion book, a proper bridge between the second book and the upcoming one, then smashes it with his prissy pen.

I was wondering if to rate it really low, just so I vent a bit of the frustration, but instead I settled on calling it submediocre. It's well written, but that's it. It's a literary masturbation that I recommend to only the fiercest fans of Rothfuss.

and has 0 comments
As I was saying in the review of the first book in the series, The Wise Man's Fear just continues the story began in The Name of the Wind and also ends randomly. Kvothe becomes even stronger, learns more things, is deflowered by the magical equivalent of Aphrodite and starts killing people like a maniac, yet his trials are still minor compared to his powerful abilities. As in the first book, most of his serious problems stem not from him searching for the most powerful and cruel immortals on the face of the planet, but from how much money he has in his pocket. This gets a little tiresome, but in this book we get a lot more, as Kvothe visits other places, learns to fight and adapts to strange customs in foreign lands.

There are two parts of the story that are just skipped over. One moment our hero is preparing for a long journey, with detailed descriptions of the equipment he caries, the next he is at his destination sans equipment, due to pirates and other dire circumstances that are skipped in a few paragraphs. Later on it happened again. Somehow, Patrick Rothfuss seems a little frustrated with his own speed of writing the story he has in his head. OK, that was a bit cheap, but also a bit deserved while we are waiting for the next volume.

Other than that, it was hard for me to consider this a book. It is a mere part of a longer book that would have been too unwieldy to read if printed in a single volume. It starts where the other ended and it ended with no real finality. While there is a geographical distinction between the first book and this one, it is a minor one. I still suspect that Rothfuss was planning something else with the story than what it turned out to become. Will the continuation of the story try to turn meta on storytelling, or will it continue just like a chronicle? Will the story ever reach the point when it is told or not? Frustrating questions that only a yet unpublished third volume will be able to start answering.

and has 0 comments
The Kingkiller Chronicle series seems to be, for once, an actual chronicle. In an inn in the middle of nowhere a guy actually called Chronicler comes and starts writing the stories told by the innkeeper, in reality a famous hero that just wants to be left alone. The whole thing feels like it was meant as a study in storytelling, as we read the telling of a story in which many times people tell other stories and concerns a character raised as a travelling actor.

More than that, the "shape" of the plot is a standard hero journey: young orphan boy with extraordinary abilities battles various types of evil as he grows into a popular hero. He is so talented, in fact, that he feels a bit of a Marty Stu when almost everything he encounters is extraordinary and within his ability to control or at least get out of jams with his legend intact. There are hints, though, that as it is told, the story will become more tragic. Also, as told by a talented storyteller, a reader might be circumspect of all the details in it; while improbable, it might all be revealed as a great joke by the end.

So, is Patrick Rothfuss just writing a nice bedtime story where the hero is all smart and strong and filled with magic, something to spread like wildfire and be sung in all taverns, making him a ton of money, or is it something more to it, like trying to teach the reader something that is impossible to teach? That is for the reader to decide.

I read the book really fast for its size, which shows my own preference for it, and it reads like a kind of Harry Potter in Westeros. Unfortunately, the pace of writing is borrowed from George R. R. Martin, rather than J.K. Rowling and people are still waiting for the third book in the series, more than 10 years since the writing of this one. One might want to wait until the entire story is told, as the second book in the series is a simple continuation of the first. The Name of the Wind just ends at a random moment in the story while The Wise Man's Fear continues the telling and also ends randomly. A lot of people that fell in love with the story are now frustrated with the lack of progress in writing it it. After all, Kvothe is telling it to Chronicler in three days in an inn, written by shorthand in ink, while Rothfuss has used computers for a decade already.

Bottom line: this is a well written series of rather large books. While the character feels a bit OP, the plot meanders through many interesting concepts and situations. I still have the strong suspicion that Patrick Rothfuss started writing this as a study of storytelling - an art that precedes writing and blends together artistry of composition and its declamation - but somehow ended up stuck with a character that is young, powerful, good looking and can't carry him forward. It is worth noting that while Rothfuss only wrote two major books in the series, he also wrote intermediate stories and other writers also contributed to the Kingkiller universe.

and has 0 comments
This is how I love my sci-fi: short and to the point. We still get the Charlie Stross signature nice techie guy who falls for girls in sci-fi settings, but since this is a novella, Palimpsest focuses almost entirely on the catch, the "what if" kernel of the story. And that is another exploration of what time travel would lead to, in this case an out of time organization called the Stasis that exists solely to protect Earth from inevitable extinction by reseeding it with humanity whenever it happens, thus creating a sort of stagnating but stable civilizational time flow that last for trillions of years until the heat death of the universe.

But I liked the little details a lot. As the title suggests, once you can time travel, the timelines can be infinitely rewritten, leading to all kinds of (maybe literally all) possibilities. In order to join Stasis you first need to kill your grandfather and in order to graduate you need to kill yourself in another timeline! Mad and fun ideas are in abundance in the book and I particularly enjoyed that it presented them one after another and then the story ended. No need to take it further to some sort of personal conclusion for the main character. It is pure fantasy and then it ends. Love that!

and has 0 comments
Charles Stross has a penchant for thinking big and then bringing that to the level of the average reader by the aid of pulp. That is why he is often discussing philosophical questions like what the world will be after millennia and what the consequences of time travel are or what if the Old Gods and magic were actually real in the context of a particularly handy tech guy who falls very easily in love and then spends the rest of the book saving the world and serving the one he loves. He is also an optimist who thinks people with all the information and power they could have will ultimately do the right thing with it.

While I love his positivism and the grandiose hard sci-fi approach, the pulp thing is a bit of a hit and miss with me. In the case of Singularity Sky, I think the pulp messed up something that could have been a very powerful metaphor of the state of humanity in the present day (and in any past day, too). But that doesn't mean the book is not good - I enjoyed reading it - but it doesn't even come close to another "singularity" book: Accelerando. I understand it's not fair to hold every single thing Stross wrote in the balance with what is probably his best work, but that's what I am doing, because I loved that one and I was meh about this one.

The story presents a subset of human starfaring civilization which chose to live in a similar way to the old Russia tzarist regime. Communication, technology and free speech and thought are strongly regulated and kept to the level of the 18th century in most cases. So what happens when one day phones drop from the sky that open two way communication with entities that could fulfill every desire you never knew you had? It is a very interesting metaphor to the way humans have lived throughout their history and how it is their choice and their addiction to monkey power games that keeps them in the dark ages. Also touches (very little) on why people would choose to live that way and how other might respect or disregard their right for that choice.

However, the main story is terminally fragmented by less interesting substories. Two spies, one in the service of the UN and the other helping the mysterious Herman, just have to fall for one another and waste precious pages. Feudal and imperial authorities have to spend pointless time to prepare a full military defense of their colony without even understanding who they were going to fight. Critics, a non-human-anymore species that starts the book as "criticizing" and the rest of it appears randomly and doing nothing interesting, except never getting the talking part right and sounding like Yoda. The list continues.

Bottom line: a fun read, but nothing more. A wasted opportunity for something a lot bigger. The author explains on his blog how the book came to be and why he won't continue the Eschaton series, which is probably for the best anyway.

How many times did you find some code that looked like this:
// previous code
let someValue1 = 'something';
let someValue2 = 'something else';
let someValue3 = 'something blue';
let someValue4 = 'something entirely different and original';
 
// our code
const parentObject=new ParentObject();
parentObject.childObject.someValue1=someValue1;
parentObject.childObject.someValue2=someValue2;
parentObject.childObject.someValue3=someValue3;
parentObject.childObject.someValue4=someValue4;
and you really wanted to make it look nicer? Well now you can! Introducing the ECMAScript 6 Object.assign method.

And thanks to some other features of ES6, we can write the same code like this:
// our code
const parentObject=new ParentObject();
Object.assign(parentObject.childObject,{someValue1, someValue2, someValue3, someValue4});

Note that { someVariable } is equivalent to the ES5 { someVariable: someVariable } notation.

and has 0 comments

Funny how these things turn out. After finishing Proxima, by Stephen Baxter, which was also about humans colonizing the planet of a nearby star, but in the end was very little about the planet itself, I've stumbled upon Aurora, by Kim Stanley Robinson, which does pretty much the same. I don't want to spoil things, but really, just a small percentage of the book is even related to the planet they briefly called Aurora.

Let's get one thing out of the way, though. Aurora is way better than Proxima ever intended to be. It is philosophical and filled with information and science and raises questions that are essential to space colonization. That's the great part. The bad part is that it feels like an old man book. It is introverted, focused on people, their feelings, their shortcomings and ultimately advises we care more about our planet, the one we are perfectly adapted to live on, rather than imagine we can always find a replacement in deep space. That was a disappointment, not only because I am in Tsiolkovsky's camp, who famously said Earth is our cradle and we can't stay in the cradle forever, but also because the future, as seen by Robinson, is stagnant, with no evolution, no desire, no dreams other than those he considers foolish and even criminal. Stay in the cradle till we finally die, enjoying the golden age of our senescence. Bah!

Other than that I really appreciated the attention to details, taken from all kinds of disciplines, that the author put in the book. Stuff like the difference of evolution rate between complex organisms like people and the microbiomes inside them, or mineral balances, the effect of Coriolis forces on the well being of people and machinery, and so on and so on. It was ironic that the person everybody in the book revered was Devi, an brilliant engineer who always thought outside the box and solved problems. When she couldn't do that, everybody else just gave up. There is also a moment in the story when the colonists split into two groups. I found it almost insulting that the book only described the adventures of one of them and completely forgot about the other.

Bottom line: I liked most of the book, if not its ending moral. The style is a bit difficult, almost autistic, as half of the story is from the standpoint of the ship's AI and the other from the perspective of the protagonist who is unusually tall (for no reason that has any impact on the story) and a little slow in the head. I understand why some people actually hated it, but as we can learn from every viewpoint, and often more from one that is different from ours, this book has a lot to teach.

Here is an interview with the author, but be careful, only the left audio channel has voice, the other is an annoying music.

[youtube:3T1-lE5i98M]

I've watched several lackluster recent Japanese animes from Netflix and I was feeling bored and disappointed with the clichés spouted by almost every character, most of them as cardboard as they can be. So when I started with Devilman Crybaby, a very original show both from the standpoint of the manga it adapts and the animation style, I was hoping for not being bored. And I wasn't. The show is fast, jumping from scene to scene and asking the viewer to extrapolate what happened in between. The characters are complex and seldom critical of one aspect or another of society, or representing such negative treats. Violence and sex are everywhere, although they are often depicted as kinds of vices and impulses that people have to fight against. The animation style is weirdly psychedelic. So did I like it? Not really.

Even from the beginning I was off put by the animation style. It's paradoxically both artistic and very simple. It made me think of Aeon Flux (the MTV animated series), which had several other things in common with this, as well. But I didn't let it bother me and I continued watching. As I said before, the characters are complex and the story is meandering around the peculiarities of each of them, which made it interesting. However, the plot was full of holes! Things that were "revealed" later on were evident from the beginning, people acted in weird ways that were eroding the suspension of disbelief. There were fights, but simplistic in nature and more inline with the symbolism that the author was so hard on. There were substories, but kept to a bare minimum. Do you see a pattern already?

Yes, in its entirety, things that were not important to the philosophical message that the anime wanted to make were abstracted, simplified or removed altogether. It is hard to enjoy any of it after you've got the memo. Even worse, perhaps because of its heavy (handed) symbolism, all the articles and reviews online praise it as a masterpiece. I said it before and I will say it again: just because it is not the usual crap it doesn't mean it's good. There are so many sorts of crap. You read two or three of them, discussing "what they meant", and you realize they are as full of shit as the makers of the anime. If you need to explain what you meant, the joke wasn't very good!

To be less of a dick about it, the show has many redeeming qualities, that is why I can't discuss too much the particulars without spoiling it, and you might want to watch it. However, to me, those qualities were wasted in the pseudo spiritual and moral bullshit that suffused the show. One alleviating circumstance is the source material, written in the 70s, which I have not read, so I can't really compare, but it was the 70s. Weird and wonderful stuff came from back then. This is mostly just weird. And I really hated the title.

Here is the trailer:

[youtube:ww06yGPM7Kc]

and has 0 comments
You created a library in .NET Core and you want it to be usable for .NET Framework or Xamarin as well, so you want to turn it into a .NET Standard library. You learn that it is simple: a matter of changing the TargetFramework in the .csproj file, so you do this for all projects in the solution.

But .NET Standard is only designed for libraries, so it makes no sense to change the TargetFramework for other types of projects, including some that are in fact libraries, but are not used as such, like unit test projects.

For example if you attempt to run XUnit tests in Visual Studio you will see that the tests are discovered by Test Explorer, but when you try to run them it says "No test is available in [your project]. Make sure that test discoverer & executors are registered and platform & framework version settings are appropriate and try again.". While this is an issue with XUnit, more likely, it is also a non-issue, since your test project should use the .NET Standard libraries, not be one itself.

In ECMAScript 6 there is a Map class that looks and feels like a .NET Dictionary. As an extension of JavaScript, TypeScript code like this is totally valid:
let map:Map<number,string> = new Map<number,string>();
map[1]="Category One";
let name:string = map[1]; //name is now "Category One"

However, the code above is wrong. What this does is create a string property named "1" on the map object with a value "Category One". Its "size" is 0. The correct code would be like this:
let map:Map<number,string> = new Map<number,string>();
map.set(1,"Category One");
let name:string = map.get(1); //name is now "Category One", map.size is 1

Similar code for ECMAScript 6, you can just declare the map as let map = new Map();

Just in case you wonder why utilize this hard to use type instead of a normal object, it's a user choice. Most of the pros involve the type of the key (object keys can only be strings or symbols) and ease of counting and iterating, but these issues can be solved trivially in code, if ever needed.

and has 0 comments
Proxima is the first book in the Proxima duology, by Stephen Baxter. And it is barely about Proxima! The book starts with multiple viewpoints over several arcs, is split into tiny chapters and volumes, attempts to become something epic and eventually fizzles. It's not that it's a bad book, it's simply not very good.

You have alien technology found on Mars, two different expeditions to Proxima C - if you don't count the first misguided one, a habitable planet in the Proxima Centauri system, several people and their families over a span of several decades, Artificial Intelligences, a nebulous period in the history of mankind called "The Heroic Generation" which seems to have left people in fear of innovation and discovery, alien lifeforms, artificial lifeforms, parallel timelines, etc. And it's all mixed in. It feels like it should be more, like it was meant to be more, but it just comes out as jumbled and directionless. I think what bothered me most is that characters barely have time to change. In order to explain what happens with a zillion people Earth, Mars, Mercury and an alien planet in a single book, their personal development is sacrificed.

But overall the book was interesting. It covered some bits of Earth future history that most sci-fi works quickly get past. The downside is that it went over them really fast, too :) The actual exploration and life on Proxima was on fast forward, too, with a really hard to believe ecosystem for its simplicity. Oh, and that ending was horrid! I will not read any of the works in the series. I feel that Baxter is overambitious, but also very courageous. I usually have a lot of problems with his works, but still read some of them.

and has 0 comments
What do you do if you want to make an anime that would be successful not only in Japan, but everywhere Netflix is watched? You take a bit of every successful anime and mix it all together. This is how you get the kingdom of Cremona, set somewhere in a nondescript time that has 1960's cars and cellphones and a nondescript place that looks like Europe, where experiments with the bones of god like creatures leads to superpowerful beings that are super crazy fast and shout Nipponisms with every opportunity: win and lose (in life, but seen as a game), protecting (someone, something, anything) just so your life makes some sense, "I will kill you with my own hands" and so on and so on, but also super smart detectives that figure things out, all for the sake of energetic, smart, cute and ultimately pointless much younger girls. But wait, there is more: there are crazy psychopaths that kill people and are super smart. There are arrogant evil people that have a lot of power, but are ultimately crazy, and which act as if everything and everybody is beneath them. And of course, all the fighting is done with magical swords and henchmen die quicker and with less talk than bosses, who are not particularly strong, but they just yap and yap and yap.

The anger that you see expressed in my review is related not so much to the mediocrity of the anime, but to the potential that it had. The animation is well done, the sets are good, the story is... ahem... workable. And yet they press every button that was ever pressed and add absolutely nothing new. B: The Beginning even has the gall to believe it will spawn sequels, so whatever else they had in mind they left it for later. I would say that's typical DragonBall Z, but that should apply to Saiyans not anime shows! You don't leave the good part for the end of the battle! You don't level up your writing only when you see that everybody is bored already.

Bottom line: the writing was the biggest flaw of this series: unimaginative and inconsistent, with tiresome dialogues and brutal switches of emotional context that made even the most motivated viewer break stride. The rest was always just good enough, with no evidence of any effort for reaching greatness. As mediocre as it can possibly be.

and has 0 comments
I found Being a Dog a bit misleading, as it is not so much about dogs as it is about smell in general. However, as a book about smell it's a concise and very interesting book. Alexandra Horowitz has a steady professional writing style and the information in the book is being related as anecdotes from her very thorough research.

From the very start the book acknowledges that dogs are not visual and auditory like humans are; instead their main sensory organ is their nose. As the author explores the world of smells, we understand more about us, dogs and how we sense the world in general. I liked many sections of Being a Dog, but I found the first part as most interesting. Mainly because it is about dogs :) There we find that the structure of the nose of dogs is as much responsible for their great sense of smell as is the immense number of sensory cells and dedicated brain neurons. Horowitz explains that dogs do not pass the so called "mirror test", but that is because they are not visual. If the experiment is constructed so that the mirror is olfactory, then they easily pass the test. It also tells us where the smelly glands on the dog are, including its paws. And indeed, I smelled my dog's paw and it was concentrated and nice. If you have a dog, smell their paws now!

That doesn't mean that the part about human smell was not captivating. I found myself smell things on the subway - that is a good thing - just because I felt inspired by what the author described. In conclusion, I recommend the book. It's a light read and it is the kind of work that makes us aware of a part of the world that is both near and ignored.

and has 0 comments
Well, if Java can do it, so can I! Why not make my own C# string class that can do whatever I want it to do? Requirements? Here they are:
  • I want it to work just like regular strings
  • I want to know if the string is empty just by using it as an if clause, just like Javascript: if (text) doSomething(text);
  • I want to see if it's a number just by adding a plus sign in front of it: var number = +text;
  • I want to easily know if the string is null or whitespace!

OK, so first I want to get all the functionality of a normal string. So I will just inherit from it! Only I can't. String is a sealed class in .Net.
Yet there is an abstract class that seems destined to be used by this: ValueType! It's only implemented by all value types (more or less) except String, but I will be the next guy to use it! Only I can't. If I try, I get the occult message: "Error CS0644 'EString' cannot derive from special class 'ValueType'". But it does help with something, if I try to inherit from it, it tells me what methods to implement: Equals, GetHashCode and ToString.
OK, then, I will just do everything from scratch!

Start with a struct (no need for a class) that wraps a string _value field, then overwrite the equality methods:
public struct EString
{
private string _value;
 
public override bool Equals(object obj)
{
return String.Equals(obj, _value);
}
 
public override int GetHashCode()
{
return _value == null ? 0 : _value.GetHashCode();
}
 
public override string ToString()
{
return _value;
}
}

I used 0 for the hash code when the value is null because that's what the .Net object GetHashCode() does. Now, in order for this to work as a string, I need some implicit conversion from string to my EString class. So add these two beauties:
public string Value { get => _value; }
 
private EString(string value) { _value = value; }
 
public static implicit operator string(EString estring)
{
return estring.Value;
}
 
public static implicit operator EString(string value)
{
return new EString(value);
}

EString now supports stuff like EString text="Something";, but I want more! Let's overload some operators. I want to be able to see if a string is null or empty just like in Javascript:
public static bool operator !(EString estring)
{
return String.IsNullOrEmpty(estring);
}
 
public static bool operator true(EString estring)
{
return !!estring;
}
 
public static bool operator false(EString estring)
{
return !estring;
}
Yes, ladies and gentlemen, true and false are not only boolean constants, but also operators. That doesn't mean something like this is legal: if (text==true) ..., but you can use stuff like if (text) ... or text ? "something" : "empty". Overloading the ! operator allows also something more useful like if (!text) [this shit is empty].

Moar! How about a simple way to know if the string is null or empty or whitespace? Let's overload the ~ operator. How about getting the number encoded into the text? Let's overload the + operator. Here is the final result:
public struct EString
{
private string _value;
 
public string Value { get => _value; }
 
private EString(string value) { _value = value; }
 
public override bool Equals(object obj)
{
return String.Equals(obj, _value);
}
 
public override int GetHashCode()
{
return _value == null ? 0 : _value.GetHashCode();
}
 
public override string ToString()
{
return _value;
}
 
public static bool operator !(EString estring)
{
return String.IsNullOrEmpty(estring);
}
 
public static bool operator true(EString estring)
{
return !!estring;
}
 
public static bool operator false(EString estring)
{
return !estring;
}
 
public static bool operator ~(EString estring)
{
return String.IsNullOrWhiteSpace(estring);
}
 
public static decimal operator +(EString estring)
{
return decimal.TryParse(estring.Value, out decimal d) ? d : decimal.Zero;
}
 
public static implicit operator string(EString estring)
{
return estring.Value;
}
 
public static implicit operator EString(string value)
{
return new EString(value);
}
}

Disclamer: I did this mostly for fun. I can't condone replacing your strings with my class, but look at these examples for usage:
EString s=inputText;
if
(!~s) {
var d = Math.Round(+s,2);
if (d != 0) {
Console.WriteLine("Number was introduced: "+d);
}
}

Unfortunately, being typical is not a good thing. All characters in A.I.C.O. Incarnation are manga clichés and the few interesting sci-fi ideas are obliterated by the lack of courage in showing body horror and the obvious gaps in logic. The most promising, yet underdelivered concept is that of consciousness and identity. What would happen if brains and bodies were swapped, changed, mingled, etc. This could have been great if each episode explored some way the "malignant matter" affected biology and consciousness, but in truth, less than half of an episode really approaches the idea.

In short, the story follows a group of "Divers" who go into a biological infested area in order to stop said infestation and save people. They have to battle amorphous blob like monsters and government officials and mad scientists to get to their goal. Obviously they are all young and rash and falling in love and trying to protect people and making honor bound promises and so on. It was so by the book that it became nauseating. I think a heavily cut video edit of the first and last two episodes would more than cover the entire series.

It is good that Netflix is paying for more anime adaptations, but this one is not that worthwhile. Still 29 to go, though :) Here is a trailer, if you are still interested:

[youtube:CCfYQnOLHV0]