Home Page
Archive > Updates > 2010 > November


The story of Eternal Realms has been added to the content section of its project page. *Nostalgic and frustrated sigh*


Dakusan’s Common JavaScript Library v1.0 has been added to the Other Web Scripts project. It is a JavaScript library with commonly used functions for:

  • Browser-specific functions
  • String, Object, Array, and “Function” manipulation functions
  • DOM Object creation and manipulation

The AutoSuggestBox Library has also been updated to v1.0.1. The only change is one of its inlined Common functions has been updated to match this new library.

[Edit on 2010-11-14 @ 12:22pm] I felt the need to mention that this library and test code isn’t exactly the best laid out of my source code. The library was meant to be done in a minimal amount of space (could still compress more, but meh), and the test code was thrown together just to make sure everything worked.

Download Content
Section: Website

I made a fix to the toggle text functionality on this site so that it no longer collapses toggled text when an input field or anchor (link) is clicked. I may periodically add HTML tags to this list if I notice they need to be added.

Click here for toggle text example
Click here to collapse toggle text
Links no longer collapse toggle text areas

Click here to collapse toggle text

AutoSuggestBox v1.0 has been added to the Other Web Scripts project. It is a dropdown box for HTML text boxes that gives case insensitive suggestions from a predefined list for what the user is typing. If the need or request ever arises, I may someday add to it the options for real time (non pre-defined) suggestion lists, and user-defined suggestion matching formulas.

Download Content

Version 1.0 of the PHP MySQL Library has been added to the Other Web Scripts page. It is my MySQLi library with functions for querying MySQL databases and handling queried data.

The purpose of this library was to be able to quickly execute queries and collect their data without a lot of extra code. While one of the original purposes of prepared statements for MySQL was so queries could be parsed only once and ran many times, I find in PHP I rarely use a query more than once per script, so this library is designed to easily execute a prepared statement with data already attached.

I moved this and the following libraries into their own “Library” section at the top of the project page’s contents: AJAX Library, Draw Image, and Image Zoom Effect.

Download Content
Section: Projects > Intellitix

The second project for Intellitix “ID Badge Management”, which was very recently created, has been added.

Section: Projects > Intellitix

In June of this year I was flown into Montreal, Canada within 24 hours of being contacted about a very important project. I was contracted to create a range of products in 6 weeks by myself that was originally slated for 9 months of development. It was literally the most grueling, stressful, and difficult undertaking I have ever attempted, but in the end, probably the most rewarding experience of my life.

The goal was to develop, deploy, and run the first fully automated RFID ticketing system for a concert festival of over one million tickets. I can thankfully say that we met and surpassed all expectations :-). See the project description for further information.


This is a very minor update for the AJAX library. The error function now receives ExtraData as an optional second parameter, which one of my recent projects required.

Download Content
Section: Website > Posts

I’ve been meaning to redo the tagging system ever since I first built my website, but was never really sure how I wanted to. I liked how I had relevant tag words tied to each post, but not how posts would show other posts using shared tags.

The old system was incredibly clunky and unhelpful. I honestly just threw a solution together for it without giving it thought, as at the time I didn’t consider it very important compared to getting the rest of the site done. It has honestly been bugging me enough for a while that I decided to take care of it. I came up with a solution for how I wanted it to work a few days ago and implemented it today.

All tags in both system link to their corresponding archive tag page.

The old version had 3 output sections which worked as follows:
  1. A list of the most recent 4 shared tags showing up to the 4 most recent posts for each of those tags, which often showed duplicate posts from preceding tags.
  2. A list of the rest of the shared tags.
  3. A list of the non-shared tags.
The system also sometimes ran over its vertical height limits :-\.

I find the new system much more helpful. It determines post relevancy by adding the reciprocals of the number of times each tag is shared.

So a tag is considered more relevant the less it is shared.

This new tagging system has 2 output sections which work as follows:
  1. The list of tags in descending order of relevance. Each tag is followed by its share count if not 0.
  2. The 4 most relevant shared posts in descending order of relevance. Each post takes up only 1 line with its horizontal overflow hidden. Each of these lines contains post name, number of shared tags, and a list of the shared tags in descending order of relevance.
This new system should never overflow vertically.

If I had engineered this properly from the start, I might have also included a weight for each tag on a post. This is no longer an option however as it would not be worth the effort going back and reweighing all previous posts. I’m not even sure if it would have been a good thing either, as tagging posts is already enough of a PITA without having to determine subjective weights.


As a project I will be posting in a few days was partially developed in C#, I needed to add it to the Languages and Libraries page :-). That is all.


Venue Scheduler is a web based application that allows for managing a venue’s daily event bookings. It was originally a 20 hour project in March sponsored by a single venue in Canada, but has been licensed since by multiple other venues. There have been many requested updates since then, which is reflected in the project’s time count.