Go Album
Keywords: Software
Go Album for Pocket PC is a simple little application for organizing a collection of Go problems with which to practice your reading skills.
Organizing your collection is done by way of a hierarchy of tags. Problems may have any number of tags applied to them on which you can later perform useful searches.
Release Candidate 1.0 Released (30 OCT 2003)
Second Beta 1.0 Released (13 OCT 2003)
First Beta 1.0 Released (26 SEP 2003)
New In Release Candidate
I'm glad to see that lots of people are enjoying Go Album. There have been over 450 downloads! Assuming that no serious bugs are reported over the next couple of weeks, this will be the final 1.0 bits.
- Search is much quicker
- Previous search criteria persists
- Can now Invert Results
- Last attempted date as well as time consumed to solve each problem is displayed in the lower right of the browse screen:
- Sort the search results set by:
- Easiest/Hardest First (measured as time consumed to solve)
- Least/Most Recently Attempted
- Random
- Get statistics for a given search results set:
- Turn on/off display of hoshi points
- More robust handling of low memory situations
- More robust handling of process termination
- Kill the process, drop your machine, battery falls out! It's not possible to corrupt your album even if in the middle of a save
New In Beta Refresh
- Now supports board sizes from 3x3 to 19x19
- Works with the 2000+ problems that come with Many Faces (all of which are 13x13 positions)
- Example 5x5 problem
- New Auto Zoom feature
- Auto Zoom Off/On
- Much nicer graphics
- 3D and 2D views
Installation Instructions
If you installed the previous one and started using it, just uninstall and install the new one. Don’t worry, your album of problems and any additions you’ve made will remain intact.
- Download the appropriate CAB file for your processor:
ARMV4 (Windows Mobile 2003 devices, Intel® XScale™, PXA250 processor)
ARM (ARM SA1110 processor)
MIPS (Compaq® Aero)
SH3 (HP Jornada)
WCE420X86
X86
- Save the CAB file (temporarily) anywhere on your desktop machine.
- Move the CAB file to your Pocket PC (just drop into My Documents).
- On your Pocket PC, open Explorer and tap on the CAB file. It will install and the CAB file will be removed. Now you should have the Go Album icon in your Program Files.
- If you are running a version older than Windows Mobile 2003, you may need to install the .NET Compact Framework:
[1] To uninstall, just go to Remove Programs and remove Creation Go Album. This will not delete your Album itself which can be found in My Documents\Go Album.
Solving
You can flip through your problems (presented in random orientation and color); solving them and organizing them. Modifying and entering new problems is very simple.
Organizing
The organization features are very powerful and tagging your collection is a learning experience in itself. You are free to create your own classification system and apply multiple tags to each problem. You can then search for intersections of various sets of problems; finding ones that illustrate a concept that you want to practice.
Several tags are applied automatically while solving problems; Failed, Solved, and a measure of difficulty based on the time consumed.
The Mark and Favorite tags may be applied very quickly from the main problem solving toolbar. Marking is meant to be a temporary tag to facilitate organizing in bulk (with Tag/Untag Marked).
Tap the name of a tag to select it, then you may make a New child tag, Modify or Delete the tag. You can move branches of the hierarchy around with Cut/Paste.
Searching
Searching is where all your organizing efforts pay off. You can essentially do a logical AND, OR, and NOT search based on any set of tags and can do searches within searches.
Importing
Besides manually entering problems, you can import/export SGF files. An initial set of 450 problems gleaned from SL comes with the program.
Some sources of additional problems to quickly build your album to several thousand:
Import works well with SGF collection files (multiple problems per file) and supports variations marked as the good/best/bad using common SGF properties (Good Move, Very Good Move, etc. and some strange ones like a comment of ‘RIGHT’ as used by goproblems.com, or the non-standard WV[] – Wrong Variation – property used by uliGo, etc.)
Works with the new PBase addition to Go Games on Disk (127 problems and growing). Despite the .txt extension, the files within GoGoD\PBase\Collections\ are SGF. By the way, for desktop viewing, the PBase.exe is a very nice problem viewer.
You will get an error stating that the file contained non-problem game records which were skipped upon importing Qiuxian Yipu.txt. This is due to a small SGF well-formedness problem in the file. Change "GC[1]A twisting ladder problem]" to "GC[A twisting ladder problem]" and it will import properly.
Discussion
Sebastian: Your site looks great!
What is the meaning of the top level distinction between Album and Problems? -- 2003-09-16
AshleyF: Several tags are automatically applied while solving problems (e.g. Attempted/Solved, Attempted/Failed, and the Difficulty/... tags). Others can be toggled directly on the problem browsing screen (e.g. Favorite, Mark). These are placed under Album. You are free to modify/delete/move them but they're likely to be recreated later automatically. Tags under 'Album' are sort of owned by the system. The hierarchy of tags under 'Problems', on the other hand, is completely built and owned by the user.
Sebastian: Oh, I see. So "Problems" is a synonym for "user defined"? - What does this tell us about the developer's state of mind? :-P
kritz I love it. What format are your problems in? It is now possible to get all the problems from the goproblems web site in individual .sgf form... Ask adum for permission. Then your program could have THOUSANDS of problems!
AshleyF: Yep, it certainly does work with 2000+ problems from goproblems.com! The problems are internally stored in a compressed XML format but you can Import/Export SGF files. I doubt Adum will allow releasing with his problems (especially intermingled with OpenContent) but they're easy enough to import.
kritz I can't speak for Adum ... but. see my page with reference to the problems on the palm. Also, if you check out the discussion section on the goproblems site, Adum POSTED my instructions on howto use a sgf viewer to work his problems. (I'd e-mail him. May I suggest amending the problem title to reference the source of his site?)
Sebastian: I love the zoom feature! It works great and is fast enough even in 3D mode.
Fhayashi: Am I missing something, or does GoAlbum only support one move answer problems? Is it significantly harder to allow multiple move answers?
AshleyF: Do you mean showing the solution sequence and letting you step through it like goproblems.com? For that, you're correct, Go Album doesn't store the solution (or failure) sequence; only the setup position and the points marked Best/Good. A problem can of course have multiple solutions, but not multiple moves deep.
I do plan to add sequences in the future. This will likely be a new type of entry in the album. Much like SL diagrams, they will be meant as diagrams that you can step through. They can be tagged like everything else and encapsulate useful information in and of themselves. They can also be used as solution/failure diagrams and can be attached to problem entries. If there is an attached continuation to a problem you've just attempted then you'll be able to step into it (or various other options such as numbered diagram, etc.). This will come as version 1.1 (some time after I stabalize and release what I have now).
For now, if you have problems with significant perils deeper in the solution sequence that by itself would make an interesting problem, then just make two problem entries. Also, this is the workaround for problems with no active color (e.g. the status problems from James Davies' Life and Death). Just make two problems; one with Black to play and the other with White to play.
Essentially, the Album is currently limited to problems where the objective is clear and the solution concrete and the reading should be up to the solver. This is true of most tsumego and tesuji problems; you know when you've found the solution (if you were a cartoon, there'd be a lightbulb above your head!). Other types of problems, such as fuseki, where the objective may need some explanation or where understanding the solution requires appreciating positional judgement, attached sequence diagrams will be very useful.
Sebastian: Do you mean "AND" or "OR" problems? ("OR" problems can have several correct answers, "AND" problems consist of several individual problems and need all of them answered correctly to proceed.)
AshleyF: Some feedback provided in mail from Sebastian:
I tried it out in the car (as a passenger, of course) and in the shuttle. It works great in the car, but the shuttle shuffles my PPC too much for me. ;-)
Some questions/remarks/wishes:
Is the NOT search a NOT AND or a NOT OR?
AshleyF: It's a 'NOT OR'. I'll add 'NOT AND' in the next build. How shall it be phrased? 'Match Without Any Selected Tags' vs. 'Match Without All Selected Tags'. Sounds funny...
AshleyF: BTW, you can get a 'NOT AND' by doing searches within searches. Tedious though...
- Sebastian: Another, more elegant solution would be to have a simple NOT: Invert the result so far.
However, I think NAND isn't really that important, and moreover there is a workaround (below). Yes, it's getting not so nice. If you had tri-state check boxes you could get rid of NOT altogether.
AshleyF: I'll think more about this... I think you're right though, it'll make a lot more sense with an improved TreeView.
AshleyF: Added Invert Results so you can now get a NAND as well as NOR without doing inner searches.
- Sebastian: You also could add some additional check boxes for
- [ ] Add previous results (OR)
- [ ] Restrict to previous results (AND)
The search should display if it's on AND or NOT mode.
AshleyF: Good idea (next build)
AshleyF: Done.
Ability to cancel search
AshleyF: That would be convenient (I'll add to next build). For now, just note that selecting View > Clear All and then closing the dialog does the same thing. If there are no search results then your current set remains.
AshleyF: Done.
(NOT solved) AND (difficulty=lowest stored) should be the default. It's easy and intuitive and rewarding to work your way up, but frustrating and a major turn-off for a beginner to only be able to solve 1 out of 20 problems.
AshleyF: Good idea (next build)
AshleyF: Search criteria now persists between sessions at the search screen so you can set this as your default search if you like. Also, you can now sort by Easiest First if you like.
Ability to save search conditions
AshleyF: Yeah, I hate that too. It would be nice if the previous search criteria persisted. I'll try to get that in the next build. I have a little complication if between searches you go to Organize and move tags around or delete them. In the future (maybe 1.1) I plan to merge the Search and Organize views but I'll have to make my own TreeView control to get what I want so not right now...
AshleyF: Criteria persists, although still no way to save and recall multiple sets of criteria (future version will).
AshleyF: Even further down the line I've thought about the possibility of special tags that represent whole search criteria. Sort of like the search within search feature today but with previous searches available at a click.
In addition to the filter, it would be nice to have a sort feature. My ideal would be if this were done similar to the filter in Excel.
- Example:
- Difficulty
- [V] 0 30-20k
- [V] 1 20-10k
- [ ] 2 10-1k
- [ ] 3 amateur dan
- [ ] 4 professional dan
- [V] Sort Ascending
- [ ] Sort Descending (these two boxes are the only ones that are mutually exclusive)
AshleyF: Ah, that's a cool idea. I'll see what I can do. Some things that might apply are difficulty, last attempt timestamp, original position in the album, missed ones first, unattempted ones first. Others?
AshleyF: Added a few sort options. Not complete yet...
- Sebastian: The user defined (aka "Problem") properties. It may not make sense for the ones you currently use in the SL problems, but someone certainly will want to use them this way. (Alphabetical sorting should be OK)
- Sebastian: In this context: If you allow checking sorting by several criteria then you will face the question of which one to sort first by. I would do this in a weighted fuzzy way.[101]
AshleyF: I like your idea of weighting based on some measure of importance gleaned from how common the tag is; like Google-style keyword heuristics.
It seems like the Favorite button appears unpressed even when a favorite problem is displayed.
AshleyF: Hummm... that would be bug. I can't seem to repro it. The button should be outlined (doesn't really look pressed in) - thats just how the standard toolbar control is. Is the same true for the Mark toggle button? And for the buttons on the Edit screen? Possibly something with B&W display...
It's not so easy to see when you're at the border => make it thicker. (That was actually a request from Anders for Miniban.)
AshleyF: Do you mean a thicker line? I do this in 2D mode (see screenshot above), but in 3D mode I wanted it to look more photo-realistic. Also, the Auto Zoom feature never crops in tight around the stones except when they're actually on the edge of the board. If a stone is at the edge of the diagram then it's certainly at the edge of the board.
- Sebastian: Yep, that's what I meant. Good point, no need to change it.
Regarding difficulty level: Since it's obviously not so easy to rate them, how about if you added another feature that allowed filtering by number of stones involved? This would at least be better than nothing.
I'm not sure what the best heuristics for complexity are. The problem with number of stones is that killing a dumpling is much easier than deciding a large scale mojo move. Maybe it should just be the area covered?
AshleyF: Yeah, I like your idea of automatically measuring difficulty by the number of stones in the diagram. I'll try to add something like that soon.
A better way to measure difficulty would be to have SmartGo decide. Record the thinking time till it finds the correct solution.
AshleyF: That's an excellent idea! I looked into it a bit and see that SmartGo adds the following properties to the SGF when asked to solve problems. I'll see what I can do to automate filing by difficulty/complexity:
TU: The time used to solve a problem (a real number, in seconds)
NN: The number of nodes examined to solve a problem.
NL: The number of evaluations or leaf nodes.
MD: The maximal depth reached during a search.
DE: The number of plies searched (depth).
PD: The number of top level moves at deepest search (partial depth).
AshleyF: I played around with this a bit and find that the biggest difficulty is getting it to concentrate on the problem and to understand the objective. Given an empty board with a small-scale life & death problem in one corner, it tenukis!
Is there a property that counts how many wrong attempts I did before I solved a problem? I would like to filter/sort by this.
AshleyF: Actually it only stores whether missed or not but not how many times missed. Think it's really valueable to track multiple misses? Wouldn't it be encouraging a BadHabit?
- Sebastian: I see your point: Currently, I'm forced to be extremely cautious. But even if I'm the most cautious person in the world, there will be problems where I pick the wrong choice initially. Obviously it would be a great help for unlearning my mistakes if I could get back to those later. So, far from encouraging bad habits, it actually would help unlearning them. And it's an interesting information, so why not keep it?[102]
[101] Weighed Fuzzy Sorting
Given a set of problems which are characterized by two criteria, a and b, where
a = 0..count(a)-1,
b = 0..count(b)-1.
If the user wants to sort by both criteria, the program could sort them according to the sort value
s = a/count(a) + b/count(b)
However, this introduces a high degree of randomness because many combinations of a and b will map to the same s. in particular in the case of two binary criteria. This can be overcome with ("irrational") weight factors fa and fb that are chosen according to the expected importance of each criterium:
s = fa * a/count(a) + fa * b/count(b)
[102] BTW, I was thinking of a similar feature for Miniban - see discussion there.
This is a copy of the living page
"Go Album" at
Sensei's Library.
2004 the Authors, published under the OpenContent License V1.0.
|