Ido’s chess Journey: How to teach chess to a 3 year old kid

How to teach chess to a 3 year old kid? That’s a good question. I wanted to teach Ido chess for a long time, but each time I tried, he lost focus after 2 minutes, even just for teaching him just rook movements.
I decided I needed to plan it a little more, make it much more fun, and “embed” it in mini-games. It seems to work much better now, but that’s maybe because he matured a lot.

Here are some ideas (some not yet implemented):

  • Using a DIY plastified chess board, allows me to show/play different positions really fast, anywhere.
  • Colorize squares where a piece is allowed to go :
  • Pawn race games (no en-passant rule yet).
  • Really small games (must not go over 5 minutes) with reduced chess set (for example Queen and 3 pawns vs Knight, bishop and 3 pawns).
  • Checkmate in one, using DiagTransfer program to draw series of chess diagrams. This program works only on Windows, but it works fine with Wine.

    For quick single diagrams, I found wbeditor, an online javascript diagram generator.

There’s a thread (french) about experience from different teachers, giving really good advices.
Most notably, Véronique Houck who has 15 years of experience of teaching chess to kindergarten/maternelle children. She wrote two books (in french). One is named Bibou & le monde des échecs, and the other one Le jeu d’échecs au cycle2. It’s not so easy to find, but using Google, you can find shows many links.

I’ve not yet read them. I’ll make a review when I get them.

Python snippet to get Mediawiki/Wikipedia Recent Changes externally

Mediawiki allows one to send Recent Changes (RC) to a UDP port.
The ip address is defined by the variable wgRC2UDPAddress, and the port by the variable wgRC2UDPPort. It’s a really good idea that it’s a UDP transfer, since there is no need for any ACK, so Mediawiki doesn’t block if there is nothing listening on that port.

These parameters must be set in the LocalSettings.php file, like this, for example.

$wgRC2UDPAddress = '';
$wgRC2UDPPort = 9390;

I wrote a really simple python program (more a proof of concept) that receives the data, cleans it, and then prints it to stdout :

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# vim:syntax=python:sw=4:ts=4:expandtab
import SocketServer
import re

HOST,PORT = '', 9390

class MyUDPHandler(SocketServer.BaseRequestHandler):
def handle(self):
print re.sub(r'\x03\d{0,2}', '', self.request[0])

if __name__ == '__main__':
server = SocketServer.UDPServer((HOST, PORT), MyUDPHandler)

I plan to make it into a complete project that will send the data/notifications using Jabber(XMPP).