Software
Zvika Ben-Haim

These are programs I wrote for fun or as small exercises. Please feel free to download and use them. You can also download the source code for all of these programs and modify it any way you like (but please give credit where due). If you do anything neat with any of these, let me know!

Note: Some of these programs were previously released as shareware, and, in some cases, the documentation still indicates shareware status. However, I am no longer trying to sell these as shareware. Instead, the versions you see here are the complete ("registered") versions. On the other hand, I don't always have time to answer technical support questions related to these programs.

Useful Stuff
An add-in for PowerPoint that allows you to easily insert LaTeX equations into your presentations.
I wrote the original version of IguanaTex; it is currently maintained by Jonathan Le Roux, who has expanded it quite a bit.
This is a small JavaScript program for translating WGS84 coordinates (longitude and latitude) to Israel grid coordinates. Both the new ITM grid (רשת ישראל החדשה) and the old ICS grid (רשת ישראל הישנה) are supported. Hebrew version also available.
A simple web-based editor for writing guitar tabs in the standard textual format. Joint work with Naama Ben-Haim. See the source on GitHub.
This website includes a friendly introduction to blind minimax estimation, some examples, and a BME package for Matlab which you can download and use.
The site and software were written by Guy Leibovitz and Asaf Elron, as their undergraduate project under my supervision.
A program to tune your guitar. Connect a microphone and strum a single note on your guitar, and the program will tell you if you're sharp or flat. (Written as a birthday present for my brother Rafi, who was learning to play.) Download executable or source (MFC/Visual C++ 6). No documentation, but quite straightforward to use.
Games
גרסה עברית של המשחק וורדל.
Hebrew version of the Wordle word game.
ואריאציה של וורדל שבו צריך לנחש שתי מילים בו-זמנית.
Hebrew version of the Dordle word game.
משחק אסוציאציות שבו צריך למצוא ארבע רביעיות של מילים קשורות. משחק חדש כל שבת.
Association game where you need to find quartets of related words. A new game every Saturday.
Online Codenames Pictures game. A fork from the Codenames webapp by Jackson Owens. (Source).
Generates SVG files with random jigsaw puzzle pieces.
A collection of easy auto-generated, online, printable math puzzles and games which I wrote for my kids.
JavaScript maze game (written with my son).
A utility for generating font-like text in Hebrew handwriting script. Multiple versions of each letter create a more convincingly handwritten result.
This is a computer program for automatic song identification. The user hums a few notes from a song; these are analyzed and searched for in a database. This was the graduation project of my bachelor's degree at the Technion, and was conducted under the supervision of Gal Ashour.
Game Solvers

A hobby of mine has been to competitively write solvers for puzzle games such as Sudoku and the like. Here are a few of them.

A program for automatically solving Minesweeper riddles, in which you are shown a subset of the Minesweeper field and need to figure out where all of the mines are located..
A program for automatically solving Kakuro (also known as Cross Sum) puzzles. No documentation, but you'll figure it out if you know the puzzle. Solves most large puzzles (22x13) in a few seconds. Requires .NET Framework 2.0. Download executable (with example) or source (Visual C# 2005 Express).
A program for automatically solving Sudoku (a.k.a. Number Place) puzzles. Just fill in the numbers you know and leave the others blank, and the program will solve the puzzle for you in under a second. Download the software, sample puzzles, and source (MFC/Visual C++ 6).
This program solves the Paint by Numbers (Pic-a-Pix) puzzle, in which the horizontal and vertical lengths of pixel sequences are given, and the object is to figure out the picture. No documentation, but if you know the puzzle, you'll figure it out; just drag one of the enclosed text files into the program and click Action>Solve. (boat.txt is a good starting example; carriage.txt is a difficult one.) Download the software (with sample puzzles) or source (MFC/Visual C++ 6).
Python-based solver for the Katamino game.
A Python solver for Tantrix puzzles. Runtime can be a bit slow for larger puzzles (more than about 15 pieces); I'm sure this can be optimized further. Output is written as an SVG file: see example output.
Very Old Stuff

I've been writing software for a long time and many of these are both ridiculously archaic and embarrassingly incompetent. I'm keeping them here solely for nostalgic reasons.

Alarm clock program. Choose to play a wave file or run an external program (e.g. Media Player) at a specified time. The cool feature is the ability to slowly increase the computer's volume, so you don't wake up with a start. This was actually my alarm clock in the college dorm; this was, of course, before smartphones. Download the executable (with help file) or the source (MFC/Visual C++ 6).
C++ package for basic matrix/vector operations, such as matrix ranking, inversion, determinants, etc. However, this package probably does not house the most numerically stable algorithms, as it was written primarily as an exercise. Download the package source code (C++), with documentation and demo program for solving linear equations.
A program for converting MIDI files to the XM (Extended Module) music format. Before MP3s became popular, XM was used for storing sound files in a higher quality than MIDI. Download software (with documentation and examples) or source (C++).
In this guessing game, the computer asks a series of yes/no questions to figure out what concept you are thinking of. The program learns new concepts if its guesses fail. Concepts of different types can be programmed; for example, a sample question database which can identify over 100 types of animals is included. Download software (with help and animals database) or source.