HTML 5 Table Games

If you asked me what I’ve been up to for the past four years, these games were pretty much it.  First, engineering the core framework, then training a team and building the games and finally, supporting and integrating with our partners.

The games themselves were designed to be compatible all the way back to IE7 as the US was not the assumed target market.  Even today, online gambling regulation in the US is a muddy topic.  Since IE7 is a pre-canvas browser, most of the HTML 5 features, such as audio, offline, and local storage, are implemented via progressive enhancement.

Effects such as thew 3D card flip and the table zoom effect have simpler variations that are only seen when using an older browser that can’t display the transforms.

Live Demo

The following is a live demo of the games I worked on at Bally. They are from a codebase that we used as a demo for conventions during my last year with the company. It may still have bugs and features that we were not showing at the convention like the hand history feature may not be activated.

This demo resides on development server and may not always be available. If you are a hiring manager or a recruiter that would like to see this demo please contact me if it is not currently live.


Ultimate Texas Holdem | Three Card Poker | Casino War | Baccarat | Blackjack | Four Card Poker | Let It Ride | Mississippi Stud | Paigow Poker | Raise It Up Stud Poker | Six Card Poker | Straight Edge Poker | Ultimate Three Card Poker

One of the major achievements of the game client was just how quickly we were able to build new games. It was even used as a platform for developing new intellectual property and working out the kinks.

Video Demos

The following are some videos that illustrate the gameplay of the above live demos.

Homefront Community Site

One of the most technically frustrating yet visually interesting projects I’ve worked on .  Homefront was a Triple-A Video game for PC, XBox 360 and PS3 by THQ.  I had a small part in working on the API integration, data visualizations and animations for the combined community site.  The game is over 5 years old and the site is no longer available, but here are some visuals from the site.

The site combined data from Xbox Live, PSN and Steam to create a unified community experience with achievements and stats
Stats were animated and created a sense of excitement as you saw your score compared with others.

Website Screenshots

Palm Redesign
Palms Redesign
Lauberge Du Lac
Lauberge Du Lac
Worked on the HTML overlay and Mobile features for City Center / Aria,
Worked on the HTML overlay and Mobile features for City Center / Aria,


Wedding Officiant Rina
Wedding Officiant Rina
A golf matchmaking site.
A golf matchmaking site.
A really old design for
A really old design for
Local sing was a karaoke night search engine where you could search by night and song.
Local sing was a karaoke night search engine where you could search by night and song.
Advantage Office Furniture
Advantage Office Furniture
Essential Guide to Wedding Gowns
Essential Guide to Wedding Gowns

jQuery Mobile: In-Page Hash Links

A client of mine had an existing HTML document with a bunch of anchor tags linking to hashes within the page.  Since jQuery mobile uses the hash for it’s ajax loading the #top, #whatWeCollect and so on links would of course trigger a new (non-existent) page to load.

To get around this limitation in jQuery Mobile I wrote a little script.  It will essentially look for a class on the anchor tag and then do a little JavaScript magic to link to the in-document hash location.  Essentially recreating normal browser activity.


		var $target = $(this).parents('.ui-page').find($(this).attr('href')).eq(0);
		if($target.length == 1)

Essentially, what is going on here is that when a “page” is loaded by jQuery Mobile, I am looking for a wrapper element with the class “retroHashes”. Inside this element is the old [ugly] code I got from my client.

Then I look for all the anchor tags where the href begins with the hash.  If it does I unbind anything that might have been attached to click by other methods.  Not very nice and you might not want to do that step but in my case I was fragging all other behaviors on these links.

I bind new functionality to the click.  stopPropagation() prevents jQuery Mobile from doing it’s ajax load.

The rest is finding the target.  In my case the client was setting the the id of the target element and not the name, so I can actually just use the href attribute of the link as the selector.

I check to make sure that I found a target, and scroll to the offset within the document.

There you have it.  A quick hash link hack for jQuery Mobile.  If people like it I may expand this example to more use cases.

Escape Key not working in Games

Had a small issue today and found the answer here:

The problem was that while playing Portal or Red Alert 3 the Esc Key was not working.  As the post above says the fix was that Photoshop was capturing the keystroke for some unknown reason.

So, if you run into this issue while playing a game or otherwise, try closing Photoshop and potentially other applications to see if that resolves the issue.

FYI: I was playing Portal through Steam and have Photoshop CS4.

Stuck Uploads in SugarSync

In short you can “reset” SugarSync using:
Choose to maintain your synced folders when you start back up. (it’s the default option)

I ended up with an issue in SugarSync where after rapidly creating and deleting/renaming directories in Windows, SugarSync got confused and thought that the hidden file Folder.jpg needed to be uploaded when in fact the file no longer existed.

So what do we do when SugarSync get’s it’s upload queue messed up.  Wouldn’t it be nice if there was a way to reset the queue?  Well it isn’t documented but after spending 3 days to get a customer service reply I learned that ctrl-shift-R will perform the reset.

It is essentially like uninstalling and reinstalling SS from what I can tell and you should leave the box checked to maintain your synced folders when you restart the SugarSync Manager.

Windows 7 won’t boot after Catalyst Uninstall

Tonight I had a terrible annoyance while upgrading to the latest Catalyst Drivers.  Now, for the most part this whole AMD / ATI thing has been very good for me.  As a fan of both companies for many years the tighter integration of their product lines has yielded a number of products I’ve bought in recent years.

The Problem

After uninstalling the old catalyst driver from my machine (which I did using all the default settings)  I rebooted my machine before installing the new ones and windows 7 would not boot.


It turns out that the RAID driver for the motherboard chipset is in the catalyst suite now.  I had to download the driver from my Motherboard MFG and then put that on a USB drive.  When the recovery console came up I click “Load Drivers” at the bottom and this allowed me to select the first option and and run the startup repair.

Other Thoughts

Really AMD?!?!?  The catalyst driver set should be the video driver.  At the very least if the whole thing is going to be so integrated it should be made smart enough to warn you that the driver that lets you access your OS is being removed.  In the end I don’t think RAID drivers and graphics drivers have no business being part of the same install or uninstall.

Searching for Parenthesis in Windows 7

When you copy files and there is already a file of the same name in the folder Windows will kindly ask you what to do with it.  If you choose to keep both files it will add a (2) or (3) to the end of the filename of the file being copied in.

After a large copy it can be very difficult to find these potential duplicates because the Windows 7 search is poor.  Finding parenthesis is a real pain in the neck.

After some searching I was able to find the answer I was looking for here:…

Quite simply use the following in the search field:


I plan to elaborate as to what the means to windows, but clearly windows needs more than just quotes to make a literal string.

Simple Site Maintenance Page via .htaccess

I wanted to post this as I often forget those code snippets I use only a few times each year.  This simple addition to the .htaccess file will allow you to display a page to people coming to your site while letting you still see the site normally.

RewriteEngine On
RewriteCond %{REQUEST_URI} !/maintenance.html
RewriteCond %{REMOTE_HOST} !^10\.10\.10\.10
RewriteRule $ /maintenance.html [R=302,L]

Simply replace the 10s with your IP and if desired change the name of the file you want to display (2X).  If you already have “RewriteEngine On” in your .htaccess file be sure to remove that part as it will be redundant.

The first line simply ensures that you don’t redirect forever.  The second ensures that you won’t redirect yourself, or others at your public IP address.  The last will send everyone else to your maintenance message, in this case at /maintenance.html.

Also, if you want users to still be able to access your site’s asset files you can add something like:

RewriteCond %{REQUEST_URI} !(\.gif$)|(\.jpg$)|(\.png$)|(\.css$)|(\.js$)

to the beginning of the rewrite rule which will ignore the redirect to maintenance.html for image, css and javascript files.