Archive for the ‘Go’ Category

The correct way to write kana (hiragana and katakana) etc

Saturday, September 2nd, 2006 by Agro Rachmatullah

The correct way to write kana (hiragana and katakana) - 10:46 AM 9/1/2006

Kana writing is among the first things I learn in my Japanese study. My reference was the Japanese Wikibook.

In writing Japanese characters, there is a prescribed way of writing. The correct way of writing is stressed as important. This is especially so in calligraphy, because the stroke order and direction will greatly affect the final look.

(All the teachings successfully reached me. Writing a Japanese character without really knowing “the correct way” (or deliberately deviating from it) feels like doing a sin without being seen by anyone.)

For example, here’s the correct way to draw あ (a):

hiragana あ writing animation

The problem with the Japanese Wikibook was that they give the stroke order but not the direction/orientation. Here’s an example:

hiragana あ stroke order

From that image, you can’t know how to draw the strokes. Is the first stroke drawn from left to right or right to left?

Back then, I didn’t really care about the direction and just use the one that feels right for me: left to right for horizontal strokes and top to bottow for vertical strokes. However I kept a note that someday I will find a reference for the stroke direction.

I actually started the quest some time ago. Tae Kim’s Guide to Japanese Grammar pointed to a site on Geocities for the reference.

Most of the stroke direction matched my usual practice. The surprising ones were ふ, ツ, and ソ. Here are the surprising strokes:

Surprising strokes

However the real problem was that some of the stroke orders didn’t match Wikibook’s.

The problematic characters were そ, も, メ, and ヲ. Here’s how they differed:

Stroke order difference

(W is for Wikibook and G is for the Geocities site. Stroke direction isn’t compared because Wikibook didn’t have the information.)

I proceeded to ask about this matter on Tae Kim’s Guide to Japanese Grammar Forum. The summary:

  • そ: so can be written in either 1 or 2 strokes. However the shape is different:
    そ in 1 and 2 strokes
  • も: Faumdano said that the horizontal strokes are drawn before the vertical one. taniwha said the reverse.
  • メ: Faumdano said to treat it like kanji, so it the long stroke is drawn first and then the short one (like 父 and 文).
  • ヲ: 3 strokes, with the horizontals drawn first.

I remembered seeing someone copy a book about hiragana and katakana on the library a long time ago, so I was curious what the book had to say about those 4 characters. Yesterday I finally found time to go the the library.

The books were “Let’s Learn Hiragana” and “Let’s Learn Katakana” by Yasuko Kosaka Mitamura. The book’s teaching:

  • そ: 2 strokes (with the shape being different from the 1-stroke variant)
  • も: vertical stroke first
  • メ: long stroke first
  • ヲ: 3 strokes

While searching for those two books, I randomly picked “The Japanese Writing System: A Structural Approach” by “Anthony Alfonso”. It was a 1975 book, and its antiquity is obvious from the typesetting. Hoping that the book will reaffirm the contents of Yasuko’s, the book instead surprised me by teaching many characters differently! For the originally-4 troublesome characters:

  • そ: 1 stroke
  • も: horizontal strokes first
  • メ: same as Yasuko’s
  • ヲ: same as Yasuko’s

And here are the surprising ones:

  • き: 3 strokes. In other sources, the last stroke is divided into 2.
  • さ: 2 strokes. In other sources, the last stroke is divided into 2.
  • た: 3 strokes. In other sources, the last stroke is divided into 2.
  • と: 1 stroke! In other sources, it is 2.
  • な: 3 strokes. In other sources, the last stroke is divided into 2.
  • に: 2 strokes. In other sources, the last stroke is divided into 2.

The old books seems to use a way of writing that minimizes brush lifting. Here’s one comparison:

た: 4 and 3 strokes

But there’s still one more surprising thing. With that “flowing” style, I expected that the stroke count would be less than or equal to the stroke count of other references. However, for ひ, the book divided it into 2 strokes! The rightmost tip is considered a separate stroke.

So, after all that adventure, which will I use?

First of all, except for そ, I wouldn’t consider the reduced-stroke-count variants described in “The Japanese Writing System: A Structural Approach” by “Anthony Alfonso”. The book is the oldest reference I found, so I am led to believe that the writing method is archaic (but probably still used for a specific calligrapy style).

With that in mind, here’s my decision for the 4 characters:

  • そ: 1 stroke. The fonts I normally see on computers use the 1-stroke shape. Therefore I’m more familiar with it.
  • も: vertical stroke first. The other option is in Anthony’s book so I wouldn’t regard it as wrong.
  • メ: long stroke first. Only the Wikibook differs on this matter and until I find another reference I will regard the Wikibook version as wrong.
  • ヲ: 3 strokes. Same as above.

PS: I used Paint.NET for editing the images.

新YIC - 10:27 AM 9/1/2006

During my last visits to YIC, I observed these changes:

Reappearance of players: After the holiday, Irham & Welldan is now playing again. Mas Erwin is also making a comeback after doing his final paper.

New players, strong and determined: Hari and Rizki, to name a few.

Of course, a lot of familiar faces are still there: Mas Erik, Mas Jiyuu, Mba Shinda, Gustra, Hyu Zen, Mas Tommy, Mba Hacchan, and Mba Mutia are always around.

I expect YIC to have more active boards this year. Hopefully the increased competition will boost the playing level of YIC.

KKN is over, and I can start studying Go again. However I’m still on the stage of gathering willpower. My last goal was to play at 15 kyu KGS level. Am I there yet?

Word dump: random - 8:04 AM 9/1/2006

Words I’ve gathered for various reasons:

Kanji Kana English
  うちゅう universe
雨中 うちゅう in the rain
生々しい なまなましい fresh
生生しい なまなましい fresh
  あさい shallow
  こい dense
  さす to raise (stretch out) hands
父子 ふし father and child (son)
  はい ash
  はっぴょう announcement
  しけん test

うちゅう (universe) is an astronomical object but I forgot to include it earlier. I first heard it from Momusu’s “Dekkai Uchuu ni Ai ga Aru”: “dekkai dekkai uchuu ni aru marui marui chikyuu de”.

雨中 is a homophone of うちゅう (universe) and because I know the kanji, I included it. I already know the kun reading of 雨 from 雨水 (うすい, rain water).

As for 生々しい, I encountered the word when searching for “green” in EDICT. However the “green” in 生々しい doesn’t stand for the color green, but for “fresh”.

When searching for color related terms, I found that the kanji 浅 was in the compound for “light blue” and “light green” and 濃 was in “dark blue” and “dark green”. Although I won’t learn the kanji now, I thought it would be worthwile to memorize the words itself. That’s how あさい (浅い) and こい (濃い) got in the list.

For さす and 父子, I forget how those words made into the list.

はい comes from はいいろ (gray).

はっぴょう, that’s a word repeated lots of times in Momusu auditions (”daihappyou daikettei”). Hearing the word over and over without knowing the meaning irritated me, so I searched it in EDICT and put it on the list.

しけん comes from 日本語のうりょくしけん.

With those 11 new words, my word count is 1491.

Memorizing a note? - 9:22 PM 8/30/2006

Memorizing a word? As an Indonesian and English speaker, I’ve memorized thousands of words. Memorizing a color? I know quite a lot of it. Memorizing a note? Now that’s a different matter.

The problem is, I’ve never viewed a musical note in an absolute sense. I know that the note “a” should be so-and-so Hz (actually 440 Hz), but never actually bothered to memorize how that sounds. What I know is how to sing the solfage “do-re-mi-fa-so-la-ti-(do)” (and any frequency can be the starting “do”).

So, I tried to memorize the note “c” which is 262 Hz (exact? rounded?). Outputing the sound in C# (the language, not the note) is as easy as:

Console.Beep(262, duration);

where duration is in ms (miliseconds, not Microsoft).

I’ve played around with it for some days (occasionally singing the note and comparing it with computer’s output) and still can’t get it anchored perfectly. I usually get “d” or a lower “b”. Harder than expected!

PS: My knowledge of music theory is close to nil so I may have misused some terminologies.

Moyo Go Studio translation done etc

Tuesday, July 4th, 2006 by Agro Rachmatullah

BOAB naming convention - 4:13 PM 7/3/2006

Since the “BOAB”, “Another BOAB”, “Yet another BOAB” naming scheme sucks, I decided to change the naming scheme. The naming scheme will be “[The most insteresting BOAB] etc”, for example “I won a 10 million lottery etc”

Moyo Go Studio translation done - 3:30 PM 7/3/2006

I think the translation (784 strings) has passed sufficient quality control to be released to the wild. Some translation and naming issues that were brought to light:

  • How should menu items be capitalized? “Add Games”, “Add games”, “add games”, or, God forbid, “ADD GAMES”? I chose to capitalize the start of every word, except for some particles like “and”. The English strings aren’t consistent in this matter (for example “Add games” vs. “Save Board Capture As”).
  • Which brings us to the next question: What words are immune to capitalization? “and”, “or”, “in”, “on”… What else? I chose to not capitalize “not” (”tidak”). Is it appropriate? There must be a guideline somewhere…
  • If a menu item contains an explanation in parentheses, how should it be capitalized? An example is “Result (fast, inaccurate)”. I chose to capitalize the explanation also. Is it overcapitalizing?
  • What is the criteria to give ellipsis (…) to a menu item? I read on a usability article somewhere that ellipsis should be used on a menu item that prompts the user for more information before being able to execute the intended action. For example, “Save As…” should use ellipsis because the program will prompt the user for the file name before being able to save. “About” shouldn’t use ellipsis because it directly does the intended action which is displaying the about dialog. I follow this guideline. Some English strings violate this guideline, for example “Search” and “About…”. (Almost every Windows program use ellipsis for the “About” menu item)
  • A convention I don’t like is that the English strings append the ellipsis in the msgid. I prefer that the ellipsis be added at run time when building the UI. What problem does the current practise pose? Here’s one example: There is the msgid “Search”, which is used in the “Database” - “Search” menu. It really should be “Search…”, so I translated it as “Cari…”. It turns out that the msgid “Search” is used on places other than the menu (for example on the button on the dialog of “Database” - “Search”) and in those other places the ellipsis isn’t appropriate.
  • How should one capitalize tooltips? “Back up and take other variation” or “Back Up and Take Other Variation”? I prefer to capitalize only the first letter of the first word.
  • Should tooltips end with a dot? “Back up and take other variation” or “Back up and take other variation.”? Things get messy when a tooltip contain 2 sentences. I prefer to omit the dot for single-sentenced tooltips while use dots for multiple-sentenced tooltips. There are inconsistencies in the English Moyo Go Studio (For example “Move trough current variation.” vs. “Board perspective”).
  • The translation of a single English word can be multiple words, in which the problem of capitalization arises again. For example, should “Handicap” be translated as “Batu bantu” or “Batu Bantu”? The translator must check where the string will be used to determine the correct capitalization (by running the program and hunting for the string). A serious problem occurs when the string is used in 2 places with different capitalization requirements.

With those problems, it is impossible to create an Indonesian translation that consistently adheres to a good UI naming guideline. Therefore, some compromises must be made. I chose to make the menu perfect even if that means inconsistencies on other places.

I’ll give an example of the inconsistency that arises. Menu capitalization dictates that it is “Langkah Baik”, not “Langkah baik”. Sadly, a tooltip uses the exact same string. Because tooltips are supposed to use a different capitalization rule, the tooltip violates the rule.

My idea is that words in the msgstr should be lowercased except for proper names (which starts with an uppercase), and then the program will call an appropriate method to build the final string. For example:

string menuString = MakeMenuString(GetString(msgid));
string tooltipString = MakeTooltipString(GetString(msgid));

An alternative is to have multiple msgids for the same word which is used in different places. For example:

msgid "menu-handicap"
msgstr "Handicap"

msgid "tooltip-handicap"
msgstr "Handicap"

I envy languages without uppercase/lowercase mess, like Arabic, Japanese (カタカナはuppercaseじゃない), Korean, and Chinese.

I mentioned many inconsistencies of Moyo Go Studio’s English strings. However, I believe that string consistency is generally an underworked area in many other software projects. For example, Notepad++, the software I use to write this blog entry, also has many inconsistencies in its strings.

Other than string consistency (or the lack of), another area where Moyo Go Studio sucks is in its window layouting system. Widgets in its dialogs have fixed coordinate and size, so problems like this arise:

With the availability of toolkits like GTK, hardcoding coordinates and sizes is oh so outdated. It is as obsolete as hardcoding the time cycle of old games to clock frequecies (try playing Sonic 3 on a modern computer and you’ll see what I mean).

Moyo Go Studio sucks on at least one other thing: It can’t change language on run time (need to restart the program). Even my (+Wijaya and Karnan) LifeSimulator can do it :)! Hmm, as far as I remember, even SmartGo can do it :) (tried the time-limited trial version).

Wait, I found another area where MGS sucks: It doesn’t run on Linux (Frank stated clearly that he’s running a Windows software shop so no chance of this happening soon). It would be cool if MGS has a GUI-less server version mode or a library of its core with usage documentation (easier to port), so other people could write a Linux client.

How good is Moyo Go Studio as a Go Suite? I’ll probably write a full review some time in the future after I’ve become more familiar with the beast and if I have free time. My first impression is that it is a superb Go study tool lacking some UI polish. However don’t let this blog entry discourage you to buy MGS because the problems mentioned probably won’t bother your daily use and because it will certainly be fixed in the future (after the kickass tactical module project?). Moyo Go Studio is definitely worth your $$ (or time, if you plan to translate it)!

UPDATE: I told Frank about this blog entry. Some days later, on July 7, Frank released an update that adds an extra space to the problematic widgets. That workaround made my Indonesian translation look fine.

TK II done! - 12:27 PM 7/3/2006

At last I finished the TK II! I’ve given the report and CD to an Ilkom office staff which will hopefully be passed to Pak Medi.

My TK II was about making SharpJiten, a kanji dictionary written in C# which uses GTK# for the GUI and KANJIDIC for the dictionary. Here’s a screenshot:

Some last remarks:

  • I can’t get GTK# for .NET working. Therefore I opted to bundle Mono in the CD.
  • IconView is a terribly slow widget. Give it 200 items to draw and it will choke. A workaround is to divide the items into separate pages but I didn’t implement it.

A page, which contains SharpJiten’s description, installation method, source code, and TK II report can be found at http://agro.web.ugm.ac.id/sharpjiten.

Since the TK II is done, now I need to finish my other duty: translating Moyo Go Studio.

PS: One flaw in the hardcopy of the report is that page 12 and 13 is flipped!!!

Early month shopping - 9:12 PM 7/2/2006

Phenomenon: There are many people shopping early at the month (1st or 2nd day). Queues are extremely long.

Hypothesis: People just got their salary.

Explorer/Windows file name limitations - 10:17 PM 7/1/2006

In Windows Explorer, we can’t rename a file to “prn”, “con”, “com0″ - “com9″, “lpt0″ - “lpt9″, and only God knows what else. That’s because in the Windows world (which originated from the DOS world”, those names are special names used to address some devices. For example, “prn” refers to the printer (Which printer? Probably the primary one.) and “con” refers to the console. Turn on your printer (if you have any) and try this command:

copy con prn

You will effectively have a typewriter.

PS: How did I know it? Remembered it from my old DOS times… In those days, tricks like “copy con config.sys” is commonly cited.

That system itself is inferior to Linux. In Linux, devices are files in the /dev directory so you won’t have artificial file name limitations.

But if that’s the limitation of the lower system, I can accept that Explorer don’t allow it. However, what’s confusing is that Explorer won’t give any explanation for this behavior. Instead, when renaming files to one of those names, it will set the file to the previous name.

Next case. NTFS and FAT32 support file names that start with a dot (for example “.bashrc”). As a proof, try:

echo > .test

And a file with the name “.test” will appear.

However, try making a file in Explorer that starts with a dot and Explorer will say “You must type a file name”. Silly.

Another one. NTFS and FAT32 also support file names that start with a space (for example ” foo”), as long as it is followed by a non-space character. As a proof, try:

echo > " foo"

However, when renaming files using Explorer, it will remove the leading space.

I don’t know whether this is the limitation of NTFS and FAT32, but I can’t find a way to make file names that ends with a dot (like “crhsab.”) and file names that ends with a space (like “foo “).

I’ll test all those in ext3. As an evil hack, I’ll try creating the illegal files on a FAT32 partition under Linux >:).

BOABfest

Tuesday, June 27th, 2006 by Agro Rachmatullah

Unconscious agreement - 9:14 PM 6/25/2006

Sometimes our brain assumes that something wrong is correct, and when no inconsistencies are found, that assumption will hold for a very very long time.

The database that SharpJiten use is named KANJIDIC (kanji dictionary). I don’t know how it began, but the class to store the data was incorrectly named EdictEntry (EDICT is a Japanese to English dictionary, quite different from a kanji dictionary). Since I assumed that EdictEntry is a correct name, the string edict was abound in the source code (for example the interface IEdictEntryFilter, and obviously many variable declarations). In fact, the word kanjidic only appeared when loading the KANJIDIC file.

The inconsistency was found when I was going to write about the nonexistent KanjidicEntry class for the report. Luckily Visual C# Express’ refactoring feature made changing names very easy. Just change the name in the definition (for example EdictEntry to KanjidicEntry), then click the refactoring icon that pops up, then choose “rename EdictEntry to KanjidicEntry”. The IDE will smartly rename all relevant strings.

Messy Go play - 8:38 PM 6/25/2006

My performance on KGS is very bad currently. After jumping to 10k?, 2 weeks of losing streak made me crash to 15k?. Can’t do a lot about it now, because I first need to finish my TK2 report.

Sizeprober - 10:27 PM 6/24/2006

My hard disk space is critical, so it’s time to delete junks. In doing this, I often need to know which file/folder is the largest in a folder. To solve this problem, I made a program called sizeprober. The syntax is:

sizeprober [folder]

Sizeprober will then display all files and folders in [folder] sorted by size. The size of a folder without subfolders is defined as the sum of the size of the files in it. The size of a folder with subfolders is defined as the sum of the size of the files in it plus the sum of the size of the folders in it.

The output still sucks but it’s functional. Here’s the first 4 lines of output of “sizeprober g:”:

ngerampok ||| Folder ||| 2756735507
sifat shalat nabi ||| Folder ||| 672308471
cd islam ||| Folder ||| 671341814
FMA the Movie ||| Folder ||| 647416444

The meaning of temp - 10:02 PM 6/24/2006

Note to self: The temp folder is for putting files that can be deleted any time.

Telephone cable - Damn I forgot to add the date and time

My Bu Kos’ phone pad wasn’t working, so he asked me to install another telephone (which wasn’t new). Just because I’m a CS student, she thought that I could do telephone stuffs.

The telephone cable was wired permanently to the broken phone so there is no plug and play method. She then asked me to buy a phone jack (and later, jackholes) so that I can plug the cable to the other phone

I bought 1 cable (with jacks on its ends) and 2 jackholes (don’t have a better term). The plan was to make this kind of connection:

-------[ <-----------> ]T

< and > are the jacks, [ and ] are jackholes, —- is a cable, and T is a telephone.

Of course the other telephone already had a jackhole. The other jackhole I bought was for the broken phone which didn’t have it. In other words, it is for changing

----T

into

]----T

The seller kindly told me that old cables internally have 2 wires while the jackholes I bought supported 4 wires, and that I would need to use only 2 of the available connections.

I connected the black cable to the red connection on the jackhole, and the white cable to the green connection on the jackhole. However the other phone’s sound turned out to not work. Thus the old phone was used, but with the new connection model.

Yes, another BOAB

Tuesday, June 20th, 2006 by Agro Rachmatullah

Self-service mail - 2:37 PM 6/20/2006

Usually packets are delivered right in front of our doors. However, yesterday a postman delivered a notice to take a package from Norge (probably Moyo Go Studio). I must go to Pleburan and pay Rp. 7000.

The official letter mentioned that it is for someone named "Agro Rachmatullah" which resides on "Sekip Flat B3", with the warning "Bila tidak sesuai panggilan harap membawa surat ket. domisili" (roughly, "if anything doesn't match please bring an official letter explaining so"). I figured that everything was fine (my name and the address are both correct).

Today I went to the post office with my motor-riding friend. To my dismay, the officer denied me because the address listed on my identity card doesn't match the address where I'm living now. He ordered me to get the signature and a copy of the identity card of someone permanently living on "Sekip Flat B3". So that's what the warning meant!

It shows how much an unclear wording can bring disaster. They should change it to something like "If the address on your identity card doesn't match the address written here, please bring a copy of the house owner's identity card and ask the house owner to write his/her signature on this paper". Wordy, but unambiguous.

Videofeedback - 2:34 PM 6/20/2006

In a holiday some time ago, I made a videofeedback with my brother Cadika. The images are unpublished and still resides on my hard drive. Because it takes so much space (around 300 MB), I plan to select some of the best, delete the others, and then put it online.

Explorer alternative - 12:07 AM 6/20/2006

Sometimes Windows Explorer can be as slow as hell. For example, when opening drive E, the folders inside will be listed instantly but the program stalls for some seconds because it is reading an "only-God-knows" information from the hard disk! Responsivity should be a file explorer's first priority! Sometimes I wonder, it's already year 2006 but a very basic program such as a file explorer can't even work properly!

A nice alternative is 2xExplorer. However the version I use is dated 2002. Need to find a newer version.

Notepad++ - 11:19 PM 6/19/2006

I'm now editing this BOAB using Notepad++. At last, a Windows text editor that supports both tabs and Unicode.

However, I'm having trouble launching an external application while giving the external application the file name without the extension. A use case:

Suppose I'm editing test.tex. To compile it into pdf, I need to run these series of commands:

latex test.tex
dvips test.dvi
ps2pdf test.ps

For that purpose I could create a batch file. The only problem is that I need to pass to the batch file the name of the file I'm editing without the extension (in this case "test").

Need to ask the forum. If that problem is solved, I could ditch ConTEXT for good. A non-Unicode compatible program (in other words, a program that shouts "I only use latin alphabets so I don't care about people who use other characters like Arabic and Kanji") by all costs should be boycotted.

PS: To insert a date into Notepad++, the shortcut key is Ctrl+F5.

Update:  I've posted the question here: http://sourceforge.net/forum/forum.php?thread_id=1521603&forum_id=331754
Word dump - 10:59 AM 6/19/2006

See the different date format above? That is because I'm using good old Notepad. Eventhough this text editor has no advanced features, at least it supports Unicode which is needed in this BOAB.

This word dump is from もうひとつの夜明け by 高橋瞳.

Kanji Kana English
夜明け よあけ dawn
キャンディ candy
まっしろ pure white
すきとおる to be(come) transparent
あまい sweet
まぶしい dazzling
うつくしい beautiful
どこか somewhere
とける to dissolve
なつかしい missed
何時か いつか sometime
さがす to search (for something desired, needed)
見つかる みつかる to be found
つぶる to close the eyes
かくす to hide
さけび shout
後ろ うしろ back
ふりむける to turn
ほか other (esp. places and things)
うまく well
行き場 ゆきば destination
ふかい deep
しずむ to sink
くちびる lips
かみしめる to digest
しか only
すべ means
見つける みつける to come across
ながれる to be washed away
おそれる to fear
夢中 むちゅう daze
にぎりしめる to grasp tightly
ひら palm
ひらく to open (e.g., a bank-account, festival, etc.)
教える おしえる to inform
しまう to do something completely
答える こたえる to answer
ため in order to
もう直ぐ もうすぐ very soon

This word dump brings my word count to 1178 (unmerged).

Will try Notepad++ - 6/19/2006 10:55:27 AM

No Unicode support is a known issue on ConTEXT and this bug will probably be fixed on 1.0. However there is no indication that 1.0 will be out soon so I will try Notepad++ which is also a free software.

Jacoto is DEAD - 6/17/2006 9:53:35 PM

To my dismay, the last version of Jacoto is same as the the one on Go Power CD (1.2.15). This means that there is no development for the last 1 year!

Kombilo has not been updated for a year also (sadly!), but at least it's pretty usable. Jacoto's functionality is very minimal and its user friendliness is negative.

I actually planned to do a mini review of the latest Jacoto version, however it now seems to be like beating a dead horse. A review is meant to improve a product, so if a product isn't developed anymore than it is quite pointless to review it.

The usefulness of unmounting - 6/17/2006 9:45:21 PM

In Linux, we have to manually unmount a floppy disk (mounting in modern DEs is automatic). This may seem troublesome but it is actually very useful since we have a methodical way of telling the OS that nothing is in the drive.

In Windows, it often happens that a random program checks the floppy drive for something. When there is nothing in the floppy drive, it is very annoying since the noise is awful and some programs halt when checking it. Most irritating is when the program refuses to give up and unendingly checks it (I then need to kill the rogue process or feed it with a real disk).

This problem is practically nonexistant in Linux.

Backup of BOAB - 6/17/2006 9:43:10 PM

After I upload boab.txt, I'll rename it to boab-[date].txt where [date] is the date I've uploaded. This way, the new boab.txt will be uncluttered yet I can still access my old BOABs offline.

Yet another BOAB (any better naming scheme?)

Saturday, June 17th, 2006 by Agro Rachmatullah

Compressing SGF files - 6/17/2006 4:51:01 PM

Tried compressing 523 SGF files using different methods (need to send it via email). The uncompressed size is 749 KB. Here’s the result:

WinZip 9.0 SR-1 normal: 360 KB
WinZip 9.0 SR-1 maximum (portable): 360 KB
WinZip 9.0 SR-1 maximum (enhanced deflate): 360 KB
7-Zip 4.42 normal (nonsolid): 269 KB
7-Zip 4.42 ultra (nonsolid): 269 KB
7-Zip 4.42 normal (solid): 140 KB
7-Zip 4.42 ultra (solid): 138 KB
WinRAR 3.42 maximum (nonsolid): 311 KB
WinRAR 3.42 maximum (solid): 136 KB

In a solid archive, all the files are treated as a continuous stream. It’s like tarring before compressing. WinZip only supports nonsolid archives.

In this particular case, WinRAR wins (2 KB less than 7-Zip). However I’ll choose 7-Zip because it’s free software :).

Searching in Kombilo - 6/17/2006 4:27:56 PM

Too bad that game info searching in Kombilo isn’t as powerful as SmartGo’s. In SmartGo, we can use both AND and OR for searching, while in Kombilo only AND mode is supported.

SGF in Explorer - 6/17/2006 4:19:17 PM

If details of an audio file can be shown in the Explorer shell (length, bit rate, etc), why not for SGF files?

Jacoto - 6/17/2006 4:18:36 PM

Tried Jacoto, a tool for managing lots of SGF files. What I tried was a very old version from Go Power CD and I’m really not impressed (a review is worthless since it is a very very old version). I’ll try downloading the newest version.

Exporting SGF using Kombilo - 6/17/2006 4:03:43 PM

My friend asked me to send him all of my Old Meijin kifu. Not a straighforward task since the requested kifu is not isolated on a folder.

Luckily separating the Old Meijin SGF using Kombilo is very easy. First, filter the game collection using Kombilo (position search, player name search, event search, anything you want). Then use “File” - “Copy current SGF files to folder” to copy all the SGF in the game list. What sucks is that we cannot create a new folder from the “Browse for Folder” dialog and the dialog doesn’t remember the last folder used.

GTK# for .NET not working out of the box - 6/16/2006 10:43:50 PM

To try running SharpJiten with .NET, I downloaded and installed GTK# for .NET. However running it yields:

Unhandled Exception: System.DllNotFoundException: Unable to load DLL ‘gtksharpglue’: The specified procedure could not be found. (Exception from HRESULT: 0×8007007F)

Need to ask the GTK# mailing list.

Offline boab - 6/16/2006 2:40:05 PM

realized now that I should have an offline copy of my BOAB. Afterall, they describe stuffs I’ve done or found. With the BOAB available, I don’t have to reinvent the wheel.
Right now I need the search keys for the Old Meijin but I can’t access it because I’ve uploaded the BOAB.

6 diagrams per pages - 6/16/2006 8:54:53 AM

I usually print pro game records using the format of 50 moves per diagram and 4 diagrams per sheet. The white numbers on the black stones are barely visible when the move count is 3 digits, so I am sceptical that the diagrams will be readable if I use 6 diagrams per sheet.

However I saw my friend print 6 diagrams per sheet nicely. I also tried it, and to increase readability I disabled coordinates (larger diagrams) and increased the printing quality (from normal to best). The result turned out to be very readable, even more readable than my previous printings (proabably attributed to the higher print quality).

Power failure! - 6/15/2006 9:11:36 AM

Yesterday, when I was playing a video file halfway through, I noticed that the framerate got jittery. When I couldn’t stand it anymore I took my earphone off and to my surprise, the PC speaker was actually emitting a constant noise. Noticing that something was wrong, I ordered Windows to shut down. In the process of shutting down, the constant noise changed into a sirene noise and the computer instantly went off.

There could only be one explanation: heat. I touched the CPU heatsink and unsurprisingly it is as hot as a heated frying pan! Did the CPU fan fail?

After waiting the heatsink to cool down, I turned the computer back on. With a flashlight I checked the CPU fan and it was working properly. Weird.

This morning, when Windows just booted, the motherboard made same constant noise. I checked the CPU fan and it wasn’t spinning!

I quickly unplugged the computer and checked all cables powering the fan. The culprit was found: a power cable has one of its pin displaced down so it didn’t touch its female counterpart. Correcting it was easy and after that things went fine.

Athlon XP doesn’t have a heat spreader, so if not for my motherboard’s “emergency off” feature it would have been fried. Newer AMD processors such as Athlon 64 are equipped with a heat spreader, so eventhough the fan fails the CPU would continue to run fine (albeit at a much lower performance).

Another BOAB

Tuesday, June 13th, 2006 by Agro Rachmatullah

Lazy programmer - 6/12/2006 10:44:41 PM

Once I saw an upperclassman editing a very large text file. It turned out that he was removing unwanted lines. The unwanted lines had a clearly defined pattern, but instead of making a program to remove it, he scanned the lines one by one.

He could program, but didn't use his programming skill. Sure, we don't need to make a program for every imaginable trivial task. However the text file which he edited was so large that the benefit of making the program would clearly outweight the cost of making it. A lazy programmer is not a programmer.

There are lots of small disposable programs on my disk. Some examples are:

  • A program to append a string to all file names on a folder (I once needed to rename hundreds of file)
  • A program to modify each line of a text file in various ways in which new modifiers can be easily added (the need to manipulate strings in a text per line happens really often)
  • A program to correct broken links created by a stupid program called WebCopier

That is because when I am faced with a repetitive task which can easily be programmed, I don't hesitate to make the program. I'm a strong believer that uncreative jobs are better left to machines, while humans better spend their time for creative endeavours.

SharpJiten 1.0 RC - 6/12/2006 10:12:01 PM


The program is essentially complete. On the screenshot you can see SharpJiten set to synchronize itself with the clipboard and additionaly only displays grade 1-3 kanji. When a bunch of kanji is copied from a Wikipedia article, the program updates itself and displays the relevant kanji.

What remains is tyding the code (throwing unused commented code, for example) and modifying the program to use an internal (embedded) EDICT instead of a separate EDICT file. Oh, and some days of bug testing to make sure that nothing silly happens.

SharpJiten is a memory hog - 6/12/2006 8:42:02 PM

SharpJiten is the name of the kanji dictionary program I'm building.

On the previous build, SharpJiten only loads some essential kanji info from EDICT. Those fields are the kanji itself in Unicode, (Japanese) readings, English meaning, stroke count, and grade info. This results on a memory footprint of around 26 MB.

However, EDICT has additional fields, more than what you can imagine. Some examples are SKIP code, various printed dictionaries' index, and Korean reading. When all fields are loaded, the memory footprint blows to 40 MB. As a comparison, Wakan requires around 37 MB and JquickTrans 14 MB. The memory usage of JquickTrans is amazing, considering that it is both a kanji and word dictionary.

The EDICT specification specifically states that any fields can be added at a later specification. SharpJiten will have a custom filter in which the user can specify arbitrary field to filter. This makes SharpJiten forward compatible with future versions of EDICT.

About the memory usage, I won't fuss over it. Deadline is approaching (when is it anyway?) and my priority is to have the program working. The only feature not implemented is the arbitrary field filter thing.

Yomiuri Meijin - 6/12/2006 5:38:01 PM

The Meijin is historically a title for the strongest Go player on Japan. Then the title was transformed into a prestigious tournament sponsored by Yomiuri Shimbun. The sponsorship was later took by Asahi Shimbun.

I have quite a lot of games from the old (Yomiuri) Meijin tournament. Here's the search result on the event tag:

Meijin (Yomiuri): 412
Old Meijin: 101

But of course there are some inapproriately/ambigously labeled SGFs:
9th meijin 1970: 2
meijin (yomirui): 1
meijin (yomuri): 1
1st meijin 1962 league: 3
4th meijin title match: 2
9th meijin 1970: 2
5th meijin title match: 1

Those labels are found by searching for "mejin" with the date 1962-1975.

So the total is at least 525.

Update: The total is not 525 but 523. Try to spot a mistake on the above BOAB.

sgf2tex - 6/12/2006 1:40:17 PM

I'm currently adopting Minue622's tutorial on Haeng-ma to Indonesian. While going to add a pro game example which is lacking in the discussion about iron pillar, I thought it was going to be really painful entering the move coordinates one by one to LaTeX. Therefore I created sgf2tex:


Here's a sample output:

cleargoban
black{q16,q4,q10,p15,q6,r3,r2,m4,l4,n4,o5,n16,r16,k4,j5,h5,g6,r11,r12,p6,p10,p9,g7,g8,g9,g10}
white{d4,d16,o17,o4,q3,p3,k3,m3,l3,n3,g16,r17,q17,j4,h4,g5,r10,q11,q7,q9,s9,f6,f7,f8,f9}
begin{center}
showfullgoban
{comment}
end{center}

The annoying thing is that the SGF format uses a different coordinate system than what most Go players (including client) are used to. Conventionally, the rows are numbered, starting from the bottom, 1 to 19 while the columns are labeled, from left to right, a to t. The letter i is ommited to avoid the confusion between capital i (I) and lower case l (as is "lamp"). Compare I to l and you will see that it really looks similar. The SGF format labels the rows from the top and using letters from a to s. The columns are labeled from left to right using letters a to s.

pdflatex bug - 6/12/2006 1:28:19 PM

Creating Go diagrams using the igo.sty LaTeX package and then compiling the pdf using pdflatex produces wriggly lines:


This is probably a bug on the very old pdflatex that I use, so I tried the more orthodox and roundabout method.

The first is to create the dvi using latex, then create the ps using dvips, the finally creating the pdf using ps2pdf. To my dismay, wriggly lines still exist!


You can see that the lines near the left egde are wriggly.

What works well is converting the ps to pdf using GSView:


Indexing is slow - 6/11/2006 1:29:01 AM

Extracted the 40 thousands or so games from MGS's web site. Then added those games into Kombilo. The whole indexing process took almost 2 hours on my supposedly-powerful 1.9 GHz processor!

Anyway, I did a search on games involving a historical Meijin. Here are the Meijins (from first to last) and the number of games in my new database:

Honinbo Sansa - 0 (the number of games in my old database is 0)
Inoue Nakamura Doseki - 9 (0)
Yasui Sanchi - 126 (8)
Honinbo Dosaku - 61 (37)
Inoue Dosetsu Inseki - 15 (0)
Honinbo Dochi - 25 (0)
Honinbo Satsugen - 13 (0)
Honinbo Jowa - 64 (0)
Honinbo Shuei - 227 (0)
Honinbo Shusai - 499 (3)

The new database is clearly superb!!!

The number of games on my old database is only around 7 thousands. An interesting obersvation is that searching for sanrensei on both databases takes the same amount of time (1.8 seconds).

Mnemosyne 0.9.4 - 6/10/2006 9:31:34 PM

Mnemosyne is a flash card program. You give it a set of question and answers, and the program will schedule those questions for you. In other words, it manages the process of memorizing lots of items. It is a must for anyone learning a natural language (English, Japanese, Arabic, etc) where thousands of items (vocabulary) must be memorized.

I replaced my aging 0.9.2 with 0.9.4. Nothing spectacular, just bug fixes for things that don't affect me. For the upgrade process, I backed up the .mnemosyne folder (Windows Explorer won't let you create files/folder starting with a dot btw), exported my 0.9.2 Mnemosyne data to an XML file, uninstalled 0.9.2, installed 0.9.4, and finally exported the XML file. Everything went smooth.

Deletion of the contents of boab.txt - 6/10/2006 9:28:13 PM

On my hard disk, a BOAB is stored on the file boab.txt. I will then bring the text file when I surf the net and post the contents to my blog. I've decided that after I post it, I'll empty the contents of boab.txt on my harddisk.

It would be great if my offline BOAB is stored on a wiki. The full history of the file will then be available. I'll try to install MoinMoin Wiki later on Dapper (MoinMoin Wiki is the wiki engine used for Ubuntu's wiki; Wikipedia uses MediaWiki).

14k?

Tuesday, June 6th, 2006 by Agro Rachmatullah

As an anchor player in YIC, I need to keep my rank up to date. My previous attempt to achieve this by playing on the net everyday costs a lot of money. Therefore now I'm limiting my net play to 1 day a week, which is on Sunday.

After 2 weeks, my rank is now 14k?

Blogging resumed

Saturday, June 3rd, 2006 by Agro Rachmatullah

I haven’t been blogging for quite some time. That’s mostly because assignments were piling like hell.

Here’s the latest changelog…

I’ve extracted words from two songs. The first is もっとふたりで by ユンナ:

Kanji Kana English
ただ usual
うつむく to hang one’s head in shame
ばかり nothing but
一歩 いっぽ (a) step
いっしょ together
つなぐ to connect
むかい facing
はなさく to bloom
立ち止まる たちどまる to stop
わかれ parting
なんど how many times?
さよなら good-bye
たび times (three times, each time, etc.)
やっと at last
気づく きづく to realize
思い出 おもいで memories
だいじ important
のこる to remain
おく interior
きっと severely
ほら look!
ながれる to flow (liquid, time, etc.)
おとずれる to visit
ふる to shake
ずつ at a time

The other one is My Answer by 高橋瞳:

Kanji Kana English
通る とおる to pass (by)
すぎる to pass
ふきぬける to blow through
ごろ time
なれる to grow accustomed to
かかえる to hold or carry under or in the arms
切れる きれる to have a sharp mind
くらい almost
明かす あかす to spend
はなれる to be separated from
くれる to give, to be given
数える かぞえる to count
まっすぐ straight (ahead)
何時でも いつでも always
など and the like
にがい bitter
なぜ why
あきらめる to give up
気がつく きがつく to realize
ふりむく to turn around
ほほえむ to smile
にじ rainbow
見つける みつける to find (e.g., something missing)
ために for the sake of

And now the word count is up to 1139.

This is an uncondesed count, which means that some entry can be merged. An example is:

すぎる: to exceed (added a long time ago)
すぎる: to pass (recently added)

which can be merged to:

すぎる: to exceed, to pass

Merging will be done at an undetermined time in the future.

My Go study is currently neglected because of the assignments and because the deadline for TK2 is getting closer. There have been some progress in the TK2. The program can already filter characters based on a character filter, Jouyou grade, and stroke count. I’m now implementing a transliterator which is needed to filter based on the sound of the kanji.

Force Feeding; UNY Bunkasai

Tuesday, May 9th, 2006 by Agro Rachmatullah

In the last update about my go study, I was in the process of solving sorted goproblems.com difficulty 41-50 (for the second time). Actually I managed to finish the 363 problems quite some time ago. Now my study activity is different.

I'm now studying go using force-feeding method (see http://senseis.xmp.net/?ForceFeeding). Basically, I repeat the same set of materials for a period of time. In my case I chose a period of 14 days. The premise is that by repeating the same materials over and over, our brain will be hardwired to the patterns.

The materials I'm currently force-feeding is:

  • sorted goproblems.com, problem 451-500 (50 problems)
  • Fuseki on Your Side chapter 1 (Framework Foundations)

However, I think 14 days period is too long. The materials get pretty boring easily. If I continue this force feeding method, the next period will be shortened to 7 days.

Anyway there will be a Bunkasai (Japanese Culture Bazaar/Festival) on UNY from 10-12 May. YIC gets a free stand :).

Translating Moyo Go Studio

Tuesday, May 2nd, 2006 by Agro Rachmatullah

Frank de Groot, author of the new Moyo Go Studio, generously offers a free DVD of his program for anyone joining his translation project. I couldn't resist, since the program has many interesting features. One of its features is pattern matching. As far as my understanding go, we can ask the program to analyze a subboard and it will return suggested moves using a neural-networked reasoning.

Frank also plans to develop the strongest computer go program. Currently he's starting to work on the tsumego (local, tactical go problems) module. People with great ambitions must be supported.

So, the DVD is on its way right now, and the translation is 50% complete. Ironically the hardest part for me (a computer science student) is to translate the computer terms.

The goverment has released some sort of Indonesian computer terms standard in 2001 (technically it's a presidential instruction) but many of the words there are still not widely used. Ever heard of tetikus (mouse), gugurkan (abort), bita (byte), peretas (hacker), galat (error) and pelipat (folder)? Even the translation project by GNOME Indonesia is not compliant with the standard. GNOME Indonesia still use unmodified English terms where a translation exists in the standard (such as mouse, folder, error). They also have their own Indonesian terms (for example "kembali" instead of "balik" for the word "back"). That is not to say that the compliancy level is low (for example both use "batal" for "cancel" and "berkas" for "file"). I'm curious about the conformance of the Indonesian language translation for Windows XP.

Well, perhaps we're still in the transition state and people are still reluctant for a change in terms they are already familiar with. However reluctance should be kept away for the greater good.

I understand the reasoning behind pushing for a change. It is not obvious to non-English users how to read "mouse", "download", "keyboard", and "file". Using the alternative "tetikus", "unduh", "papan ketik", and "berkas", they won't read it wrong. Also, Indonesian sounding words should make Indonesian users more comfortable.

In chemistry, we already use Indonesian words. We use "unsur" instead of "element", "senyawa" instead of "compound", "larutan" instead of "solution", "zat" instead of "substance", and "asam" instead of "acid". Physics has its of collection of words too, such as "gaya" for "force", "daya" for "power", "listrik" for "electricity", and "kelajuan" for "acceleration". In math we have "himpunan" for "set", "berhingga" for "finite", "kurva" for "curve", and "selang" for "interval". Why not for computer terms?