Category: SmartGo

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

Unknown Kifu Features

It’s rewarding to see many go players at the Go Congress use SmartGo Kifu, and invaluable to be able to provide support in person. Most questions are due to users not being aware of existing features. I will keep improving the user interface to make features easier to find and use; meanwhile, here are answers to questions that came up several times during the week.

Edit Game Info

If you misspelled your opponent’s name, or started recording a game without entering the player names, tap on the title of the game above the board (with the little orange i) to see the game info, then tap on Edit to add or change any of the game info attributes.

Edit game info

Joseki Matching

Many players know about joseki matching, but may not be aware they can match a whole side of the board. To see a list of the games that match, tap on the little orange > in the joseki result (bottom left below the board).

Joseki matching

Rotate to Opponent’s View

If you get a game record from your opponent, it’s probably upside down. You can rotate a game in My Games by rotating two fingers around the center of the board. It rotates by 90 degrees only, so you have to rotate twice, and it’s a bit fiddly, but at least it’s possible. (This will be much improved in a future version, showing the following panel of rotation options.)

Rotation panel

Guess Next Move

Pick a game by a pro you like, turn on Guess Move, then try to figure out where the pro played. SmartGo Kifu gives you clues: right area but wrong move, right move but wrong timing, or the wrong area entirely. This also turns out to be great bar entertainment for several people, as we proved at the Green Leafe last night.

Guess next move

Edit Game Record

It’s easy for mistakes to sneak in when you use SmartGo Kifu to record a game. At move 100, you notice that you placed an opening move off by one. Or you record afterwards, from memory, and you forgot an exchange played outside the main flow of the game. How do you fix it?

Go to Move

To correct a move, you first need to get back to when that move was played. Tap and hold on a stone, then choose Go to Move.

Go to move

Adjust Move

When you’re at the move that’s in the wrong place, tap and hold on that stone until the feedback changes, then drag it to the right spot. Voilà.

Insert Move Pair

If you’ve forgotten a pair of moves, first go to the position where those moves should have been played. Then tap on the popup menu in the bottom left of the board, and tap on Edit. Tap on the Insert 2 icon, then play the two moves. Instead of creating a new variation, those moves will be inserted directly into the game.

Insert two moves

SmartGo Kifu also provides commands to delete a single move or a whole branch, if your game record needs more extensive surgery. The Macintosh and Windows versions of SmartGo provide additional features to help you fix any issues in your game records.

Double-Tap to Zoom

Such a simple feature: double-tap to zoom in on the Go board. On the iPhone, it conveniently zooms to use the full height available. So why does SmartGo Kifu have a setting to turn it off?

Double tap to zoom

When SmartGo detects a tap on the board, your intent is not clear: do you plan to play a move, or is there a second tap coming? On iOS you can tell the system to disambiguate between the two gestures – for the single-tap to succeed, the double-tap has to fail:

singleTapGesture.require(toFail: doubleTapGesture)

The price you pay is that move entry is delayed by a quarter of a second. Thus that setting gives you a choice: convenient zooming or faster move entry. Not a good choice. (But at least you now know how to speed up move entry.)

There’s a better way to solve this: always play the move right away. Then if it turns out to be the first tap in a double-tap, undo the move and zoom the board instead. Fast move entry and zoom, no setting needed. However, that means being able to cleanly undo the move (and anything else that a tap on the board might do), and in SmartGo Kifu, that would be harder to implement than what the feature is worth.

Rewriting SmartGo in Swift is still work in progress; a long journey. But thanks to less technical debt, I’m able to add features like undo, and thus make move input fast while still allowing you to double-tap. Getting rid of a confusing setting always makes me happy.

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

Go Congress 2016

I really enjoyed the Go Congress in Boston this year. Some observations:

    • Next year, I will bring a 9.7″ iPad. The 12.9″ iPad Pro just doesn’t fit well between Go boards at the tournament, so I ended up using my iPhone to record games. Luckily, there’s an app for that.
    • Brady Daniels makes a good case that you should come to the next Go Congress. And Kevin’s Go Talk about “What did you like most about the Go Congress?” clearly shows that people are a main feature, not just Go. Indeed, it was great to meet many old friends again, and meeting new ones in real life for the first time, in particular David Nolen, John Tromp, and Jonathan Hop.
    • I always get a lot of valuable feedback from SmartGo Kifu and Go Books users at the Congress, mostly positive, some feature requests. Here’s a happy SmartGo user from Kyoto: Go instructor Yasuko Imamura.

Yasuko Imamura

  • There were several interesting talks about AlphaGo (watch the Opening Keynote and AlphaGo Insider). It’s clear that AlphaGo is adding to and not taking away from Go. I’m really looking forward to the commented AlphaGo games the DeepMind team teased several times.
  • I just realized that I never made it to the vendor area in the basement. Future Congress organizers: please put the vendors where everybody sees them.
  • The 13×13 tournament is usually a fun warm-up for the main tournament, hope it will be back next year.

Looking forward to San Diego in 2017! See you all there.

Learn Go Now

In March, Google’s AlphaGo is going to play a five-game match against Lee Sedol. For Go, this may become the equivalent of Kasparov’s match against Deep Blue. Tremendously exciting. And if you don’t know the game of Go, you’ll miss out.

So how do you get up to speed so you have a clue what’s going on? Several possibilities:

  • Friend or Go club: If you have a friend who has been trying to tell you about Go for years, now’s the time. Otherwise, check the American Go Association or the European Go Federation for a Go club near you. (In Salt Lake City, we meet every Thursday after 7 pm at the Salt Lake Roasting Co. — everybody is welcome, and we love to teach beginners about the game.)
  • App with tutorial: The SmartGo Player app for iPhone and iPad includes a tutorial that guides you through the (very simple) rules, then provides over 100 interactive problems to apply those rules (much more complex) and practice your tactics. Then as you play against the computer, it automatically adjusts the handicap to keep the game challenging.
  • Books about Go: There are a number of books that will give you a good introduction to the game , e.g. the “Learn to Play Go” series by Janice Kim followed by the “Graded Go Problems for Beginners” series. Here’s a list of beginner books. If you have an iPad or iPhone, use the Go Books app to read and solve problems interactively; if you prefer printed books, click on the Printed Book link in that list.

Enjoy learning about Go — it’s a game worth knowing. There’s a reason it has been played for thousands of years, and it will remain popular even after computers eventually conquer it.