Sabaki SGF editor

Tell the community about tournaments, new go sites, software updates, etc.
Post Reply
User avatar
EdLee
Honinbo
Posts: 8859
Joined: Sat Apr 24, 2010 6:49 pm
GD Posts: 312
Location: Santa Barbara, CA
Has thanked: 349 times
Been thanked: 2070 times

Post by EdLee »

Pattern recognition may be difficult.
We'd probably call this a block:
block.jpg
block.jpg (16.57 KiB) Viewed 51769 times
User avatar
EdLee
Honinbo
Posts: 8859
Joined: Sat Apr 24, 2010 6:49 pm
GD Posts: 312
Location: Santa Barbara, CA
Has thanked: 349 times
Been thanked: 2070 times

Post by EdLee »

Pattern recognition for this one is probably feasible,
since you already have the code for a Wedge --
it's a ( Wedge + Extend ) with 1 liberty -- a Push :
push.jpg
push.jpg (21.49 KiB) Viewed 51769 times
User avatar
EdLee
Honinbo
Posts: 8859
Joined: Sat Apr 24, 2010 6:49 pm
GD Posts: 312
Location: Santa Barbara, CA
Has thanked: 349 times
Been thanked: 2070 times

Post by EdLee »

Highly unusual to call this a hane; it's another block:
block2.jpg
block2.jpg (21.94 KiB) Viewed 51769 times
dfan
Gosei
Posts: 1598
Joined: Wed Apr 21, 2010 8:49 am
Rank: AGA 2k Fox 3d
GD Posts: 61
KGS: dfan
Has thanked: 891 times
Been thanked: 534 times
Contact:

Re:

Post by dfan »

EdLee wrote:(*) Some of the terms displayed are unusual.
Example: 'Stretch' -- usually, we use 'extend' ( or 'descend' or 'drop' for certain cases; and others ).
Example: 'Attachment' -- unusual -- usually, we see 'attach' in books, or game commentaries, etc.

"Stretch" is used in the Level Up books. I don't know if it's more generally used in translations of Korean books. I too am more used to "extend" and "descend".

Calling a move an "attachment" seems normal to me, since using "attach" as a noun feels awkward.
User avatar
yishn
Dies in gote
Posts: 57
Joined: Tue Jun 30, 2015 2:37 am
Rank: 4 kyu
GD Posts: 0
Location: Germany
Been thanked: 15 times
Contact:

Re:

Post by yishn »

EdLee wrote:Not the OS Text menus. But a Buttons menu; example:
buttons_bar.jpg


I see. I find a toolbar only clutters the interface while the features can be as easily accessed through the menus. Toolbars have fallen out of favor in UI design recently. I think this is out of the scope at the moment.

EdLee wrote:gIgo used Alt+C to toggle coordinates, which I find a little awkward. Go Panda uses the single letter 'c' directly (if the hotspot is the board).


Alt+C is bad because it overrides the Windows internal menu mnemonic shortcuts. I've never encountered any native applications that uses single letter shortcuts. Surely you want to turn on coordinates when writing reviews without having to focus the board first. Speaking of bad shortcuts, I should probably stop using 'Ctrl+Alt+' shortcuts, as it has special meaning on Windows.

EdLee wrote:
yishn wrote:
Currently, when I replay an existing SGF, there is no stone click sound on each move --
could this be an option ?
When navigating the SGF file, there won't be a stone click sound, as it makes no sense.
It may make no sense to you, but it makes a lot of sense to some other people.


Some questions arise when implementing this:

* What about navigating one step back? Should there be a sound for that? Probably not, but why is it that only forward movement has sound?

* There is a slider, you can slide from move 0 to move 100 in one second. How many times should the click sound be played? Even when navigating with the arrow keys, you can go from move 0 to move 30 in one second.

MultiGo handles this very awkwardly by playing a sound only if the duration to the previous tree navigation is long enough. This can be annoying if you want to skim through a game by scrolling with the mouse wheel and needing to stop and reposition your middle finger to continue.

* Sabaki also plays capture sounds. Should these play for skimming up and down? If yes, it doesn't make sense metaphor-wise, if no, highly inconsistent.

* There are keyboard shortcuts for moving forks up and down, that means several stones are placed and removed instantly. Should Sabaki play a click sound or not? If yes, it would be unnatural, if no, highly inconsistent. Should Sabaki play capture sounds?

* Sabaki uses left/right arrows for moving to sibling variations. Should there be a sound as well? Probably not.

These are not questions I expect you to answer. My point is: there is no good solution to this that would satisfy most people. In the real world, a click sound only appears if you place a stone on the board. Using this metaphor, you should only hear a sound if you actively click/touch the board. That is the most natural solution: To play no sounds when navigating.

EdLee wrote:These are all feedback from a Go apps user of 14+ years.


I'm sure you have. However, Sabaki is a reimagination of a SGF editor for the modern world without any preconceptions. We should think through before making decisions and avoid blindly copying behavior or features from those who came before.

As for the shape library of Sabaki, I'm really grateful for your input. If you like, you can take a look at this SGF file https://github.com/yishn/Sabaki/blob/master/data/shapes.sgf which contains the shape information Sabaki uses. If you really want to help out, please consider changing/adding some rules to it. This may be asking too much, but also consider making an account on GitHub and sending me pull requests for changes on shapes.sgf, so we can review any changes you make.

If you don't understand how the SGF file is structured, you can also send me actual patterns, instead of concrete game positions that have no use, by creating (e.g. with [go]) an empty board with no borders and adding black/white stones as well as circle markers for empty spots.
User avatar
EdLee
Honinbo
Posts: 8859
Joined: Sat Apr 24, 2010 6:49 pm
GD Posts: 312
Location: Santa Barbara, CA
Has thanked: 349 times
Been thanked: 2070 times

Post by EdLee »

yishn wrote:Using this metaphor, you should only hear a sound if you actively click/touch the board. That is the most natural solution: To play no sounds when navigating.
Hi yishn, I disagree. I've added more to post 56; your metaphor is also incomplete.
In any case, it's only a request for an Option.
We should think through before making decisions and avoid blindly copying behavior or features from those who came before.
I agree, and I assure you I'm not blindly providing any feedback to you. :) Thanks.
What about navigating one step back? Should there be a sound for that? Probably not, but why is it that only forward movement has sound?
Too intuitively obvious; not a point.
There is a slider, you can slide from move 0 to move 100 in one second. How many times should the click sound be played?...

MultiGo handles this...
MultiGo, SmartGo, and Wbaduk (and possibly other apps) have the option of stone sounds on replay.
I don't think this is a big issue: if the replay speed exceeds a certain threshold, no sound.
Sabaki also plays capture sounds. Should these play for skimming up and down? If yes, it doesn't make sense metaphor-wise, if no, highly inconsistent.
No, it's not inconsistent. Just think YouTube slider: it's a solved problem. There's no problem here.
If the user clicks Next move, one by one, or if in the future you add auto-replay and the replay speed is under some threshold, and if stone sound enabled On Replay, play the stone clicks and capture sounds; otherwise, don't. Not difficult. It's a solved problem not only in Go editors but on YouTube, etc. as well.
User avatar
yishn
Dies in gote
Posts: 57
Joined: Tue Jun 30, 2015 2:37 am
Rank: 4 kyu
GD Posts: 0
Location: Germany
Been thanked: 15 times
Contact:

Re:

Post by yishn »

EdLee wrote:
yishn wrote:Using this metaphor, you should only hear a sound if you actively click/touch the board. That is the most natural solution: To play no sounds when navigating.
Hi yishn, I disagree. I've added more to post 56; your metaphor is also incomplete.
In any case, it's only a request for an Option.


You can replay games by clicking on the board, on the position where the next stone lies. There will be sound. I'm well aware you only want an option. My point is, I don't see a way to implement this right.
Both MultiGo and SmartGo (and possibly other editors) have the option of stone sounds on replay.
I don't think this is a big issue: if the replay speed exceeds a certain threshold, no sound.


You didn't respond to my objection to MultiGo's sound handling. MultiGo has not solved this problem in a way that's good enough for me. As for how SmartGo handles this problem, I have no idea. Also at least MultiGo doesn't have capture sounds.

Sabaki also plays capture sounds. Should these play for skimming up and down? If yes, it doesn't make sense metaphor-wise, if no, highly inconsistent.
No, it's not inconsistent. Just think YouTube slider: it's a solved problem. There's no problem here.


I really don't see how the YouTube slider can solve this problem, please enlighten me. Skimming also include pressing the down key for a longer period of time. Or clicking and holding the down button on the slider. Or using the mouse wheel.

Especially the down button on the slider is hard to handle: The navigation starts off slowly, but the longer you hold, the faster it gets. One can also simply click on the button to move forward. Ideally you would like to play a sound if you click the button and make no sound if you click and hold the button. But we can't distinguish between the two a priori.
User avatar
pleiade67
Dies with sente
Posts: 71
Joined: Tue Mar 12, 2013 11:44 am
Rank: 20 kyu
GD Posts: 0
Has thanked: 10 times
Been thanked: 19 times

Re: Sabaki SGF editor

Post by pleiade67 »

First thank you for this excellent contribution to the go community.

On Mac OSX, I have a problem attaching go engines which require a "complex" command line
(this is for instance the case when I use wine to launch Windows GTP engines):

For instance: pachi MacOSX
/Users/pleiade/Library/Go-engine-win/Pachi/pachi-11.0/pachi
with arguments: -f book-cor.dat threads=6,max_tree_size=8192,pondering=1,maximize_score

works as expected but

/opt/local/bin/wine /Users/pleiade/Library/Go-engine-win/Leela/Leela070/Leela070GTP/Leela070GTP.exe
with argument: --gtp

is not interpreted by Sabaki (and gives a connection error), whereas Gogui interprets the same command and launches Leela as expected.

Would it be possible to modify sabaki to send to the GTP engine, a whole command (instead of just specifying a path) ?
Another question is the definition of a working directory for the engine (some engines require an existing working directory).

Best
User avatar
yishn
Dies in gote
Posts: 57
Joined: Tue Jun 30, 2015 2:37 am
Rank: 4 kyu
GD Posts: 0
Location: Germany
Been thanked: 15 times
Contact:

Re: Sabaki SGF editor

Post by yishn »

pleiade67 wrote:/opt/local/bin/wine /Users/pleiade/Library/Go-engine-win/Leela/Leela070/Leela070GTP/Leela070GTP.exe
with argument: --gtp

is not interpreted by Sabaki (and gives a connection error), whereas Gogui interprets the same command and launches Leela as expected.


You need to specify the path to Leela as an argument, i.e:

Path: /opt/local/bin/wine
Arguments: /Users/pleiade/Library/Go-engine-win/Leela/Leela070/Leela070GTP/Leela070GTP.exe --gtp

pleiade67 wrote:Another question is the definition of a working directory for the engine (some engines require an existing working directory).


The working directory for the engine is the directory specified in path. That means in the case above, the working directory is /opt/local/bin.
User avatar
pleiade67
Dies with sente
Posts: 71
Joined: Tue Mar 12, 2013 11:44 am
Rank: 20 kyu
GD Posts: 0
Has thanked: 10 times
Been thanked: 19 times

Re: Sabaki SGF editor

Post by pleiade67 »

Thank you for your responsiveness and for your help. This works indeed ! :clap:

Really appreciate the superb graphics and all the functionalities !

I would suggest to add the choice of a working directory as an option. In the previous example the default choice (/usr/local/bin) may not be the best choice...
qianyilong
Beginner
Posts: 11
Joined: Tue Jan 12, 2016 5:56 am
Rank: ogs 12kyu
GD Posts: 0
Universal go server handle: qianyilong
Been thanked: 2 times

Re: Sabaki SGF editor

Post by qianyilong »

Does anyone know if it has the ability to use engines over ssh?

That is one thing that I really like about gogui, the engine config lets you pass it a command that you can use to ssh into a gtp program running on another machine.

I have a big GPU server and it is kinda fun running leela and some of the other programs that support GPUs remote like that.

I am at work now but tonight I will give it a test it looks cool.
qianyilong
Beginner
Posts: 11
Joined: Tue Jan 12, 2016 5:56 am
Rank: ogs 12kyu
GD Posts: 0
Universal go server handle: qianyilong
Been thanked: 2 times

Re: Sabaki SGF editor

Post by qianyilong »

For those interested I tried it and couldn't get it to work but after talking on github, the developer had a suggestion for what I was doing wrong and it works!
+1 for good program
+10 for responsive awesome developer.

*edited
Last edited by qianyilong on Tue Oct 18, 2016 1:59 pm, edited 1 time in total.
User avatar
Koosh
Lives with ko
Posts: 202
Joined: Thu Aug 05, 2010 8:26 pm
Rank: AGA 2 dan
GD Posts: 54
Location: Raleigh, NC
Has thanked: 94 times
Been thanked: 53 times
Contact:

Re: Sabaki SGF editor

Post by Koosh »

I'm a huge fan of Sabaki in its current inception. It's my top recommendation for SGF editors. :bow:

Feedback 1
The one editing feature I'd like to see is the ability to cut/copy and paste lines along the game tree. When I'm recording, I might make a mistake inputting a sequence of several moves and then realize I put it into the wrong variation branch.

The only way I can do this (I've found) is to manually edit the text of the SGF file.

Feedback 2
When you scroll through games, there is a disconnect between what is shown on the board and what position you are at along the game tree. It takes about a second to update the position on the tree when you stop scrolling. When scrolling 20 moves, for example, I have to stop and check where I am in the tree before continuing.

It would be nice if this lag was not there and the tree updated as you scrolled along it.
Ko is the best solution.
With Ko, I can keep eating and drinking until I am full.

Visit >>>Koosh's Study Journal<<<
User avatar
yishn
Dies in gote
Posts: 57
Joined: Tue Jun 30, 2015 2:37 am
Rank: 4 kyu
GD Posts: 0
Location: Germany
Been thanked: 15 times
Contact:

Re: Sabaki SGF editor

Post by yishn »

Thank you for your kind words!

Koosh wrote:Feedback 1
The one editing feature I'd like to see is the ability to cut/copy and paste lines along the game tree. When I'm recording, I might make a mistake inputting a sequence of several moves and then realize I put it into the wrong variation branch.

The only way I can do this (I've found) is to manually edit the text of the SGF file.


That is an interesting idea. I've created an issue regarding this.

Koosh wrote:Feedback 2
When you scroll through games, there is a disconnect between what is shown on the board and what position you are at along the game tree. It takes about a second to update the position on the tree when you stop scrolling. When scrolling 20 moves, for example, I have to stop and check where I am in the tree before continuing.

It would be nice if this lag was not there and the tree updated as you scrolled along it.


The problem is that one can scroll very fast through the game. Updating the board is fast, but updating the game graph is quite expensive, especially if the file you opened happens to be Kogo's Joseki Dictionary. Therefore, Sabaki only updates the graph once the user stops navigating. Maybe I can try to reduce the lag.
Uberdude
Judan
Posts: 6727
Joined: Thu Nov 24, 2011 11:35 am
Rank: UK 4 dan
GD Posts: 0
KGS: Uberdude 4d
OGS: Uberdude 7d
Location: Cambridge, UK
Has thanked: 436 times
Been thanked: 3718 times

Re: Sabaki SGF editor

Post by Uberdude »

yishn wrote:The problem is that one can scroll very fast through the game. Updating the board is fast, but updating the game graph is quite expensive, especially if the file you opened happens to be Kogo's Joseki Dictionary. Therefore, Sabaki only updates the graph once the user stops navigating. Maybe I can try to reduce the lag.

How about being cleverer about when to update: if you know the game record is small (e.g. the sgf is under 5kb which should cover most game records, or count the nodes) then try to update the game tree immediately, but delay for big files?
Post Reply