Description
Blackjack Simulator is an engine which simulates a casino Blackjack experience and collects statistics on the entire process. The basic flow of the game follows a casino environment: A shoe is populated with any number of decks, shuffled, and then penetrated with a cut card which will not be dealt past. The cards are dealt in proper order including a hole card, and then each hand is played out. Any number of players can be in a game and each player can use a different Player Strategy. The Dealer Strategy and Casino Rules are the same for each player and can be configured based on common casino rule variations.
The simulator has a few uses without the counting attachment; First, a Player Strategy can be simulated through several thousand shoes to calculate the gain or loss over time. Beyond that Casino Rules can be modified to see how they affect the player's gains and losses over time. The engine cannot calculate the ideal strategy for a given set of Casino Rules and there are no plans to implement such functionality. It is important to remember that this tool does not calculate probability - at best, it will compare real world results to an expected probability provided by another source.
Card Counting
The Card Counting Simulator is an addition to the Blackjack Simulator which allows a Player Strategy to change dynamically. This application can be used to simulate a hi-lo card counting strategy in a casino environment. The counter attaches to a player and modifies the count as they see cards. The counter can't see burned cards or hole cards in advance.
An infinite number of Triggers can be added to a player's strategy. A trigger is based on the current true count (Count divided by Decks remaining in the Shoe) and will do one of two things: Modify the current wager or switch to a different strategy table.
Example Strategy and Trigger
A sample run of the software would begin with Casino Rules, Dealer Strategy, and a default Player Strategy consisting of basic Blackjack strategy. The user would set the number of Shoes to simulate and pick a Player with a configured wager, Player Strategy, and triggers. For instance, a user could wager $25 using a basic Strategy Table and set triggers to change the wager to $10 when the true count is at -2 or lower, change the wager to $100 when the true count is at 3 or higher, and use a different, more aggressive Strategy Table when the true count is 2 or higher.
Customization
Casino Rules, Dealer Strategy and Player Strategy, and Players are all represented as XML configuration files. The player file contains a wager, a Strategy file name, and any number of triggers. Casino Rules and Dealer and Player strategies are all organized in a tabular format using XML.
Sw-Guild.org is a website for a World of Warcraft guild which I was a part of: the Shadow Warriors. The site is designed using PHP, CSS, and MySQL with off-the-shelf implementations of EQDKP and PHPBB with custom styling.
PHPBB is used to drive the content of the site so that active administration is not required. Queries are made against tables to pull information from access-restricted PHPBB topics. The content of these topics is parsed to populate the website. The Armory data on the guild roster is provided by a script using cURL to request the data from the armory and run via cron. This design is very low maintenance and should allow the guild content to be managed without active administration or direct access to the web server.

Woodle.org has been my personal website since sometime around the year 2000. Everything is custom developed using PHP, CSS, and MySQL and much of the back-end maintenance is managed with CPanel and PhpMyAdmin through my hosting provider, Surpass. I edit pages using an FTP connection through PSPad and do not use a separate development environment. My administration page is quite basic and allows for the addition, editing, and deletion of news topics as well as beers and beer reviews. The content on the Coding, Career, and Biography pages is mostly static.
The pictures section of the website is based on directory structure. Each folder in the autograb folder represents a picture album and a thumbs directory with matching file names is expected for each photograph. I use Adobe Photoshop 7.0 to modify pictures as needed and all thumbnails are created using ImageMagick 6.4.3.