László Kozma :: Projects

 back to lkozma.net

WikipediaVision is an (almost) real-time visualization of Wikipedia edits and what part of the world they come from. FishEyeTabs is a tiny extension for Mozilla Firefox that replaces tab-bar scrolling with fisheye-style zooming when many tabs are open.
Color-changing links are a simple way of keeping bookmarks online, with a visualization of link popularity (description). A simple paper/pencil game. And another one. An attempt of analyzing the first with combinatorial game theory.
Reverse autocomplete is a tweak on the familiar user interface feature. Metahint site search engine Metahint, a "suggestive" site search engine I developed with Szilárd Pataki.
embeddable book widget BookBox is an embeddable widget that you can use to show your favorite books on your webpage. curs online maghiara Nebuló. A site for Romanians interested in learning Hungarian. Curs online gratuit de limba maghiara.
phpBB recent posts widget, a small add-on to the popular forum engine. Sounds-a-bit-like is a collection of similar songs added by the users (formerly at soundsabitlike.com)
Smooth colour clock Smooth colour clock, a tiny tweak on an existing colour clock implementation. Directly to my version. Old, unfinished projects. These are some small programs I wrote as school assignments or just for fun in the distant past.
Useful inequalities cheat sheet Inequalities cheat sheet, a collection of some of the most useful inequalities. Bongard problems Bongard problems, and my attempt to create a few of them.
Random wiki image wallpaper Random wiki image wallpaper, a script for Linux/Unix systems that sets a random image from Wikipedia as wallpaper. Mixed metaphors A collection of mixed metaphors similar to "the knee is the Achilles' heel of the leg".
Self-counting sentences Self-counting sentences, a family of mind-bending recursive math puzzles: first part, second part. Disk intersection game Disk intersection game is a simple, experimental, geometric puzzle/game (description).
Languages visualization Visualizing the languages of the world, some plots based on the WALS data set. Map of named colors A visualization of all named colors, from Acadia to Zucchini.
Nonlinear Speedometer Nonlinear speedometer, a small tweak on the car instrument. Apples and Oranges A collection of different solutions and generalizations to a nice apples and oranges math puzzle.
Recursi: a fractal memory puzzle Recursi, a simple but difficult recursive memory/logic game. Cuckoo hashing visualization A visualization of the Cuckoo hashing data structure.


Color-changing links

The idea of this project is to organize links into groups, and access them from everywhere - to avoid having to synchronize browser bookmarks between different computers. For me, social bookmarking sites seemed too complicated, as I only need a simple page listing all the links, with a basic interface to add/remove items. A wiki would have been sufficient, but I decided to add some visual features, making the color of the links reflect their usage. The red component of the color shows how often a link is clicked, compared to other links in the same group. This way the frequently used links are more easily located. Additionally, the color of a link decays with time, so links that haven't been clicked for a long time slowly change back to black. The green component shows how long ago the link was added.

In the spirit of eating one's own dogfood, my bookmarks are organized this way. If you want to create a similar page of your own, I'll host it for free. The interface for editing the page should be easy to use, but it is quite quirky. You can do simple tasks like adding or removing links by clicking buttons, then saving the changes with your chosen pass-code. For other tasks, there is an admin interface, where you can pick from the menu or enter scripts for updating several things at the same time. For example, if your pass-code is foo, you can add a category and a link to it, with the following script:

pcfoo acMyCategory alMyLink[http://mylink.com]MyCategory

Paper/pencil game

Two persons play on some rectangular checkered board. Players alternate in putting a piece in a free square (just like in Go). If played on paper, they can just mark a square in every step. It is not allowed to choose a square that has any of its neighbours (out of the 8 or less) already taken. If a player can't put a piece anywhere, he loses.
The game is described at Paper&Pencil games, under the name "Obstruction Game". There it can also be played against the computer. Mathpuzzle featured it under the ominous name "Obliteration Game".


Since the gameplay is completely deterministic, one of the players must have a winning strategy for each board size. For example, the first player wins on a 3*3 board, but loses on 2*4. For smaller boards it's trivial to figure out who wins, but on a large board this can lead to a lot of computation. As a puzzle, you can find who wins on 4*4, 4*5, 4*6, 5*6, and 6*6.

I haven't seen the game in this exact form, but doing some research, I found several similar games. The 1*n version is already known as Dawson's chess, and a game called Regio is a variant where the 4 direct neighbors are considered, instead of 8.

More information about the game...

Knight's tour game

This two-player game is played on a checkered board of arbitrary size (larger than 3*3). The first player chooses a starting position, where he places a knight. The second player makes a move, according to the regular chess-rule of knight movement. Then first player makes a move, then the second again and so on (the moves are made with the same knight). Every field on which the knight has jumped (including the starting position) are marked, and it cannot jump on a marked position again. The player who cannot move loses.


(0 is the starting position, the numbers show the order of moves in an example game)

It is interesting to find out which player has a winning strategy for each board size. On a 4*4 board for example, the second player can always win. In the general case I am not aware of any simple solution.

Toshihiro Shimizu points out the following complete solution (in fact he solves a much more general class of games, which includes this game as a special case):

The more general game is played on an arbitrary undirected graph G. The players alternate in moving the piece to a vertex of G that is connected by an edge to the previous vertex. A vertex cannot be used more than once. Whoever cannot move loses. It turns out that the second player wins if the graph has a perfect matching and the first player wins if the graph does not have a perfect matching. The proof of these claims can be found in this thread.

The Knight's tour game defined above corresponds to a particular graph in which we associate a vertex to each square of the chessboard and we associate an edge to each valid move of a knight. We can show this graph to admit a perfect matching, unless any of the following holds (i) the number of squares on the board is odd, (ii) one side of the board is of length 1, (iii) one side of the board is of length 2 and the other side length is not a multiple of 4.

To show the above, we use the characterization of boards that have a knight's tour. If the number of squares is even and there is a knight's tour, clearly we have a perfect matching. If the number of squares is odd, we cannot have a perfect matching. What is left is a small number of special cases, which can be checked directly.

Open Problem:
Who wins the game for each board size in misére play? (the player unable to move wins).

Web projects

A (growing) list of no-frills websites that I made or helped create:
- www.fordito.ro - Hiteles fordítás román, magyar, német nyelven. Székelyudvarhely.
Traducator autorizat in limba romana, maghiara, germana. Odorheiu Secuiesc.
- www.városfalva.ro - Városfalva falu honlapja. Pagina satului Oraseni. Transylvanian village homepage.


© 2007- László Kozma (LKozma@gmail.com)