Release note

Little Go 1.0.0 released

Little Go 1.0.0 has been released to the App Store a couple of days ago. The GitHub issue tracker has a list of all issues that I worked on for 1.0.0, and here is an excerpt of the changelog for the visible features changes:

  • Superko is back (it was disabled in 0.12.0), but simple Ko remains the default. You can select the Ko rule when you start a new game (#169).
  • Little Go now supports area scoring (#30). I implemented this mostly out of necessity because I realized that Fuego does not properly support territory scoring. That's also the reason why area scoring is now the default scoring rule.
  • Accurate scoring is now possible because stones can be marked to be "in seki" during scoring (#190).
  • A little goodie that I wanted to implement for a long time is the display of player influence, aka territory statistics (#18).

These features, however, were not why it took me so long (over 3 months) to finish the 1.0.0 release. Rather it were the things that changed under the hood:

  • Upgrading to Xcode 5 cost me quite a bit of time (and a lot of nerves!) until I realized how I could get back unit tests to run. Initially I also tried to upgrade from OCUnit to XCTest, but had to abandon the effort because I am still using the 6.1 SDK. This Stack Overflow question summarizes my troubles.
  • I completely rewrote the 3rd party software build process to use Git submodules. For this I had to learn about Git submodules in general, and in particular about svn2git so that I could mirror the Fuego Subversion repository with Git. The end result is the fuego-on-ios repository on GitHub, which is intended to provide other people with a base for creating their own Fuego builds for iOS.
  • Last but not least, I decided to upgrade from Fuego 1.1 to the trunk version of the Fuego source code. This gave me a nasty surprise because the trunk version of Fuego uses much more memory in its default configuration than Fuego 1.1 did. So much memory, in fact, that Little Go becomes unusable for iOS devices with 256 MB of memory, and unstable for iOS devices with 512 MB memory. Although I soon found out how to reduce memory usage, a lot of effort went into making sure that Fuego works correctly with this low-memory configuration. The results are published on the Fuego wiki.

Implementing most of these technical changes were not fun, and thus releasing version 1.0.0 has not been an occasion of joy, but rather one of relief. In the end, I must admit, that my motivation was so drained, and I was so weary of the whole thing, that I pushed the release to the App Store without a lot of testing. I hope my users will forgive me for this.

Little Go 0.12.0 released

Little Go 0.12.0 has been released to the App Store a couple of days ago. Since I plan to slow down my development activities on the project soon, the overall focus of the release was on improving the usability of Little Go, and less on adding cool new features.

The GitHub issue tracker has a list of all issues that I worked on for 0.12.0, and here is an excerpt of the changelog for the most notable changes:

  • It is now possible to configure the computer player with a threshold how quickly it will resign a game (#133). For instance, it is now possible to tell the computer player to never resign so that the game can be played out to the very end. This also allows beginners to play with a large handicap on a small board (up until now the computer player would always resign immediately when faced with an overwhelming handicap).
  • When an old board position is viewed, the intersection where the next stone will be placed is now marked with the letter "A" (#101). This can be disabled in the "Board position" settings.
  • Changes to the active profile are now immediately applied to the GTP engine (#123). For instance, it is now possible to change the playing strength or the resign behaviour of the computer player without starting a new game.
  • The user interface for changing the dangerous "Max. memory" profile setting is now vastly improved (#153). The maximum value that can be selected for the setting is now limited to a fraction of the device's physical memory, and the amount of physical memory that the device has is also displayed.

Finally, the GTP engine is configured to no longer recognize positional superko (#171). This is a temporary solution to bring the GTP engine's rules into sync with Little Go's rules. Little Go currently does not recognize superko, so this sync'ing fixes the problem that Little Go lets the user make a superko move which is then rejected by the GTP engine. Many thanks to Brid Griffin for emailing me a bug report that helped me with diagnosing this problem! Note that Little Go will officially support superko in 1.0.

Little Go 0.11.1 released

Little Go 0.11.1 has made it into the App Store yesterday. I decided to make this bugfix release now, and not wait another month for 0.12.0, so that I could get the fix for a very annoying bug out to "my" users. The full story can be found on the GitHub issue tracker.

Little Go 0.11.0 released

Little Go 0.11.0 has been published on the App Store on April 23 2013, almost 4 weeks ago. For some reason I completely forgot to write this announcement, and I also forgot to update the master and develop branches on GitHub. I just fixed this a few minutes ago...

For iPhone users this new release finally brings the long-awaited zooming feature, making it much easier to place stones on large boards. iPad users can also zoom, but this is of much less value, except maybe for the iPad Mini. It is now also possible to display move numbers and coordinate labels, things I originally planned to implement much sooner, but somehow there was always stuff to code that seemed to be more important. So in the end I am not sure how important these two features really are, but they are at least a nice graphical addition to the UI.

Something of which I am sure that it is very useful is the new ability to export and import .sgf files to/from other apps such as Mail or DropBox. Working on these features prompted me to propose this draft of a UTI specification for the .sgf file format, but so far the announcement on the sgf-std mailing list has not received any responses. Ah well, it's probably not the most important thing in the world ☺.

Little Go 0.10.0 released

As of this morning, a new version of Little Go (v0.10.0) is available in the App Store.

A lot of work has gone into this feature release: Almost three months, much more time than I had originally anticipated. The biggest chunk was spent on adding the function for viewing board positions for moves played earlier during the game. The main problem I had here was designing the user interface: On the iPhone I had to add UI elements to an already crowded screen, and on the iPad I gave myself the challenge of revamping the entire "Play" tab.

Another thing that kept me busy were the graphic design changes: Adding artwork for the Go stones, and adding a wooden background to the Go board. With these changes the app suddenly looks much more attractive, which I find very satisfying because usually I am such a nil when it comes to polishing up a purely-functional UI.

No single release in the history of the project has more changes than v0.10.0, both visible to the end user and technically under the hood. On the one hand this is good because it tells me that the code is still malleable, on the other hand I am a bit nervous because many changes usually also means many new bugs. Let's hope that it doesn't get too bad.

python-aprmd5 0.2.1 released

python-aprmd5 0.2.1 has no functional changes, it just includes a patch for a more comfortable build without having to manually edit setup.py. The patch was contributed by Juan A. Diaz - thanks Juan! I took this opportunity to move the project to GitHub. A small project page stub remains here on herzbube.ch that lets me host the source distribution tar balls for each release.

Little Go 0.9.2 released

The newest bugfix release 0.9.2 for Little Go has finally been released on the App Store last night. It took a bit longer than originally expected because I didn't manage to submit the binary before Apple closed their iTunes Connect service for the Christmas holiday.

0.9.2 addresses a number of crashing and memory leak issues which should help to further increase stability. As good as this sounds, I am not yet done with bugfixing because I have received reports for a new type of crash. Also I have become aware of a few changes in iOS 6 that make it necessary to revise the strategy for releasing memory when the app receives a memory warning. I don't know yet if I am going to roll these things out in another bugfix release (0.9.3), or if I will incorporate them into the next feature release. The decision largely depends on the feedback I get for 0.9.2.

Little Go 0.9.1 released

The bugfix release 0.9.1 has just gone live on the App Store this morning. It fixes another glitch in the Ko detection routine (the same function I already muddled with for 0.8.1). Get the newest sources from GitHub.

Unfortunately 0.9.2 is already in the works: The new crash reporting feature in 0.9.0 has led to over 80 crashes being reported in only a few days. As sad as it is to see that the app I am sweating over is not as perfect as I would have liked it to be, it is still a good thing to see those bugs finally coming out into the open so that I can squash them. It also proves that adding both a crash reporting and a general in-app bug reporting feature in 0.9.0 was well worth the effort. If I ever start another iOS app project I will certainly launch the app with both of these QA features already in place.

Little Go 0.9.0 released

Little Go 0.9.0 has just been released to the App Store. The source code for the new version is available directly from GitHub.

The main feature of the release is that there are three new profile settings that provide much improved control over the computer player's playing strength. The other major focus has been on QA stuff: You can now choose to send a crash report if the app crashes, and you can send a bug report with attached diagnostics information at any time. Last but not least there have also been a number of bugfixes; the most important improvement probably is that the game is now saved after each move instead of only when the app is suspended. A crash should now be merely annoying instead of causing catastrophic data loss.

dgsmonX 0.2.3 released

Version 0.2.3 of dgsmonX fixes a small but ugly bug introduced in 0.2.2: Instead of "no game waiting" dgsmonX would report "Check failed, no error details". Thanks to Hans for reporting this.