Friday, December 29, 2006
Mick postulates: "If this theory was proven correct then it may suggest that the most common task being performed by neurons in real brains is to continuously attempt to learn to predict the activities of other neurons but based on different inputs."
Thursday, December 28, 2006
Wednesday, December 27, 2006
Tuesday, December 26, 2006
Monday, December 25, 2006
That 75% is the most complex stuff though, like:
-Output to various formats
-Page rendering engine
-Antialiased diagram engine
-HTML upload to website
-PDF output with embedded CJK font
-Page size selection
-Page range selection
What still has to be done is everything connected to making the actual diagrams look like they should look, and to a few more layout-related issues.
Sunday, December 24, 2006
The diagrams themselves are very plain (it's the only thing yet to be implemented, all complex stuff like page rendering engine for a dozen output formats has been done, all GUI layout, all classes etc.)
It's the 3-3 branch of Kogo's Joseki Dictionary but remember, it's a proof-of-concept, no diagramming features yet! But as you see, things are flexible, individual text in title, header and footer can even have separate color, alignment etc.
The same can be outputted to HTML, and it's here - automatically uploaded via FTP!
But output to MS Word is just as easy,
Saturday, December 23, 2006
From the timestamps of the postings it can be seen that Arno did not remove the libel for many hours (even though he had been present on his website at that time because he deleted threads, made postings, banned IP addresses etc.).
All people that posted in the thread are witnesses to the libel. Many people can testify they have seen it.
Arno said that if I defend myself against libel on his site, he will ban me, which he has, now. He libelled me on his site, he refused to delete the libel, he made it impossible for anyone to remove the libel, he made it impossible for me to defend myself against the libel, and he publicly stated that he does not like me as a person.
Damages 50,000 Euro according to Austrian Media/libel law, as soon as I find a specialized attorney in Austria to handle this case (preferably in Graz), his ass is toast. He continually escalated the problem to a more serious level and he never did anything to limit the damage, on the contrary.
Friday, December 22, 2006
They give living birth and their offspring drinks their milk? Nope.
Mammals are the only creatures on Earth that have a neo-Cortex. I read that in "On Intelligence" by Jeff Hawkins. Interesting book by interesting guy, that gave me ideas for the next stage of Moyo Go Studio: A Go-playing engine. A neo-Cortex allows us to store memories and make predictions based on those memories. And it makes us self-aware.
I had to think of the way a bedoine told me dromedares kill their abusive minders, often months after the abuse took place. They either lay themselves on top of their minder at night - suffocating him, or they bite him on the top of the skull with their deeply penetrating, long teeth, killing him by massive brain hemmorage/-damage and trauma to the skull.
In order to be able to commit such an act of premeditated murder, a dromedare has to make several predictions with its neo-Cortex:
1. The abuse might go on when the abuser remains alive,
2. The abuser needs to breathe air, else he dies,
3. If I lie on top of him, he won't get any air.
A. Every mammal has its own unique character, they are able to suffer emotionally just like we are, and that therefore they are our Brothers.
B. Dromedares are ugly and look stupid but they are big and scary motherfuckers.
To get this done was hard enough - there were some problems with the positioning code when publishing page ranges to HTML.
It's now time to finish the diagram-generation code, which is quite a lot of work but much of it is straightforward, as opposed to bughunting/-fixing of the 3rd party library I use for some of the publishing module.
Thursday, December 21, 2006
Tuesday, December 19, 2006
If so, please report the details (which features do you use).
Of course, a memleak is a very serious bug and needs to be reported and investigated. I have 500 customers but there are no open memory-leak issues at the moment that I know of - should I?
The first person that can show a reproducable case of a serious memleak will get a full refund. (I'll publish the name so you can see it will be fair).
Monday, December 18, 2006
In the words of Machiavelli in The Prince (chapter 17), "A prince must not mind incurring the charge of cruelty for the purpose of keeping his subjects united and faithful; for, with a very few examples, he will be more merciful than those who, from excess of tenderness, allow disorders to arise, from whence spring bloodshed and rapine." Whether we are dealing with subjects or enemies, and certainly enemies bent on our destruction, an excess of tenderness only leads to a loss of mercy. In the words of Midrash Rabbah on Kohelet 7, "He who is merciful to the cruel is destined to be cruel to the merciful."
Tuesday, December 05, 2006
If you have a picture of your favorite player in Rich Text comments, it will be nicely scaled to column-width when the column is smaller than the image, and uploaded to HTML as part of the Kifu. Images are included as PNG.
Better still: When there are Audio comments in the SGF, they will be uploaded into the HTML as links to WAV files!
I will post a link to an example a bit later, when also the diagrams look a little better.
Monday, December 04, 2006
Perhaps when I get older, I will be able to ignore such folk. Are they intentionally evil, or merely stupid?
In any case - rest assured that Publishing is on track, rec.games.go unsubscribed, and I'm finished translating David Mitchell's functional spec into a GUI. He makes a lot of Go diagrams and his wishlist is pretty comprehensive.
Basically, everything imaginable in the diagram should be configurable. It's a kazillion of options that I could barely fit on eight tabs. And I made the dialog box 800x600 to be able to do even that.
David is a Kifu publishing expert, is familiar with most of the the main Go software for publishing/printing and he has made clear what he wants to see in the "perfect" publishing module. It's a multi-page document with multi-page addendums in aswer to my questions. I will do my best to implement as much as I can for a first version, and he will be my beta-tester.
Several days went into designing a GUI that could present the large number of options to the user in the clearest possible way. I had to re-do a lot during the process. The image presented here shows how the user drags & drops items above or below a diagram, like title or move range.
In the "Fonts" section, every part of a Kifu has its own font name, -attributes and text alignment.
What's left is a bunch of coding here & there, mainly fixing some more bugs in the rendering engine and then greatly expanding the "diagram" class I already use to display board positions.
If I want to add variable diagram positioning, I'd also have to do some tricky coding in the rendering engine, so I might leave that until I roll out the first version. Attacks on me on rec.games.go have delayed me for a few days, and the work involved in suing David Windsor for slander and defamation will add to the delay, but I still think I can have a working version before the end of the year.
A while ago I bought 500 special foam envelopes, much firmer than ordinary bubble envelopes. An added advantage is that I can write directly on the white envelope without danger of puncturing it.
Since I am using these envelopes, the occasional reports of damaged DVD's have ceased.
Friday, December 01, 2006
I want to make it clear that I have great respect for the programmer of this stunningly beautiful display, and I'm sure the algorithms used are not simple at all. Yet, it does not appear to be a genuine influence simulator, more a kind of "Go art" or perhaps the programmer's own interpretation of "influence".
Because "influence" in comp. Go terms is not something subjective, or something "beautiful", no, we design influence functions and measure their performance with tens of thousands of end positions of pro games and keep tuning those functions until they give the most accurate estimation of territory and influence (which is more subjective). Territory is subjective as well, but the abberations average eachother out so we can establish accurate performance parameters for our influence functions.
Take this example of influence maps.
(note that there are five shades of beige in this diagram, and that therefore black has large influence at Tengen- the very darkest/lightest area's are "very strong influence" points and that simply is too speculative to be of any use, for Tengen).
In computer Go, the sub-problem of "influence" has been quite nicely solved by Bruno Bouzy, who has published several papers on his method.
Both Bouzy's and David Fotland's (of Many Faces of Go fame) influence functions "bounce" influence off the edges of the board and let the "wavefronts" combine. This is visible in the lower right corner of Moyo Go's example (right), but not in the "interactive Go map" on the left because a much simpler, more inaccurate algorithm is used that does not even take Manhattan distances into account. The purpose of Interactive Go maps appears to test and present Go-concept ideas in an esthetical manner, without laying claim to being "accurate".
And there are more things that are sub-optimal in the example on the left. Look at those white stones in the lower right. They project quite some influence leftward, but in the Interactive Go map there is nothing! Moyo Go's influence graph around Tengen is a large diamond, whereas in the Interactive Go MAps exapmple, it's a square. A diamond is the accurate form, because Go stones connect in a horizontal/vertical manner.
The analogy Go stones = magnets goes a long way, but in the end, Go stones in a Go position are not magnets and more realistic algorithms need to be employed to predict likely territory and influence, especially in more complex positions.
Let the Interactive Go maps be pretty, and let Moyo Go's influence maps be as accurate as possible. No effort has obviously been spared to make those maps as pleasing to the eye as possible, while I read my way through a pile of state-of-the art research in influence algorithms. The Bouzy algorithm remains unbeaten, but I found a way to greatly speed it up and get almost the same (or better?) results. Rest assured that although it doesn't look as good as the Interactive Go maps, no efforts have been spared to make them as useful as possible, and not merely good-looking.
Thursday, November 30, 2006
This is not at all bad, because last time I sold most of those 30 due to a row that AGA - The American Go Association - started with a malicious "review" of my software, that spurned about fifteen people (mostly Americans) to purchase it out of sheer disgust with the article. All in a couple of days, so that I ran out of bubble envelopes and stamps. The AGA folks that run their website and newsletter have a financial stake in competing Go software, hence the shameless "review".
I go into detail because I noticed that quite a number of μISV regulars from Joel Spolsky's site occasionaly visit here because I'm the archetypal μISV: A one-man shop, starting from scratch, doing everything himself and able to make a living from it if he would live in a cheaper country.. And there are few things more interesting for the small independent software vendor than comparing sales figures.
My competitors will see these figures too, but I consider it part of the psychological warfare. The enemy plays a much dirtier game than handing over their trade secrets like I've done regularly. They make up lies and put them on their sites. PsyOps message: Don't forget that I don't play Go above beginner level and my software is, in terms of Go software sales in general, selling like hot cakes. 2007 is scheduled for major R&D, which includes regular Go lessons from a teacher and play on a Go server, so I will get stronger at Go and learn all principles needed for the next step: A full-fledged Go playing program. You ain't seen nuthin' yet!
Go software in the West is a niche, and for those who didn't know yet - my software is in the unique position of being boycotted by most major Western Go websites and retailers due to the disproportionate power the "old boy network" has, an established order of - mostly millionaires - who monopolized the world's Go games under the banner of "ethical game ownership". Of course this is totally bogus - all they do is fight hand and nail to protect their business interests, and anything goes.
The remarkable collusion in this little Western Go world is something to think about, to contemplate. Will it be the same in South-East Asia? That is my main (potential) market.
So far, I think not much can go wrong when I will introduce my software in SE Asia. For the most part, those who have been vilifying/attacking my software here due to the threat it poses to their bottom line are either unknown or despised there.
Of course there will be repercussions to the actions of the GoGoD/MasterGo/SmartGo kartel. If I ever manage to write the world's strongest Go program (and I really think I will be able to, and in a reasonable time as well), then one of my criteria to any dealers in SE Asia will be that they do not carry the aforementioned products. This would only be fair, seen how those three effectively interfered with me advertizing, getting retailed and sponsoring Go tournaments.
Revenge is sweet - patience is a virtue, who laughs last laughs best and that what not kills me, makes me stronger.
Tuesday, November 28, 2006
The diagram in his example was a little work of art: Many font sizes, alignments and even font colors. In spite of the season, I do not want to encourage "Christmas tree kifu's" but the user should be able to specify alignment, font attributes and color for various parts of the published material and included kifu's, so I cooked up this monster:
I discovered more bugs in the PDF output module I purchased the sources to: Italic doesn't work properly in RTF, the last character is cut off because the bounding box is too narrow. In PDF, italics don't work at all. Thank heaven I have the source at this advanced stage!
Monday, November 27, 2006
My solution is incremental (I can do delta-updates to the territory/influence map) and does not require multiple "passes". So it's very fast.
I have just added it to the update.exe and this is how it looks:
It's most useful at the Fuseki/Joseki stage, because life & death is not yet taken into account.
Tuesday, November 21, 2006
I notified them of the bugs and suggested they were trivial to fix and they mailed back within 24 hours with their acknowledgement! They would have a fix ready the next day or so, which means I'm now ordering their software for embedding into Moyo Go, as soon as as I have their confirmation that redistribution as an embedded app is OK.
Their solution also properly supports Excel and Powerpoint and even XML for maximum flexibility, so this would mean that Moyo Go will be able to make powerpoint presentations and Excel spreadsheets and produce Word documents that are compatible with OpenOffice. Thirteen major formats is a good start ;-)
So it will be DOC, EMF, EPS, HTML, PDF, PNG, PPT, PS, RTF, SVG, TIFF, XLS and XML. And not half-assed, shitty-rendered, nasty-looking, often-crashing either, but stable, fast, high-quality, exactly-what-you-would-expect output, tried and tested and every single output format looking identical to the other, including page margins, CJK fonts and images. This is another reason why it's taking so long. And - I want to bet you a free copy that AGA will not publish an independent review of this rather spectacular publishing module, or, if they do, they'll crush it into the ground :-)
And yes, the HTML publishing will FTP your games straight to your website!
Friday, November 17, 2006
..or was it this game:
GoBase does not have this game in its repository. It makes you wonder where those guys get the guts, telling me I am stealing "their" games, while in the end it is I who have, with the help of many others, collected and normalized a pro database that has more than 12,000 games than GoBase or GoGoD or SmartGo or MasterGo or anyone else except perhaps the Nihon Kiin, but they haven't romanized their collection and besides, their collection is zealously guarded.
So Gobase has zilch, zippo, and I have two versions of it. Makes you wonder how serious those game monopoly dudes are, it's a game from 1935 for crying out loud!
Could anyone shine a light on which game has been entered incorrectly so I can remove the erroneous duplicate? The second one looks suspicous to me..
(Thanks to Bob Felice for pointing this out)
I added pre-defined page sizes and a button to swap page width and -height. I also added a setting for the line spacing, and an alternate option for specifying font size: Characters/line in addition to lines/page. There also is now a progress line, showing which page or figure are being worked on.
Many small bugs in the GUI have been fixed and now it's slowly time to work on the diagram-generation. 90% of the GUI and 99% of the rendering engine is done (at least for "column-wide" diagrams, which are the simplest layout option in terms of rendering). What remains is implementing a plethora of diagramming options according to a functional spec I received from someone who puts serious demands on Go publishing.
My girlfriend comes to live with me permanently tomorrow and I haven't slept much, but I intend to finish the first version before December. It may look intimidating, but the publishing module will be incredibly simple to use. Basically nothing can go wrong and everything is so straightforward that reading the Help will not be neccessary, but there will be a comprehensive tutorial, just in case.
It is a great feeling that my users will get this as a free update. I really feel I'll be giving everyone a nice Christmas present, and repay the investment of the "early adopters" who had faith in me from the very beginning. Updates will always be free but the price might go up in early 2007 because having the best publishing module in existence makes the software more valuable. I am not there yet, but the biggest hurdles have been taken. This kind of stuff takes months to do right.
Thursday, November 16, 2006
Encapsulated Postscript: Hard Things Done Immediately, Miracles Take A Little Longer, But Easy Stuff Takes Forever
I threw in ordinary Postscript as a bonus and everything works very well. EPS support took half a day to accomplish. Not because of the complexity involved but because it took me several hours to figure out how to invoke a specific command line option from within Moyo Go. I do that all the time already, but this time it did not want to work. The solution was mundane but somehow I needed about a hundred trials-and errors to get it working.
Tuesday, November 14, 2006
A lot still has to be done, but the last bugs are out of the purchased report generator. I managed to generate correct output (more than 100 pages) without crashing for Kogo's Joseki Dictionary, but as I said - this is just the beginning.
I hope to have something to show on the first day of December.
Saturday, November 11, 2006
A good thing to know for aspiring programmers are a few coding style rules. I call them "the three fucks", and they are:
- What the fuck
- Why the fuck
- How the fuck
Almost no bad programmer practices the three fucks, and all good programmers practice them. (For those bad at logic: This does not imply that practicing those three rules by themselves make a good programmer!)
It should be perfectly clear, two decades after code has been written, well after the original coder has been hit by a truck, for a non-domain expert to understand what the code is doing. With all comments stripped from the source.
The only thing to achieve this is meaningful method- and variable names. "I have heard this all before" you say and "I do give my identifiers meaningful names". No you don't. I dare you, prove to me that you do. Prove it to yourself at least. Most likely, you can't. Long names are not the same as descriptive names. Especially not for someone who has to maintain your code.
Every time you give a function a name, you have to think of something that explains exactly, in detail, what that function will be doing. That is a talent most often associated with folks that write headlines for newspaper articles. This talent is so rare that most good journalists don't even possess it. It's left to the pro's. What makes you think you can do it? I am sure you can't if you haven't done several years of hard effort and especially refactoring.
When maintaining legacy code, I often come across names like: "PrepareDatesForBubbleDiagram". I am sure the Original Programmer thought he'd done a good job in providing a descriptive function name, but in fact this name isn't worth the bytes it occupies. It says nothing about what the function does. That the function "prepares" dates can be learned at a glance, but WHAT does it do to those dates? Complicated stuff, that's for sure.
In Delphi and other languages, "DateTimes" are floating point numbers, with the part behind the decimal point being a fraction of a day. You can imagine that juggling around with fractions, doing all kinds of arithmetical operation on those numbers easily results in something that can't be easily understood merely by looking at the code. 791023.47104 simply does not look like August 12, 2005, 13:45, and adding some of those numbers and then rounding the result to two decimals is NOT going to tell the casual observer what's going on.
"PrepareDatesForBubbleDiagram" could, with the same clarity have been called: "DoSomethingSecretWithTheDatesForBubbleDiagram". Most code is full of those "descriptive" names.. Of course the right way to name such a function would be "NormalizeDatesToExcludeWeekends" or "ModifyDatesToFiveMinuteResolution". But that takes a bit more thinking and we are not prepared to do it, hyped-up on caffeine as we are or preferring to browse for funny video's on the net. To provide more clarity as to what the function does, also name variables that are not used as simple counters properly. Meaning that from their name should be exactly clear what they do. If that means a variable name takes 20 characters, so be it. Camel-capping is your friend.
"Why" is almost as important as "what"
If I don't know why something is done, I might just as well rip it out completely, see what happens and rewrite the whole thing, making it ten times faster in half as many lines. That's what I usually do when something doesn't work and I have no clue why because the OP abandoned the project.
Let's take "NormalizeDatesToExcludeWeekends" as an example. DateTimes are removed when they fall in a weekend, that I can deduce from the source and the name. But WHY?
Is it because an associated component can't handle them, or because the customer does not want to see weekends, or because the data on weekends is unreliable, or because weekends are not working days and 30% of space can be saved?
When people are working on your old code, it's often because it is buggy, or it's too slow, or features need to be added to it. It would help if it were clear what the code is is supposed to do in the first place. This is why comments have been invented. Some say "It's easy to abuse/overuse comments" but that's just as abusing/overusing money. There is no such thing as "too much money", only money ill-spent and ill-invested. The same goes for comments. There is not such thing as "too many" comments, only unclear, superfluous or misplaced comments. Comments are much less used for the "what" part as for the "why" part. "what" is taken care of by the code itself, the identifier names. "why" is of secondary importance and due to the verbosity involved, comments are better suitable for conveying "why". "Why" should cover the following:
A) Why the code does what it does
B) Why it is coded the way it is coded (including improvement suggestions)
B is most often ignored, even in the rare event of observing A.
With B, it becomes much easier to make refactoring decisions and discover bugs that pertain to algorithm and architecture.
The deepest level of detail is the "how" of the code.
To be able to modify/bugfix code instead of replacing it completely, we need to know how it achieves a purpose, or, more accurately, how the author intended the code to work.
"How" is also covered by comments, and we again need to know two aspects:
A) How the algorithm is supposed to work (a description)
B) How the algorithm is implemented with sufficient detail for a non-domain expert to maintain its code.
An example of how the three fucks are covered in a piece of code:
This code is also an example of "coding hygiene". Assignments and declarations are logically grouped and column-aligned and logical groups of statements are separated by newlines.
Type declarations come in order of "complexity", pointers below their simple type.
Enforcing a 80-column width is counter-productive with today's hi-res screens. We don't live in the 80-column punch card era any more.
Using braces in expressions, even though operator precedence does not require it, makes clear what is intended, very important when bugs have to be fixed later on.
You can put statements on the same line to show they are related but remember that the debugger won't be able to step through the source line by line in that case.
The goal must always be writing the clearest code possible, not to save keystrokes. Most of your time should be spent designing a solution - on paper - anyway. Clean code saves time debugging but - most importantly - it saves a massive amount of time refactoring when it has become "legacy".
Wednesday, November 08, 2006
And I live here:
Last winter, I walked from my job back to my old rental bedsit downtown and I collapsed in Slottsparken and sat in a slump in the mud for 20 minutes. Sad, because I used to be very sportive and used to do a quarter marathon occasionally on Sunday mornings, do 3 km power-swims in the Gulf of Aquaba, lift weights, be a divemaster etc. I am a total wreck now. The nearest shop is 2.5 km. I try to get as much excercise as I can muster though. I had to sell my bicycles (I have done several trips of a few thousand clicks, every day 120 - 140 km, on hybrid bikes with luggage. One of the coolest ones was Czechia - Egypt - Sweden, which took several months). I have written an unpublished book about my travels. The manuscript is lost.
Turns out I did not have to worry about dinner - I sold 9 copies so far. This November is poised to be just as good as it was last year!
I am always so short on cash that I pay my rent much earlier than I should because I am always worried I won't have the money to pay it when it's due. Go programming certainly isn't a way to get rich (except perhaps when you licence a strong engine to Japan, something I hope to do, one day. I have unconventional ideas on how to use automatic learning to get a very strong positional evaluator.
Monday, November 06, 2006
There is no Go software that I know of that can generate small PDF's that can have any language combinations mixed into them, but before I can do that, I need to licence the Cyberbit font. So I just sent them an email. As I understand it, they want an "access fee" and royalties. It used to be a free download with the Netscape browser. A very esthetically pleasing font!
I read on GoDiscussions.com about a popular SGF printing application (I forgot the name), and someone said that making PDF's was so complicated that he gave up. Perhaps due to the complexity of generating small PDF's with mixed-language text.
Saturday, November 04, 2006
RTF, PNG, PDF, EMF, HTML and TIFF are the formats that made it into the final selection. Anything else is superfluous.
I could concentrate well today. I had to rewrite some rendering code in that report generator library I bought, again, to make everything look exactly the same and to get the same rendering features across all output formats.
I also made an elegant way to make sections bold. There still is very much to do, I hope to get it done by the end of this year.
Thursday, November 02, 2006
I hate point sizes as well. They say nothing about the actual font size when used in the context of outputting to a PNG image versus a printer. Sure, a point size is a "size", but bitmaps size differently, depending on the screen resolution so it's pointless
What we want is something like characters per page line, or lines per page height. And the publishing process calculates the appropriate font size, so that no matter where you output to, the result always has the same text in the same size, even though wildly different resolutions are used.
Wednesday, November 01, 2006
Recently I purchased the sourcecode to a library that lets me export to RTF, HTML, PDF etc.
If you want ot put CJK languages in a PDF, and the reader does not have a CJK unicode font, it does not display properly, therefore there is such a thing as "font subset embedding", because embedding the entire font would result in a filesize of more than 10 MB.
The library I bought supports that. Except with "composite glyphs". And unfortunately it's Korean that uses those. So I can't produce - for me - acceptable PDF output that contains Korean.
But I have the source, so poor naive me, I tried to implement it myself in that source (which I paid 349 USD for).
I spent the past three days struggling with it. I finally discovered that it will take me a week to do it, so I'll let it be for the moment.
The vendor bounces my emails as SPAM, and ShareIt! told me their emails to them also bounce..
I should have known better than to buy stuff from India. They have no support forum either. Then again, they were the only ones that had met my requirements.
It's not that Indians are inherently worse at software development. The issue here is that 25 years ago, most were unable to own personal computers. And owning a PC as a kid is usually prerequisite for becoming really, really good, just as with Go. You have to start young. 25 years ago, I had a computer. And with 16, I was late, very late. Extreme focus and dedication (and I had my own guru-level hacker to teach me about pointers and multi-dimensional arrays) the following decade got me through. My brother, I got him a computer when he was twelve. Before he was allowed to do his driving test, he employed two or three people in his turn-key IT company that produced their own POS solution. He wrote a barcode-reader driver from scratch before he had his first girlfriend.
Update: It's solved! The BitStream Cyberbit font properly embeds subsets, for my purposes. I have applied for a license.
Tuesday, October 31, 2006
She gets into the cab, and notices that the VERY handsome cab driver won't stop staring at her.
She asks him why he is staring.
He replies: "I have a question to ask, but I don't want to offend you".
She answers, "My son, you cannot offend me. When you're as old as I am and have been a nun as long as I have, you get a chance to see and hear just about everything. I'm sure that there's nothing you could say or ask that I would find offensive."
"Well, I've always had a fantasy to have a nun kiss me."
She responds, "Well, let's see what we can do about that:
#1, you have to be single and #2, you must be Catholic."
The cab driver is very excited and says, "Yes, I'm single and a Catholic!"
"OK" the nun says. "Pull into the next alley."
The nun fulfills his fantasy with a kiss that would make a hooker blush.
But when they get back on the road, the cab driver starts crying.
"My dear child," said the nun, "Why are you crying?"
"Forgive me but I've sinned. I lied and I must confess; I'm married and I'm Jewish."
The nun says, "That's OK. My name is Kevin and I'm going to a Halloween party."
Norwegian scientists take climatic changes very seriously - they have taken the initiative to store most of the world's seeds inside a mountain - the botanical equivalent of the "Ark" in the movie Deep Impact.
In spite of the fact that Norway is the world's third largest oil exporter, 100% of Norway's electricity production is hydro-electricity.
Norway is great for software development because summers and social life don't really exist here. Opera and Qt are made in Oslo, and one of the most promising newcomers on the comp. Go scene is the Norwegian Fredrik Dahl's WinHonte.
Update #1: A thick blanket of snow covers the garden now and I saw three deer calves pass by.
Update #2: Holy Guacamole! I discovered today that even with winter tires, it is impossible to move even one millimeter, on ice. And you can't brake or change directions either. And that people can't push you to get unstuck either, because they'll slide as well. I learned a lot today. It's possible to thoroughly de-ice a car with a plastic cutting board and six buckets of warm water. And that I need to buy spikes ASAP or starve (I live miles from the nearest shop and it's an sheet of ice out there steep down the hill). My car is far away down the hill and I had to walk in -5 ºC without a jacket back home - stupid me. In Norway they say: "Det finnes ikke dårlig vær, bare dårlig klær". Since Norwegian is so extremely similar to English, I don't have to translate this. I don't have money for those spikes. Then again, I shouldn't have moved to the middle of nowhere.
Chess Games Belong To The World - Published a decade ago in "The Kibitzer".
By Tim Harding
Some chess players may think they will benefit if the recent FIDE move towards the copyrighting of chess games goes ahead, but I can assure you that 99 per cent of the chess community will suffer and that means you, dear reader. So I call on you all to put pressure on FIDE, directly or through whatever national chess organisation to which you may belong, to call a halt to this lunacy now. What should be protected is the "value added" of good notes by the players and good writers and chess teachers, not the "bare" scores (whether in print or on a web page or a computer database) that just give the moves played in a game.
Just to give the background for those who don't know the issue, FIDE announced a few weeks ago the rules for its forthcoming knockout world championship contest and these included under Paragraph 10 - Playing Conditions (10.2 c): "The players' score sheets are the property of the players and FIDE, and FIDE has exclusive rights to publication." Read those words carefully; I shall return to them later.
I am not a lawyer so will not go into many legal technicalities here, but for those who want to explore that aspect I recommend you read Mark Crowther's lengthy article on the topic in The Week In Chess, No. 146, which includes a legal opinion that sounds about right to me. You can easily find TWIC on the Net and read it for yourself.
My arguments in this column are essentially layman's views but are based on my 30+ years as an active chess player at a fairly high level, 25 years as a published chess author and journalist, and now with a publisher's hat to wear too!
Actually I doubt if FIDE have a legal leg to stand on, given there is a century of precedent of free publication of chess games worldwide while previous legal attempts to copyright games (in a few countries) have failed, so I hope that this is just a try-on and that they will back down. However, let us look at the scenario if FIDE were to win a test case in a major jurisdiction such as the USA, United Kingdom or Germany.
As a practical master-level correspondence player, I might find it beneficial to my results in the short-run if my games were harder to get hold of, so that my opponents could not so easily prepare for me, and it may be that FIDE hope the majority of master level players will back their move for that reason. Maybe by refusing permission for my losses to be published, I could even spare myself some blushes. However, those gains would be more than outweighed by my not easily being able to obtain the games of opponents and of other players who are approximately at my level, as well as by having to pay to see what the Kasparovs and Topalovs of this world are getting up to.
Certainly the top grandmasters are the only players, if any, who will make any money out of this. The games of major events will still be available, but somebody will get paid for them. We'll come to that in a minute. The games of ordinary Joe and Jill Soaps played in ordinary chess competitions could become unpublishable, except where players themselves send them in for publication.
In a worst case scenario, we could even see chess journalists and publishers sued for articles and books already published but it is more likely that FIDE would attempt to enforce their view on a "from now on" basis. If FIDE succeeded in controlling the game scores in events under its own jurisdiction, the world correspondence chess governing body ICCF might be tempted to try and follow suit, and the same could go for other bodies that organise chess events, such as national associations and even clubs and commercial tournament organisers.
Curiously with correspondence games, there is a split. Traditional postal games, unlike over-the-board games, are not played in public so usually only the players and perhaps the tournament director ever sees the moves. On the other hand, email games played under the auspices of ICCF and IECG cannot at present be hidden from future opponents, as these organisations email monthly reports (including the PGN game scores of all completed games) to all those who compete in their events. Of course they could change that policy.
Undoubtedly many chess organisers have doubts about the value of chess databases, and particularly free games postings on the Net, because it hits at a possible source of income for them and makes it harder, for example, to produce a saleable tournament book when
all games are already available freely. However, if they were to back FIDE's move, they would in my opinion undermine the popularity of the game. For example, newspaper columnists would have to tell their editors they can only publish a game by a player who is not fifty years dead if he or she has actually sent them the game; otherwise a fee will be payable, just as radio stations have to pay a fee for every record they spin. Speaking as somebody who wrote a national chess newspaper's weekly chess column for almost two decades, the editor and his accountant would say goodbye and run a column on Scrabble or knitting instead.
Now to put on my chess publisher hat, I would fear that "Chess Mail" (and many other magazines) might have to cease publication if copyright was enforceable on correspondence games. At the very least, we could only publish games sent to us by either one of the
players or the tournament director and would require a written confirmation from them that we could publish the game. We might even have to cut references to other players' games from the notes! The chess publishing world would shrink dramatically. You would
probably be left, in each main language, with only two or three giants who would swallow the cut in their profits and pay up in return for the pleasure of seeing most of their competition vanish - and maybe a few minnows whose circulation and income would be too small to be worth suing.
With my chess author hat on, I can tell you that publishers would eagerly start commissioning books on areas of the game that wouldn't easily fall under FIDE's hammer (e.g. endgame books, books on 19th century chess, chess variants and players' autobiographies) while the authors of openings manuals would be told that it is no longer OK to include modern complete games unless they are accompanied by a notarised letter of permission from one of the players. In other words, forget openings books.
I always have written my own books and articles under the (up to now) prevailing view that bare unannotated game scores are public events, like the scorecard of a cricket or baseball game which could be compiled by anyone who watched it. Quoting other people's annotations at length would normally require permission, but short excerpts would fall under the accepted principle in the academic world that free quotations for the purpose of comment and criticism are normal practice essential for free debate. When I wrote notes to one of my games for a particular magazine, as a favour to its editor, and then saw it copied (without even a "may I?" request) in "Fernschach", I moaned but I did not sue. Maybe next time!
At this point, I would just like to refer back to the FIDE rule above, which really mixes up two different copyright issues. "The players' score sheets are the property of the players " can only be taken to the individuals' handwritten record of the game as it was in progress, and as such there is not really a problem. Of course only the most famous players can expect to be able to make any money out of selling their autographs (Kamsky tried it a few years ago) but so long as the gamescores (i.e. the record of the moves) remain available, I would not have any problem with this.
The second part of the rule is where the problems arise: "and FIDE, and FIDE has exclusive rights to publication." The final clause is also clear enough, albeit objectionable: FIDE is saying that it, as organiser of the event, and NOT the players have the right of publishing the games. In other words, if Karpov plays Kramnik in the event and one, other or both of the players want to send the games for publication to, say, Informator or New In Chess they cannot do this without FIDE's permission (or perhaps without those publications buying some kind of licence from FIDE). Karpov can say but these are my notes, but FIDE can retort that the right to publish the game is its alone. If the readers can figure out from the notes alone what the moves were, they must have a very high IQ.
The middle part of the sentence is most curious also. In the FIDE rule quoted above, that first "and FIDE" means that FIDE intends to assert equal right with the players to ownership of the intellectual copyright of the game played between them. Leaving aside for the moment the question of whether a chess game can be intellectual copyright, FIDE claims here that because a game is played under its auspices, it owns the game (at least in part). Effectively FIDE is stating that, in competing in one of its events,he players are working for FIDE on an indentured basis rather than as freelances. However, the contestants are playing for prize money, not fixed salaries, so I think this one is a non-starter, Mr Ilyuzhiminov.
Finally, are chess games copyrightable at all? As a chess author and publisher, I am certainly interested in defending copyright where it genuinely exists, especially as so many people on the Net are very casual about it. However, as Mark Crowther put it so well in TWIC 149: "I have no problem obeying the law, I do have a problem obeying laws that don't exist". Intellectual copyright may exist where an author, or artist, working alone produces a text or other identifiable piece of work (it could be sculpture or music but one-off "performance art" would not qualify) which is reproduceable. It does not have to be artistic work; a textbook or any other original writing also qualifies. In that case the law says that the creator, or his/her heirs, own the rights to reproducing it, normally until 50 years after their death. If there are joint authors, they choose to create the work together and share in the rights arising.
A chess game does not come about in this way, but rather by conflict between the two players, as a football game arises from the interplay of two sides. It's not possible for me to say "I have copyright in the white moves and you have copyright in Black's moves"; neither is meaningful without the other and even if we decide to share the rights to the game, it is debatable whether the record of a public event is copyrightable.
So finally we have to ask the old question, "cui bono?", who would benefit? Clearly apart from FIDE itself, one or two companies like ChessBase, who would be able to increase the prices of their databases, and just a few top grandmasters, who already cream off most of the money that's available to be made in the chess world. Do you really want to support a move that will make you, and chess literature poorer while these happy few get richer?
*AGA and GoBase appear to be the only Go-related commercial entities that are highly active in opposing the freedom of Go game records - and not shunning immoral or even illegal methods to achieve their goal. Do the sensible thing: Keep Go games free and don't renew your AGA membership!
Monday, October 30, 2006
Well, some folks cancelled their membership. But now it turns out that some people don't renew their membership! I have just been informed by someone that they received this email from AGA:
Your American Go Association membership is critical to sustaining and growing the American Go-playing community, which has experienced record growth in the last few years, with more tournaments, clubs and activities that ever before. Your membership expires on x/xx/2006 and we're counting on your continued support to enable us to continue publishing the popular weekly E-Journal, the Yearbook, rating players, and promoting American Go across the country.
This someone hasn't forgotten about what AGA did in an attempt to harm my business!
This person's AGA membership has expired and now it's AGA, and not me, who will be left in the cold because this person is not going to renew the subscription. Chapeau. Some people do have principles.
So that's several AGA memberships down the drain for who knows - the coming decade? With 30 USD/year for say the coming ten years and three people disgusted with them, that makes 900 USD in lost income for AGA. That's perhaps comparable to the damage AGA caused to my Go software company. I can't judge it because I have more than 100 American customers, but AGA's "review" was incredibly vile so it must have had a negative effect on at least their more naive readership.
When I asked AGA to rectify their nonsense, they invited anyone to write why they did not like me, so the following AGA eJournal had gems like: "I think that Frank might even install a virus on my computer, I don't trust him".
I have a dark brown suspicion that it's going to be much more than a handful of non-renewers, if AGA does not publicly apologize and publishes an unbiased review of my software. I'm not asking for laurels, I'm asking to cut the slander and lies, that's all. People are wiser than to subsidise an organization that puts the political/commercial agenda of their officers before unbiased reporting.
Be ethical - don't renew your AGA subscription. They don't deserve it. Instead of buying a year of AGA subscription, send AGA a protest email, send it to me with full headers and receive Moyo Go Studio for the same price as a year of AGA membership. AGA might think they are "big" and I am "small", but we will see who has the last laugh. Thousands of people read this blog (more than 1500 profile views). I have more than a hundred American customers. Americans read this blog too. Please boycot AGA, until they stop boycotting me. They don't deserve your money. They are not interested in unbiased reporting, but they are interested in your money.
Thursday, October 26, 2006
You can put any SGF field(s) left and/or right aligned anywhere, as well as a few other fields (like filename, page number, current date etc.)
But that is not enough. Sometimes you want to combine fields. Instead of putting the name of a player left and her rank right, or the rank beneath the name, we want to combine fields, add perhaps even add our own text to them.
Some existing Go publishing software allows you to do that, and I want to be just as flexible, but without the need to learn any kind of cryptic "scipting language" stuff like other software has. Because the average person does not want to bother with that. Heck, I am a programmer and I don't want to bother with that.
So see here the solution: You build your own custom fields by simply typing text and combining them with available fields. Anyone intuitively understands how that works, it is impossible to make a mistake, and there is no need to learn Backus-Naur grammar or XML or whatever.
Wednesday, October 25, 2006
Interview with Jeff Hawkins on his book "On Intelligence".
Paper by Jeff Hawkins on Hierarchical Temporal Memory.
Powerpoint presentation for his talk at IBM's Almaden Institute.
..and the lecture itself:
Friday, October 20, 2006
As you can see, those animals (craftily avoiding having to use the plural of moose) are designed to kick the crap out of bears, nerdy programmers and their landlords.
As that moose was nibbling on the apples, my landlord walked up to it and said: "Shoo!". The moose took a little step towards the landlord, and another, and appeared to prepare to start doing what moose have a talent for - breaking your bones. My landlord prevented this by running towards it, yelling intimidatingly. This resulted in the moose wreaking havoc on our neighbors' hedge by running through it. But it returned a little later and I made this picture. It was barely bothered by the flash.
That's my Saab 900 in the back, it got repaired today because it failed the EU test.
We used it in Lapland and once there was a reindeer walking in front of us. (Reindeer are cutesy fluffy animals, especially compared to the plural of moose). Now and then it would turn its head and give us some room to pass - when we wouldn't, it would take the middle of the road again. Sweet.
Tuesday, October 17, 2006
A Japanese customer (his name is Wataru) sent me not one, but TWO Japanse Go software packages!
Not only that, but also the latest CD by Kitaro, "Asian Café".
And a bunch of other stylish stuff, with which I have decorated the room.
These kind of things give me renewed energy. Unbelievable. We're talking about a paying customer who gives me a birthday present costing way over 200 $!
This might have been the best birthday present I ever got.
Thank you, Wataru!
MoyoGo offers 52,000 pro games. But for some reason, AGA's webmaster does not mention that Moyo Go contains 52,000 pro games.
That's biased reporting. That's cheating your paying members out of valuable information. Let them decide what is ethical. Do not essentially lie to your members by hiding information they pay you to provide. A classic example of biased reporting. Hiding positive facts because of personal financial motives. Highlighting aspects of product X and hiding the same aspects of product Y with the intent of benefitting financially. Why is the public informed of the number of pro games in MasterGo and not in MoyoGo?
Very simple. MasterGo's author is Chuck Robbins.
And Chuck Robbins is not just AGA's webmaster, he also is an AGA Board Director!
So I guess you don't need to know. It's in the direct financial interest of AGA's webmaster and director Chuck Robbins - author of MasterGo and co-owner of Slate & Shell - to tell you how many pro games MasterGo has, rather than how many pro games Moyo Go Studio has.
Note how Bill Cobb is selling MasterGo at Slate & Shell and also working for AGA.
This is what others said about yet another AGA attack: A vile "review" of my software containing many deliberate lies and slanderous allegations, concluding that it is basically "useless crap" and might even install a virus. Philip Waldron falsely claimed the software has no Help file, and instead of focussing on the pattern expert system, he ignores it and calls the software a "game database" and says that the "analysis feature performs poorly". Note: There is no analysis feature in Moyo Go. He was confused with the auto-annotation of patterns with a high statistical move-likelihood.
If you are a customer of Moyo Go Studio, and if you are an AGA member, please tell them what you think of this. I am working hard to provide free updates of my software, but I need your help, defending myself against AGA's ongoing information warfare campaign of rigged reviews and censored listings.
Shame on AGA's leadership and shame on AGA's members who allow Slate & Shell's hijacking of AGA to continue.
AGA has been punished by the Ing Foundation for alleged financial malfeasance (starting Slate & Shell with Ing money), but there have been rumors that Ing considers sponsoring AGA again. Please inform the Ing Foundation that AGA is still as corrupt as before:
Ing Chang-ki Wei-ch'i Education Foundation
4th floor, Kuang-Fu Bldg
35 Kuang Fu S. Rd.
Monday, October 16, 2006
A while ago, SmartGo went out on a limb and purchased a lot of professional, custom-made glyphs. (SmartGo buys them, StoneBase steals them and I draw them by hand). It looks really expensive and professional (although a bit ugly and not so intuitive, in my opinion, but others complimented Anders on his new GUI so it might just be a matter of taste - it sure looks better than the previous one ;-).
I wondered why my own glyphs looked a bit less fancy. I figured it had something to do with the background color. SmartGo's is light blue. When I got up today, I implemented a new way of handling themes. Instead of choosing theme names, you choose theme colors now, and much more of the user interface becomes "themed". See here the light blue theme. Looks great!
I always strive to reduce clutter, so I eliminated toolbar borders and -gradients.
The StoneBase guy drew my negative attention last week, so I decided to evaluate his software. It is clear that Moyo Go served as an example, and he actually said so. No harm in that, but I went looking for some improvement ideas. I found one: Moyo Go's old triangle annotation obscured the stone numbers. I liked the solution of using a small triangle in the lower right corner. Done.
Sunday, October 15, 2006
Every time I go back to the publishing module, a "showstopper" event occurs that pulls me off it again. A few days ago I implemented Unicode support for the board hint.
But because the component I used for that is buggy, the program crashed at exit. It took me about 5 hours to find that out (I can't concentrate very well). Some weird stack overwrite due to a rogue pointer.
I then tried to do it another way, but due to yet another bug in that 3rd party code, that didn't work either.
So in good "not invented here" tradition, I decided to roll my own! See here the result.
Friday, October 13, 2006
I just suffered a DDOS attack, my webhost called it a "synflood" attack due to the open DNS servers. They were open because they updated their servers and forgot to close them. The attack came mainly from China (from "zombies", hijacked computers). For 24 hours, I could not receive email either.
Now who would be behind this..
Anyway, I have just now denied the entire People's Republic of China access to my website, including this blog. No idea how it works through a proxy server, but if everything went according to how it is intended to work (.htaccess file), China can't see me any more.
If you are in China, and you can read this, drop me a line at firstname.lastname@example.org, give me your IP range and I'll fix it ;-)
I just have limited the bandwidth of my website to 1 GB/hour, so I won't get any nasty surprises later on.
Thursday, October 12, 2006
Stonebase's author is a Mr. A Shui from Beijing:
I wonder what else he stole from other colleagues. Some of my stuff is encrypted (like the giant human hand cursor), but anything he could extract out of the (pirated..) executable, he did.
Anyway, with this I can continue the hunt, there must be a lot of Shui's in Beijing but at least this narrows it down. I just need his address in order to serve him with a supoena by a Chinese lawyer. The good thing is that it probably is not going to cost me too much to hire one of Beijings most vociferous and successful lawyers who have experience with this kind of thing.
People seem to think that getting pirated in China is somehow "unavoidable", but that's nonsense. The Chinese government is eager to show the West that they take such crime seriously, and consequently the Chinese Police come down hard on perpotrators.
This is what happened with another Go software thief: ("Fair Use": I purchased this article for 8$ but since Google started scanning and making freely available all major US newspaper articles of the past decades, this article has entered the public domain)
SONNI EFRON. The Los Angeles Times. (Record edition). Los Angeles, Calif.: Aug 19, 1999. pg. 1
"They burst onto the international go scene about 2 1/2 years ago with a program called "Silver Igo" developed by a North Korean state-run trading enterprise called Silver Star. Competitors were amazed that North Korea could afford to channel top computer experts into game programming at a time when the cash-strapped Stalinist state was begging for food aid.
"They are probably thinking about other businesses," explained Naritatsu Yamamoto of Silver Star Japan, which represents the North Korean go and shogi programs. "They want to demonstrate their technical skills in order to get other work."
Silver Igo beat 40 other programs from around the world to win the FOST cup, run by an artificial-intelligence group, in Tokyo in August 1998.
But soon after, the Chinese author of one of the most successful go programs, Chen Zhixing, accused the Silver Igo program of having plagiarized his "Handtalk." Chen, 69, a retired chemistry professor from Guangzhou, China, has posted the accusations, along with details of the allegedly cribbed computer code, on his Web page at http://www.wulu.com/ and demanded the return of the FOST cup title.
Masahiro Okasaki, who was the chief judge for the tournament, said Silver Igo was not a direct copy of Handtalk, although like many programs, it imitated the ideas of the powerful Chinese program.
The legalities of software plagiarism remain vague in Japan, and the North Koreans were allowed to keep their title. But in a bit of intrigue around the same time, the Silver Star head was executed in North Korea, reportedly for political reasons having nothing to do with the go program, according to Okasaki.
The go world remains abuzz with rumors about the incident and questions about whether the Silver Star executive might have been executed because the plagiarism charges had embarrassed the North Korean leadership. Okasaki emphatically denies that version of events.
Japanese media did report the execution of a trading company executive in September 1998 but did not name the official or even the date when he was reportedly shot. Chen, in a telephone interview, said he has had no response to his allegations. And hermitic North Korea's "bamboo curtain" has made the rumors virtually impossible to confirm or deny.
Meanwhile, Silver Star has been shut down, and the 22 or 23 people working in the games section have been moved to North Korea's largest computer enterprise, called KCC, according to Silver Star Japan's Yamamoto."
Wednesday, October 11, 2006
From: "Melon Ware"
Subject: ABOUT FRANK DE GROOT
Date: 10 Oct 2006 05:34:13 -0700
X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:126.96.36.199) Gecko/20060909 Firefox/188.8.131.52,gzip(gfe),gzip(gfe)
IT IS ABOUT FRANK DE GROOT ATTEMPTS MASSIVE PIRACY OF SMARTGO AND OTHER COMPETING GO SOFTWARE. THE PLAN WAS CONCEIVED BY HIM LATE LAST YEAR AND I WAS APPROACHED BY MY SOURCE AS FINANCIAL AID FOR HIS DISTRIBUTION CHAIN.
I DECIDED TO SPEAK OUT NOW BECAUSE WE LOST OUR "GUARANTEE OF VOLUME" AS PROMISED BY HIM.
The NNTP Posting-host of 184.108.40.206 (see header) resolves to beijing.asianamericancoal.com in China.
I am now in the process of finding out his real name and address, and then I will hire a lawyer in China to submit this case to the police in his city of residence. So far it's plagiarism and aggravated slander (slander with intent to cause financial damage to a competitor).
This is the WHOIS record for his website, www.stonebase.cn:
Saturday, October 07, 2006
"I'm so sorry. Moyogo is great software, i'm very like it. I use for
reference Moyogo to develop my software(StoneBase).
as you know, i'm ripped Moyogo's sounds and stones. but board image isn't ripped. It's downloaded from your web page background picture."
When it's copied from my website, it isn't ripped?? I have news for you - It's highly illegal and highly unethical, buddy. Not to mention the ripping of the sounds and stones from my (pirated!) software.
Friday, October 06, 2006
Part of his presentation will be about Moyo Go Studio's much acclaimed pattern system.
I can already disclose that he will not say that it sucks :-))
Sunday, October 01, 2006
AGA's boring, biased rag is getting marginalized by "breakfast's" fresh initiative. GoAma already has about half the readership of AGA's propaganda tool, and GoAma is poised to become the newletter to read if you want to be up-to-date with what happens in the realm of tournaments, remarkable games and who's who in the world of Go. Of course, this is just the start - I'm sure Sasha will have no problems turning this service into the must-read Go magazine covering everything under the sun (as long as it's about Go). I recognize a winner when I see one.
Saturday, September 30, 2006
Ladies - don't you just love that Spanish accent?
I am honored that he - someone who has wiped the floor with more than one 9p - took the time to do it, and perhaps he'll make a full-fledged lesson soon, for the users of Moyo Go Studio.
There is a growing market for Audio Go lessons, and there are more and more people using Moyo Go Studio. Those hundreds who've bought the program are obviously serious in improving at Go (otherwise, why pay sixty dollars for a Go information system, right?).
If there is interest for making Audio Go lessons with Moyo Go Studio, I will make a free SGF viewer available that can play those lessons.
Friday, September 29, 2006
Naive sod as I am, always believing in the good of humanity, I simply did a literal search and if there was no exact match, I didn't translate a thing. So not much got translated. But a few hours ago I got off my lazy ass, figured out what all that extra crap meant and wrote some code that gets rid of it and converts it into standard SGF rank properties. One of the funny things I discovered that there's no such thing as a 1p rank, it's called "beginning stage" or something.
Tonight I'll start reading in all pro games again. I have two hundred thousand pro game files from many sources. Heaven permitting, after it has all been done, I will have the most complete, Romanized pro game collection. The code that is able to deal with all violations of the SGF standard is humongous.
Thursday, September 28, 2006
Nope - there is something very major (still secret, due to the fact that my enemies will try to prevent it) coming up, and Moyo Go has to be as "clean" as possible for that event.
I finally got around to the Publishing (printing etc.) and I have a proof-of-concept:
This is three times the same test output, but all I had to do was click another option. And there is more where that came from :-) As a first test, I'm very happy with it. It all looks like it should look, also on the printer. And this is using a very low quality output setting with only 4::1 antialiasing instead of 16::1.
The first version of publishing will only have one kind of diagrams: Column aligned ones. Will look very cool though. And you'll be able to plaster the same thing as normally comes out of the printer onto your website too! In three-columned pages, for example. I'll try to get this out the door ASAP.
Save it in C:\Program Files\Moyo Go Studio\Skins and it will become available as a board skin.
I would like to say something about the issue of ripping off a program's resources, like StoneBase did with my board texture, stones and Blake Habers' studio recorded stone sounds. I remember it took me an entire working day to make my board texture bitmap! It starts with finding the perfect texture. I ended up on wood websites looking for large, high-resolution images in non-compressed format. Those are extremely rare. Then I had to make sure the lines/cm and the hue were "just right", so I browsed the web for board samples of expensive Kaya gobans and others. I stretched/compressed the image and changed the RGB distribution to make it look like a nice golden Kaya.
But that was not all of it. I wanted to have the ability to use a small version for a board by using "tiling", but without apparent "seams". That is only possible when you do a trick: You have to flip & mirror the image three times so you get four images, put them together to form one large image, and then the left side merges seamlessly with the right side, and the top with the bottom.
Then I had to compress it just well. At the largest magnification, you should not see JPG artifacts, but neither should it be too large because it takes too long to load otherwise.
Finally, I encrypted the image and added it as a resource. A day of work. It was ripped not by decryption cracking, but by simply turning off board lines, hoshi points and indices, and copying the empty board at full screen size. Same with the encrypted sounds: They were played and recorded with a small utility that can record sounds that are played by "hooking" itself into the data that goes to the sound card. The stones (I draw them using OpenGL) were ripped by making screen captures of them. That became possible because they also stole the board itself, so the stones would blend in perfectly with the board, otherwise there would be an edge between the antialiased stone border and a board of different hue.
So indeed, the Go software world is dog-eat-dog. I wonder where that term came from ;-)