Learning about The SmartFoxServer: massive multiplayer server

I’ve always loved multiplayer games and one of the first attempts I made at writing a mutliplayer game was a game written in Turing that would attempt to write to a shared hard drive everytime a players moved their position in the game. It was interesting. I learned that day that files were not immutable under DOS and would crash the game if two or more clients accessed the shared file at the same time.
Now nearly 20 years later we’ve had huge games such as World of Warcraft with up to 6 million subscribers and hundreds of thousands of users.

The technologies and solutions these companies came up with to scale this many users are varied and interesting.
However one solution that you can get out of the box is this server. I’ve tested it out, think it’s ok for what I would need. Now it comes down to price.
The unlimited license is €3,000.00 which is about $3380 american or $4480 canadian dollars.
It’s expensive. It probably works out to about $1 per a user.

The limited 5000 user license is only 2,100.00 euros. This works out to about 50 cents a user.

Fall is here. PHP Programming news.

Hi Everyone,

I haven’t posted anything since last year. What going on right now?

I was working on the RadiumCRM chrome extension earlier this year. It’s an excellent Gmail CRM tool to use.

Lots of javascript and jquery work involved with it.

Also did a 50onred integration with driver.php to integrate with their pops api. Created a nice tool for that so users can easily change the bids for campaigns etc.

The latest work I’ve done this past month involved Amazon s3 and Amazon mturk. A tool for create HITs (Human Intelligence Tasks) that involve transcribing text from images.

It’ll be used for business cards but it could be used for more than that. Captchas, converting books, or other paper work scanned as images to text.

There are so many cool things to do. Sometimes I wish I could just do more!


Microfusion, Aneutronic Fusion and Focused fusion.

I’m really excited about fusion lately. I’ve been reading about the progress being made by several different companies and hope for the best. Fusion will change the world if it can be mastered.

is the world going to explode? LOL

Nope, Fusion is unsustainable, This is what makes it so difficult. Everytime you do any fusion it’s like a small explosion. It releases lots of energy but that in turn makes it less likely to keep fusing more atoms.
Fusion only happens continuously in the sun because of the immense gravitation energy which overcomes the nuclear forces.

Here’s a couple of the upcoming fusion projects that might change the world.
1. Lockheed Skunkworks.

2. http://lawrencevilleplasmaphysics.com/
Their society to raise awareness.

3. Energy matter conversion corporation

4. Tri Alpha Energy, Inc
Article on the fusion gold rush

If they are successful it’ll be like having a nuclear power plant that can safely power trucks/cars/airplanes/homes etc.
The really cool stuff I would like to see powered by it are spaceships, ion driven spacecraft and ionic wind thrusters that can be used inside the earths atmosphere to get into orbit.

WordPress caching solutions

Lately I’ve been working on Custom blogs and Total Cache just wasn’t cutting it because the cache would be regenerated daily. What’s involved in making the cache work is compressing the data and storing it locally. Do this for thousand pages daily where pages can take up to 2 seconds to load and it really starts to add up and you will quickly find that you can no longer host your blog on a non-dedicated server.

In order to get a page working with W3 Total Cache you have to load it once first.
If it takes a long time to load the page your site may run out of system resources.
This is where you want to use a tool like Fragment Cache
It can reduce load times considerably by caching portions of
your blog that don’t change considerably from page to page.
A simple problem of loading 5000 pages * 2 seconds a page would take ~3 hours to cache. If you did this daily your users would riot!
If you reduce the time from 2 seconds to 50 ms you will be in an acceptable range of 4 minutes.
Adding fragment cache requires experience with php/html to modify pages/templates though so it’s not something you can just load on your blog like total cache.

A quote from fragment cache:

There are a lot of great caching plugins out there, but this one solves a very particular need that none of the rest are doing. It allows you to cache particular sections of your page, using a technique known as “fragment caching”, which is readily available in other frameworks such as Ruby on Rails. The key benefit here: you can cache content for logged-in users! This is the main limitation of most other caching plugins, which is where the need for this solution came about.

There are other Fragment cache solutions out there including ones built into total cache. I found this one the easiest one for me to implement and use.
Also I’ve made a few simple updates to fragment cache such as directories/folders to improve disk read performance.

Finally you need to optimize the actual queries. Usually each page has a unique query. If this query is slow it really can affect how fast you cache your data.
Adding indexes to tables, or creating temporary tables to presort data will
improve performance. Use wordpress hooks to modify and add new tables.

Finding these slow queries can be time consuming. Try using the
query monitor wordpress plugin.

Here’s my guideline for acceptable performance.

Page load times:
Slower than 1 second users will notice and you will not have many concurrent users.
1 second loading time – Not so good.
0.5 second loading time – Ok
0.1 second loading time – Better than most
0.05 second loading time – Nice!

Trials and tribulations of html5 game programming

So I’m trying to use Yoyogames Gamemaker to create multiplatform games.
I think the tool does save a lot of time and make a job that would be normally impossible for a single developer, plausible. However, It can be a real pain.

In the past couple days I’ve had the following happen:
Google removed createGainNode on their chrome browser.

This problem took me several days to fix because I was using Kongregate and any change I uploaded and made live would eventually revert because of their caching issue.
Kongregate important note about uploading html5 games
I found that post through google luckily after noticing that they were caching old files somehow even after I had uploaded and tested the files in their “staging”.

Some other problems not related to programming but still important to game developers is that
Kongregate now wants you to register with the US government and/or apply a 30% withholding tax.

Advertising with Google and admob:
I limited myself to a budget of $20 a day. I stopped the campaign after spending $24 or so I thought.
The campaign continued to charge me or had hidden the charges for the current day so I ended up with a bill of around $40. I was able to make back about $3 out of $40. Not a very good return for my money.
Currently there are about 60 people / 120 original installs with the game. With the majority of the people playing the game once or twice and then never playing it again.

All this work:
I’ve almost broke $15 on Kongregate and that’s including money from other games long past.
I’m -$40 on google play.
I should be starving.

Visual Basic Datagrid Sort + Filter

How to: Group, Sort, and Filter Data in the DataGrid Control


I couldn’t set a filter function in my case but I could use a customfilter which worked pretty good.


For some reason this link is the 3rd or 4th page or worse when searching on google.
It should be higher up then most of the useless posts out there in blog land.
Restored by Emergency Restore

PHP base_convert

I wrote a simple tool to visualize numbers in different bases to help solve a math problem I was thinking about
the other day. It uses PHP.

Convert numbers

Use this form to convert numbers between different bases.

This can be useful for visualizating numbers in different bases.

Input base number:

Numbers To Convert (1 per line)

Output base number:

if( isset( $_REQUEST[“input_data”] ) )
$base_in = $_REQUEST[“base_in”];
$base_out = $_REQUEST[“base_out”];
$input_data = $_REQUEST[“input_data”];
$lines = preg_split(“/(\r?\n)/”, $input_data);
$lines_count = count( $lines );

echo “ output in base $base_out
foreach( $lines as $line)
// do stuff with $line
echo base_convert( $line, $base_in, $base_out).”\n



Restored by Emergency Restore