Evolution of a Go program

About the development of Moyo Go Studio, software to (help) play the Oriental game of Go. Go is a two-player zero-sum game of perfect information. It is considered much harder than Chess. Currently, in spite of enormous effort expended, no computer program plays it above the level of a beginner.

Saturday, December 31, 2005

Multiprocessing

Due to a technicality, the past two days of number crunching for the Fuseki module have to be redone. I decided to give multiprocessing a go: Four threads (each CPU its own) will load SGF files, process them and write the results to a database. This should increase speed about fourfold. And if I manage to make this in a day, the gain will be half a day.

However I don't think it's realistic to do this in a day - Multithreaded number crunching is non-trivial for a beginner in these matters like myself. It will become increasingly important to do so: More and more customers will expect that their multi-core CPU's be put to good use. The goal is to process SGF (add to database, including index generation for pattern recognition) with all available processors, even when there are dozens, as will be the case ten years from now.

Thursday, December 29, 2005

"Ethics" Witchhunts in Comp. Go also in Cloning, Cold Fusion

Hwang Woo-Suk made impressive progress in cloning, something that will make Big Pharma loose Big Money, because when you can cure diseases by injecting the affected organ with cloned stem cells, many cash-cow symptom relievers become obsolete.

Upon the breaking of the news, some corporations and competing scientists launched an all-out attack: They said his research was unethical because one of his colleagues (voluntarily!) donated eggs for the experiments (for which she received proper credit). Nevertheless, that colleague was influenced into doing a 180-degree turn and quit her job in South Korea and returned to her native country, the United States.

Not just spokespeople of Big Pharma and the Religious Right shouted "unethical": Mr. Hwang Woo-Suk's scientific competitors were most vociferous as well. No wonder, with their potential Nobel Prizes - and funding - at stake. Nobody cares that Mr. Hwang Woo-Suk is a veterinarian, and that veterinarians are not instructed on the PC notion that donating an egg for common fame and the progress of science is "unethical".

Meanwhile, press releases of dubious origin, shamelessly promulgated by Western media, spreaded FUD about his research with only flimsy circumstantial evidence of any wrongdoing, let alone that there was anything wrong with the cultures themselves. Hwang Woo-Suk, after allegedly attempting suicide due to being accused of having besmirched the honor of his nation, was recently released from hospital. In spite of thoroughly peer-reviewed publications in Nature and other respected scientific media, allegations of "fabricated results" persist. Meanwhile, independent tests on his cloned puppy "Snuppy" confirmed that indeed he had succeeded to clone the world's hardest-to-clone dog breed.

Not the slightest evidence remains to suggest that he ever fabricated results or acted unethically, but the harm to his reputation has been done. He denied the allegations of fraud, and said his basic research was sound. Dr. Hwang said his research team made 11 patient-specific embryonic stem cells, and that they still have the technology to produce them. Unfortunately, while he was in hospital, they closed his lab and contaminated some of his cultures, making it hard to prove his innocence.

1-0 for Big Pharma, the Established Order and the Powers That Be. However, Hwang Woo-Suk, after release from hospital, vowed to fight back via the courts. Let's hope the Rifkin-Kristol petition won't pass: It would make cloning human cells a criminal offense - punishable by up to 10 years in prison - effectively denying us to modify our body at the genetical or cellular level.

Massive FUD campaigns lauched by multinational corporations or even government institutions are nothing new. Remember the cold fusion "hoax"? For the past two decades, they made us think that cold fusion was a lie and the discoverers (Martin Fleischmann and Stanley Pons) were publicly disgraced. But nowadays cold fusion has become so reproducable that some US universities hand out cold fusion kits to students, to prove, with a calorimeter, that the phenomenon of cold fusion indeed exists.

Most scientists who discover something important see their work - at least initially - being viciously discredited, and the most interesting bona-fide inventions are getting "exposed" as "hoaxes". Examples that come to mind are the increased half time of Tritium in a Titanium crystal matrix (my theory is that this works similarly as why cold fusion in a metal matrix works, by "conduction" of neutrons from one nucleus to the other) , the ballotechnic material commonly referred to as "Red Mercury" and the discovery that 95% of stomach ulcers are caused by Heliobacter Pylorii. Interesting aside: Due to the taboo on antibiotics in the West, it took ages and courage for this to be discovered. Antibiotics are my favorite interest. Recently, two dozen Norwegians died from Legionaire's Disease. An ID specialist told me that Clarithromycin and Azithromycin are "not used" here. Sadly, those are exactly the most effective against Legionella.. I can go on: Amongst the real experts, there is no more doubt that ME, MS and Fibromyalgia are of bacteriological etiology (spiroplasma / mycoplasma), but the PTB want to hear nothing of it. Of course not, because cheap generic antibiotics work at least as well as costly, patented symptom relievers.

Monday, December 26, 2005

Relativity Theory of Ethics

Some folks have a peculiar sense of ethics. They think that against someone who is in their opinion unethical, any retaliation is permitted, including an unethical one.

A not-to-be-mentioned Austrian thought I was unethical, so he violated my Copyright and the rules of ethics by putting a private letter to him online, and by removing my postings and people who posted in my defence from a public forum. A not-to-be-mentioned German thought I was unethical, so he violated Moyo Go's EULA and put up his copy of Moyo Go for sale (no better than software piracy, as I can't verify that he deletes his own copy and since he never notified me of his EULA violation, why would I trust him?).

Interestingly, the people who shout hardest about ethics, are the ones who are the sneakiest in their attacks. I haven't had a single official complaint about anything I have ever done, but in the War Against Bad Ethics, anything goes. DOS attacks in the form of bogus complaints to my ISP or web provider, backroom conspiracies to deny me a retail channel or a review platform, anything it takes to prevent "unethicalness" in the Go community.

Claiming ownership of those pro games is like the bedouins who forbade me to take people to Bir Swair ("small spring"), the semi-secret oasis. They wanted a piece of the action, even though they were too lazy to take folks there themselves. "It's our desert", they said.

Genetic Evolution

While slowly progressing on the new Fuseki module (due to deteriorating health and the Christmas period), I have firmly decided to go for "genetics" for the future Go playing part of Moyo Go Studio. This is not an impulsive decision - four years ago I already publicly mulled "GenetiGo" as a possible name for my future Go program.

My girlfriend Martina went cross-country skiing, and I am cooking beans and reindeer stew.

Interestingly, it is due to my health problems that Moyo Go exists at all, because otherwise I would still have been a freelance Divemaster/desert guide here:



Nothing focuses the mind better than being constantly aware of one's mortality.

This picture is where I have lived for two years, one year most literally, when I got permission to build a hut on a beach "owned" by a Tarabin bedouin family. My water came from their basin, filled every few months by a truck. I washed myself in the sea and walked barefoot for a year until the callus on the soles resembled hooves.

Usually when I get "firm resolves", I am so convinced that it will work that my first thought is: "Keep it secret", but I will blog about progress on this. I have a pretty good idea of how things are going to work, and I'm glad I have secured ownership of that dual-CPU dual-core 275, even though I recently resigned and I did not get it as cheaply as I had planned. The beast will be the key to efficient genetic evolution of a Go program. I'll let each CPU pit a (64-bit) evolving version against the other.

Later I'll write about the general workings of such a system, because it's always nice to get some feedback by email.

Friday, December 23, 2005

The (S)AGA Continues

AGA has kicked me off their mailing list, but someone brought this (from the AGA E-Journal) to my attention:

"HALF-PRICE SALE ON MASTERGO: The creator of MasterGo is offering a special half-price New Year sale: $50 instead of the usual $100 cost. The software for studying joseki and fuseki includes tens of thousands of professional games. Available at www.slateandshell.com for delivery in early January."

Hm.

Wasn't Slate & Shell a spin-off of AGA's board members? And isn't MasterGo a competitor of Moyo Go Studio? Hasn't Moyo Go Studio been refused a review in the AGA journal? Isn't this a "conflict of interest"?

Thursday, December 22, 2005

Who's who on IGS

Alexandre Dinerchtein at Go4Go.net knows the real names of the highest ranking players on IGS, and many are pros. Since Moyo Go includes those IGS games, I decided to make an import filter in which you can specify the real name for an alias, and re-import them.

Tomorrow I hope to make the "reprocessed" IGS games available for download, and the auto-update with the import filter wil come soon.

Wednesday, December 14, 2005

Yet another new website

As you see, the new site looks very different. Nothing much works yet, except the blog and the auto-update system. The site is both registered and hosted in Russia, and yet the downloads will be very fast indeed. I had to change hosting providers twice in ten days so yet again the Forum has to be re-installed, all updates uploaded etc.

Heaven permitting, there will be a major Moyo go update out in a week or so, which will have 40-move deep Fuseki matching and -statistics for all 410,000 games in Moyo Go's databases.
Half of the data has been gathered and is already uploading as database updates, now it's just the quarter of a million CyberKiwon games that are being reprocessed.

I still have to code the Fuseki matching system after the CyberKiwon games have been processed, so all in all it will take about a week. My girlfriend will visit me from Czechia this Thursday (she'll stay over for Xmas) and I have to clean this place up, so it will be a hectic week.

Sunday, December 11, 2005

Full Out

OK, the "all games" window is done and so far no bug reports. Now I'm working on Fuseki-search. Moyo Go already has Fuseki search, but only in the context of the "pattern urgency" system. Many less-common Fuseki simply isn't "statistically urgent" enough to be in Moyo Go's pattern database so what I'm making (for starters) is a 40-move Fuseki database as Kombilo implements it: Utilizing hashes for fast searching.

See here what happens when you add thirty fields and thirty indices to seven SQL databases simultaneously on a machine with 4 CPU's and 4 GB RAM.

I hope some of the databases will be restructured by tomorrow afternoon ..

Thursday, December 08, 2005

Need For Speed

Some progress on the "All games" list. What I wanted was:

- No delay in loading the game list (SmartGo needs three seconds for it, quite acceptable but I prefer that things do not take any time),

- Be able to sort on player's names, ranks, date etc. without any delay. (it takes SmartGo a bit over a second). Without any delay with super-huge game collections as well.

It looks like I succeeded :)
Well, not that hard, with a full-fledged SQL database engine beneath the surface..
Moyo Go looks simple on the outside but what makes it tick is approximately 0.95 MLOC (million lines of code).

Now it's just to do the finishing touches and get this baby out the door!

Most popular at Sensei's:

Go in the Army

A Korean customer told me that if a Korean hasn't learned to play Go before age 18, he would learn it in the army because there it's the favorite passtime.. In the Netherlands, it's drinking beer, playing billiards and watching porn movies!

This is what I mean when I say "I am starting to fall in love with Korean culture".

Tuesday, December 06, 2005

The AGA Strikes Back

The battle Between The Go Software Vendors heats up: AGA is ratcheting up their FUD campaign:

..highly distrustful of running any of his code on my computer," writes Andrew Jackson. "If he has no problems doing unethical things that are legal, who knows what else his code might do?

It seems that the Go software millionaires are not afraid I will install a virus onto their computer. Without naming any names, the authors of the top-three bestselling Go playing programs all own a copy of Moyo Go Studio! One of those colleagues ordered his copy today, a few minutes after the AGA published their latest smear article on me.

PS AGA tacitly admitted that their first article was intended to deny my product sales: "Bad press can be just as good as good press, I think it would have been best to do like everyone else and just keep mum on the issue."

Too late. And I have to go to the postoffice now.

Open-Sourcing the data

Open-sourcing the pro games I collected from various sources and "cleaned up" a little (pro ranks should have a "p", for example, to be able to automatically distinguish them from "d" amateur ranks) was not just beneficial for computer Go researchers in countries where the GoGoD CD costs the equivalent of a week's salary. Or students of the game of Go in those countries, for that matter. (My POV is that not only is there no Copyright on Go game records, it is also unethical to claim Copyright on them in an attempt to make money of them greatly exceeding the cost of producing the actual collection).

Immediately after I put the games online, people started to report bugs in the SGF, as well as quite a number of duplicates. There turned out to be a bug in my "duplicates detection" code, when games were 180 degrees rotated! Strangely enough, these games exist. Many of them.
My duplicates-detection code works with rotational/mirror/color reversed end-of-game hashes, but there was a bug there.

The "illegal SGF" never became known to me either, because Moyo Go follows the principle of "Be liberal in what you accept as input and conservative in what you produce as output". I should have tested with other Go software as well!

So now I have put online a new pro collection, which is now pretty OK.

Sunday, December 04, 2005

Moyo Go's auto-update system

Sometimes, being paranoid is just having all the facts. For example. Moyo Go downloads its own updates automaticaly, when enabled. This is done by FTP. In order for FTP to work, there needs to be an FTP account with an FTP adress, username and password.

And let's say I hard-code the FTP address into Moyo Go. For example, the FTP address for my old server was ftp08.powweb.com. This works, until ftp08.powweb.com does not exist any more (you never know with those Weapons of Mass Destruction of the Axis of Evil out there). In fact, no weapons of mass destruction are neccessary to deny my customers automatic updates if I would have hard-coded the update FTP address into Moyo Go. A frivolous Copyright infriction claim will do, when the server is located in that bastion of Freedom, the US of A.

Therefore, I spent considerable effort into designing MoyoGo's automatic update system. Without exaggeration, this update system is so advanced that I could sell it instead of Moyo Go Studio, and I would probably make more money out of it too.

To make a long story short: I have been kicked off the powweb server, and MoyoGo's automatic updates work just fine again.

Sore Losers

I was quietly minding my own business yesterday, when suddenly the lights went out for Moyo Go. They pulled the plug on it, so to say.

Damn! So I Skyped my spineless hosting provider PowWeb in the good ol' US of A, and hit a brick wall. They told me that someone had told them I am a criminal, and for the rest they had no comment. They did not want to connect me to anyone else, neither did they return my emails.

Some helpful folks on the Internet told me that this happens all the time. In the US, any competitor or random person can make a frivolous Copyright infriction claim and Bob's not your uncle any more.

Boy oh boy.. Imagine you're having some kind of eCommerce business hosted in the US!

I abhor things that break easily so I decided to move not only my hosting provider somewhere else, but the domain registration as well. You never know.

I am now hosted by a sweet little hosting company in the idyllic little country of Russia. Yes, the one with the nukes. And they told me that people like Anders Kierulf and John Fairbairn and Roy Laird would have to come to Moscow and win a courtcase, if they wanted to fuck me over.

We really talked this through thoroughly. The folks in Moscow told me I was going to be hosted in Moscow instead of on one of their US-based servers. When physically hosted in Russia, the rug could not be yanked from underneath me any more.

Friday, December 02, 2005

Still going strong

A few days after the AGA scandal, and I still can barely handle the orders. I ran out of stamps and I had to order 100 more bubble envelopes. A lot of good has come out of this. Not just the pro games - I will make a free trial version of Moyo Go as well.

Someone wrote me that the AGA has been suspected of fraud.

Alledgedly, they have been misappropriating substantial parts of their annual 100,000 USD Ing foundation grant to fund their own private Go paraphernalia company. Meanwhile, the AGA would endorse exclusively the products of their own company. More about this here.

PS

I just hear that the Ing foundation had already cut their funding to AGA before I wrote this article.

Jewel case cover

The first 50-odd customers did not get a printed paper jewel case cover, because there wasn't one yet :)

Mail me, and I'll send you one!