About

Hi, I'm Joey Robert, a computational physics student guy at UW. I blog occasionally here. Contact me via email at Sorry blind people or through one of the social networks below.

Delicious | GitHub | Last.fm | LinkedIn | StackOverflow | Twitter

Projects

Fiasco Chess Engine

Fiasco is an open source, pre-alpha chess engine written in C# and .NET. It features a "classic" alpha/beta brute force search, an opening book and XBoard/Winboard support. It's based on a 10 x 12 board representation.

It was developed on Windows 7 Professional using Microsoft Visual C# Express 2008 and tested on Ubuntu 9.10 using Mono 2.0.1 and MonoDevelop 2.0. Arena was also super helpful for debugging Fiasco.

GitHub Project Page | Fiasco's Games

6502.NET Screenshot

6502.NET

6502.NET is MOS Technology 6502 (an 8-bit microprocessor that powered the Apple II, Commodore 64, Atari 2600 and NES) emulator written in C# and .NET. 6502.NET has approximately 40% opcode coverage. On a modern computer 6502.NET can operate up to 100 MHz and is both Windows .NET and Mono compatible.

6502.NET features both a Winforms GUI and a console display. It was inspired by 6502asm.com: a 6502 compatible assembler and emulator in Javascript.

GitHub Project Page

That Old Cache

That Old Cache is a Ruby gem based on the ActiveSupport memcached store that gets rid of the memcached TTL (so keys aren't explicitly expired). Instead the expiry time is stored in the value itself, so old versions of a cache can be served still while the results are being updated. Uses the yajl-ruby JSON library.

GitHub Project Page

BloomFilter.NET

BloomFilter.NET is an generic implementation of a bloom filter. A bloom filter is a space-efficient probabilistic data structure that is used to test whether an element is a member of a set. False positives are possible, but false negatives are not. Elements can be added to the set, but not removed.

GitHub Project Page

Example (C#)

using System;
using System.Collections.Generic;
using DataTypes;

class Program
{
    static void Main()
    {
        BloomFilter<string> bf = new BloomFilter<string>(20, 2);

        bf.Add("testing");
        bf.Add("nottesting");

        bf.Contains("badstring"); // False
        bf.Contains("testing");   // True

        List<string> testItems = new List<string>() { "badstring",
                                                      "testing",
                                                      "test" };

        bf.ContainsAll(testItems); // False
        bf.ContainsAny(testItems); // True

        // 0.040894188143892
        bf.FalsePositiveProbability();
    }
}

ConwayJS

The Game of Life is a cellular automaton devised by the British mathematician John Horton Conway in 1970. My goal was to build a simple and pretty implementation in JavaScript. Recommended Browsers: Chrome 3+, Safari 4+, Firefox 3+, Opera 10+.

GitHub Project Page

Music

I make music under the alias harmonyofchaos using Guitar Pro. Check out some of my latest stuff. All music is licensed under Creative Commons License.