As is apparent if you are watching the date of posts, it has been over a year since my last posting to this journal, and in that time, much has come to pass to grow the state of Go gaming on the iPhone. There is today a freely available program to play multiplayer matches live over the internet, observe tournament matches in progress and kibitz; a program which allows (at latest count) over 10 thousand professional games, 2 thousand problems ranging in difficulty from 30 kyu to 6 dan, encompassing many lifetimes worth of study material and costs just $10; a self-described inexpensive Go app which allows the automated playback of ancient well-known game records, displayed full screen for your viewing pleasure and study (or perhaps just your confused stare, if you are a mere dabbler in the visual aspects of our game.)

One lovely program substitutes quite nicely for the bowls of stones and board in case of an impromtu match with a fellow enthusiast, one who doesn’t mind passing the single phone back and forth or scrunching up with you over its screen like a tiny little magnetic set. It is charmingly called simply, “Stones.”  Some critique it for a lack of a computer player such as GnuGo, but I find it one of the best of the bunch based on its look and feel which is different from all the other apps.  Stones provides virtual bowls out of which you drag your stones onto the board for each move, an  adaptation of spatial reasoning that shines on the unique environment that the iPhone and iPod touch represent.

There are advantages, flaws, and features to each different implementation. The look and feel of an app also count a great deal in the final judgment because this is a game one pursued in one’s leisure, and must therefore be enjoyable to study and gain mastery in.  I would like to review each in more depth, but the executive summary for those who have not been following the development of the App Store ecosystem and iPhone coding tools is good:  plenty of software exist doing a variety of different related tasks, providing an ample number of niche applications that can be solved by different software developers.  There’s plenty of good code out there to learn from, and lots of evolving implementation ideas out there happening in indie gaming generally and iPhone app development specifically.

Other board games in the App Store are also bringing good new implementation ideas that would fit well with Go on the iPhone.  There is an app called “Chess With Friends” by Newtoy, which uses turn-based play which is reminiscent of the Dragon Go Server and of course, iShudan. The interface takes a quick reading of your current game in progress and the current move on opening and includes a running counter of the “moves served” via the app.

The concept of a turn-based game has value seperate from other implementations because it is asynchronous, and well suited for situations where players are working from disparate time zones and may otherwise have difficulty synchronizing their schedules.  Turn-based play offers different challenges to a developer than real-time play does in making the app useful and easy to continue using over time.  Turn based games come with an increased risk of wasted play effort due to abandonment, but offers in exchange source material for critique and self-study.

One of the areas in which most of the existing apps lack in are in the way they treat the users’ data. In a game that is suitably responsible for large volumes of ever increasing data, the output and input of these tiny tools should function like UNIX pipes: chaining together small single-purpose utilities to create more complex, highly powerful yet concise statements that focus on desired results with a laser-like focus. The reason that “Web 2.0″ craftsmen are crazy excited about things like mash-ups and XML and so on is because it makes the glue of all of these distinct tools interoperable and Open in a way that transcends simple commercial interests.

If the rise of Linux (both server and desktop) and similar Open Source poster children such as Firefox and Apache to challenge well-funded commercial interests no less than Microsoft teaches us something, it is that there is some kernel of magic inside this idea of opening or sharing our data, our constructs of ideas in the bare language that they work on our behalf.

The iPhone Go software marketplace, then, mirrors that of the larger game development community: our games should give us our data, export it, allow import and permutation, and creative enhancement or contribution back whether for individual achievement or commercial gain.

Our kifu, or game records, belong to the players in a game, similar to the performance of a musical art, and the results of playing in the game engine should allow the exit, and ideally the importation, of this data in ways that allow enhancement and interoperability that benefits all programs in the noosphere.

I feel blessed in that I am occasionally given to moments of clarity, and it is sometimes my curse that I am unable to communicate these visions adequately to others. I very much feel like this is the case where it comes to the OLPC project, in view of the recent headlines and news that have been coming out as well as some members of the public getting their hands on them for the first time.

I think the laptop is great, and it exceeds my expectations. I am more than passingly familiar with Linux, and I am used to doing my own troubleshooting or research to figure out how to do something rather than depending on help lines or a printed manual. There are obviously lots of other people like this, but this is not mainstream. Unfortunately, some people are so self centric that they cannot imagine a project which doesn’t want their money and isn’t designed for them. (Imagine, the audacity of a laptop which doesn’t help some overpaid journalistic hack get his copy done on time and submitted to an editor somewhere, horrors!)

One of the defining quotations about the project by it’s leader is that it isn’t a laptop project, but an educational project. This truism underlies the heart of the differing perspectives at work here: with everyone coming to the table with different goals and expectations, there are bound to be a variety of interpretations of any success or failure.

Intel has announced that they are splitting from the project due to differences with Negroponte, and vice versa. The CTO considered responsible for the screen technology is leaving to pursue a commercial venture separate from the OLPC Foundation, that ultimately benefits the Foundation. Commentary on Slashdot and other tech-sites varies from premature declarations of the project being a ‘commercial failure’, to rhetorical arguments about the utility of giving children technology when they don’t have access to more basic needs, both of which I think manage to miss the point. Luddite criticisms are easily disregarded, but one of the most well-thought out criticisms came from a linked article about OLPC not catching on in India from earlier last summer, and it brings me to my conclusion: this OLPC project is going to be right for some cultures and some educational environments and economies, and not others.

I would argue that the OLPC has already been a success because it has exposed the underserved economic factors that prevent such laptops from already existing, and has stimulated the very tech powers that it seeks to unseat to work to address these needs. This is reflected in the Intel entry to third-world markets, the Classmate PC.

In the world of software, code is king; this means that people who have a working model of any software idea win any discussion about the merits of their approach. Reality wins by default. We can stand around and argue about what constitutes the right approach, or we can demonstrate what we are talking about since people that believe in the project enough have made it so. I think this is a wonderful laptop for me, and a terrible laptop for the editorial writer at The Economist. It encourages children to throw away a dependency model for their future offered by the likes of Intel and Microsoft, and to take on Free Software ideals and self-realized destiny.

  This week marks a new calendar year, as well as a sprint forward into what promises to be a busy time. It was about a year ago that I made my commitment to re-dedicate myself to learning and playing go, and I feel that I have made satisfactory progress to that limited goal. I have barely scratched the surface yet on the amount of total material I hope to someday master. I am playing semi-regularly now both over the board and online, and have managed to teach the game to a handful of interested others both at my office and some random passerby. I could certainly do with a more rigorous and steady daily reading exercise or tsumego, and I hope to build that into my routine soon, as there is copious sources for this being hand-delivered to my inbox each week.

Perhaps some of my lacking as a go student can be excused by my new life as a go programmer, as I have managed to find myself involved in porting or writing code for 3 distinct platforms for playing and learning Go. My XO laptop from the OLPC Foundation has arrived, and already I have begun customizing and learning the unique interface so that I can begin a go-related project on there. And I continue, however haltingly, to work on iShudan as a web application for the iPhone. I have some designs on a 1.0 release soon, so that people can download a fully functioning release and install to a local server for starting their own Go Dojo with other internet connected go players. However geeky I may be, writing code is certainly not my primary skill set, so this is all a series of rather ambitious projects where I am learning a lot and each new environment brings certain advantages and disadvantages.

I have joined the fledgling Seattle XO Users Group to obtain assistance and support in working on the XO, and I hope I might even be able to contribute some documentation back to the community as well.

The laptop is a marvel of engineering and design, but also fails to achieve its potential without the necessary software and processes to use it in place. The promise of the OLPC project overall is incredibly powerful, and I hope that this seeding of units out to developers in the general public will vitalize the effort, validate the current progress, and bring in much-needed new blood to this idea.

This post was composed and written from the XO, where I have installed and am using a modified version of Opera. This brings the ability to use tabs, and custom key mappings that allow browsing with the screen folded into book mode. The experience is quite extra-ordinary.

I can’t write long, as it is late. Let it suffice for me to state that I passed the first introductory exam for the FCC Technician Class license for amateur radio operators this recent Tuesday evening at the Radio Club inTacoma. I haven’t been given the callsign yet, but I will remain patient and surely it will come. I would like to then get a dual band handheld with which I can talk and receive on the local repeaters, as well as other local sources of interest.

I have also had some great games on iShudan, and someone new has started a game there with me. I am playing with my dad and Sam on an almost daily basis.

Good night, and good luck.

good night and good luck

PS.  Waiting patiently still for my OLPC.

 Today, I thought I would post up the wallpaper that I’ve been using for some time on my PC work laptop. I didn’t make this, but found it online somewhere other than at the creators site. I might not have found it again, except that it is conveniently watermarked with their web page address and the site is still active.

GoInTheMorningI often find that I am working in the morning, and this is entitled “Go In The Morning” by the artist, Nicholas Rougier. I think the tatami mats and the sunlight bring a particular restfulness to the scene, and I often imagine myself sitting there at the board instead of working late into the wee hours of the morning on a laptop. If I were to be able to construct a dream world where I could spend time and abide for a while, I would love for this to be a room in my house, sunlight streaming in a window and falling down onto a problem I am working through in the quiet morning hours. A mug of tea is warming my left hand and a go stone is held between the tips of my fingers on my right hand. The house is quiet and still on an early weekend morning, and I am the only one awake yet.

Sigh. I’m going on vacation today, so mostly just continuing my games on iShudan at the Dojo for a few days. Reading, family time, and unplugging from work for the holiday week. Have a good holiday if you are celebrating one, and have a pleasant week anyway if you aren’t.

I played a game this week that could have used this reference from Sensei’s List: The Bulky Five. There is also this link to an interesting video that was mentioned on a computer Go mailing list I’m on, where the presenter is talking to a non-go playing computer science audience about Go, and one method of searching move trees for a Go-playing program.

Exploration exploitation in Go: UCT for Monte-Carlo Go, Silvain Gelly

Ciao!

The Theory And Practice Of GoI have a book on loan from my friend Bob entitled The Theory And Practice of Go, which is a translation from an original German treatise by O. Korschelt. Korschelt was an German engineer of one sort or another, accounts differ on what precisely he did while in Japan for over 20 years. He was employed by the Meiji Government to help Japan modernize during the early 1860′s. Chemistry, soil improvement, and so on…

Korschelt also fancied himself a writer, as he wrote many other “articles” (and I mean this in the classical sense, these works are more like brief outlines for a book or a masters thesis!) about diverse topics like Fortune Telling, Sake, and Lacquer. His book is also a counterpoint to another famous Go book, Hoen Shinpo, which was written by Honinbo Shuho. A man some call the father of Western Go, Honinbo Shuho (1838 ~ 1886) was the teacher of Korschelt while he was in Japan, and tutored him through what Korschelt describes as the “tedious elementary stages of the game” and “got on far enough to see what an excellent game Go really is and that its level of skill is a challenge to chess”. I was particularly fond of this passage from his book:

“Rather than being the image of a single struggle as in chess, Go is much more like the panorama of an entire campaign or complex theater of war. And so it is more like modern warfare where strategic mass movements are the ultimate determinants of victory. … As in modern warfare, direct combat, without supporting tactics, rarely occurs. In fact, to engage too soon in direct combat frequently spells defeat. Comprehensive strategy and only comprehensive strategy makes victory certain.” (emphasis mine)

This book has been source material for a large number of other key books to appear in English, developing and nuturing a growing population of interested Westerners in what has been until recent times a very Eastern tradition. Korschalt was writing in German, and his treatise on Go was rescued from the aging public record via microfilm made by the Library of Congress for the translators, under the title: DAS “GO” -SPIEL by The German Eastern-Asia Society. The Society was established in 1873 to study “the countries and peoples of East Asia and to promote in the world a knowledge of these.” Samuel King and George Leckie translated , supplemented, and retitled the work “The Theory And Practice Of Go” in order to better align the body of work with its given name in 1963.

The original source material could be considered public domain by now, although I have done absolutely no research into the matter whatsoever… I will be taking this book, as well as Technician Class: FCC License Preparation for Element 2 Technician Class Theory by Gordon West on vacation to see my family this week. I think sometimes I must have the most boring vacation reading of anyone on the planet, with the exception of investment bankers or political lobbyists.

The XO LaptopI also went out of my way today to make sure to purchase my laptop in the “Give 1 Get 1” program being run by the OLPC foundation. You’d never guess, but I think it would be a neat idea to make a Go playing client for this device. I put up a thread about it on GoDiscussions.com back when the program was announced in October, but it turned into a much more heated discussion than originally intended and I stopped reading there as much. Anyway, The tablet layout as well as the mesh networking are both stand out features for a Go computer, and now I will have the chance to try working with both in developing an interface. If you are feeling charitable this holiday season and you have a budget for it, I could definitely recommend this particular group (the OLPC Foundation) for your donation, whether you want the hardware yourself or not. I will write about it here when I receive the equipment and let you know how it goes… There are already great open source projects available in Fedora 8 (I have an install DVD of this I just burned) that allow playing many board-style games, but the XO Laptops shown here run a modified interface in Linux known as Sugar which I will have to learn if I wish to contribute to the project.

Until next time, take care.

I promise, dear game, I have not left you, despite appearances to the contrary.

I’ve just been busy. Very busy at that, both over the board playing my favorite game, as well as at several of my other side projects such as iShudan and the iPhone unlocking biz. In fact, I’ve had many more games over the board in the last week than any in recent memory due to my increased mobility. This comes at the cost of time for writing or studying software. Over the last week I enjoyed a best-of-three match with David York, a fireside game at HotWire with Adam, and at least 3 separate games with the newest person at work to learn the game, Benjamin. I think we had more, but they were interrupted before completion due to time. Unfortunately, my games at David’s Go Dojo have slowed considerably, as I have few moves per day lately, if any at all. I welcome anyone who prefers the slow pace of “Go-by-email” to register an account and start up a board or two with me here.

Most of my non-playing Go time has been spent learning something completely tangential to Go, programming PHP and learning the basics of Cocoa. I have watched all five of the video podcasts that Apple released to iPhone developers to help make sites Compliant, Optimized, and then Native. I have been putting thought into the design and roadmap, and I hope to have a wireframe mock up soon that I can post and share with others that explains my vision for the future of iShudan as a project. I can say that I have a lot of lofty goals currently, as I accomplish these milestones I will write about them further.

And did I mention that my Regular Job has been really busy too? ;-)

c’est la vie, c’est la guerre!

Some of my teaching games at work I lost because of moving too fast after a distraction, as I would lose the tempo of what was happening, and when I came back and tenuki‘d away from an important situation the student would promptly pounce without remorse on the now reversed situation. Counting liberties sometimes gives you a confidence you don’t deserve because the local situation has complexities that are not at first apparent.

This weekend I plan to have a mini-ranking blitz on KGS to see if my skills have improved of late, barring any late invitations to an in person game.

I hope to also start studying for my FCC Amateur Radio Technician Class license this next week and on my upcoming vacation. This is just a side project of mine, perhaps a work related hobby. I have precious little time left over for new hobbies, heaven knows, but I find I enjoy a steady diet of new and interesting technical material. I have been assured by one of my friends that the first level exam is pretty easy to pass once you have studied, particularly since they have dropped the Morse Code requirements. I have a book here on loan from the library, as well as some online resources to study next week, I think that may be really all I will need to prepare.

I will post some Go-related study materials this weekend, as well as a kifu from a 19×19 game on the Dojo. I hope your own projects and goals are proceeding apace, and that this note finds you well. Namaste’.

 delicious libraryI just read this posting after downloading the latest copy of Delicious Monster from one of its creators, Wil Shipley.  Warning, the ideas here are so exciting for a big game nerd like me as to make me feel almost overcome with emotion…  Using the iPhone to play not video games, but games like Werewolf or Paper Rock Scissors.  Using the iPhone to do social, connected things that come naturally to people, but enhance their experiences with each other…  Go read Wil’s posting. The wheel is turning, baby.  This stuff is coming, either on this device or on The Next Big Thing, whatever. I want to learn how to code on this thing.  Speaking of, I finished half the ADC content today in the car to and from work, looking forward to whatever else Apple decides to release, as well as what the indy scene gets done for them.  I think I’m going to end up buying DM just because I like the people who write it so much. (Just kidding, I already know it’s great software, particularly if you have an iSight and Leopard now.)

This last week has been an insane paced, late night blur due to work pressures, and my weekly or better games and iShudan boards have been going neglected. As previously mentioned and depicted on this blog, I recently acquired an iPhone for my wife, thus relieving her of the need to carry around both her tiny old brick phone and the video iPod she inherited from me. I mention this because of the method that I used to acquire this iPhone for my wife, a method of bootstrapping wherein I used the power of my mind and subsidized my time at a reasonable rate to a “10%” project, if you were to believe what I take as its intended meaning at Google.

iphone unlock I unlocked 10 iPhones for $50 apiece in a single weeks time,

in order to earn the money to purchase her phone. I used freely available software downloadable from the internet and directions posted in a variety of forums, bulletin boards, and at popular weblogs. Most imortantly, I used the contributed and open code published by groups dedicated to unlocking the potential of the iPhone. I even earned enough extra to be able to send a donation to one of the groups who created this code, the iBrickr team.

I am not usually blessed with the funds to be able to purchase most of the handheld devices made these days, but I have thus far not been tempted by the available offerings either. Until the iPhone was announced, I didn’t consider myself in the “smartphone” market. I was sort of interested in one of Nintendo’s handheld units for a while on behalf of a few popular brain games marketed for adults, and aware generally of the Sony PSP (another fiasco of manufacturer vs paying customers which resulted in a tit-for-tat game if you will that I would suggest nobody won.)

I submit the following blog posting from TUAW with the other Steve, known by many simply as Woz. From the original article, comes the following excerpt:

L: So you’re in favor of the unlocking and jailbreaking for third-party applications?SW: From a business point of view, Apple owns what they have done. They have a right to lock it. But I am really for the unlockers, the rebels trying to make it free. I’d really like it to be open to new applications. I’d like to install some nice games. Why in the world can I not install a ringtone that I’ve made? How would that hurt AT&T’s network? Here is Steve Jobs sending letters to the record companies saying [they] should provide music that’s unprotected, but here he is taking the opposite approach with the iPhone. I don’t know to what extent AT&T is involved in the thinking and direction.

I also had a gander at this article with the provocative title, “So the iPhone Is Unlocked Again – Who Cares?” I believe it is somewhat obvious how I feel about the thing, but now you can ask my wife now that she owns the one phone that allows her to synch up with iTunes. She has gone from two devices to one, and everything else is icing on top. Thus she joins me in unlocking her device to retain the freedoms usually accorded to one who has paid a lot of money to own something, the right to modify it after the sale.

We have updates now on the wiki at the iShudan page, have a look at the issues reported and the organization pages. There are contributions to the running server code and a wonderful new mode running now and ready for packing that allows players using an iPhone to get an optimized view of the two smaller board sizes 9×9 and 13×13. I am committed to fixing the proper view for the full 19 square board soon and adding that to the main tree.

I still need a mailing list server or something like that.I have 6 iPhone developer movies from the ADC synched to my phone for watching later, over an hour of introductory material. At this point, I am commited to learning Cocoa and more PHP so I have some resources available for both of those.

I was mentioned in a recent AGA newsletter in response to a question about Go on a blackberry. Does anyone have one they want to work with and try modifying the existing code to work for it? It looks terrible and unusable from what I’ve seen on Adam’s old blackberry pearl, but I have no idea how to work with a device I don’t own. I can however provide some good starting points and experience thus far with the iPhone work.

namaste. I have big important work project tonight, wish me luck and maybe i will have more time to play a game this weekend after its over…

two for oneI will admit, last week other than my daily play in the Dojo and a few tsumego, I did little to advance my Go. I was busy during nights completing a project that I will write more in depth about later, I am considering an article or some other thought-out essay. For now, suffice it to say that my Tuesday night game with Bob was postponed till Thursday, and then just skipped altogether. I didn’t get away to the SGC, and I didn’t take the time to play anyone online or watch a lecture.

IntroAh, but this week I start anew, side project completed, and I asked if Bob would oblige me at his place for a game Tuesday night. It was clearly enjoyable for both of us, as he invited me back again in a week for a repeat. But I get ahead of myself, I wish to describe instead the match we played last night and its outcome.  I look forward to our next match in less than a week…

I am happy to hear that my recent improvements in our occasional games have sparked him to start studying as well, several unfamiliar and obviously older tsumego books were out and on top of nearby piles, signs of recent study scattered around the clear space on the floor around a roll up set with glass stones. Because I brought my home set to work to show a co-worker how to play Go on a coinciding day, I have my yunzi stones and bowls ready to play on the larger bamboo board. It is agreed that due to my loosing streak of late, I will take 3 stones from him. Play is begun, and as is common with an unbalanced board like that, becomes laden with fierce contact fighting almost immediately.

first pauseNow, although I haven’t been studying, when I get a rare weekend morning to spend an hour on Go all at once, I have been continuing to work my way through Bruce Wilcox’s Contact Fights software. Even though I am less than halfway complete, I am already feeling a marked difference in my game. By conditioning and codifying what I know and explaining it in the manner that Mr Wilcox does in his program, it has crystallized a few weak spots in my game that have stood for some rapid improvement.  I definitely look forward to completing the course fully and plan to share some of the distilled wisdom with some of the people I have been teaching lately…

close up corner fightSome people have a very direct attacking style, and a game of Pente with my non-confrontational wife made me realize that this initial leap into the fray can be quite off-putting if applied too soon to someone not yet committed to learning the depth of the game, Pente and anything else. A strong, bold, forceful response creates immediate tension that must be resolved, and blocks further reasonable development until the local situation is resolved. In a good fight, this can quickly cover a quarter of the entire board and of course strongly influences what remains of the game. Learning the method to contact fighting allows you to redirect this aggressive thrust into a weaker missed attack that then opens up possibilities for response and follow through. Almost like a martial art, such as Judo.

4 corners fightingSo, our three stone match began with a 3-vs-1 corner balance immediately. Bob successfully invaded but was boxed in, and a few empty triangles later I was in good position. His broad strokes made quick life, but not very large and not complete. He did show me a very specific technique that I think was useful, a way of poking along a long wall of stones to create a certain shape that establishes a beachhead of sorts. If you have ever watched despairing as an opponent builds an unbalanced wall of stones, ready to fall upon any unlucky victims trapped below the avalanche, then you might know what I mean.

parting shotHere is the last shot I took of the game before things got very intense and fairly quickly resolved. I have strong position in some places, and in some of the battles that were played out, I made a few mistakes but also some large captures. In fact, several captures really turned the course of battle to my favor. In the end, we played out all the situations and entanglements to create a line of battle, but once these were resolved Bob resigned the game without the final count since it was obvious and decisive victory for me. I will not be playing any more three game stones with Bob for sure now, I just have to consistently hold my own on a 2 stone.  Thank you again for the game and your teaching, Bob.  I hope to face you evenly soon.

Peace to you and yours, and good hunting.

Next Page »