and has 0 comments

  The Humans started from an idea that I don't really like so much: an alien telling the story of how humans are. I've seen so many of these during the years and they are almost always boring, conceited and full of logic holes. Unfortunately this book is no different. Add to this I did not enjoy Matt Haig's writing style at all and you get a DNF.

  Bottom line: I will not be reading this book.

and has 0 comments

  The Anomaly is a very cinematic read in the sense that you can immediately tell someone was writing a movie they had in their head. And what a surprise to learn that Michael Rutger is a writing pseudonym for Michael Marshall Smith, who's a screenwriter. That being said, the book was OK. The pacing was good, the ideas interesting and the human aspect of the characters was intriguing. However I couldn't get out of that "pitch meeting" feeling that this is a "What if Indiana Jones was a YouTuber" idea, just filled in enough to be book sized.

  It starts with the members of an expedition trying to find an ancient site mentioned into an obscure and vague old text. These people have a YouTube channel focused on fringe science theories, urban myths and the like, only this time they caught a break when they found a foundation willing to sponsor their trip to the Grand Canyon to find this place. And of course they find it and of course there are some weird things in it and it keeps escalating to the point where "Oh, come ON!" is a very frequent thought.

  So the story was OK, the characters kind of cardboard, but fine, the plot a bit ridiculous - what can you expect, only I didn't really like the ending. The story had reached a place where the entire history of the world is in doubt and from that it dropped to the level of people going home and nothing else happening. What was even the point?!

  Bottom line: this is a perfect book to read in an airplane, where I actually did it myself. It reads fast, it means nothing, it requires very little from you.

and has 0 comments

  When I was a child, several decades ago, A.E. van Vogt was one of my favorite writers, on the same podium with Clarke, Asimov, Bradbury. Later, I was intrigued of how people never seemed to remember him, while praising loudly the others. So I got hold of whatever I could find written by him and started reminiscing.

  The Voyage of the Space Beagle is more of a short stories collection than a novel, even if it has the same characters spacing out on the same ship. It contains four stories:

  • Black Destroyer - a large cat-like alien tries to get the better of the crew
  • War of Nerves - an alien civilization makes contact telepathically, with unexpected results 
  • Discord in Scarlet - a red alien tries to get the better of the crew
  • M33 in Andromeda - a galactic sized alien tries to get the better of the crew
  • there are also some connective tissue paragraphs detailing a power struggle in the crew itself

  I know why I liked him when I was a kid. The people are all science and knowledge and decisiveness. They are impressive and sure minded and solve every dire situation with their power of their cunning. They also casually discuss and sometimes enact acts of genocide "on principle alone" because some aliens are too ugly, dangerous or of a different morality. It's an all male crew, chemically castrated like in the military, with not the slightest thought women could contribute in any way. They fly between galaxies with the strong sense of their own intellectual and (if proven wrong) moral superiority. The author puts out there the idea that the universe is several million years old and it cyclically explodes to create another one. The distance between stars and galaxies, as well as their number are ridiculously underestimated. Other knowledge we now take for granted is absent completely from the book.

  So it's a strange combination of strong people and ideas that look and feel ridiculous, insensitive, uneducated and even psychotic. The main reason is that the stories were not written at time of publication, but much earlier, sometimes in the '30s and then the author was constantly fixing them and mashing them together in fix-up novels. The scientific and social change in these 100 years is shocking. Hell, I was gleefully enjoying this 40 years ago! It has the effect of making me see our modern behavior through different eyes. We are as sure now as we were then that we are in the right and that we are a pinnacle of something and everything other is weird and to be changed or avoided. What will we think of present selves a century from now? How pathetic are the five minute dramas that occupy our awareness today.

  Think of this book as a precursor of Star Trek: valiant humans exploring the universe. Only they are as far from Kirk as he was from Picard. Quite intriguing an experience which I recommend.

  Van Vogt died in 2000, but his last short story was written in 1976. He was never considered a great writer even in his own time, despite my own childish preferences, yet he made an impact. I probably am going to read something by him again, maybe not immediately. 

and has 0 comments

  At the end of Children of Ruin I was bemoaning the fact that Adrian Tchaikovsky moved things too far, too fast, and I was happy to see things go down a notch in the beginning of Children of Memory. Alas, it was all a scam, like those Star Trek episodes when nothing makes sense for the entire show only to get explained by a Deus ex Machina and a bunch of McGuffins at the end, but most of it happens in today's Earth or on some farm or Western setting.

  Where could the author have gone from a multi species confederation of faster than light travelers, capable of eternally sleeping during voyages anyway and, barring that, construct any body and transferring any kind of knowledge back and forth? Just like Stargate (most notably) which started with stranded humans at the mercy of all powerful aliens and ended up defeating gods and travelling between galaxies, the only way was back or some kind of lateral jump, like making episodic books that need not connect except through a common literary universe. I really hoped that would be the case.

  And I feel even worse because, while I hated most of the book, with its Memento-ish rehashings of the same events and with the author himself explaining obvious things over and over again, at the end of Children of Memory was a glimpse of the philosophical underpinnings of the story, and I liked those. Unfortunately those are just at the very end, making the rest of the book mostly pointless.

  Bottom line: I couldn't wait for the book to end fast enough, just to get to understand what was going on, because even if I had an inkling of that, I needed confirmation. And the ending was both philosophically satisfying and invalidating the entire beginning and middle of the the story. So to me it feels like a bad elevator episode of the series, like Tchaikovsky had one more book to write to make this a trilogy and, like me, couldn't wait to get it over with already. 

and has 0 comments

  Children of Time was split into two stories, one rich with characterization, focused on individual people, and another that felt a little bit like a nature documentary, but was pretty good, too. The science was stretched a bit, but in the end you get a subtle exploration of humanity via another species. Children of Ruin is the equivalent of explosion porn for action movies, though: more, bigger, louder, thus drowning out the parts that came close to what I liked in the first book.

  Adrian Tchaikovsky starts with another pair of obsessive scientists, but there is less focus on their actual personalities and struggles. They become the cause and catalyst of what he really wanted to write about: a civilization of octopuses and a complete new alien species - which of course also reaches sentience. Strangely enough, these take a lot of the book without - to me - providing any insight into our own species or telling me anything really interesting and new about cephalopods or making me feel a lot about any of the characters. In a sentence: this book is less careful, larger but coarser, faster but less inspiring.

  This doesn't mean I didn't like it. The story captivated me and I wanted to know where it goes and how it ends, so I read it really fast. Yet the ending left me a bit disappointed, as I understood that the pyrotechnics ended and the story stands in ruin. Children of Memory seems to go back to the roots a little from the little I've read already, I hope it stays more true to the original concept.

and has 0 comments

Saturn's Children feels like a book that started as something and turned out to be something else in the middle of it. Charles Stross writes something that seems very fashionable this days: a novel from the point of view of a robot. And not just any robot, but a humanoid female sex robot in a world devoid of humans with which to have sex with. Add some solar system travel, spy thriller mechanics, the occasional sexy comedy, philosophical musings about the meaning of life and identity, even what some people might consider light horror and you get this story.

  Even if I enjoyed it, the book is a mess. The style changes, the metaphors change from something from this decade to something that would only make sense in the far future populated exclusively by robots and back again. The mood changes, the motivation of the characters change. You can't even tell who is who anymore because of the multiple "soul chip" identity swaps. It is all written as a letter, but you can't tell who the letter is addressed to, since it also explains to us stuff that should be obvious to a robot.

  I found the premise of humanity simply fading away into extinction, no war, no plague, no asteroid, just people too distracted to have sex with other people, quite satisfying. I know that Futurama did it too, but it makes so much sense as a solution to the Fermi paradox. The basic idea of the book (once it crystalized into one) was intriguing, but you have to read half a book before it turns that way. The writing was competent, but not really engaging or inspiring. The technical aspects were the same.

  Bottom line: more of a vacation book. You get it and you may even read it to the end if the vacation lasts long enough, but not memorable or interesting enough to care about what happens next.

and has 0 comments

  I have to admit I had no idea what this book was to be about. I hoped maybe Jennifer Egan is related to Greg Egan, maybe A Visit from the Goon Squad is science fiction or at least something humorous. But it was about random characters (New Yorkers, no less) and their private lives and introspections. The writing was good, even compelling, but I really wasn't in the mood for it.

  Maybe I will retry later on.

and has 0 comments

  I grew up with cyberpunk novels and I loved them! It made me feel thrilled, scared and hopeful about the future at the same time. So when I heard that William Gibson, father of cyberpunk, published this relatively recently, I thought I was going to see how cyberpunk evolves through the ages, post '90s, but before the true Internet age.

  I rejoiced at that heavy read-a-paragraph-three-times-to-understand style and with a name like Pattern Recognition I was ready for a feast! Only... the main character is a marketing consultant for company logos. The thing is fantastical, but not set in the future. In fact, it reads more like fashion-punk than cyber anything!

  It gets worse! The antagonists are weird and ineffectual, the tension a mere nuisance for the main character rather than a driving force, the end goal finding McGuffiny McGuffinFace, the details boring and not interesting to me. At all! And when things get tough, you have a Deus ex Machina person stepping in and solving the problem. And every character is a hipster! This book, the first of a trilogy, sucks!

  I felt personally betrayed when reading something so antithetical to my interests, yet written in the familiar Gibsonesque punk style. I had planned a deep dive in Gibson's work and now I am terrified that I am going to reread the books I loved as a child and find them just as pretentious and empty, with characters that believe themselves much cooler than they actually are. Was Henry Dorset Case just another self absorbed hipster and I failed to notice it because the cyberpunk was cool and I was a kid?

  Bottom line: I did not like it.

and has 0 comments

  Children of Time spans several thousand years from the points of view of three main actors: the people on an ark ship, the ambitious scientist who wants to create new life and that of the new life. Adrian Tchaikovsky writes adequately the story of the intersection of interests of these parties while reminding me of some of my favorite books like Accelerando and Blindsight, with a pinch of Xenogenesis, but the book is not nearly as good as either of them. Pretty damn good, though!

  It might have something to do with my very high expectations from people reading the book and praising the hell out of it. The book is good, but not THAT good. Then there are the technical aspects which sometimes were so wrong as to take me out of the story. These are minor points, though.

  The main issue with the story is that you have a very personal point of view for the humans and something akin to a David Attenborough documentary for the lifeforms. The contrast is jarring. The scope of the book, though, and the ideas explored are very interesting and the story is very science fictions, in the sense that it asks that essential "what if?" question and asks it well. The answer is just a little dry, that is all. Also, under that pretext, the book is actually taking a hard look at our own history, future prospects and examines the nature of humanity. Just the stuff I like.

  As proof that I did like the book, despite my usual old man grumbling, is that I have put the other two books in the series in my to read list.

and has 0 comments

  At 60% of reading The Ninth Metal, the work Miskatonic was slided into the story. Then some vague visions of interdimensional doors and huge eyes and tentacles solidified the intention to have this as a "Lovecraftian novel". And it may well be, perhaps the entire series will be more, but as it stands, simply hinting at cosmic horror is not Lovecraftian and having less than 5% of your story be anything than random hicks in Minnesota doing whatever they usually do almost doesn't make it sci-fi.

  Now, Benjamin Percy's writing isn't terrible and slow paced stories that evolve slowly to give characters room to grow are not bad. I just felt that this book was a story of hardship in a family defined by local metal exploitation that a comic book writer felt the need to make superheroey and then (why not) Lovecraftian for a better selling position.

  But there were other things that made me dislike reading the book. One of them is the endless back and forth between present and flashbacks. This sucks in movie form, in a book format it's even worse. You have to mentally switch context from whatever you were enjoying (or trying to) to something else while the author is answering questions that you never asked. Second thing is the characterization. Most people were terrible clichés, most notably Wade. Not only does he just randomly die, no one, including his loving wife, even mentions him again. The bad boy who grew a solitary and strong-silent sense of morality, the ambitious woman regretting not having children and finding one to save, the innocent requiring saving, the psychopathic villain, the angry henchman, the waiting woman (complete with a worthless and disposable male companion while doing so), the annoying story of a vague but global catastrophe but focusing solely on a small American town and so on.

  Bottom line: I kind of liked the idea of the story, but I would have seen it compacted in the first three to five chapters of a single book. While tired of the "coasty" types of stories we are inundated with from cinema and TV, I didn't really want to fall into the other terrible formula: the small American town, truckers, miners and waitresses doing cowboy politics.

and has 0 comments

  We all know Frank Herbert for his science fiction work, mainly Dune, but before he became famous by publishing that, he wrote may short stories and novels. This collection published in 2013 holds four of the pre-Dune novels he never got to publish. I found the stories very Herbert, kind of dated and, except the first one's premise, non-sci-fi. Yet they show how the ideas that went through Herbert's brain evolved in time.

  The novels in the collection are: High-Opp, Angel's Fall, A Game of Authors and A Thorn in the Bush.

  High-Opp

  It shows the irreverent cynicism that the author had towards governments and social systems, but with a yet unpolished writing style. The story shows how a brilliant man, stuck in the middle of the social hierarchy of a communist-like government is betrayed and then manipulated by various groups. As the strong '50s male archetype he manages to outsmart and outfight everybody.

  Angel's Fall

  This is an interesting story about a damaged air vehicle floating on a river while enemies are trying to catch and destroy it. It's not sci-fi, as the air vehicle in question is a floatplane and the enemies are Amazon native tribes. But if you thought I was talking about the jungle part of The Green Brain, I would understand, as it's basically the same story without the sci-fi elements!

  A Game of Authors

  A weird story about an American journalist travelling to Mexico for a story, while being manipulated and attacked by various interested parties. It felt really dated and not well thought through. The characters were a joke, particularly the female ones. It was supposed to be a "brave resourceful man" story, but it felt like a "clueless American still doesn't believe people would try to kill him" thing.

  A Thorn in the Bush

  This felt like the least Herbert story of them all, even if it did focus on the internal drive and motivation of people. It's the story of an old madame who, having moved to Mexico and become respectable, tries to boss everybody based on her own past traumas and present delusions. Strange to have a female main character in a Herbert novel. It was not bad, but it was the farthest from sci-fi you will ever read.


With this I have ended reading everything Herbert wrote and I could find. From them all, Dune is of course on top of it all, but also Destination: Void (not the series, but the original book), Hellstrom's Hive, The White Plague and perhaps surprisingly Soul Catcher. There are lot of other good stories, but I loved these ones. Phew! It's over! :) It was nice, but a little tiring.

Note: This article is about Chromium based browsers.

Remember the days when computers were configured to present the filesystem to the network by default in read/write mode? Those were the days. Today, though, everything is configured for security and browsers are no exceptions. One thing that annoyed me yesterday was CSP (Content Security Policy) which disallowed me to fetch from a web site information from another web site which was happy to provide it. The culprit was a meta tag that looks like this:
<meta http-equiv="Content-Security-Policy" content="...">

The content was configuring default-srcconnect-src, style-src, frame-src, worker-src, img-srcscript-srcfont-src! Everything. But I wasn't looking for a hack to disable CSP (well I was, but that's another story), I just wanted to test that, given a friendly CSP, I could connect to a specific web site and get the data that I wanted and do something with it. Surely in the developer tools of the browser I would find something that would allow me to temporarily disable CSP. No such luck!

Then I looked on the Internet to see what people were saying. All were complaining about "Refused to connect to [url] because it violates the following Content Security Policy directive..." and how it annoyed them, but there was no real solution. Here is what I found:

  • browser extensions to remove the CSP header
    • I assume this works, but it wasn't my case
  • browser extensions to remove content from the page from the Developer Tools
    • I tried one, but when it changed the content now the browser was crashing with an ugly Aw, snap! page with a Status_Access_Violation status
  • I tried ticking the web site's settings for Insecure content
    • How naïve to think that it would allow loading of insecure content
  • I tried browser command line flags and experimental flags
    • nothing worked

I was contemplating hacking the browser somehow when I stumbled upon this gem: Override files and HTTP response headers locally.

It is almost exactly what I was looking for, only it doesn't replace content with regular expressions but saves the entire content of a URL on the local drive and serves it from there, modified in whatever way you want. So if you want to alter a server rendered page you're out of luck.

How did I use it to remove the CSP? I went to sources, I configured the local overrides and I then edited the page (in the Sources panel) and simply deleted the annoying meta tag. Now it worked.

Hope it helps!

Some time ago I wrote a post about the difference between temporary tables (#something) and table variables (@something) which concluded that before SQL Server 2019 table variables sucked. But I didn't give any real example. I made it very technical and clinical, perhaps creating the wrong impression that it's a matter of minute optimizations and not something somebody should know.

So gather 'round, children, and let me tell you the tale of the dreaded table variable! How a query that timed out after an hour was run in just 3 seconds with a tiny little fix. The server version was... 2017 (fade to dream sequence)

First, the setup: I needed to delete rows from a large table (30+ million rows) which did not have an associated account in a calculated list of about 20 thousand. Simple right?

DECLARE @Accounts TABLE(ACC_ID CHAR(5))

INSERT INTO @Accounts
SELECT ... whatever
      
SELECT TOP 1 *
FROM MyTable t
LEFT OUTER JOIN @Accounts a
ON t.ACC_ID=a.ACC_ID
WHERE a.ACC_ID IS NULL

Just get me that first orphaned record please... ... ... 40 minutes later... WTF?

As I was saying in the previous post, table variables do not have statistics and the engine assumes they have only one row. So what does the execution plan want? To go through all of the 30+ million rows and then search them into the accounts table. Only the accounts table has 20 thousand rows, too. And it takes forever!

Mind that I've simplified the case here. Table variables do allow indexes and primary keys. I tried that. No effect at all!

Let's change the query then:

CREATE TABLE #Accounts(ACC_ID CHAR(5))

INSERT INTO #Accounts
SELECT ... whatever
      
SELECT TOP 1 *
FROM MyTable t
LEFT OUTER JOIN #Accounts a
ON t.ACC_ID=a.ACC_ID
WHERE a.ACC_ID IS NULL

DROP TABLE #Accounts

Just get me... wait, what? The query ended in 3 seconds. Suddenly, knowing the number and structure of the rows in the table led to the correct execution plan.

But can't I use table variables somehow? You can, but you have to force the engine to do it your way. First of all, you use OPTION (FORCE ORDER) which will keep the tables in the order you declared them. And then you have to reverse the JOIN so that @Accounts is the first table, but the effect is the same.

DECLARE @Accounts TABLE(ACC_ID CHAR(5))

INSERT INTO @Accounts
SELECT ... whatever
      
SELECT TOP 1 *
FROM @Accounts a
RIGHT OUTER JOIN MyTable t
ON t.ACC_ID=a.ACC_ID
WHERE a.ACC_ID IS NULL
OPTION (FORCE ORDER)

Back to three seconds. Ugh!

Now, I will probably use a temporary table, because forcing the way the SQL engine interprets your queries is almost always a bad idea and it makes the code harder to read, too.

Hope it helps!

and has 0 comments

I am here to show you how to install whatever UCI compatible external engine you want and run it directly into the lichess.org web site. The feature is still in alpha state (that means they guarantee nothing and have a lot more work on it), but it works pretty well.

The main advantage of the Lichess design for external engines is that you configure one machine with the engines and the application running them, but you can access them from any device logged in to Lichess with the same account.

Long story short

Here are the steps you have to follow:

  • Go to fitztrev's lichess-tauri (Lichess Local Engine) GitHub project, to Releases
  • Download the newest version of the app (at the moment of writing version 0.0.8) for your operating system
  • Run the installer and run the application
  • Log in to Lichess
  • DO NOT click on the Install Stockfish 16 button
  • Download the version of Stockfish (or any other UCI-compatible engine) that works best on your machine
  • Only then click on the Or add your own engine → button
  • Choose a descriptive title for the engine
  • Click on the Select button in the Binary section
  • Select the binary file for your preferred engine
  • Now you can go to lichess.org and select whatever engine you configured in the Analysis/Study hamburger menu on the right side (bottom)

Short story long

Here are the steps you have to follow, with pretty pictures and extra information. Also a video at the end.

Go to the Releases of the Lichess Local Engine GitHub project

Go to this link: Releases.

Click on the title of the latest version (which should be on top).

Download the newest version of the app for your operating system

For this example, if you are on Windows, you should select the Lichess.Local.Engine_0.0.5_x64-setup.exe. 

Run the installer and run the application

Next, next, next:

Login to Lichess

In order for this to work, the application needs access to the Lichess API, which functions with OAuth2 to authorize you. All you have to do is click on Log in with Lichess and follow the instructions.

DO NOT click on the Install Stockfish 16 button

Now you should be in the Add a chess engine section. While you can just click on Install Stockfish 16 and not care about things, choosing the engine that works best for your machine will save you a lot of time and resources. Besides, if you are reading this and installing Lichess External Engine, then you probably already have some chess GUI and some engines that you've installed before.

That is why I recommend you just add those or download them and then add them.

Download the version of Stockfish (or any other UCI-compatible engine) that works best on your machine

For example, the Stockfish engine download site shows this:

For me, the best verison is the AVX2 version while the one embedded with Lichess External Engine is probably the most compatible one. Note that there are specific binaries for particular CPU architectures. Just choose the best one for you.

Click on the Or add your own engine → button and set up your engine

The only important part for now is the title, so choose one that is telling you exactly what you've got. For example Stockfish 16 AVX2, because as new engine versions come up, you will perhaps have more versions of the same brand. The architecture is also relevant, as you may forget in a year or so which one was best for your machine.

Now click on Select and choose the binary file for your preferred engine.

Go to Lichess

You can use this external engine in the Analysis page or in a Study, where the same analysis control is being used, but I recommend you use it in Study because whenever you change the analysis engine the page refreshes, which in Analysis is deleting the moves you've made so far. BTW, shameless plug: if you had installed the LiChess Tools browser extension, then the PGN of the moves remains stored in the textarea under the board in the Analysis page and you can just reload it, no harm done.

The choice for engine is in the options menu of the Analysis, which can be opened with the hamburger menu button on the bottom of the move list.

  

So under the ENGINE MANAGER section you can select which engine you prefer.

Possible issues

You are now ready to do analysis with the new engines. However, since it is in alpha, there are some issues that have not been resolved and you might find them annoying.

  1. the engine doesn't know when to stop for some engines
    • this works fine with Stockfish, but not with Rybka 4.1, for example. 
    • let say you open an analysis page, import a game, start analysing, then stop. You would expect the engine to stop, too, but it doesn't. Closing the window doesn't help, because it's the Lichess External Engine application that runs it and it doesn't yet have a Cancel Analysis button.
    • the same applies to selecting other moves in the Lichess move list. The engine keeps analysing the previous move and it fails to connect to refresh the current move.
    • the solution is to close and restart Lichess External Engine, then enable analysis.
  2. the page gets refreshed whenever you change the engine
    • I am sure they are going to change this in the future, but at the moment this means it's better to use Studies, as they persist the moves in the list. Or LiChess Tools, of course, which has a feature to remember the last PGN in the import box.
  3. there are some people complaining that only the main moves (moves in the mainline) are getting analysed, otherwise the engine freezes
    • this was not my experience. Yet, in some cases, when the position had a cloud cache, I had to press the + sign (that runs the local analysis anyway) twice. It may be my setup, since I am also running LiChess Tools, but it wasn't that annoying. Just press multiple times if you see it doesn't work.
  4. when going deeper on cloud evaluations, there is no visible feedback
    • this affects me directly, because the engine is running, the page shows nothing and LiChess Tools is trying to go deeper all the time. But the engine is working in the background, doing who knows what.
  5. the server is sometimes unavailable
    • 503 errors from the server. I am sure they are working on features and it will happen a lot. However the client code doesn't handle that very gracefully.
    • LiChess Tools has an option for that, ignoring the 503 and trying to reconnect the engine. However, use it sparingly, as you normally should not need it and more likely you have not started Local Lichess Engine.
  6. Lichess gets the evaluation for common positions from the cloud, not from your engine
    • you can fix this in LiChess Tools in several ways, but the recommended one is to use Ignore cloud data for evaluation

Conclusion

I am sure that all of these issues will be resolved in time. I am so happy to see this feature, as the normal JavaScript Stockfish engine is extremely slow compared to the version run natively on my machine. Of course, there might still be the case that you want to continue the analysis on dedicated tools, but so far I am so in love with Lichess that I want to do everything there and share stuff with others.

In order for the developers to solve these issues, feedback is VERY important, so don't be shy and leave comments of all the issues you encounter and all the features you want to see and all improvements you can think of.

I leave you with an older video from US Chess: John's How-To's: Using Engines on Lichess

[youtube:k4aXwk_VQVw]

and has 0 comments

Intro

The Grob Attack, named not after the word grob (coarse, rough. uncouth, rude, crude), but from Swiss IM Henri Grob, who analysed and played it his entire career, is defined by the opening move 1. g4?. That's not a question, that's the mistake sign for a move in PGN syntax. Lichess sets it automatically on any analysis as the computer evaluation goes to -1.5. The opening's Wikipedia page opens with a quote from IM John Watson who calls it "masochistic", a move that could only appeal to people who enjoy pain.

And yet, the statistics of this opening tell a different story altogether.

Stats

For the entirety of the games in the Lichess stats, the Grob opening loses more than it wins, but it's 47% wins vs 49% losses. And once you refine the search, things become more interesting. Let's remove the 400 rating player bracket. Suddenly it's 48-48. Let's remove the 1000,1200 and 1400 bracket: 49-47; it's winning! OK, maybe we should look at every bracket in isolation (and imagine Hans Rosling presenting):

  • 400: 40-54, a massive loss which influences the entire statistic, even if it can hardly be called chess at that rating.
  • 1000: 43-52, amateurs do not do well starting with such a move, obviously.
  • 1200: 46-50, at this level chess is real, but Grob still loses.
  • 1400: 47-49, same as the general statistic. What is going on?
  • 1600: 50-47, a massive jump!
  • 1800: 49-47, is this an opening that only works between 1600-1800?
  • 2000: 49-47, a rating I can only dream of for myself and Grob is still ahead!
  • 2200: 48-47, what?!
  • 2500: 47-47, at the highest level of chess, 2500+, people win as much as they lose with this opening.

From now on we will stick to all chess games over 1600 rating, for quality, and without Ultrabullet, which is not chess.

You will say: you can always start with the Grob and transpose into one of the more common openings. I mean, people probably don't play 1. g4 d5 - the Grob gambit, they don't follow with 2. Bxg4 c4 - the Fritz gambit, right? You would be wrong. That's the most played line and the line that Stockfish would go for. And guess what, the winning statistics change to 56-40 after this sequence of moves, even while the evaluation is -1.7!

But, you will say, you're probably not looking at the Masters database for a reason. I am sure there is a refutation for it! Well, yes, Stockfish seems to think so, yet at every level this opening seems to be slightly better for White. Even at 400-1000 rating level once it reaches this Fritz gambit position the win ratio is 56-42 while at 2500+ rating (2000 games) it's almost equal.

So why does it happen? Why is Grob so successful? I am going to tell you. It's because Black doesn't play c6 and doesn't protect the d5 pawn. Or they blunder a piece :) That's the prize in this opening. You either get d5 or pivot immediately to another plan as White, and you better defend it as Black. And most of the moves to maintain the advantage feel unnatural to humans.

Then why does White lose if this is so good? Usually because they lose tempi. This opening is like the movie Crank, you have to move or die. Nc3 is essential, d3 to free the bishop and if somehow Black blocks the h1-b8 diagonal, then Nf3 or Ne2 is again necessary. But will you have time to make three development moves after your queen did everything while Black developed? 

I will begin, unusually, in Grob style, with the Stockfish refutation. It's interesting, but hardly easy to "feel" it as a human being. I will then continue with the general plans. Then show you twelve different traps, the first being the main line!

Refutation

At the beginning of the game, right after 1. g4c6 is a completely dumb move as it loses all the Black advantage. It doesn't develop and blocks an important development square. What about after 2. Bg2? It still loses a point in evaluation because White can now protect the g4 pawn. But after 2...Bxg4 3. c4, the move 3...c6 is what Stockfish recommends while also being the most played move at 2500+ levels. It's such an ugly move, though. Who, having not been studying this opening, would move a pawn to block the natural development square of the knight, delaying king castling even more, moving another non central pawn?

  Well, one might argue that after the next best moves 4. cxd5 cxd5 the square is freed, so no biggie. But after 5. Qb3, Nc6 is still not available because b7 is hanging. Better defend it, right? Wrong! 5...Nf6 is the best move by far according to Stockfish, defending d5. So the continuation must be 6. Qxb7, right? Wrong again. 6. Nc3 for White, attacking d5, inviting d4. That move would be disastrous, leading to +4.5 eval since Black cannot save its rook. So what is the best move here? Nc6 is top 2, finally playable, but White will scoop that d5 pawn.

The second top 2 move is 6...e6. Another pawn move. The d5 pawn must be defended! Or rather, the diagonals to f7 and b7. The computer can't really decide on which of these moves is better, but more often than not it says e6 is superior to Nc6.

Can you reach this point and not consider this opening exciting?

Let's take a step back and check that b7 pawn. Can't we take it with 6. Qxb7? We push the knight to a more passive square which also blocks the Black queen's defense of d5, we gain a pawn, we block the rook since it has to guard a7, nothing can attack our queen. And indeed, it's the closest best move. However, the moves Nc3 and d3 are essential for White in most lines at some point or another. Let's be adventurous and kill the b7 pawn, followed by 6...Nd7 only move. The computer eval is still... -2. Stockfish is certain Black is better, because White has only developed a queen and fianchettoed a bishop, while Black has one center pawn, two knights and a bishop out and two open files for the rook.

7. Nc3 is the only move now. Develop as fast as possible. Black has the initiative, you have to take it back. If we take the d5 pawn now, with the bishop, we lose the bishop when the rook attacks the queen. Qc6 is met with Rc8 which either loses the queen or leads to mate.

So 7. Nc3 Rb8, attacking the queen and leaving the a7 pawn undefended. Should we play Qc6 like a computer or take the pawn? Not that much difference in eval, let's take the sucker! We are being greedy. 8. Qxa7 e5. Only move!

Why didn't e5 work a move before? Because our queen was attacking d5. Remember d5? Black has sacrificed the a7 pawn to protect d5 and we went for it!

But... d5 is still undefended. Both knight and bishop attack it, while the Black queen is blocked by the knight we force-moved there. Why not 8...e6, then? Wouldn't that free the bishop and also defend d5? Because Black's best play here is to try to coral the White queen. Black is still better with e6, but with less than a pawn. A move like e6 allows Qe3, escaping from the war zone into the safety of its troops. e5 on the other hand leads to a fork after Qe3, winning the knight. 

So we take another pawn! 9. Nxd5, so juicy! White is two pawns up, including d5, yet the eval is now -2.4 ?!

This line is not the Stockfish main line, but it's pretty damn close. All Black moves are computer generated while for White I've selected slightly (<0.2 eval difference) worst moves, but more greedy.

This position is amazing! Look at it! The Black queen side is devastated, White plays with just three pieces, both kings are in the center and with no prospect to castle any time soon, if ever, and the only centralized minor piece White has is about to get captured. It's, again, the only move to maintain the advantage, even if it exchanges a minor piece whilst two pawns down. Black cannot stand before two heroes on the board! So many unnatural looking moves just to keep that -2 advantage for Black. If you didn't read this post, you would never have made them, right? So, 9...Nxd5 10. Bxd5.

Black is now using its initiative to explode outwards. 10...Bc5, with tempo, attacking the White queen. The hunt begins! Qa4 and Qa6 are the only available moves, we use Qa4, best, for pinning a knight to the king and long-attacking the bishop. Rb4 is the best move, attacking the queen again and protecting the bishop in the process, yet the second best move is more positional: Bf5, taking the c2 square from a retreating queen. But we go with the best 11...Rb4. What is White to do?

The queen can retreat into a pin (Qa3), hide itself between Black pieces (Qc6) or stick itself right in, with Qa8, which is actually the best. All others are mistakes. This is the price of the hero queen: once cornered her skill and power does not matter, she will be hounded by minor pieces until she dies. The only solution, exchange itself for the enemy queen: 12. Qa8! There are tears in my eyes. I loved that queen! But the rook interferes again: 12...Rb8. Only move! Any other move brings the eval from -2.7 to 0 or better for White. The queen survives, as it retreats again at Qa4 and forces black to go with the positional move Bf5 instead or accept a draw by repetition.

14. Nf3 and White is finally getting out other pieces. Black's queen hunt failed, they castle short, bringing the king to safety. Yet our hero queen is not done. She follows the Black queen in a quest for mutually assured destruction: 15. Qh4. When having material advantage, exchange stuff. If the Black queen were to capture, the eval would go to +1 for White. So 15...Be7 16. Qh5 {attacking the bishop} Bg6 {attacking the queen} 16. Qh3 e4 {attacking the knight} 17. Bc6 {attacking another knight} Nc5 18. Ne5 Qd6 {attacking both knight and bishop if knight leaves} 19. Qg3 {defending the knight which defends the bishop} 

It's madness. After 20 moves the position looks like this: White has a queen and two minor pieces out. Every other pawn and piece on the board (including the king) have not moved at all. It's like White is playing blitz... krieg! Time is all that matters. If White loses tempi, they are lost. Black, on the other hand, is two pawns down, has all pieces out, the king castled, a pawn well advanced into White territory. Evaluation is now -3.5.

This is the "refutation" of the Grob Fritz gambit: a very positional computer-like play that no human would use or, if so, would actually enjoy playing.

The first chapter in the study below is the cinematic version of what I wrote above.

Plans

Every good opening has a plan. The Grob has some, but they are crude, coarse, uncouth, perhaps even rude. It counts on the fact that the opponent will either drop a piece, fumble their rook or trap their knight or even their queen. The goal of the opening is to equalize, winning the game is just the cherry on the cake. Here are some ideas for White:

  • invite the opponent to overextend pieces to places they are not so well suited for, then isolate or even trap them
  • harass the queen side, thus keeping the king side locked
  • prepare very long range attacks, from the fianchettoed bishop and the wayward queen, giving the opponent chances to hang pieces
  • always attack the rook in the corner, but the objective is not to actually take it, but to distract
  • once the light squared bishop is spent or neutralized, switch to attacks on the semi-open g-file
  • after the queen has stopped attacking by herself, the queen-side knight is essential to support her retreat or subsequent attacks
  • once material advantage has been secured, the position is probably bad, so exchange pieces as much as possible
  • this is NOT a king attacking opening, instead it is a royal killing spree attempting to get opponents out of preparation and into a bloody melee
  • there are two endgames with the Grob: the first phase, where we hope to distract and severely wound our opponent, then the actual end game, where we must convert the situation to a win

Check out the chapter Plans in the study above for examples of some of these ideas.

Traps and all kinds of fun

I've identified twelve traps, I am sure there are more, which stem from the Grob opening. There is a chapter for each of them in the study above, which is much better enjoyed on the Lichess website. There are some openings that really get one out of the Fritz gambit or even most ideas Grob, but I didn't see any reason why this opening would not be viable. Think of it as the Death Star: in order to refute it you must fly into a very tight canyon, defended by laser canons, and fire into an exhaust pipe, otherwise all is lost.

The master player who made use of this opening a lot, winning many games, is Michael Basman. Check out his games to see how a real pro does it.

Check out the Romford Countergambit chapters. It is a fun response to the Grob and a friend of mine has prepared a detailed video on it, which you can check out below, so expect a battle of openings!

[youtube:crRlcJNqk3s]

Hope you had fun!