Wednesday, September 05, 2007

Caught in the Fire

Stop the presses.

Time for you to update your links. I will from now on be blogging on the following location: (link)

And that will be the name of the blog: Mythology.

For some reason I can't export my posts from this blog to that one, so I'll keep this blog as an archive for the time being (perhaps forever).

I will conclude this blog by explaining its title, Caught in the Fire.

Firstly, I started this blog as a kind of self-therapy, dealing with some personal problems. Caught in the Fire seemed like a good title (and it is). While I did write some insightful posts on that topic, it was difficult and I never dared announce the blog to anyone (except a few friends). So I removed those posts and began writing about other things that interested me. With great success -- it's actually both more therapeutic and more fun this way, and I got some great readers and commenters that I wouldn't have had if I had kept the original topic going.

Secondly, it's a line from a song called "Walk through the Fire", which is a song in an episode of Buffy (Once More with Feeling -- a musical, and possibly the best ever TV show episode).

Exit fire, enter mythology!

Tuesday, August 28, 2007

anti-aging: overpopulation

I wrote some posts a long time ago regarding the possibility of being able to stop the aging process [edit: actually, only two posts it would seem. I had planned more...] some time in the future (which seems like a likely possibility), specifically arguing against the arguments against non-aging. A substantial number of people dislike (even hate) the idea of non-aging, and prefer to age and die. I don't.

One objection that I didn't say anything about is that of overpopulation. If we don't age, the rate of dying would naturally decline (but it would not reach zero - people would still die from other things: accidents, sickness, murder...), and the population might start growing rapidly.

If so, is that a problem?

The growth might not be as dramatic as one might think, for several reasons.

Firstly: the age in which people have children now is adapted to our life-span. People can't at present have children at age 200, because they won't be alive. But that will change completely if aging is stopped. There will be no age-related restriction and people will be free to get children whenever they want. And I suspect many will wait. Humans are often pushed into things they don't really want to do, because people expect them to do certain things or because they can't wait because it will be too late. Those expectations will disappear as the age in which it will be "too late" will disappear, because it will never (theoretically) be "too late". And if people get children at age 200 rather than 25, that will make a difference in population growth.

Secondly, much of the population growth today is in primitive and poor nations (often influenced by religious ideas geared toward child production in various ways), like parts of Africa and the Middle East. In the West (including semi-West nations like Japan), on the other hand, the population is actually shrinking (and would be so even more if the immigration groups, still influenced by their earlier culture, hadn't been included in the statistics), which is seen as a big problem by many. In case of non-aging this unwillingness to reproduce wouldn't be a problem anymore, but an asset.

Thirdly, if overpopulation is starting to become a problem, it will get rather unpopular to get children. It will be seen as irresponsible and bad. That certainly will affect peoples desire to reproduce.

Fourthly, if overpopulation really becomes troublesome we will, as a last resort, regulate against it, and have some sort of system with a queue, and let one child be born for each person that dies (or something like that).

Fifthly, at some point in the future we will probably (assuming a continued development of science and technology) start going into space big time, and start colonizing other planets.

Finally I got to post this one. I've had it in my draft for some time. I've lost most of my interest in the topic, and I have more pressing things to attend to. If anti-aging technology is developed and put in use before I die, fine. If not, then I get to know if something is waiting beyond the rim. Fine too, unless it's a hell of some sort. That would really suck.

Friday, August 24, 2007

The PGA and PGU of chess tactics

Finally. Back in March I wrote about the CCT-rule. It was my intention to continue writing on that, and I did write a draft but it's not until now that I finished it. It could be a good idea to start reading that post, but I will try to make this one self-contained (which means some repetition). Also, the delay means I can write this one using the terminology of PGA and PGU, and using a diagram position that wasn't available at the time.

I still think that the CCT-rule (checks, captures, threats) is the by far best method to find tactics, especially simple tactics (which is especially important in blitzes, but obviously everywhere.) And it is a pure PGA, as against a PGU. (Learn about PGA and PGU here. Here's the very short version: PGA stands for principles of action, and PGA is principles of understanding.)

There are many PGU's in chess, including categorising different "motifs" like forks and skewers. But I've found it to be useless to actually systematically try to go through these in a game. It's a very useful skill to see these motifs quickly, and these terms are very useful in some ways, but non-useful to consciously go through one by one in a game. It's just too much, and too incomplete. The CCT-rule on the other hand is complete. It does cover all tactics (which doesn't mean that it guarantees you will find any tactics, of course, just that there is no tactic that doesn't begin with any of those.)

Checks, captures and threats and mentioned from time to time in many places, but it's mentioned together with lots of other stuff, some of it rather unimportant. (That's how I found it, literally as one of 100 or so ideas throws together on a web page). That indicates that its proper role and value isn't completely discovered.

I've found that there are several benefits to this scheme.

1. Covers all tactics (as mentioned above), which gives a feeling of "completeness", and sense of control (based on a genuine increase in control, so it's not an illusion.)

2. It gives a sharp line between categories of moves, making it simpler to mentally keep track of what you are doing. If you try out moves randomly, or based on some feeling about "importance", you basically have to keep track of the moves one by one, which often, for me at least, leads to chaos. I miss checking some moves, I double-check others, I jump back and forth between moves in a wildly irrational way. With the CCT-rule and that sharp line I get some sense oif what I've tried. (I still jump back and forth some, but not as much. There is a noticeable increase in control)

3. I often find tactics hidden behind a non-intuitive move that I otherwise may not have found. For example, you will easily find all queen sacs if they are not too deep. The problem with much tactics is that you don't even consider some moves (such as a queen sac, unless obvious), but with the CCT you do. There is no guarantee you will see the tactic just because you examine the first move, but you increase your chances anyway.

4. If you apply the CCT-rule consistently when doing tactics, the mind eventually starts to look for those moves automatically (as against in the beginning when you constantly have to remind yourself to go for these first, which feels kind of unnatural if you're used to the chaos-method of checking moves randomly based on 'feeling'). In other words, you look at the position and without any effort at all pick out the most crucial moves. That's a great thing. (No I'm not there myself completely, for the simple reason that I don't practice much, but I've seen some movement in that direction.) Doing the CCT will eventually become with feels right and natural.

For example: Take a look at the position below, it's from this post by BDK. He says: "One problem with trying to classify everything is that I become somewhat blind to tactics that don't fit into my schema.For example, here is a problem that I ran into today at CTB, with white to move." (Referring to the diagram below.)

That's one problem with using a schema of motifs. However, using the CCT-rule, the correct move, Bg8+ is literally among the first two moves to look at (which in fact is what I did look at immediately when I saw that diagram, and I solved it within a second, and that's not because I'm a great player, which I'm not), since it is one of two checks (and checks come first.) And once you examine that move, the rest comes naturally. Here's the diagram:

There are some difficulties (areas that need further development) with CCT.

Firstly, the T part. Because it isn't obvious what is a threat on the board, as against captures and checks. I've done some thinking and experimenting, and it seems useful to have the following two subcategories to find threats:

1. Look for unguarded pieces and see what moves you can make to attack that piece (often making a double-threat). (Unguarded pieces is something most player know to look for, but it's treated more or less as a random idea, just as the CCT-rule itself. Here, however, it's sorted under the T-part in CCT. It's part of a systematic, and realistic, approach.)

2. Look for moves where pieces of lesser value attack more valuable pieces (such as attacking a trapped piece by doing a pawn move).

Secondly, what to do after the first move. I admit that I mostly only apply the CCT-rule when doing the first move. However, it makes sense to apply it (in some way) further within the search trees as well, at least the second move. But it's tricky and maybe some simplified version is needed. I don't know, my plan is to automatize the CCT-rule as the root to begin with, and then worry about the rest. But eventually that question will become relevant, I think.

Wednesday, August 22, 2007

It all comes down to purpose

I wrote in this post about how purpose is central in both GTD, chess and Objectivism. And I mentioned briefly in this post the centrality of purpose in fiction writing (both on the part of the characters and the writer).

(And of course, "knowing what you want" is almost like a cliché in our culture -- even if most got the meaning of it wrong in one way or the other --, and it's a part of countless systems. Aleister Crowley spoke of a "True Will" [which basically is a mystic version of Ayn Rands "central purpose"], to be arrived at by means such as rituals and getting in contact with spirits.)

The GTD idea of altitudes (ranging from 0 to 50000 ft. ), with 0 being the purpose of the immediate moment and 50k ft. the purpose of your life on earth, corresponds nicely to the idea of different levels of purposes in stories, as I wrote about in last post. On a scene-by-scene level the most obvious purpose is the short-range zero feet purpose, but from a higher altitude, looking at many scenes at the same time, the purpose behind the narrower purposes becomes visible. And all adds up to something (assuming it's not a character who lacks a purpose, but then that usually means the character is looking for a purpose -- which is a kind of purpose --, and all characters, purpose or not, have a motivation of some kind.)

Well, I just find all that fascinating, the way in which different subjects tie into each other.

Tuesday, August 21, 2007

Storytelling: mindmap, change of method

Sorry about the delay.

I dumped the idea of writing a review of every episode on Babylon 5. The idea was to learn about storytelling by means of analysis. However, it's just too time consuming doing it that way, and I think I'll learn more from just watching the episodes and trying (in my mind) to analyse as I watch them (and pause when necessary). I need quantity to build up a large internal base of knowledge from which to draw later inductions.

I'm working on a mindmap to aid my analysis. It's a map containing info like the concepts I gave in the "concepts, method" post below. It's designed to be practical, so I ruthlessly cut out every part in it that isn't useful (which I usually find out after having watched some episodes trying to use it...)

My latest addition is a node called "scene" with some sub-nods about things related to scenes, for example what the character is trying to achieve in it. I already was on the lookout for the general purpose of the character, but there is usually some more specific purpose within the individual scene. For example, the main purpose of a character might be to climb a mountain, whereas the purpose in specific scene at the bank might be to get the banker to grant a loan so he can afford the climb.

And as soon as you have the purpose identified, it becomes easy to identify many related things, like obstacles and conflicts.

Of course, everyone notices these things anyway (or they wouldn't understand the story), however there is a world a difference between explicitly identifying these things and just getting them as an ordinary consumer. Not in terms of understanding the story or getting more out of the experience, but certainly in terms of understanding the art of storytelling.

And the more you train yourself to notify these things automatically, there deeper it's possible to go. I often get frustrated when engaging in this activity, because I sense that there is so much more to notice in the story, except that I don't notice it. It's there, I react to it as a consumer, but I can't identify it explicitly. Like being outside a mine of gold lacking the tools to access it. Very annoying. But I'll get there eventually.

Meanwhile I'll keep working on that mindmap

Tuesday, August 14, 2007

Storytelling: plots

One interesting PGU in writing is to list the number of possible (basic) plots. Some (many?) writers have done some thinking on that, and come up numbers ranging from 1 ("stuff happens") to 100, and anything in between. One popular number seems to be 7, as in this book called "The Seven Basic Plots". Here's one writer claiming that there are 20 plots, and here's 36.

The usual hierarchy applies: how many plots depends on what level of abstraction. The more detailed, the more plots, obviously. With enough details there are as many plots as there are stories. And with everything abstracted away from you get one single plot: "stuff happens", which covers pretty much all stories (but isn't very helpful in any way).

I think 7 plots sound about right; the right level of abstraction for most purposes. I will make it one of my (ongoing) assignments to identify which those are (maybe I'll agree with one of those who already have decided upon 7 specific plots. Maybe not.)

Monday, August 13, 2007

Fiction Writing: concepts, method

As with most other subjects (including chess), fiction writing is one of chaos. The books and guides lump together fundamental concepts and ideas with trivial and unimportant ones (without clearly specifying which is which), and it's up to the aspiring writer to make sense of it all and put it into a system. (Actually I'm exaggerating a little, the guides differ in quality a lot -- I'll get back to that later.)

My main task for the moment is to identify the central concepts of storytelling and then make them come to life by tying them to those concretes that they are an abstraction of. And that last part I will do by making identifications as I watch TV shows. After all, that's what being a fiction writer is all about: beer, peanuts and TV.

Right now some of the stuff I keep explicit track of while watching is:

conflicts, obstacles (inner, outer)
characters purposes (what they want)
resolution of conflicts
set-pieces (often a confrontation of some kind)

I often also try to explain to myself the purpose of various scenes, and ask myself things like what would happen if it was removed (a well written piece shouldn't have any scenes that can be removed without suffering in some way.)

Sunday, August 12, 2007

Fiction Writing

TV shows and movies have awaken in me an interest in storytelling, so I've decided to add a new project to my list: learn how to create stories and write them down. Fiction writing. That's something I on and off have considered before, and I've even bought a number of books on the subject. But the time hasn't been right until now. If it is, I'll see about that.

This means a new system to play around: the identification of central concepts (and their interrelation), and the relation between concept and implementation, and so on. Very interesting. I guess there is a risk I never get around to actually write, I guess I just have to wait and see.

There seems to be interesting similarities between chess and storytelling, at least on an abstract level (things like the relationship between abstractions and concretes, and so on. Both subjects are similar in that they combine theory and practice more evenly than many other subjects. Or so I think, but I'll have to think some more about that and get back to it.)

Tuesday, August 07, 2007

Babylon : Report

A new post on my chess program. I've mostly been improving the design, but some improvement in playing strength too.

New games included in the end.

Most of what I've done since my last report is structuring the code. The major change is large scale modularization (my fifth design principle, identified here .) Earlier I had all code in the same unit (which also means same file), as it's called in Delphi. Now it's divided into 6-7 units (one main unit, one unit with classes related to evaluation of a position, and so on), and the best part is that no two units are dependent on each other. It's always one way only. This meant I had to spend considerable time decoupling different parts of the program; unnecessary connections I've made out of laziness. (That's often the case in programming -- ugly and complex solutions are often easier and faster to make, until the program starts to breakdown out of sheer complexity, in which case finding bugs and making modifications start to take much time. On the other hand, simplicity in structure and design is more difficult to achieve, but much easier to maintain, understand and modify.) Took considerable time, but it could've been far worse. I feel I understand the code better now.

Decent before, better now. So on a global level I'm pretty happy with the design now. On the level of algorithms it's still pretty messy (you wouldn't believe some of the solutions I've created and still use). But that's within controlled areas so to speak, so it's not urgent to fix.

The improvement in strength consists of two things: improvement in evaluation, and more importantly: iterative deepening. It is a complete iterative deepening with extraction and insertion of a principal variation (these terms are explained below). However, it doesn't work as it should. The PV thing is actually making it somewhat slower that before (the opposite should be the case). But, the improved time management inherent in iterative deepening is a big improvement, especially in the end game.

What iterative deepening is: playing without it (usually) means searching to a fixed depth. For example, the chess engine always thinks 5 plies deep (+ quiescence search, if included), regardless of position. But that makes no sense, because in some positions 5 plies may take 400 seconds, and in others only 4 seconds. Iterative deepening solves this problem: it means to start with 1 ply deep, and then 2, then 3, and so on, until the time runs out, and then choose the best move from whatever depth you managed to achieve given that amount of time. (In the games below Babylons depth varied from 1-9. Without iterative deepening I would have had to go no deeper than 3 plies, to be sure it doesn't get stuck in some time consuming analysis. And going 9 instead of 3 is a huge benefit.).

That thing "extraction and insertion of a principal variation" means the following: when the engine goes, say, 3 plies deep (expecting to go more), it extracts what is considered at that point to be the best variation (both sides playing the best possible moves). And then at the next iteration (4 plies deep), the variation extracted the iteration before is the first variation to be tried. This improves the move order, which improves speed. In fact, it's the (by far) best move ordering principle that chess engine programmers have come up with so far.

Time for the games, three of them.

Against Raspoeting (one level in the chess program called Nagaskaki, which is free for for download . It's a very nice chess program.) A draw!

Another Game. Same enemy as once before, The Thinking Machine. Some funny moves, including a gambit (?) of some sort by TTM early in the game. It's a draw, but only because Babylon, who is two queens ahead in the game, can't differentiate between mate and stalemate.

Below a win against another old enemy, Homeostatic Computer Chess Player. It's very slow, so I stopped when Babylon had rook + three pawns against a lone king. (Technically it could have ended in a stalemate for the reason mentioned above. I'll fix that some day, just a detail.)

It's a long and somewhat boring game. A fierce warrior Babylon isn't. It's the most cautious engine around (and always ready to accept a draw, judging from all attempted threefold repetitions. But the enemy wouldn't have any of that, luckily.)

Sunday, August 05, 2007

Grand Master Chess for free

Just thought I'd tell you that Grand Master Chess (14.95$) is given away for free today at give-away-of-the-day. (I've been checking GAotD every day since it started, and found some really valuable and useful software.)

I'm downloading it right now, so I haven't tried it yet.

Update: Tried it briefly now. Disappointed. It's flashy, but no real configurability (except for graphics and a few other things), and you get no info on search depth and stuff like that (which is of interest to me). At least not as far as I have found. Also, it's kind of annoying to use. Lots of different boards and pieces to choose from, many of which I doubt anyone ever uses, so it's just pure bloatism. It has network capability (and can act as a server and client), which is good. But I suspect that it only works its own protocol (so it can only connect to itself, and not to FICS for example). Anyway, I'll keep it for now and maybe explore it some more later.

Update 2: Maybe I was too harsh. It does look great, which I appreciate.

Still, the old free version of Fritz (see link in left frame) is better.
Locations of visitors to this page