Saturday, May 18, 2019

The Faded Sun Trilogy (The Faded Sun #1-3), by C.J. Cherryh

audiobook cover To be honest, I've reached the beginning of the third book in The Faded Sun Omnibus and I've decided to stop.

It was 1978. Religious people living in the desert under strict rules and brandishing swords were still cool and not considered terrorists. C.J.Cherryh decides to write a story about a fierce warrior race that works in the employ of others to wage space war, driven by a very exact culture that emerged in the desert. They carry black veils that only let show their eyes and are very partial to rituals and hand to hand combat. No wonder humans kicked their asses, but even they are terribly anachronistic. They have waged 40 years of war with the humans, under the contract of the Regul, fat immobile and amoral beings that care only for their own tribe's well being.

Reminds you of Dune, the Freemen and the Harkonen? Well, this is where the similarity ends. Where Dune was deep, these three books are tediously drudging through all kinds of futile rituals and each character is painfully introspective, to the point that tough warriors bred for battle are recognizing and thinking about their feelings of fear all the time. Worse, nothing really seems to be happening. It takes a book for a ship to get to its destination.

And the book has aged poorly, even when in the whole thing there are maybe a page of technical descriptions, probably less. There is no mention on what makes the ships run, what types of weapons are used, how computers work, etc. A ship just "fires" and it is never even described in what way.

But the ultimate sin is how little sense it makes. I mean, this is the age of Star Wars, where... errr... people on starships wage battles with swords... OK, the author isn't the only one who screwed stories up, but the Mri are presented as this scourge of the battles, yet they don't know technology or can even read or write, they are appalled by mass warfare and prefer hand to hand combat (like real men!) and are strict in what they are allowed to do, know or even think. It's like giving space weaponry to the Flinstones. OK, you get the Jetsons, but how is that supposed to be terrifying or a match to the voracious human penchant for mass destruction? And there is more. After 40 years, we learn that people have never captured Mri alive, never studied them. The Mris themselves are accompanied by huge bear like semitelepathic animals that they never name or even know how they reproduce. Unlike Frank Herbert, who was obsessed with ecology, Cherryh feels no need to explain how a species of huge carnivores exists on harsh desert planets that are almost devoid of life and water or how three completely different species can share air and food, or how the animals and plants on a different planet are the same as from one that lay 120 planets away, or how language and culture stays the same for 80000 years. A lot of things just don't make sense, including the story's main premise, which is the fear that humans and Regul alike carry for the Mri.

Bottom line: if it were nice to read at least, I would have given it a shot, but after two books of people thinking in fear about what others are thinking of them, I gave it up. It was just tediously boring.

Now, Cherryh was at the beginning of her illustrious career and there are books written by her that I liked. I just hated this one.

Saturday, May 11, 2019

The City in the Middle of the Night, by Charlie Jane Anders

book cover The City in the Middle of the Night reminded me of Octavia Butler's Xenogenesis, only way lighter. The same female centric focus, the slight weirdness of descriptions and feelings that comes from a truly different perspective. Charlie Jane Anders describes a planet far away from Earth, a colony that devolved after humans reached the planet until it got to feudal levels of government and technology. The planet is tidally locked, so people live on the narrow edge that separates frigid night and scorching day. There are some aliens there as well. Pretty cool story and concept, so much so that I hated it when the book ended and it was NOT a trilogy or a saga or whatever. Hard to please me, right?

The writing style isn't on par with the richness of the concepts, though, and I was also thrown off often by gaps in the understanding of science, social norms and even sensory descriptions. Yet once I understood the author is a transgender woman with sensory integration disorder, it started to make sense. The main characters are all women. There are no real romantic or familial relationships between them, unless counting the fact that they are always feeling things strongly and lying together in beds without doing anything. The lack of sexuality in the novel is refreshing but going a long way in the other direction until it feels eerie. And they often react physically or mentally in such overblown ways that it's hard to empathize. Stuff like someone saying something and they suddenly go to a corner to heave, or having seen someone smile or being touched in a certain way just short circuits their brain. There are a lot of leftover threads in the book, things that get partially described and you just wait for them to be explained later on and they just don't. Also the mix of first person perspective for Sophie and third person for everybody else is strange and forces one of the characters as the main one, even if maybe a reader would relate better with somebody else.

So I had difficulty in rating this book. I would give an excellent rating to the world building and the concepts presented there, but an average on characterization (even if most of the book is about what characters do and think and feel). I would rate some descriptions of internal struggle and emotion as great, but others really lame, especially when it comes to characters who seem to be designed to be thrown away later on. The writing style is not bad, but not great either. It's a mixture of brilliance and average that is hard to reconcile into a single metric. I mean, I could describe the entire plot of the book in two paragraphs; the rest is just people bumbling around trying to make sense of the world and themselves. No character has a real back story, except a few defining moments that feel pulled out of a hat, and they are understandably confused all the time. Who are their parents? Everybody in the book is an orphan. Why so many descriptions of invented food if does nothing for the plot, yet no sex, only a rare and weird longing sort of platonic love? Why is everybody so casually violent, yet so disgusted with violence in their inner thoughts?

It seems to me that this is a book that only some will be able to connect to (the others will get delirious and murderous). I liked the ideas, I liked the characters, it's just that they are coming from nowhere and ultimately going nowhere.

Sunday, May 05, 2019

Good Germs, Bad Germs: Health and Survival in a Bacterial World, by Jessica Snyder Sachs

book cover The book might put you off at the beginning, as it starts with a no bullshit nomenclature chapter. It basically says: "This is how I am going to call things in this book and if you don't like it, talk to people who actually care about semantics". The rest of the book continues with the same directness and I believe it is one of the works' best qualities.

Good Germs, Bad Germs starts like a few other books on the subject I've read recently, with a short history of how people have looked upon disease and its causes: Hippocrates' humors, the (all bad) germ theory, vaccines, antibiotics, the bad antibiotics and the good germs, modern understanding of immunity. And yet this is just the first half of the story. The rest is about new ideas, actual therapies and studies, real life cases and attempts to bring this new knowledge into the public domain.

I really liked the book. It's easy to read, easy to understand. Less of the story-like or anecdotal writing style of some other works and more to the point. I also liked that it doesn't take sides: one therapy has to go through wholly unreasonable FDA hoops to be allowed to even be tested in humans, the author points both positive and negative aspects of being prudent. Is it ridiculous that the lack of communication between American hospitals hides invisible epidemics that then get reported by Canada or Europe and end back into the States' headlines as foreign diseases? Jessica Snyder Sachs just reports on the facts, letting the reader draw their own conclusions.

Bottom line: I thought it would be just a repeat of the same information I've become familiar with lately, yet it was not only a different way of tackling the same subject, but also a lot more information about actual attempts to use it in real situations. I recommend it to anyone trying to understand how we stand in this coevolution with the microbes living inside and outside us.

Wednesday, May 01, 2019

Knights of the Borrowed Dark (Knights of the Borrowed Dark Trilogy #1), by Dave Rudden

book cover Knights of the Borrowed Dark is a typical fantasy story filled with tropes like: "the one", "son of..." (or "noble family" or "everybody is related to everybody"), "secret war (for no good reason)", "light versus dark", "evil must be fought with swords", "no one tells you anything, even if it makes no sense", "dark king" and so on. The main character is a Mary Sue, an orphan who doesn't know his parents and has lived his entire life in an orphanage, but somehow is a balanced, well read individual who favors rationality to emotion, yet has no problem using both. Add the trope of trilogy to this and you have a complete picture.

Now, does that mean I was not entertained? Nope. It was all fun and games and I've finished the book in a day, yet I can't but be disappointed in both the formulaic nature of the story and the fact that I liked it anyway. The bottom line is that Dave Rudden writes decently and has enough skill and humor to make the same story you've read or seen a dozen times already feel pleasant. So read it, if you like that kind of thing, but don't expect anything above ordinary.

Monday, April 29, 2019

Magic Is Dead, by Ian Frisch

book cover I liked the book, but not a lot. Ian Frisch is an investigative reporter who happened to enter a circle of disrupting young magicians who want to shake the industry and make it ...err.. fresh again. Really didn't intend that pun. However, if you expect revelations of how tricks are done or the deep exploration of the human soul, you won't get a lot of satisfaction from this book.

Full title Magic Is Dead: My Journey into the World's Most Secretive Society of Magicians, it feels more like a roadie story, where the young author gets sucked into a group of charismatic artists and ends up in their group. You can't use it as a barometer of the state of the magic industry, as the story is pretty one sided. The writing style isn't that great either, with some of the ideas repeated several times and none of the emotional bare stripping of the soul that I've come to love in autobiographies. There is no big drama or action of any kind - this is not Point Break or The Magician or anything. Moreover, the "secretive society" isn't all that secret, it is just a club of people hand picked for their innovative contribution to what many see as a stagnant industry and that many people know about. The title is pretty confusing as well, since it is not about magic being dead, alive or anything in between, but rather the pinhole perspective of the author while seduced by this group of very talented and interesting people.

As an introductory work in the world of magicians as a whole, it works pretty well. There is a lot of name dropping and some starter resources for wannabe magicians. It presents the mind set required to do magic in a way that satisfies not only you, but the customs of the magician community. But that's pretty much it. I can't recommend it, while I can't criticize it too much either. I would call it average.

Monday, April 22, 2019

The Priory of the Orange Tree, by Samantha Shannon

book cover The Priory of the Orange Tree is a typical fantasy story, with realms, heroes, heroines, dragons, magic and the mandatory evil one. It is a large book, that others would have made a trilogy out of; considering it is a single story, I find it most honest that the author published it directly. Samantha Shannon writes really great for a 27 year old and considering she already has under her belt a seven book deal under which she already published four (The Bone Season series), she seems to be doing good. People even hailed her as the next J.K.Rowling, which I personally would think it feels annoying rather than flattering.

So what is the book about? There are several countries with different religions that all stem from the same event: the bounding of The Nameless One, a huge evil dragon with intents to conquer the world. Some think all dragons are evil, some think dragons are cool, some think only some dragons are evil and the others are gods, and so on. There are conflicting stories about who is the hero that defeated evil a millennium ago, too. And of course, evil is stirring once again and a new generation of heroes rises to the occasion. They are mostly female, although some males are prominent in the story. Also, at least three characters are gay and one may be asexual.

About the gay thing, I found it not annoying. Although major events of the plot depend on the love towards another person of the same sex, it wasn't forced towards the reader and it didn't feel like it was glue added to the story. But it was also funny, because in the whole book romance is either gay or really short, chaste, doomed or kind of second rank. I imagine this is how a gay person reads a straight romantic story, where homosexuality exists on a conceptual level at best.

The point is that the story is not difficult at all, except at the beginning when you have to get acquainted with too many characters in too many countries all at once. Then it just flows, sometimes a little bit too smoothly, towards the predictable end. I read it all in a weekend. The main characters are complex and competent, although the minor ones are kind of one dimensional. If anything, I was disappointed with the villains. They were cartoonish, almost. I mean, the most evil of them all was called The Nameless One, like some extra that has one line in a public bathroom in a movie: "the guy in the bathroom". He didn't even have a "same thing we do every thousand years, Pinkie!" moment. Lazy as hell, all the dirty deeds were done by his henchmen... errr henchfolk? And that ending...

Bottom line: nice story to read, above average clearly, but not something to be amazed by.

Wednesday, April 17, 2019

A Girl Corrupted by the Internet is the Summoned Hero?!, by Eliezer Yudkowsky

book cover I've had a blast reading Harry Potter and the Methods of Rationality, a humorous take on Harry Potter if he were educated in science and not just another emotional teen lucky enough to be "the one", so as I was reading A Girl Corrupted by the Internet is the Summoned Hero? I was really hoping it wasn't just a one off. And it wasn't! Although much shorter and not so rich with references, this novella from Eliezer Yudkowsky is just as funny as I hoped.

A self proclaimed translation of a Japanese manga that was never written, the story follows a girl that gets summoned into another realm as the virgin hero to save the world from evil. However, the reason she is still a virgin is habituation to Internet pornographic depravity and losing interest in any normal relationship. The world she arrives in is a world of prudes and the power of the magic there relies on one) being a virgin and two) asking prudish demons to do something awfully depraved so that they refuse.

I won't spoil it for you, but it's funny and short and I recommend it highly.

Tuesday, April 16, 2019

Nature's Nether Regions, by Menno Schilthuizen

book cover I guess when your main work concerns the sex organs of animals, you have to own a healthy sense of humor. That is why, even if I wasn't terribly interested in the subject, I continued to read the book mostly because of Menno Schilthuizen's writing style. This book - full title Nature's Nether Regions: What the Sex Lives of Bugs, Birds, and Beasts Tell Us About Evolution, Biodiversity, and Ourselves - kept being funny and captivating, despite being about a niche subject treated in a very scientific way.

But having read it, I don't regret a thing. There are a lot of interesting insights to be drawn from the book, things I wouldn't have probably thought about for myself. The focus is on sexual organs - mostly in invertebrates, but not only - an area that is both fascinating and rarely explored in a rigorous fashion. Why are they so important? Because in almost every species they are changing from generation to generation faster than anything else. Many species that basically look the same, having evolved in the same particular niche and maybe even from common ancestors, have wildly different genitalia and strategies for impregnation, an intriguing fact that leads Schilthuizen to explore the theory of sexual evolution, in other words changes determined by the choice of partners. You know, like the Pompadour hair style...

Forget human sex, or even mammalian sex. It's spiders, insects, worms and snails that will amaze you with the weird and kinky adaptations in their romantic lives: females that store the sperm of various pretenders and only use the one from the guy they liked most, spoon like penises used to scoop out the sperm of rivals before climax (humans have this, too, BTW), complicated female organs and mechanisms meant to thwart male attempts at forceful insemination and males who choose to stab their mates and short circuit the whole thing. Oh, and did you know snails are hermaphrodites? How does that work?

Bottom line: a very well written little book that may surprise you both through how entertaining and interesting it is. No, a penis is not just a syringe and a vagina not only a hole that accepts anything you put in it. In this book you will learn why, how sexual organs evolved and, indeed, continue to evolve faster than any other organ in most species.

Saturday, April 13, 2019

Theming your site using CSS variables and using no Javascript

I've stumbled on an article called Create A Dark/Light Mode Switch with CSS Variables which explains how to style your site with CSS variables which you can then change for various "themes". Her solution is to use a little Javascript - and let's be honest, there is nothing wrong with that, everything is using Javascript these days, but what if we mix this idea with "the CSS checkbox hack" as explained in Creating useful interactive elements using only CSS, or "The Checkbox Hack"? Then we could have a controllable theme in our website without any Javascript.

Just in case these sites disappear, here is the gist of it:
  1. Define your colors in the root of the document with something like this:
    :root {
        --primary-color: #302AE6;
        --secondary-color: #536390;
        --font-color: #424242;
        --bg-color: #fff;
        --heading-color: #292922;
    }
  2. Define your themes based on attributes, like this:
    [data-theme="dark"] {
        --primary-color: #9A97F3;
        --secondary-color: #818cab;
        --font-color: #e1e1ff;
        --bg-color: #161625;
        --heading-color: #818cab;
    }
  3. Use the colors in your web site like this:
    body {
        background-color: var(--bg-color);
        color: var(--font-color);
    
        /*other styles*/
        .....
    }
  4. Change theme by setting the attribute data-theme to 'dark' or 'light'

Now, to use the CSS checkbox hack, you need to do the following:
  1. Wrap all your site in an element, a div or something
  2. Add a checkbox input on the same level as the wrapper and styled to be invisible
  3. Add a label with a for attribute having the value the id of the checkbox
  4. Add in the label whatever elements you want to trigger the change (button, fake checkbox, etc)
  5. Change the theme CSS to work not with [data-theme="dark"], but with #hiddenCheckbox:checked ~ #wrapper, which means "the element with id wrapper that is on the same level as the checkbox with id hiddenCheckbox"

This means that whenever you click on the label, you toggle the hidden checkbox, which in turn changes the CSS that gets applied to the entire wrapper element.

And here is a CodePen to prove it:

See the Pen
rbzPmj
by Siderite (@siderite)
on CodePen.

Friday, April 12, 2019

Updating your NuGet references

Sometimes you get an annoying error after updating your .NET Framework or some of the packages or libraries in your project: "Some NuGet packages were installed using a target framework different from the current target framework and may need to be reinstalled. Visit http://docs.nuget.org/docs/workflows/reinstalling-packages for more information. Packages affected: <name-of-nuget-package>".

The problem stems from the fact that NuGet packages have variants for different .NET flavors and in your project they are "hinted" at by the <HintPath> child element in the <Reference> elements in your .csproj file. Somehow, the hint still points to a different variant than the one you need and that's why you get this error. The explanation in length can be found in this great post: Why, when and how to reinstall NuGet packages after upgrading a project, but just in case his blog disappears (as so many great ones did in the past), here is the gist of the solution:

In Visual Studio go to Tools → NuGet Package Manager → Package Manager Console and type:
Update-Package <name-of-nuget-package> -Reinstall -ProjectName <name-of-project>

To add some value to Derriey's post, you can solve all the similar issues in your solution by copying the entire list of errors from all projects by going to the Output pane, selecting them all and right clicking Copy, then run search and replace in your favorite editor with this regular expression:
^.*?Visit http://docs.nuget.org/docs/workflows/reinstalling-packages for more information.  Packages affected: ((?:[^,\s]+(?:, )?)+)\t([^\t]+)\t\t\d+\t\t$
and replacement pattern
Update-Package $1 -Reinstall -ProjectName $2

Then make sure there is only one project on each line, copy paste the result into the Package Manager Console window and the entire solution will get fixed.

Example: Error Some NuGet packages were installed using a target framework different from the current target framework and may need to be reinstalled. Visit http://docs.nuget.org/docs/workflows/reinstalling-packages for more information. Packages affected: Microsoft.Extensions.Configuration, Serilog MyProject.Common 0

Turns into: Update-Package Microsoft.Extensions.Configuration, Serilog -Reinstall -ProjectName MyProject.Common Since Update-Package only supports one package and regex replace doesn't have a syntax for multiple captures in the same group, you will have to manually turn this into:
Update-Package Microsoft.Extensions.Configuration -Reinstall -ProjectName MyProject.Common
Update-Package Serilog -Reinstall -ProjectName MyProject.Common

Copy paste the result and the two projects will be reinstalled on the affected projects in your solution.

Monday, April 08, 2019

Tiamat's Wrath (The Expanse #8), by James S.A. Corey

book cover Tiamat's Wrath comes after a roller coaster of a ride. I absolutely loved the TV show so I started reading the books, concluding that the show was better. Of course, being good, it almost got cancelled until it was picked up by Amazon (thanks, Jeff!), but I continued to read the books. The part that I loved, the realistic colonization of the Solar System, got quickly left behind in favor of Stargate-like portals to other worlds, not one but two God-like alien races and, in the seventh book, a Nazi-like occupation of the entire humanity. Like? Even the small hints that suggested space travel using (impossibly efficient) fusion drives takes months and years got left behind in favor of fast paced action. The books themselves followed the same pattern of going bad, then coming back up again and being amazing, with the only commonality being the crew of the Rocinante, smack in the middle of everything, somehow always influencing things at planetary and civilization level.

So how was the book? Predictably bad. Predictably good. Equal bite size chapters that tell a rather bland story until the end when everything comes together in a cathartic way and kind of makes up for the rest. The writing style of the two authors known as James S.A. Corey is professionally good, without anything outstanding. The characters are empathetic: a major one dies, one is reborn, a new one appears. The same roller coaster and the expected, but still annoying, desire to read the next book when I know it will take another year for it to be written.

As far as I know, the next and ninth novel will be the last of the series, which is painful, because The Expanse, for me, was the perfect blend of pulp and space science. Typical to serialized American fiction it went too far too fast (leaving its soul behind to catch up). Yet I still enjoy it. I wonder what my response would have been without the TV series. Still, if you are new to the subject, I recommend you read the first three or four books, then watch the TV series.

Monday, April 01, 2019

Diaspora, by Greg Egan

book cover I remember reading Greg Egan books when I was very young and loving them, so when I've seen he was still writing, I've decided to read one of his earlier books: Diaspora, published in 1997.

It's hard to describe it in a way that makes it justice. Imagine a poker game where you bet not with money, but with imagination. You look at the cards, you think you've got a good hand, and you place all your imagination on the table. Greg Egan looks at you, looks at his hand, looks at what you put down, then bets 100 times more. And while you are looking at the table, unbelieving, you realize that his bet spreads out in multiple dimensions, more than you can handle by orders of magnitude of infinity. It was like that.

The book is about a posthumanist era on Earth where most people have chosen to live in virtual constructs called polises. They have translated all relevant biological and mental functionality into the Shaper language which polises run. As the book describes the birth of a new citizen, its ascendancy to consciousness, there is no actual story. In that way, the whole book is rather dry, because it is about reason and science and mindblowing theories of consciousness, physics and mathematics. And that's only the beginning. Split into several parts that have common characters for no other reason that they've been described before and that are mostly independent, the book's driver is first a gamma ray burst that destroys the fragile remnants of the Earth's biosphere and then another, more colossal catastrophe that threatens the entire galaxy. That's basically the whole drama, the rest is just mental exercise as humanity explores, then escapes the universe into a infinite multidimensional ladder of universes that makes faster than light or time travel as ridiculous as it is pointless. I mean, really, the entire plot of the book revolves around a completely new theory of how physics work which is described (in layman's terms, with explained diagrams) by Egan.

Bottom line: filled with real scientific theories and ideas that transcend just about anything you thought means anything, the book is at the same time amazing and difficult to enjoy. It starts as something that you have a hard time wrapping your head around, but you can just about do it, then goes on exponentially from there. It's Asimov on steroids (if steroids would be produced by femtoscale machines using the complete simulation of all possibly interactions in a living human body stored into a single neutron-as-a-wormhole). I am at once both elated and terrified to read one of his recent books.

Favourite quote: "Conquering the galaxy is what bacteria with spaceships would do - knowing no better, having no choice".

Saturday, March 23, 2019

Toad Words and Other Stories, by T. Kingfisher

When we are children we can believe anything and everything we see carries hidden, if false, meaning. It is the time when fairy tales enchant our imagination with just a little bit of detail, a simple story, a happy ending. We ask our parents "why?" and take their answers for granted. Later, we gain the experience to understand fancy from real, yet we rarely go back on the whys or on the fairy tales, to revisit them with our grand new outlook on life. They have become cemented into our childhood and have become the roots of our personality.

It seems to me that revisiting fairy tales is what Ursula Vernon, under the pen name T Kingfisher, wanted to do in Toad Words and Other Stories. So I enjoyed the dark ironic attention to details like why would a peasant girl wear a red hood, when the pigment is so expensive and unstable, or why would the grandmother choose to live in the forest rather than in the village with her niece. I liked the talking animals, often more wise and kind than the people. But it went from interesting to old really fast. At least the short stories were concise and to the point; if I didn't like one, I would maybe enjoy the next. But then there was the Boar and Apples novella which bored (heh!) the hell out of me.

So bottom line, an interesting concept, but I have not enjoyed the execution.

Thursday, March 21, 2019

The Hidden Half of Nature: The Microbial Roots of Life and Health, by David R. Montgomery and Anne Biklé

book cover I am conflicted about this book. On one hand, the subject is of terrible relevance and needs to be known by as many people as possible. On the other, the authors are not very good writers: the whole book feels like a big blog post, filled with repetitions, personal opinions and little in the way of hard data. Most of the information in it I already knew, but that's because I am fascinated with the subject. If I didn't know it, I would have probably loved the book.

But what is The Hidden Half of Nature? It's an ecology book. It explains how microbes are the unsung true heroes of plant growth and animal health, including humans. While we cling to narrow views of us versus them and try to kill anything that doesn't agree with us, our lives, our food, our health and our lands depend on the biological health of the microbiome. And it makes a lot of sense. Why would a plant develop a way to absorb nitrogen or break down rock, if all it has to do it exude some sugar and bacteria or fungi are going to do it for it? Why would animals develop complicated organs to break down complex molecules like cellulose when all they have to do is make a space where microscopic creatures live off them and give the animal simple nutrients back? How would it even work to evolve completely independent of the life that you can't see with the naked eye, but outnumbers and outmasses any macroscopic life? We thus learn that most microbes are beneficial and imbalances are much more dangerous than a specific species of a bug.

The book starts with the authors, David R. Montgomery and Anne Biklé, husband and wife, buying a house and dreaming of tending a garden, only to discover that their yard had almost no soil. Bringing a lot of organic matter to decay and be assimilated by microscopic life and then other creatures, from insects and worms to birds and other animals, they are shocked to discover that soil recovers much faster and in inexplicable ways than they were taught. Following the rabbit in its hole, they embark on a journey of discovery on how the microscopic influences every aspect of the macroscopic. It all starts with soil, but then it goes into nutrition and health and it all comes together: the idea that good comes from the health of the entire ecosystem, as all we can actually see with our eyes are big enough to be counted as such, colonized and tended by microscopic creatures that have evolved and cooperated with us to reach an equilibrium.

We become familiarized with the concept of dysbiosis, or dysfunctional symbiosis, and how it affects the nutritional values of food, the quality of the land, our chronic and acute diseases, cancer, allergies. Parallels are drawn: the digestive system as roots, a person as an ecosystem, our gut as a garden. All in all a fascinating and cutting edge subject where the ecology, the systemic health on all levels, is the important driver of our lives.

Yet the style in which the book is written really put me off. I started finding reasons not to read. The first half especially. The book starts by bemoaning the dry style of scientific publications and vows to tell the story in a way that anyone can understand. That means a lot of dramatizations, personal opinions, very little in the way of sourcing the ideas other than a name here and there. And whenever they were getting into something promising, they skirted on the details. I believe that if this book would have moved just a little bit away from the conversational blog-like style towards the Wikipedia format it would have been at least twice as valuable.

Bottom line: a book that most people should read, but I wish it would have been written differently.

Billy Crystal: 700 Sundays (2014)

I was browsing the selection of films on HBO Go and I have to say, for someone who is used to the options available on torrent sites, the films and series that are available there are both incredibly diverse and woefully inadequate. But if there is something that I am grateful for with that particular network, it is Billy Crystal's autobiographical play. It's called 700 Sundays and it is everything I have come to love about actor biographies... in video format. Within two hours of wonderful acting and playwriting, Billy finds the way to tell the story of his childhood, adolescence and adulthood without once getting into the things we actually know him for: acting, comedy, Hollywood. It's so wonderfully personal that is feels a bit too intimate, like someone describing in detail their love life.

Boy, does this guy love. There is this cliche about comedians that are essentially depressed and fight it, for a while, with humor, until their inevitable depression and subsequent suicide. Billy Crystal is nothing like that! He owns every scene, he fights for his audience and he is proud of his legacy. He is blessed, even while he mourns the death of his parents, because while they were alive, they loved him with all their strength and while he is alive, love is what defines him.

Bottom line: it is two hours of wonder. Whether you watch it on HBO Go or download it from somewhere, it is a must, it is absolutely necessary that you watch what a 67 year old master of storytelling and comedy will make out of his life story. I like biographies and this it one of the best, created in the medium Crystal feels most at home: stand up comedy.

I was half expecting the show to be freely available on YouTube or something similar, but in this day and age, quality is always behind some paywall. I leave you with a trailer to the show and I urge you to see it:

Friday, March 08, 2019

Assembly redirect woes

I spent hours trying to manually fix the assembly redirects in a web.config, only to give up and use the default Add-BindingRedirect in the NuGet package manager. And it worked! I have no idea if this won't break something else, but I got it from Rick Strahl's blog and it worked for me. More in his article. Thanks, Rick!

One thing to remember is that you first have to delete the dependentAssembly elements from the .config file in order for the command to work.

Wednesday, March 06, 2019

Building a Visual Studio solution from the command line, without Visual Studio

Update: there is an issue related to NuGet packages. I was recommending to run MsBuild with the command line option /t:Restore;Rebuild which should restore packages and rebuild the solution. However, as detailed here, the MSBuild Restore option only restores packages defined in the project PackageReference elements, not the ones in packages.config. In order to restore those, you still need to manually run nuget restore. Where do you get nuget.exe from? Obviously not from the Visual Studio Build Tools... but from the NuGet Gallery.

Now, for the original post.

So I had this medium size Visual Studio solution, in .NET Framework 4.6.1, containing a bunch of projects, including a Wix setup and a web API and I wanted to build it on a machine that did not have Visual Studio, for Continuous Deployment reasons. Since Visual Studio uses MSBuild to compile, I thought it would be a five minute job. Boy, was I wrong!

First of all, the command to build a solution is clear:
MSBuild You.sln
and since it was a .NET 4.0 project, it made sense to use the MSBuild.exe from C:\Windows\Microsoft.NET\Framework64\v4.0.30319. Well, enter the first error: CS1617: Invalid option 'latest' for /langversion; must be ISO-1, ISO-2, 3, 4, 5 or Default. This is caused by the project using C# version 7 which is NOT supported by the MSBuild version in the .NET Framework, you need MSBuild version 15, which comes with Visual Studio. I didn't want to install Visual Studio.

The solution is to install Visual Studio Build Tools, preferably using the Visual Studio Installer. Now, the correct MSBuild version is found at C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe. Note that it is in located in a Visual Studio folder, not the MSBuild folder, which is also there.

An issue that occurred here was that previously warning messages saying the framework is 4.6.1 and the installed framework is 4.7.2 now became errors. The solution is to install the .NET Framework SDK 4.6.1 or to upgrade all your projects to 4.7.2. Warning: you need the Developer Pack, not just the Runtime.

Second error: error MSB4036: The "GetReferenceNearestTargetFrameworkTask" task was not found.. The problem? The NuGet package manager and/or the NuGet targets and build tasks are not installed. In order to install them, run Visual Studio Installer and look under the Individual Components tab, in the Code Tools section. See this Stack Overflow question for more details.

Next problem: The type 'IDisposable' is defined in an assembly that is not referenced. You must add a reference to assembly 'netstandard'. This is a weird one, since the compilation in Visual Studio had no issues whatsoever. This is related to the framework version, though, as .NET 4.6 uses netstandard 1.0 and 4.7 uses 2.0. The solution is to add a <Reference Include="netstandard" /> tag in your .csproj (tip: Search and replace <Reference Include="System" /> with <Reference Include="System" /><Reference Include="netstandard" /> in all your .csproj files)

Another problem similar to the one above is Predefined type 'System.ValueTuple´2´ is not defined or imported and that is because ValueTuple is not in .NET Framework 4.6.2 or earlier and you need to install the System.ValueTuple package in your project (using the NuGet package manager, more details here)

For both problems above as well as for the issue with the framework conflict further up a possible solution is to upgrade all projects to .NET 4.7+ or whatever is latest.

Next, targets errors: error MSB4226: The imported project "Microsoft.WebApplication.targets was not found. and error MSB4057: The target "_WPPCopyWebApplication" does not exist in the project. This is because even if Visual Studio Build Tools is installed, the targets for it are not. The solution is to copy the folders Web and WebApplications from C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0 to "\\BuildMachine\C$\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0". You may need to copy the NuGet targetss as well, I don't remember if that is what I did or the NuGet package manager installation solved it.

Last but not least, Wix errors. Obviously, for the Setup project to compile you need to install the Wix Toolset. However, you may still run into this error: error MSB3073: The command "heat dir ..blah blah blah" exited with code 9009. If you were trying to executing the build from a command prompt and you installed Wix while it was open, you need to open another one in order to refresh the changes the installer did to your environment PATH variable.

Finally, in order to compile for a specific platform and configuration, use the flags: /property:Configuration=Release /property:Platform=x64.

Then just run the line:
nuget restore
"c:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\15.0\Bin\MSBuild.exe" /t:Restore;Rebuild Your.sln /property:Configuration=Release /property:Platform=x64

Hope it helps.

Monday, March 04, 2019

Asteroid Hunters (TED Books #14), by Carrie Nugent

book cover Part of the TED Books series, Asteroid Hunters is a tiny booklet, with few ideas other than those expressed in Carrie Nugent's TED talk: Adventures of an Asteroid Hunter. They even repeat. It feels like someone wrote a blog post and was in the mood to write and then they thought to make it a book, but without adding more material to the original post.

Nugent presents the job of asteroid hunter, which makes it technologically feasible to detect potentially dangerous asteroids years before they have a chance to do damage to the Earth. In that time frame, changing the rock's trajectory would be within our means. Let us do our job and fund it, she says, and the Earth will be safe from an asteroid impact, a predictable and preventable event.

Bottom line: that's the entire book. No funny anecdotes, no personal stories or insights, no analysis of the world of asteroids and meteors outside the job of finding them. It's informative, terribly bland and a bit repetitive. I didn't like it.

Friday, March 01, 2019

High Stakes (Wild Cards #23) by George R.R. Martin, Melinda M. Snodgrass

book cover High Stakes is so full of interesting and delicious horror that I am willing to forgive the bland and boring setup in the previous Wild Cards book, Lowball. A mosaic book like many others in the series, where different characters are written by different authors, it describes the coming of a supernatural horror that can change reality itself. People (normal, joker and ace alike) get turned physically and psychologically into rage filled monsters that want to eat babies and kill everything for the glory of their dark god. Even if some sections were reminiscent of the bore in Lowball, with love between people and worry and relationship issues, the bigger problem of the end of the world took precedence and made this into one of the best books in the series.

In many ways it reminded me of the early Wild Card books, when the virus was still a thing of awe and fascination, horror and fear, but with even more oomph. I think this particular volume washes the sins of many of the recent others that kind of forgot what the Wild Card was all about. I do hope this becomes a trend and the next books are at the same level.

Tuesday, February 26, 2019

MSI silent installation fails with code 1603

So you have a product that has an MSI installer and installation works perfectly. But you want to install the product using the /quiet flag, so that you automate the installation or for whatever reason and now it fails all the time. First of all, do the normal thing when you have an MSI installation error:
  • Install the package by manually running msiexec and add verbose logging: msiexec /i My.Setup.msi /L*VX theinstall.log ... (your extra parameters, including /quiet here)
  • Open theinstall.log file and look for the string "Value 3" which is the line where the install actually failed
  • See if you can see what caused the fail

My setup would take properties from the registry and only need the user password to be supplied, so I used it like this:
msiexec /i My.Setup.msi /L*VX theinstall.log /quiet USERPASSWORD="thepassword"
For me, the reason for the failure was very unclear: "CreateUser returned actual error code 1603". I had the user, I had the password, what was going on?

The solution was to add ALL the properties needed. With a silent installation, it seems some of the actions in the UI are ignored. It's not just quiet, it's skipping things. In order to get a list of all possible properties, open the same install log and look for "SecureCustomProperties", which should list all the properties that you can set from the command line, separated by semicolon. I am sure I didn't need to set them all in order to work. In fact I didn't. I only used the ones used in the UI.

Hope it helps.

Tuesday, February 19, 2019

Lowball (Wild Cards #22), by Melinda M. Snodgrass

book cover It was difficult to finish Lowball. First of all, I didn't remember a lot of the characters that were supposed to be well known. That's on me. Second of all, a lot of pages were dedicated to the personal life of one or another, including family squabbles and marriage proposals and all that. I don't know about you, but myself I didn't need or want to read that. It made the book feel boring and lifeless. But the worse sin of the book was that it was unbalanced.

Melinda Snodgrass describes action that happens in the middle of Jokertown, a small area of New York populated with jokers, people affected by an alien virus that changed them into impotent ugly monsters, then extends it to the outskirts and eventually other countries, involving as hero characters: a local police officer, a SCARE agent, his old friends, local jokers who are slightly aces (aces have advantages conferred to them by the infection) and - did I mention - their significant others, mothers in law, etc. The scope keeps shifting from aces and law enforcement agencies that are paralyzed for no real reason to regular people who somehow do more than anybody else, from international intrigue to very local issues. Some of the stuff that happens bears no real relevance to the main plot.

The book eventually became a bit more focused and the action started to pick up. And when I was finally getting to the point where something was going to happen and closure was close, the book ended. What the hell happened? Not even an epilogue. Abruptly everything ends with a cliffhanger that you can't even understand and credits roll. The next part of the "triad" of books seems to be High Stakes. I will read it, too, because I want to read the Wild Cards books in their entirety, but to be honest, I don't think I even enjoyed Lowball.

Saturday, February 16, 2019

On Agile Software Development

There is this old joke about how having a senior developer around is like having a little child sitting next to you. "How do I do that?", you ask. And the SD asks "Why?". "Well, the boss asked me to" "But, why?. "The client wants it" "Why?". "Because he needs this other thing" "Why?". I am afraid the joke is very true. Usually, at the end of the exchange you get to the real need at the base of the request and understand that it is the thing that must be fulfilled, not the request as it came through several filters, each adding or removing from the real purpose of the task. And if there is something I want to impart from my extensive experience as a software developer it is that you must always start from the core need and go from there.

However, I am not here to discuss how to write code, for once, but on how to organize your team (or yourself as a team of one) from this need driven perspective. And please don't call it NDD and read it NEED or whatever, because this is just a general principle that can help you in many domains. So let's analyse Agile. It's been done to death, so what I am trying to do here is not summarize what others have done, but to simplify things until they don't even need a name anymore.

First, what is Agile Development? Wikipedia says: "Agile software development is an approach to software development under which requirements and solutions evolve through the collaborative effort of self-organizing and cross-functional teams and their customer(s)/end user(s). It advocates adaptive planning, evolutionary development, empirical knowledge, and continual improvement, and it encourages rapid and flexible response to change. The term Agile was popularized, in this context, by the Manifesto for Agile Software Development. The values and principles espoused in this manifesto were derived from and underpin a broad range of software development frameworks, including Scrum and Kanban."

So Agile is not Scrum, but Scrum is underpinned by Agile principles and values. That is important, because many shops want to do Agile and so they do Scrum or Kanban and they either try to follow them to the letter (purists) or adapt them to their requirements (which is more in line with Agile principles, but the implementations usually suffer). One wonders how come there are not a lot of different methodologies out there, just like there are software patterns or programming languages. The answer is that no one starts off with understanding their need for Agile and in fact many don't even know or care what it is. They do Scrum so that they get the Agile badge, they tell everyone they "do Agile" and pompously ask their candidates if they "know Agile".

But if someone asks "Why do you want to do Agile?" the answers are not so easy to get. Of course there are advantages in the approach, that is why it's so popular, but you don't get advantages for your collection, they need to drive you to some kind of goal. One might say that for every process you need metrics in order to analyse your progress. Scrum does that. You don't need metrics for the efficacy of the metric system, do you? But still you need some way of gauging the usefulness of your methodology itself, otherwise we would still be using imperial units.

I am more accustomed to Scrum, but I don't want to analyse it, instead I want to measure the usefulness of Agile as a concept by asking the very simple question "Why?". As we've seen, its attributes include:
  • self organizing teams
  • cross functional teams
  • collaborative effort between teams and customers
  • adaptive planning
  • evolutionary development
  • empirical knowledge
  • continual improvement
  • rapid and flexible response to change

Why self organizing teams? That's the first and one of the most important and complex aspects of Agile. If the team self organizes, then everyone in it shares responsibility. There is no need for micromanagement from above, the team acts as a unit, you get it as a neat package that you don't care about. In theory when a team is inefficient from the organization's point of view, you should fire the team, not individual people. If one member is not performing as expected, then it's the responsibility of the team to fix them or get rid of them. Also theoretically, an Agile team doesn't need a manager.

But in practice I haven't seen this implemented except in small startup teams. There is always a manager, a director or more of them. There is always micromanagement. There is always some tendril of HR or organizational graph that affects people individually. Why is that? Because teams are cross functional, too. A developer doesn't need or want in any way to have to measure the work efficiency of their colleagues, have to tell them how to do things or get to the point where they have to push for firing them. A developer doesn't want to administrate the team. So what is a manager in the Agile world? That's right, a member of the team. If devs would not have a manager, they would probably hire one, as part of the self organization of the team. Moreover, for teams inside larger organizations like corporations, the "customer" is the corporation, so the manager role is often combined with the one for "customer representative" or "product owner" or "producer" or something like that. They're the people you go to in order to understand what it is you have to do.

And since I've started talking about cross functional teams, this means that Agile doesn't need or indeed recommend that people be interchangeable, having the same skill sets. Whenever you hear someone say "everyone should know everything" that's not Agile. It's just a sign that someone from above wants to micromanage the team without having to know anyone in it or ever decide the direction it should work in. It's the sign of a top-down approach that is ultimately inefficient from both directions: the team feels pressure it doesn't need while being restricted in what it can do and the management has to perform tasks that they don't need to do. I haven't seen one team of people treated as interchangeable units be efficient, nor have I heard of any. So why cross functional teams? Because people are individual beings and are different and, for every skill they have, they put in effort to first reach a basic level of knowledge, then more effort to become good or even expert at them. An Agile team needs to be flexible enough to accommodate for any type of person, within reason.

As an aside, think of the skills of a challenged person. The legislation of many countries requires now that software be accessible to a wide variety of disabled people. So whenever you hear that people should be versed in all aspects of the team's business ask them for Braille courses.

Cross functional also includes the skill of knowing what the customer wants, whether they are a member of your organization or someone sent by the client. It's one of the most necessary roles to be filled in a team. If a team were a living thing, the product owner would be the eyes and ears. You can be strong, fast, deadly, but it doesn't help if you can't find your prey.

So why collaborative effort between team and customers? Because you need to know why do you what you do. This entire post is dedicated to the question of why, so I won't press this. Just remember that if the team doesn't know why something is required or necessary, then it is not yet fit to perform that task. People are going to hate me for this, but we've already established the need to understand the client and that in large organizations the customer is the organization, so the logical conclusion is clear: office politics, psychopathic displays of power, idiotic decisions coming from up high are all part of the requirements. There is a caveat, though: the need of the customer needs to be clear, not the want. If the liaison to the customer is withholding or unaware of the real reasons something needs to be done, then the team suffers.

As an aside to all manager or high corporate types out there, it's way better to explain to a team that they have to scrap a project because you hate the guts of the person who proposed it, than to invent business reasons that are clearly bullshit for destroying months of loving work. In the first case you honestly admit you are an asshole, but in the second you prove you are one.

Now, what's this about adaptive planning? If you already know what is needed, someone should let you do your job in peace. You come to them when it's done. That was the fallacy of the Waterfall system. That is also why Waterfall still works. In a situation where needs are clear and do not change, there is no need for agility. Unfortunately, these situations are rare, especially since I've included in the list of customer needs the legacy of us being descended from apes. That means adapting quickly, without regret, changing direction, sometimes turning back completely, abandoning projects, starting new ones that you recommended starting years ago and was laughed out from the room for it and so on.

It's not only that. Adapting to your client's need is something that you would have to do anyway, in any realistic scenario. But it also means that you have to adapt to the technological changes in the world. Maybe you have to rewrite your code with another technology or explore new ones that just appeared out of thin air. Adaptation means that a big part of your job as an Agile team is exploration. This is emphasized by the empirical knowledge attribute above. These two go hand in hand. You adapt by understanding and for this you must be in the loop, you need to know things. Well, one of the members of the team needs to, at least. Adapting means "rapid and flexible response to change".

Therefore, whenever someone asks you if you are Agile or demands that you are, you can tell them about all the new tech that is rumored to come out this year and how you can barely contain your enthusiasm to be working for someone who enables exploration in the true spirit of Agile. Preferably after you've signed a contract, maybe.

But I talked about adapting to new requirements and changes in the environment, not adaptive planning. Adaptive planning is planning for all the things above. In other words, when you start a task, plan for the possibility of it changing, having to be abandoned or having to be redone in a different shape. And here is a point of much contention, because you can do this as any level. If you do it whenever you have to change the color of a button, you will overestimate all your work. If you do it at the level of the entire enterprise suite of products, you might as well do Waterfall. In any respect, it is the entire team that needs to know and decide what they plan for drastic changes.

Yet there are two types of reacting to change: planned or chaotic panic. Adaptive planning refers to planning for change, not preparing for working in complete chaos. That is why Scrum, as an example, splits planning into small periods of time (2-4 weeks) called sprints for which the work planned needs to be finished. If anything drastic (like a task losing its relevance) happens, the sprint is aborted. The sprints themselves can be in relative chaos, but inside one planning and order prevail. It doesn't mean planning for an irate boss man to come and tell you every day to change this and that. It means having a list of tasks that you can edit, whether by removing or adding tasks, rearranging their priority, or even adding tasks like "how to deal with this insane man coming into the office and spouting obscenities at me", then execute them in order. In no way does it mean that you do things by the ear or plan for something and then ignore it.

Two aspects remain to be discussed: evolutionary development and continuous improvement. Both strongly imply awareness of the development processes through which the teams goes. It's the team equivalent of introspection commonly referred to as retrospective. What did we do? How does it compare with what we had planned? What does it mean for the future? How can we do better? and the Why of it is obvious, you've got a good thing, how can you get more of it? Yet this is the point that is hardest to put in a box. Various methodologies attempt to introduce metrics to measure progress and performance. Then, with the function of the team properly computed and numbers assigned to its yield, one can scientifically tweak the processes in order to get the most out of the resources the team has. This is a wonderful concept and I agree with it in spirit, but in practice frankly, I think it's bollocks. It pure shit. It's circular logic.

Here we are, discussing a beautiful philosophy of doing work for maximum benefit by letting a team of very diverse people organize themselves towards a common goal, being ready for anything, adapting to everything, pushing through no matter what by leveraging their individual strengths. And then we come and say "Wait, I can take all this, name it, measure it, put it into equations and then tell you how to improve it!". Well, why didn't you do that from the start, then? Why bother with all the self expression and being able to adapt to anything new? If all is old under the sun, why do Agile at all?!

I believe this is the part where Agile methodologies fail utterly and miserably and can't even admit to themselves that they have. I agree that progress needs to be visible and the ability to compare it with other instances is essential, but from here to measuring it numerically is a large distance. Forget the usual arguments against measuring team success: the team composition is not fixed, the type of work it different, team dynamics means people behave differently, personal and local events, and so on. It's bigger and simpler than that. I submit that since the entire concept of Agile rests on the principles of flexibility, the method of gauging success should also be flexible and especially the way the team processes are tweaked for the future.

And I have proof. In every company I've ever been or heard of the Agile methodology of the place didn't quite work in various ways and that was apparent when people were laughing or disrespecting that part to the point of ignoring the rules in place. And the common bit that didn't work for all of them is the retrospective. The idea of asking "what problems did we face?" and then immediately finding and enforcing solutions with "what can we do about it next time?" has become such a mantra that it is impossible to ask these questions separately. It's become reflex (to the horror of wives everywhere) when you hear "there is a problem" to ask immediately "what can we do to fix it?". There is an intermediate question that must be inserted there: "Is this really a problem or do I just have to be aware it happened? Can we ignore it?". This is another topic, though.

A short summary would be:
  • responsibility is shared between all the members of the team and decisions should be taken as a team
  • any member of the team is valued for their contribution towards reaching the team goal
  • the manager is not your boss, it's just the role of a member of the team
  • the Scrum master or Kanban master or whoever does the accounting in whatever methodology you use is still a member of the team
  • having a member of the team understanding the needs of the customer is essential; they are the people you go to ask "Why?" all the time
  • adaptation need to be written in the DNA of the methodology; the team must plan to change its plans, but still do things orderly
  • experience should guide the team to define progress and improve itself
  • transparency of the team goal is necessary for the team's success
  • there is no improvement of the development method (or the code) without exploration and the entire intentional participation of the team
  • never be afraid to ask why; if you work in an environment where you are afraid, consider changing it

Let me tell you the typical story of the development team. First there is chaos, someone decides they are a quick and dirty team and they can do anything, fast, cutting all corners into a straight line to hell. Mistakes are made, blame flies around, people are fired, emotions get high, results go nowhere. There is need for order, all cry out, we need to use the holy grail of software development and the greatest human invention since fire (that week, at least). And then a specialist is called. He either becomes part of the team, with the role of teaching and enforcing rules, or just teaches a few courses, gets their money and leaves before hapless fools try to put in practice whatever it is they thought they understood. The result is the same: developers first like it, then start grumbling about the indecency of having to fill out documentation before any code is written, or updating it, or adding tasks in whatever software is used (or Post-Its on a whiteboard, if you are a purist and still haven't figured out developers can't use a pen to write). So either morale plummets and the operations continue with diminishing results, or the grumbling becomes a rallying cry to make a change. And the change is... chaos again.

In short, just like a revolutionary South American country, they can't decide if they want freedom or dictatorship, because both options have big damn flaws and anything in between is sucking their life away.

But why?

It's because even methodologies are subject to change, to human whim, to altering conditions. If you look at the beginning of this enormous post, it all started with the main goal and meandered from that, just like an Agile methodology in a real firm does. What is the goal of the team? And don't you look at your manager to tell you. As a team, responsibility is shared, remember? If the purpose is to turn perfectly enthusiastic software developers into soulless drones... you should run away from there. But if it is not, think about the things you are doing. Are they helping or are they not helping? This week at least.

In conclusion (or retrospect?) I believe Agile is a great idea, but its underpinning principles of always being aware of the situation and adapting to it are a more general and useful concept to remember and live by. Truth and knowledge comes before adapting and many software shops fail there, so the methodology is irrelevant. Then the method of work chosen should reflect the flexibility it enables. I don't believe in a pure anything, and certainly not pure Scrum, pure Kanban, pure Agile, but whatever you cook up, it should work towards the real goal of the team, as known and acknowledged by everyone in it. What's your function in life?

Monday, February 11, 2019

The Power, by Naomi Alderman

book cover The Power started strong and then it fizzled. The idea is intriguing: what if all of the sudden women would get a power that would change the balance between men and women. Men have muscles, women have the power of electricity at their fingertips. The whole book is about the effect this would have on society and, highly recommended by Margaret Atwood, I've decided to read it.

Unfortunately, Naomi Alderman is not going places with the idea. It takes a special kind of person to write a book about how the fate of the world would unfold, but not be able to describe even one meaningful relationship between men and women. And with that gaping absence comes a scenario that is pretty difficult to swallow. Having the power of electric eels, women in Saudi Arabia, Iran, African countries and most of all, dark Moldova, where the entire south of the country is just about caging, selling and using women, gang up together to overthrow the rule of man. Forget about simple and cheap solutions against electricity, forget about how no amount of electrical power could rival guns, tanks, gas or bombs, forget even about the terribly naive view of a neighboring country (I am Romanian), but what about the fathers, husbands, sons of all those women? In this book, once women get a taste of power, they immediately turn into electric monkeys, changing their culture, their beliefs and their entire identity in one fell sweep. They stay together in huge mobs, create countries for themselves and even consider killing all men except the ones they keep for breeding. There is little mention of families, men or any significant human response to such a policy. I couldn't help thinking of the Battlestar Galactica quote: "Slaves dream not of freedom, but of becoming masters".

You will probabaly think of another similar story, The Handmaid's Tale, but there is subtlety in that book. Women are not oppressed by men directly, but by their fellow women who bought into the thing. The religious fervor touches all aspects of society, including family, commerce, politics. In The Power, it's like men exist for no other reason than to rape, beat and abuse women. The only good guys in the story believe women really should rule the world and that their time was long in coming.

So to summarize it all: this is a lazy book, filled with personal ideas about how the world is that bear little resemblance to reality, therefore difficult to follow with any interest. The writing is professional, but the characters are cardboard, single drive creatures, and rarely sympathetic. What would have been the most important part of the book: the relationships between men and women or families, are either absent or naive and focused on power games. It has more in common with Planet of the Apes than to Handmaid's Tale.

Friday, February 08, 2019

In Pieces, by Sally Field

book cover In Pieces is a nice read. It made me understand things about people and women in particular that I had no chance of knowing because, let's face it, all people lie about themselves and films lie about everything. Sally Field is both very honest (I mean the effort is palpable) and narrating her own version of the story of her life. Can you trust it? Can she trust it? Before you ask how did she remember what she did as a young woman when she wrote the book at 71, learn that she obsessively kept daily journals about her life. She kept reviews to her films, random pictures of her on the filming set or with her family, letters and so on. Funny enough, she never read the reviews until much later. I think that was wise. If this post were printed, she probably would keep it, too.

The book starts with Field's childhood, described as a continuation of the lives of her mother and grandmother, goes through her personal and work life until she is about 40, when she wins the Cannes Palme d'Or and the Oscar Academy award (her first) in the same year. I feel like she thought that was the peak of her life and the next twenty plus years (and a new marriage and a new son) are described in mere paragraphs. However the ending is very emotional as she tells the story of coming to terms with her emotional issues, going to a psychologist for the first time and finally talking frankly with her mom - at the age of 63! It's never too late - and ending with her mother's death.

I loved the way she explained how the different pieces of her soul worked, hence the name of the book. I usually say what I mean and even if I am plagued by many personalities of my own, when I am duplicitous I usually planned and made a huge effort to do it. It must be the same for most other men, I think, because in our discussions we often decry the seamless way in which women can become someone else entirely, hide and basically cheat when interacting with others. A 2015 study on 2000 people showed that women lie about two times more than men, but an overwhelming majority of lies were told in order to make someone feel better, to avoid trouble, or to make life simpler. However, in Field's bio I have finally understood that sometimes this is not voluntary, it is a defense mechanism, it is something you learn from childhood when you have to be the nice little girl and fit in and still face cruel reality. A person can be open and social while at the same time being shy and introverted. It's not somebody being duplicitous, it's someone exposing the part of themselves that they feel will fit in. Of course, that's her take on it, but I dug it.

Bottom line, I think it was a lovely and informative book, even if it described child sexual abuse, matter of factly sexual harassment in the film studios, dysfunctional relationships with men that needed sexy stooge caregivers, not partners, and psychological dissociation in order to survive through it all (and act brilliantly). This is the second actor autobiography I read, after Peter Coyote's (which I highly recommend), and I loved both of them. Perhaps this is a genre that appeals to me because actors are taught to connect to their emotions and to become different people while staying aware of their true core, and so their autobiographies are more detailed, more personal. I will read more of these.

Tuesday, January 29, 2019

The Ballad of Black Tom, by Victor LaValle

book cover The Ballad of Black Tom is yet another book inspired by Lovecraft and featuring racially abused people of color. But unlike Lovecraft Country, this is not funny or adventurous, it is just painful. LaValle creates a complex character, a black man who respects his musically talented father, but neither did he inherit his old man's gift, nor can he abide by the man's strict moral code. In a world where magic exists at the fringes of human perception, he dabbles with things he should not and suffers for it. Stricken by grief, he becomes Black Tom.

I thought the story started kind of slow, then went a bit too fast, then ended too abruptly. Victor LaValle made me fall in love with the character, only to finish the standalone book on a vague note. After reading several stories that I was hoping were not sagas or trilogies or whatever (and they were) I finally get to one that I wanted to continue and it doesn't.

Bottom line: good book, but the main character was better. He deserves more than this.

Sunday, January 27, 2019

Wool Omnibus (Silo #1), by Hugh Howey

book cover Wool Omnibus is the first novel in the Silo series, by Hugh Howey, and comprised of several short sequential stories that are connected to each other. It's a post apocalyptic book, where people are cooped up in a "silo" to survive a world that has become so toxic that only minutes outsides dissolves an air tight suit and then kills you. But what is really true?

For almost all shorts, the lead character is a female mechanic who is both a great problem solver with high technical skills and a woman, so the perfect character for the age. I found that she was a compelling character and so I could read the book in a day. There isn't much else to say outside what I already described. It's easy to read, easy to empathize, easy to forget right after. In truth, the most interesting of the short stories was the first, because of its twist. The rest is a classic hero's journey, complete with egomaniacal villains and Romeo and Juliet like romances.

Personally I enjoyed the book, but I don't feel so engaged as to continue reading the series. It's typical Young Adult, even if the young adult is 34 and a competent mechanic. The tale came close to a sympathetic villain, which is one of the main things in great storytelling, but in the end it settled with the classic rule abiding tyrant that has to be overthrown by empathetic heroes. Average pulp, I guess.