Archive for the ‘Go’ Category

Kenapa aku (dulu) tidak mau jadi dokter

2007 May 5

Tulisan ini telah dipindah ke singularity.agronesia.net: “Kenapa aku (dulu) tidak mau jadi dokter”. Silahkan kunjungi server barunya.

This post has been moved to singularity.agronesia.net: “Kenapa aku (dulu) tidak mau jadi dokter”. Please visit the new server.

Writing kanji: doing it the traditional way

2007 April 18

This post has been moved to singularity.agronesia.net: “Writing kanji: doing it the traditional way”. Please visit the new server.

ENAMDICT: A dictionary of Japanese names

2007 January 16

In Japanese, people and place names are usually written in Kanji. Because most kanji have more than one reading, the issue of homophone and homograph comes into play. In general, even with practice we cannot be 100% certain how a person’s name should be written (given the sound) and read (given the kanji).

As an example of homophone, compare 加護亜依 (Kago Ai) with 高橋愛 (Takahashi Ai). Both person have "Ai" as their given name, but they are written differently (亜依 v.s. 愛).

As an example of homograph, compare 高橋愛 (Takahashi Ai, again) with 村上愛 (Murakami Megumi). Both person’s given name is written 愛 but read differently (Ai v.s. Megumi).

With all that trouble, it is not surprising that there is a dictionary of Japanese names called Enamdict. It is maintained by Jim Breen, the same person behind EDICT and KANJIDIC. The format is compatible with EDICT, so my EdictReader can directly load it:

EnamdictReader, showing Katou Masao (Kato Masao) and Niigaki Risa

I downloaded ENAMDICT to know the reading of 垢石, a name I encountered at Aozora Bunko (it is read "kouseki"). At first I thought it only contains list of family and given names. However the documentation states that there is also "full (family plus given) name of a particular person". Simple checking shows that "Koizumi Jun’ichirou" and "Oda Nobunaga" are in. What surprised me was that Hello! Project artists are in, from Morning Musume members like "Fujimoto Miki" to soloists like "Matsuura Aya". Professional go players are also there, from the legendary "Go Seigen" to "Umezawa Yukari". Very creepy!

goproblems.com sorter

2006 October 10

This post has been moved to singularity.agronesia.net: “goproblems.com sorter”. Please visit the new server.

6 Yi Se-tol games in hand (mind?)

2006 October 7

Using the combination of Drago, Mnemosyne, and KifuReviewer, I’ve memorized 6 Yi Se-tol games (first 50 moves). Here are them, from the order in which they are memorized:

White Black Event Date Result
Yi Ch’ang-ho Yi Se-tol 3rd Toyota Cup (semi-final) 2006-09-01 B+R (komi 6.5)
Hane Naoki Yi Se-tol 3rd Toyota Cup (round 3) 2006-08-30 B+R (komi 6.5)
Cho Hun-hyeon Yi Se-tol year 2006 Korean League 2006-06-22 B+R (komi 6.5)
Cho Hun-hyeon Yi Se-tol 2nd Korean Prices Information Cup (league D) 2006-05-25 B+R (komi 6.5)
Cho Chikun Yi Se-tol 19th Fujitsu Cup (round 2) 2006-04-10 B+R (komi 6.5)
Yi Se-tol Yamashita Keigo 10th LG Cup (round 2) 2005-05-18 W+R (komi 6.5)

All the results are Yi+R. No, Yi Se-tol does not always win by resignation. The games are deliberately chosen as such so that I can easily memorize the result.

I can’t say that those games improved my own play. It does broaden my joseki knowledge, especially on the komoku ones. I also found some surprising moves, such as approaching a hoshi enclosure from below and invading a double enclosed hoshi. However I won’t write more about it primarily because I just took note of them and haven’t bothered to study the positions in depth.

The openings are especially hectic. In most of the games, a complex fight starts early from one of the corners and spreads towards the center. When a fight like that occurs, other corners and sides will be untouched.

My purpose of memorizing the games is just to warm myself up for the real improvement activity: tsumego. If you can’t do life and death and solve tactical problems, you won’t get far.

I’ve started doing the Korean Problem Academy sets from gobase. For book 1 (200 problems, rated 25k-15k) I got all of them correct. Not surprising since I’m now 8k YIC and because I’ve been through book 1 quite a lot. For book 2 (200 problems, rated 15k-5k), my score is 96%. The mistakes are getting seki while a better solution exists. I’m currently redoing it again.

I’ll probably do daily goproblems.com (downloadable) soon. 30 minutes a day should be enough. I also need to study more advanced life and death concepts by reading Sensei’s Library (also downloadable). In the past, my theoretical study of eyeshapes (farmer’s hat, bulky 5, rectangular 4, etc) and elementary L&D techniques (nakade, throw in, oshitubushi) really helped me. There’s still very much to learn, from notchers to the dreadful carpenter’s square.

Though memorizing games isn’t my main priority now, I’ll add my collection from time to time.

McCune-Reischauer Converter

2006 September 27

I like to use the McCune-Reischauer form of Korean Go players’ name because that’s what Sensei’s Library use for page titles. Therefore, it is “Yi Se-tol” not “Lee Sedol” and “Yi Ch’ang-ho” not “Lee Changho”. Unlike other romanizations, we can reconstruct the hangul correctly from its McC-R form.

It was a pain in the arm to write articles containing Korean Go player names because I had to repeatedly look at the reference and do lots of “find & replace”. Therefore I made a small tool to do that job:

$ mcrconverter --help
This program will change Korean Go player names in a file into
their McCune-Reischauer form.

Usage:
mcrconverter [options] file:
    change the contents of a file
or
mcrconverter [options] folder:
    change the contents of SGF files in a folder

Options can be:
--change-file-name:
    also changes the file/folder name
--recursive:
    search for files inside subfolders recursively

Other than useful for writing articles, this tool can also be used to mass-rename the contents of an sgf file, and even the filename itself.

The source and executable are here (requires .NET Framework 2.0).

Terjemahan artikel utama IGN “Goama” 22

2006 September 19

Sekolah Baduk (Igo) Yu Ch’ang-hyeok

(Diterjemahkan ke bahasa Inggris dari majalah Korea “Baduk World” Mei 2004 oleh Alexandre Dinerchtein)

Yu Ch’ang-hyeok, dan-9 (salah satu pemain terkuat Korea di pertengahan 1990-an) membuka sekolah Igo anak-anak pada April 2004 bersama sahabat terbaiknya, Ch’oe Kyu-pyeong, dan-9. Ini bukanlah sekolah pertama mereka. Sebelumnya mereka pernah mendirikan klub untuk pemain muda profesional, yang berjalan sangat sukses selama 16 tahun. Kami mengunjungi sekolah mereka dan mewawancarai pendirinya.

Sekolah ini dibagi menjadi beberapa ruang kecil. Saat memasuki ruang pertama, kami melihat 4 pemain pro: Park Yeong-hun, dan-5 (sekarang dan-9), Yi Cheong-u, dan-4 (dan-5 pada 2005), Kim Eunseon, dan Kim Sesil (keduanya wanita, sama-sama dan-1). Ch’oe Kyu-pyeong, dan-9 adalah guru utama Park waktu dia masih amatir. Sepertinya, Park sekarang lebih kuat.

Saat ini hanya ada 7 murid. Mereka muda dan berbakat. “Kita punya beberapa anak jenius, tapi klub Igo lain juga punya. Susah untuk memastikan apakah mereka bisa mencapai level pro, semua akan tergantung usaha mereka,” kata Ch’oe Kyu-pyeong, dan-9.

Sekolah ini dibuka dari pukul 8 pagi sampai 10 pagi. Yu Ch’ang-hyeok, dan-9 selalu mendampingi muridnya kecuali kalau ada jadwal turnamen.

Kami bertanya, “Bagaimana cara anda mengajar mereka?”. Dia menjawab, “Mereka bisa dengan mudah belajar opening, joseki, dan persoalan hidup mati dari buku. Jadi saya berusaha menciptakan atmosfir “self-learning” di sekolah ini. Hal utama yang saya lakukan adalah mengulang dan mengomentari permainan mereka. Banyak murid saya yang kemampuan membacanya sangat bagus, dan bahkan pemain pro tingkat tinggi tidak bisa membuat mereka lebih kuat dalam persoalan hidup mati. Tapi kita bisa mengajarkan mereka banyak hal lain.”

Beberapa berpendapat bahwa terlalu dini bagi Yu Ch’ang-hyeok, dan-9 untuk mengajar anak-anak, karena mereka percaya bahwa dia masih bisa berprestasi di panggung profesional. Yu Ch’ang-hyeok, dan-9 menjelaskan keputusannya: “Memang benar bahwa saya masih bermain serius, tapi saya tidak akan berada di puncak selamanya. Saya berpikir banyak tentang masa depan saya dan memutuskan bahwa saya akan menikmati mengajar Igo dibanding pekerjaan lain. Mimpi saya adalah menemukan murid yang bisa menjadi elit di dunia Igo Korea.”.

Yu, dan-9 juga mengatakan beberapa hal tentang murid-muridnya: “Seseorang mengatakan bahwa kami hanya mengambil insei dari Asosiasi Baduk Korea, tapi itu tidak benar. Kami lebih suka mengajar anak yang masih sangat muda, walaupun dia tidak sekuat insei. Menurut saya, tidaklah terlalu baik mengundang murid kuat dari klub dan guru lain, dan dalam kasus tersebut kami selalu meminta izin dari tempat belajar lamanya. Kami tidak mendirikan sekolah ini untuk menghasilkan uang, jadi moralitas selalu kami jaga. Kalau kami melihat bahwa seorang anak tidak mungkin menjadi pro, kami akan menghubungi orang tuanya dan meminta mereka mencari masa depan lain. Saya percaya, dalam beberapa kasus lebih baik mencari jalan lain, melanjutkan Igo hanya sebagai hobi.”

Terakhir, kami menanyakan Yu, dan-9 tentang situasi dunia Igo modern.

“Master Jepang jauh tertinggal di belakang. China berusaha mencapai level kami tapi itu tidaklah mudah. Negara mereka sangat besar dan susah untuk membuat sistem pembelajaran tingkat tinggi seperti di Korea. Beberapa kali mereka mengontak kami dan menyarankan kami untuk menerima murid dari China, tapi kami menolaknya terutama karena alasan bahasa,” kata Yu Ch’ang-hyeok, dan-9.

Yu Ch’ang-hyeok, dan-9 dan Ch’oe Kyu-pyeong, dan-9 adalah guru hebat dan kita akan melihat bagaimana mereka mengubah situasi dunia modern Igo.

Diterjemahkan ke bahasa Indonesia oleh Agro Rachmatullah.

“You are welcome to republish any text material from the IGN “Goama” without commercial purposes: please note the source and put the link to http://gogame.info/.”

Keeping a memorized pro game memorized

2006 September 16

(Written on… Uhm… No more “written on” stuffs. Too much of a hassle.)

I’ve memorized a lot of Takemiya games. However, as time passed, I gradually forgot the moves. Only general impressions like “Takemiya likes san-ren-sei opening” and “Takemiya sometimes reply a keima-gakari with kosumi” remains.

That is undesirable. Ideally, I want to remember the games forever. Therefore, periodic review is a must. Mnemosyne, anyone?

Mnemosyne is a program that helps you memorize items. It will smartly schedule reviews for you. Items that you already know well will be asked rarely, while items that isn’t memorized well will be asked more frequently. I use Mnemosyne to memorize Japanese words, among others.

We can use simple HTML tags like <b> and <i> in Mnemosyne, so I thought applets could be supported. My first idea was to create a **cough** Java applet myself and embed it inside Mnemosyne. However, following the principle of “don’t reinvent the wheel” and considering that I had to dig a lot of documentation just to get a “Hello World” applet running (almost no past experience making applets), I tried finding other people’s applet first.

So, I dug through Hiroki Mori’s “Interactive Way To Go” because I remembered there was a game replayer there. This is what I found:

<applet codebase="./../java" code="mori/go/FreeBoardApplet.class"
   width=300 height=350 align=left border=10>
	<param name=demo value=true>
	<param name=size value=13>
	<param name=init value="B[cc]W[kk]B[dj]W[kd]">
	<param name=moves value="B[fk]W[ki]B[id]W[ic]B[hc]W[jc]B[gd]W[cf]B[ch]W[dc]">
</applet>

The parameters were easy enough to decode. Give it a board size, initial moves, and navigable moves. Coordinates are in SGF style, which is <column><row> and the top left is “aa” (the letter ‘i’ is used).

I usually memorize the first 50 moves of a game. My idea is to divide the moves into 10 moves chunks. So, a Mnemosyne item will test moves 1-10, another for moves 11-20, and so on.

However, if I want to test moves 11-20, it will help if move 10 was marked. Since the applet only marks the last move played (from the “moves” parameter), move 10 shouldn’t be in “init” but in “moves”. It will be a dummy move, just to provide the mark.

Sadly, the applet wouldn’t appear inside Mnemosyne. Therefore I changed the usage scenario into the following:

  • A Menosyne item will contain a kifu review code, for example: “Kifu review: ab” which means game ‘a’ part ‘b’ (part ‘a’ is moves 1-10, part ‘b’ moves 11-20, etc)
  • Upon seeing that code, I will go to Firefox and type “k ab” (‘k’ stands for “Kifu review”).
  • Firefox will be configured such that ‘k’ corresponds to a bookmark, such as “http://localhost/kifureviewer/?code=cc.
  • A page will appear with the applet mentioned before. I will replay the kifu and report the result back to Mnemosyne.

The process is quite disintegrated, going back and forth between Mnemosyne and Firefox.

For the web application, I decided to use ASP.NET. This is because I planned to load the game data from the SGF file, and I’m already comfortable with .NET’s file I/O. I used Mono 1.1.7’s XSP as the web server.

My ASP.NET’s experience was almost none, so I need to peek the documentation even to get a Hello World running. Here’s a sample:

<%@ Page Language="C#" %>
<html>
	<head>
		<title><% Response.Write(DateTime.Now); %></title>
	</head>
	<body>
	<%
		for(int i = 0; i < 10; i++)
		{
			Response.Write("<p>Hello world!</p>");
		}
	%>
	</body>
</html>

Other than that, I searched on how to import namespaces (needed e.g. System.IO and I didn’t want to type it all over). The answer is to put something like…

<%@ Import Namespace="System.IO" %>

…below the “Page Language” thing.

Next is searching where to make classes and static functions. The answer is to put it inside…

<script runat="server">
</script>

…which is put before the <html> tag.

The last info I needed was how to fetch the HTTP GET variables. This example…

Request.QueryString["code"]

…will get the value of the HTTP GET variable named “code”.

From there it wasn’t that hard, just parsing the SGF file and giving the correct parameters to the applet. Normal C# coding in which I’m already comfortable with.

I didn’t read the SGF format specification, but guessing the tag meanings wasn’t that hard. I assumed the SGF to be nonbranching and probably a lot of other simplifying assumptions. Below is shown some first characters of an SGF file:

(;DT[2006-09-01]EV[3rd Toyota Cup]RO[semi-final]
PB[Lee Sedol]BR[9p]PW[Lee Changho]WR[9p]
KM[6.5]RE[B+R]SO[Moyo Go Studio]
;B[qd];W[pp];B[dc];W[cp];B[ep];W[ce];B[dn];W[oc];

The relation from game code to SGF file names is in the file “database.txt” (location and file name cofigurable in the aspx file) which contains for example:

a	20060901_Lee-Sedol_Lee-Changho.sgf
b	20060830_Lee-Sedol_Hane-Naoki.sgf

The path of the SGF file is also configurable in the aspx file.

However, testing quickly reveals a critical problem:

Illegal Go position

It is clear that in putting stones from the “init” parameter, the applet didn’t check for captures.

There were two alternatives if I still wanted to use that applet. First is to ask for the source code of the applet and modify it. Second to do the capture checking myself before giving the parameters to the applet.

I chose the latter, utilizing the class inside my (with Fuad, Awang) Go playing program, Sai. A little hack here, a little hack there, and the board was displayed properly:

Legal Go position

Of course the prisoner count was wrong :). I don’t think there is a way to tell the applet about the initial prisoner count.

Anyway, it supports handicap:

Handicap support in KifuReviewer

However, being a Frankenstein solution, there are many things to improve:

  • The applet should be inside Mnemosyne. (at least I informed the maintainer)
  • Dummy move should be eliminated. The board should start with the last move marked.
  • User should guess by clicking on the desired coordinate, not by clicking the next button.
  • Prisoner count should be correct.

At least now I have a non-completely-manual means to memorize a game infinitely long. 1 game is already in Mnemosyne, and a lot more will certainly come…

Terjemahan IGN “Goama” 21

2006 September 11

Silakan dibaca terjemahan dari majalah Igo online IGN "Goama" edisi ke-21. Artikel aslinya bisa didapat dari gogame.info.

Samsung Cup adalah salah satu turnamen Igo internasional. Formatnya adalah turnamen knockout 32 pemain, dengan hadiah 200.000.000 won (sekitar $200.000). Saat ini babak perempat final telah tercapai. 4 pemain Jepang semuanya telah tumbang dan yang tersisa tinggal pemain dari Korea dan China:

Paek Hong-seok, dan-4 (KR) vs Yu Bin, dan-9 (CN)
Ch’oe Ch’eol-han, dan-9 (KR) vs Chang Hao, dan-9 (CN)
Yi Ch’ang-ho (Lee Changho), dan-9 (KR) vs Piao Wenyao, dan-4 (CN)
Seo Pong-su, dan-9 (KR) vs Wang Yao, dan-6 (CN)

Tabel turnamen (beserta kifu) bisa dilihat di: http://igo-kisen.hp.infoseek.co.jp/ss.html

Dalam edisi ini kami menyajikan wawancara dengan Seo Pong-su, dan-9 dan Paek Hong-seok, dan-4.

"Seo Pong-su, dan-9 – Pembantai pemain muda?"

Seo Pong-su, dan-9 dari Korea yang berumur 53 tahun, membuat sensasi utama dengan mengalahkan dua pemain muda China, Zhang Wei, dan-5 (pemain termuda di turnamen) dan Chen Yaoye, dan-5 (kelahiran 1989). Wawancara ini diambil langsung setelah kemenangan keduanya:

Q: Apakah anda lelah?
A: Hanya sedikit. Mereka mengubah waktu utamanya dari 3 jam menjadi 2 jam, dan itu bagus bagi saya.

Q: Bagaimana pendapat anda tentang lawan anda, Chen Yaoye, dan-5?
A: Pikiran saya jernih. Saya sedang menikmati Igo, bukannya mencoba menang, jadi siapapun lawan saya tidak masalah.

Q: Apa perbedaan antara pemain muda Korea dengan China?
A: Saya jarang mendapat kesempatan bermain dengan pemain muda Korea. Akhir-akhir ini saya selalu kalah di babak awal semua turnamen.

Q: Saya tahu bahwa anda bermain lebih dari 50 permainan blitz (10 detik per langkah) dengan Park Seunghyeon, dan-5 di sekolah Kwon Kapyong’ (sekolah Igo terbesar di Korea). Apakah anda banyak bermain Igo akhir-akhir ini?
A: Ya, dia sangat membantu saya. Kami bermain banyak blitz, untuk persiapan Liga Baduk Korea. Biasanya saya hanya mempelajari kifu (catatan pertandingan). Itu adalah hobi saya: kadang-kadang saya melakukannya seharian. Sangat menarik!

Q: Apa rencana ke depan anda?
A: Saya tidak pernah memikirkannya. Saya sedang sangat menikmati Igo dan merupakan kesenangan yang sangat besar bagi saya bisa bermain dengan para master muda.

Peserta perempat final lain, Paek Hong-seok, dan-4 (Korea) adalah kuda hitam turnamen ini.

Q: Selamat! Anda mengalahkan Luo Xihe, dan-9, pemenang Samsung Cup sebelumnya. Bagaimana permainan tersebut?
A: Saya bahagia. Ini adalah perempat final pertama saya! Saya melakukan opening yang buruk, tapi Luo, dan-9 melakukan blunder di tengah permainan. Setelahnya dia melakukan banyak overplay (langkah yang berlebihan) dan saya menghukumnya dengan baik.

Q: Apa pendapat anda tentang pemasangan setelah 1/16 final? (Setiap ronde dibuat pemasangan baru, memisahkan pemain dari negara yang sama)
A: Saya berusaha menghindari pemain-pemain kuat di ronde pertama, tapi di 1/16 final kekuatan mereka kurang lebih sama. Saya paham bahwa saya harus bisa mengelola waktu dengan baik melawan Lou Xihe, dan-9.

Q: Apakah benar Luo Xihe, dan-9 bermain sangat cepat?
A: Ya, dia menghabiskan kurang dari 10 detik untuk beberapa langkah, melakukan 50 langkah opening dalam 2 menit. Setelahnya dia berpikir cukup lama untuk saat-saat penting. Biasanya saya juga bermain cepat, jadi permainannya tidak memberi tekanan pada saya.

Q: Apa rencana ke depan anda?
A: Saya memenuhi target memasuki perempat final. Sekarang saya ingin memenangkan satu pertandingan lagi.

Diterjemahkan oleh Agro Rachmatullah.

"You are welcome to republish any text material from the IGN "Goama" without commercial purposes: please note the source and put the link to http://gogame.info/."

From Takemiya to Yi Se-tol

2006 September 9

(Written on 9:54 PM 9/5/2006 GMT+7)

After a long pause of study, I’ll start to warm myself by memorizing pro games. In the past, I studied the cosmic games of Takemiya. However recently I became fond of severe attacking moves. That and influenced by the jaw-dropping violent games of sandan made me choose Yi Se-tol (sometimes written Lee Sedol) as the current player to study.

Yi Se-tol

Yi Se-tol is a talented young player from Korea. Born in 1983, he is now a 9-dan professional and probably the second best player in the world (with number one being Yi Ch’ang-ho). His playing style is offensive, chaotic, and risk-taking.

For a start, I plan to memorize the first 50 moves from 5 of his games using Drago.

Drago can test how much we remember a game. To do it, load the game and then choose "Games"->"Session".

Replaying a game using Drago

For the "Select game" option, choose "Loaded game" (other values are only relevant if the SGF file contains multiple games). For "Play with", choose "Both". For "Play…", you can either choose "Full game" or "Fuseki" (only the first couple of moves). If "Fuseki" chosen, the number of moves to test is determined by the number box.

After clicking "OK", you can start playing the moves by clicking on the corresponding point. If your move differs from the game, Drago will highlight the move with red and then correct it. In the end, your result is scored:

Replaying a game using Drago

A pro advice on SL is to learn the kifu of players with natural moves such as Takemiya Masaki and Otake Hideo. Yi Se-tol’s chaotic moves are far from natural, so I’m actually going againts the advice here.