Recent Posts

Imaging the Mandelbrot Set
Playing around with fractal images

Recently I had some spare time, and used it to create a program to render the Mandelbrot Set fractal. It has been a very cool problem to write a quick application for. I want to share what I have learned in case someone else wants to build something similar or just wants to know how cool fractal images can be created. The program itself is written in C# with WPF. It will run faster if done in C, and I am not using any features for the image generation that WPF is necessary for. The reason I chose C# with WPF was that I wanted to get some practice with them before I start my new job.

The inclusion of any complex number C in the Mandelbrot set is determined by applying the following algorithm to that point:
1. Set a complex number Z to 0
2. Square Z and ...

Full Post...
Instant Web Gallery
An easy static photograh site

For the last 15 years, my family has put their pictures up on a web server so that friends and families can browse through them. Unfortunately, the images that were put up were not well catalogued, and it was difficult to find a picture even if you knew what you were looking for, and impossible to browse through them, as each image would take several seconds, or even minutes, to load and few of them had names that described their contents.

I wanted to create a tool that would build an easy to use photo gallery website around an existing collection of images. Having just used Django to create my own web photo gallery for this site I decided that I base this project on the Django template engine, and reuse some of my old photo gallery templates. I made the script produce a static website, as I felt that ...

Full Post...
Fun with Diff
and using Python to render Bitmaps

I was playing around with the Longest Common Subsequence algorithm (which is used, among other things, for the Diff utility) for another project that I hope to write about soon, and I noticed some interesting patterns. The LCS problem has an intermediate step in which a matrix is built, with every column corresponding to a unit in the first input set, withevery row corresponds to a unit in the second input set. The value stored in each cell gives the length of the longest subsequence if the two sequences both ended at that point in the sequence. Once this entire matrix has been appropriately populated, the program can backtrack through it picking the appropriate elements to find the longest common subsequence.

When I was working on getting LCS to work, I kept noticing that there would occasionally be interesting shapes that would show up in the matrix based on where ...

Full Post...
Hacking Board Games
Side channel attack On WebDiplomacy

I recently started playing a board game called Diplomacy. While this game has been around since the mid 50’s according to Wikipedia it seems to have come into its own in the digital age. The premise of the game is very similar to Risk, except that there is much less dependence on luck, and far more on the cooperation of allies. The only way to get ahead in the game of diplomacy is to work with allies, but eventually, in order to win a player must strike out on their own, betray their former friends, and seize victory for themselves. If you are interested in the game, there are a lot of resources online that explain the Rules and some strategy to the game. This post however has very little to do with the game itself, except as an example of how side channel information can be used for ...

Full Post...