Category: Go

Go Books as ePub

Go Books has been a solid success: 134 books by a dozen publishers and over 40 authors, containing over 70,000 diagrams and 8,000 problems, all about the game of Go. However, so far the books have been limited to the Apple ecosystem: iPad, iPhone, and Mac. I’ve gotten requests from many of you on Android and Windows, and I’m sorry I didn’t have a solution for you. For a while, I explored the possibility of creating separate apps for those platforms, but that turned out to be too hard and expensive to create and maintain.

I finally have some good news: I’ve been working on converting Go books to ePub, the standard for digital books, supported on all popular platforms. I’ve been able to bring the main dynamic elements from the Go Books app to ePub format: interactive replay of diagrams as well as interactive solving of problems. ePub reading apps differ in how well they support this; reading apps not supporting JavaScript will simply display diagrams as static images.

While ePub can’t offer all the features of the Go Books app, it has other advantages:

  • Platform-agnostic: You can move to different platforms without losing your investment in books.
  • Future-proof: ePubs will continue to work even if the Go Books app and gobooks.com were to wither away at some point. Future devices are very likely to support ePub.
  • User-friendly: You can choose ePub readers that already support your favorite features, instead of begging me to add those to the app.

That said, to implement interactive books, I’m using parts of ePub that not all readers support, and even those that do support JavaScript and SVG are often buggy. Please let the authors of these ePub reading apps know about any issues you run into.

The following are the apps that have been working best for me; please let me know about other apps that can handle these ePubs.

Here are three Go book samples converted to ePub:

Epub covers

Questions? Some answers below; let me know what else you’re wondering about.

Will all books be available as ePub?

My goal is to get all the publishers onboard. Most books for sure; can’t promise every book at this point.

How will this work?

You’ll buy the book directly on the gobooks.com website (as you can already do now), and in addition to reading the book in the Go Books app, you’ll have the option of downloading an ePub file of the book. You can then read that in your ePub reader of choice.

Will the ePubs include DRM?

No, the ePubs won’t be encumbered by DRM (Digital Rights Management). DRM would reduce your choice of ePub reader and add unnecessary complications. We trust you to respect that the ePub file is for your personal use only.

What about books I’ve already bought?

You’ll be able to download ePub files for the books you’ve previously bought (assuming you’ve associated them with your email), so you can enjoy those books again on a different device.

Will the Go Books app go away?

No, the Go Books app will still be able to deliver better layout, better features, and better integration than an ePub. The Go Books app will still remain the best way to read about Go, and the iPad is still the device I’d recommend for anyone who wants to study Go — not just for Go Books, but also for SmartGo Kifu.

Will the ePubs be updated over time?

Yes, as I find ways to support new features or improve existing features, or simply fix typos, the ePub files will be updated. I plan to provide an email notification when your books get a significant update, so you can download the newest version. For example, inline diagrams won’t be supported in the initial version, but I hope to add that in the future.

What about multi-lingual books?

In the Go Books app, you can switch the language of a multi-lingual book on the fly. I have not found a good way to support that in ePub; instead, you’ll download a separate ePub for each language.

When will this be available?

It will be available when it’s ready. (Sorry, I’ve been burned too often by giving even vague dates.) There are still corner-cases to work out, server code to write, websites to update, and agreements to ink, so definitely not 2018.

Meanwhile, please try out the ePubs above with different reading apps on your devices, and provide feedback to me and to the app authors.

Go Congress 2018, Williamsburg

I enjoyed a fun week at the US Go Congress in Williamsburg, Virginia: a great success in terms of playing go, learning go, meeting old friends and making new ones; a mixed bag in terms of winning tournament games. I definitely did better with a longer time limit:

  • 3 – 3 in the main tournament. Time limit: 1h 30m per player.
  • 1 – 4 in the 55-and-over tournament (40 minutes per player).
  • 1 – 3 in the Die Hard tournament (30 minutes per player).

Clearly a better result than at the European Go Congress last year, where I lost the first seven games. No jet lag certainly helped. My rating before this tournament was 3.07, just barely 3 dan, might drop to 2 dan once the ratings are updated.

I talked to many SmartGo Kifu and Go Books users, and got to answer support questions in person. It’s really valuable to see where people stumble and what they don’t know about – I’ve written a separate blog post on that.

As previously announced, I’m in the process of rewriting SmartGo Kifu in Swift. I demoed a preview of the new version, and got good feedback on design and features. It won’t be ready until 2019 at the earliest, though.

Unfortunately, a family commitment will likely keep me from attending next year’s Go Congress in Madison, Wisconsin. I hope to be at the European Go Congress in Brussels instead.

Atomium

Dictionary of Basic Tesuji

The fourth and final volume of Dictionary of Basic Tesuji by Fujisawa Shuko is now available in Go Books on iPad, iPhone, and Macintosh. The project started mid 2016, and the first three volumes were published October 2016, February 2017, and July 2017. William Cobb of Slate & Shell did all the hard work of converting the books to digital format.

Four volumes of Basic Tesuji

The four volumes contain 714 problems and 3070 diagrams. But the real story is the 3743 inline diagrams: instead of deciphering text that describes alternate move sequences, just tap to see a diagram with the move sequence. This makes the digital version much easier to learn from.

Page showing inline diagram

Tesuji are moves that make the most effective use of stones; knowledge of tesuji will improve your fighting skills. This series brings together the full range of tesuji, categorized by the purpose for which they are used: invading, reducing liberties, securing eye shape, taking sente, linking up, taking away the base, and much more.

While many of the problems are hard, single-digit kyu players (and stronger) should benefit from this series. For weaker players, I’d recommend first working through the Graded Go Problems for Beginners or Black to Play! series, then read e.g. Tesuji by James Davies or Five Hundred and One Tesuji Problems by Richard Bozulich.

EGC Oberhof 2017

My travel plans lined up to allow me to go to the European Go Congress in Oberhof, Germany, this year. Here’s a brief summary of my experiences.

My US rating has been pretty stable at 3 dan for years, and I registered as 3 dan for this tournament. That was probably a mistake; turns out there are many European 1- and 2-dans who could compete as 3 dan in the US.

I ended up with 2 wins and 8 losses in the main tournament, 1 win and 4 losses in the weekend tournament. All my games were interesting, and I’ve learned a lot, but it’s hard not to let your tournament performance affect your mood as well as your play. The first week was also colored by jet lag and almost constant rain, which didn’t help.

Some comparisons to the US Go Congress:

  • Main tournament has ten rounds instead of six. That is great, except when you keep losing.
  • Two hours per player instead of 90 minutes. I like the longer time limits, but 4-hour games are exhausting; maybe I should have used the sealed move and taken a break for lunch. Also, starting at 10 am instead of 9 am followed by a longer game caused the timing of meals to be weird.
  • Weekend tournament (five rounds, one hour time limit) is an added bonus. Also some other side tournaments not seen in the US: Chess & Go, Yose Go, Phantom Rengo.
  • Tournament times were not coordinated well with hotel meal schedules: some tournaments started at 5:45 pm, while dinner was not available until 6 pm. The nearby town had a lot of good food options, but scheduling was tricky.
  • Fewer pros, fewer lectures, fewer game reviews: The US Go Congress does a better job at organizing pro events.
  • Cheaper: I paid about as much for two weeks here as for one week at the US Go Congress.
  • More people: This was the biggest European Go Congress ever, with over 900 players.
  • You hear many more languages. I could use my German, Swiss German, Norwegian, and a bit of French, but English will carry you through without problem.

The other difference is more personal: at the US Go Congress, I know all the organizers and lots of players, and they know me. Here I’m mostly incognito. I got to know a bunch of players, but it still feels quite different.

Overall a great experience, even though I’m not happy with my results. Next year is in Pisa, Italy; 2019 is in Brussels, Belgium. My advice if you can make it:

  • Try to get there a few days early to recover from jet lag.
  • Possibly adjust your rank; seems to be at least one rank difference in the low dans.
  • Figure out your plan for 4-hour games: bananas, chocolate, energy bars, coffee, whatever it takes to keep your concentration.

Best of luck to everybody now at the US Go Congress!

Highest Possible Pinnacle?

DeepMind announced that AlphaGo will no longer compete: “This week’s series of thrilling games with the world’s best players … has been the highest possible pinnacle for AlphaGo as a competitive program. For that reason, the Future of Go Summit is our final match event with AlphaGo.”

This reason is rubbish. Could AlphaGo repeat its string of 60 victories in no-komi games? Could it win a match giving handicap stones? If AlphaGo wanted to keep competing, there are many more challenges left for it to conquer.

DeepMind used Go as a very successful testbed for its deep learning algorithms: a testbed that has measurable outcomes and can generate its own test data. Winning against the world’s best doesn’t make that testbed obsolete. DeepMind said that this year’s version was using ten times less computing power than last year’s AlphaGo. Could they improve the algorithms by another factor of ten? Hundred? Thousand? Yes, by all means push into other domains and apply what you’ve learned, but don’t abandon the testbed. You have ideas on how to improve your learning algorithm for medical diagnosis or self-driving cars? Testing the effectiveness of those improvements will be a lot harder than in Go.

I’m glad the DeepMind team is publishing a set of 50 AlphaGo self-play games, and that they’re working on a teaching tool. But not pushing AlphaGo forward competitively is a mistake.

Moves to Unique Game

The Ke Jie vs. AlphaGo games quickly reached a position that was not in the GoGoD game collection of almost 90,000 professional game records: Game 1 was unique at move 5, game 2 was unique at move 7. To me, this seemed very early, and @badukaire on Twitter got me to wonder: How soon does a pro game usually reach a position that’s different from any previously played game?

Number of moves to unique game

Time for some data: I ran SmartGo’s fuseki matching on the whole GoGoD game collection (excluding handicap games). In that data set, the highest probability for a move to become unique is at move 8; the median is between move 11 and 12; the average is about move 13. Games are unique by move 7 in about 16% of games; by move 5 in only about 4%.

So it’s somewhat unusual to diverge from standard play that early, but there’s more variety of play early in the game than I expected. Also, I’m sure that a lot of games will soon be copying those moves by AlphaGo and Ke Jie, and those opening moves will be unique no more.

Search and URL Scheme

The newest versions of SmartGo Kifu and SmartGo for Macintosh both include the enhanced names dictionary by John Fairbairn (GoGoD), with mini-biographies of over 4,000 players: life, career, status, teacher, Go style, and notes. Just tap on the player name above the board to see the biography.

Blog takemiya bio 

Improved search

The names dictionary includes translations as well as alternate names, and these are now used to significantly improve searching for players. Just type in the search bar, and it will try to match any property containing that text.

You can use ! to negate, e.g. type ‘Kato !Masao’ to look for all the other players named Kato. Anything that looks like a four-digit year will be matched to the date property, and you can search for a range, so e.g. ‘1990-1994 Takemiya’ will search for games Takemiya played during those years.

For more precise searches, you can test for specific properties and conditions, and combine conditions using & (and) and | (or). For example, you can type ‘winner=Lee Sedol & result~~0.5’ to find half-point wins by Lee Sedol (spelled Yi Se-tol in the game collection).

Blog winner lee sedol 

URL scheme

This kind of search is powerful within the app, but you can now access it from other apps too, thanks to the smartgo:// URL scheme. For example, the following link will get you directly to Shusaku’s ear-reddening move:

smartgo://games?id=1846-09-11a#127

Or find all the games played between AlphaGo and Ke Jie:

smartgo://games?player==AlphaGo & player==Ke Jie

Or find cool kyu-level problems:

smartgo://problems?coolness=10 & difficulty<=1k

Recent games of Gu Li playing black against Lee Sedol:

black==Gu Li & white==Lee Sedol & date>=2012

Games that Takemiya won by resignation playing black against a 9 dan:

smartgo://games?black=Takemiya Masaki & result=B+R & rankw=9d

Games played in the Kisei or Honinbo tournaments:

smartgo://games?event~~Kisei | event~~Honinbo

Three-stone handicap games played in the ’90s:

smartgo://games?handicap=3 & date>=1990 & date<=1999

Single-digit kyu life and death problems:

smartgo://problems?difficulty<=1k & difficulty>=9k & genre~~life

Please let me know how you use this new feature, and what could make it more useful to you.

Properties and operators

Here’s the complete list of properties currently supported (SGF tag):

  • Player: player (PB/PW), black (PB), white (PW), winner (PB/PW/RE), loser (PB/PW/RE), rankb (BR), rankw (WR).
  • Game info: id (GN), date (DT), event (EV), round (RO), komi (KM), handicap (HA), oldhandicap (OH), result (RE), rules (RU), time (TM), source (SO), analysis (AN), user (US), comment (GC).
  • Problems: difficulty (DI), coolness (CO), genre (GE).
  • Special: favorite (FA), any (any game info property).

The following operators are supported (comparisons are not case sensitive):

  • == or = : Equal
  • != : Not equal
  • ^= : Starts with
  • ~~ : Contains
  • !~ : Does not contain
  • >= : At least
  • <= : At most