Home Page
Archive > Updates > 2010 > All
Archive > Updates > 2010 > All

Warning: you do not have javascript enabled. This WILL cause layout glitches.

Section: Website > Projects

I decided to knock down the ratings of the MeasureIt, WebRoute, and FileSync projects by 3-4 points as I don’t plan on finishing them any time soon, and they are pretty much the only items with a rating higher than 7 that aren’t in a “completed” (finished, ongoing, or abandoned) state.


Action Counter v1.0, which creates a looping countdown timer that performs an action when it reaches 0, has been added to the Other Web Scripts project.

Download Content

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.

Section: Projects > Websites

Three new websites completed in the last month have been added to the Websites Project page: Intellitix, Anima Communications, and Rays Resto Pub.


A “Permissions” section has been added to the Mini Acuity Project. See the Android Permissions Improperly Reported post for more information.

Minor layout and code fixes
  • Appropriate settings are now refreshed only when returning from a setting/pick image screen instead of every time the main activity is resumed.
  • Multiple stylesheet fixes including removing superfluous styles to allow for default Android themes, and using "scaled pixel" font measurements instead of "pixels" on all activities.
  • Changed About Page layout to add and accommodate for inlined links, and removed title bar
Download Content

Uploaded first (v1.0) version of my Mini Acuity Project, which is an Android application intended for doctors to use as a portable eye test chart. Only the free version is available here on the website, but both versions are available on the Android Market. This was developed on, and has only been tested for, the Motorola Droid. Further languages and verified support for other phones to possibly come in the future.

Download Content

I added a “Project” entitled Other Project that lists all applications from posts that were [way] too small-scale to make it on to my Projects list.


Releasing another one of my old and kind of useless projects in an unchanged state from when I made it in 2002.

It was a questionnaire made in Visual Basic with its own internal database. These days (actually 6 months later), I would have done this through a web application with a relational database. As this is, it works, and it is a completely stand alone application, which has its advantages.

Download: v1.0 Binary, Source

[Update at 8:30pm] I just remembered something I figured that I should mention. The reason the guy from the hospital hired me for this project was that he wanted me to take what he already had (he had a few basic forms) and program it correctly so he could learn from it and modify it himself. I did start everything over from scratch though, as what he had was a different VB form for every question. He needed me to do it in VB5 for this reason IIRC, and fortunately, my VB6 was compatible with it :-).

Download Content

Per a user request, The “Show Pending Conversation” action has been added. This shows the current pending conversation (like when clicking on the task tray [docklet] icon for an unread message).

Download: v1.5.2 Binary, Source

Download Content
Section: Projects > DeCrypt

DeCrypt v1.0 (and definitely the last version) is released. This was just an example programming project for school (kind of).

It’s slow, not too well programmed (multiple programmers), and sloppy. I don’t really care about it so I didn’t worry about cleaning it up for release. It’s one of the few programs I have done in Java, and hopefully one of the last.

Download Content

v1.0.1: Binary Source

Fixed an infinite loop when displaying a picture’s file name that occurred when the width was too small for even 1 character to be displayed.

Added interrupt signal handling, even though it doesn’t work too well in Windows :-\.

Download Content

Releasing first (and probably only) version of my old Convert Bases project (v1.0, source, binary). I’m not sure when I did this project exactly, but I’m going to guess it was around 1999. I didn’t really worry about fixing up the source code, as it’s not a project that really deserves the attention, and the algorithms are slow and clunky as it is, but I did fix up the GUI slightly.

Download Content

This will probably be my final update (v1.5.1, binary, source) on this project for a while unless other bugs are found, or enough interest is generated on a specific request by enough people.

The problem with window raising/lowering in KDE is now fixed. GTK/GDK was not acting how it was supposed to in regards to focusing and changing window Z-order (gdk_window_lower/gdk_window_raise/gdk_window_focus/gtk_window_present) and I had to add a very hack-ey solution to get it working in both Gnome and KDE. It’s not a pretty or elegant solution, but it works. It also still won’t give focus to the Buddy List window when it is raised in KDE, but I feel the end result is close enough for government work.

I’m going to go ahead and announce it today by adding it to the Pidgin plugin wiki :-). I’m finally interfacing with the rest of the open source world, yay! XD

Oh yes, I forgot to add something on my last update post. I originally had planned to also add an option so that double clicking the taskbar/docklet icon would always open the Buddy List instead of toggling visibility. This was unfortunately not possible due to how Pidgin is programmed. I found exactly where the problem was, and know how to fix it by modifying the Pidgin source (probably by generating a signal for an event), but I am not really interested in trying to get a patch pushed through for that on Pidgin, so alas.

Download Content

I’ve updated the project (v1.5, binary, source) to where it’s not even recognizable from its last version :-). A configuration dialog has been added so that everything can now be set dynamically. It’s very configurable to let people work with Pidgin quickly through global shortcut keys however they want to. Any status change or showing/hiding the buddy list can be done without using the mouse, which is how I personally like to work with computers, as it is much faster ;-).

This update ended up taking a lot more hours (and many many many more lines of code [~1500]) than I planned on because I had to learn how to work with multiple libraries from scratch (GTK, Pidgin, GLib, X11). I learned a lot though, and that, and seeing how different people set up their APIs/libraries, is always fun.

I’ll probably be adding this to the Pidgin 3rd party plugins Wiki in the next few days. I might want to fix a few bugs first though (KDE might be messing some things up).

Download Content

I just found this Web Browser Information script I did well over a year ago on my harddrive. It was already completed and in the current state that it’s in... and I have no idea why I hadn’t already posted it >.<; . I did a quick look over of the code and it all looks OK... so.. yeah, no idea. Anywho, here it is (v1.0 source).

Description: Outputs all the information the browser can gather from the user via JavaScript and the HTTP Headers.

Download Content

I started this Pidgin plugin yesterday and had just finished it right before going to sleep, so I finally now have the time to post it ^_^ (v1.0, binary, source). The goal of this project was to fill in some gaps in Pidgin that were features I had in Trillian.

This plugin allows the user, using global shortcut keys, to set their status state and message, show the buddy list, and toggle the buddy list visibility on the taskbar.

It currently only works in Windows, as that was my primary concern and I need to get a Linux test environment set up to finish it. I had to use Window’s specific APIs for the taskbar visibility and HotKey functionality, as “gdk_window_add_filter” (for the HotKeys) and “gtk_window_set_skip_taskbar_hint” (for the TaskBar visibility) do not seem to work in Windows.

It is also only configurable through the source itself, at the moment, but I should hopefully soon be adding a configuration dialog with the following abilities:

  • The ability to set multiple [away] status states with messages (or leave the message alone)
  • Choose whether to start the Buddy List as visible or not on the taskbar
  • Configure as many events as you want against hot keys, which don’t have to use ctrl+shift, and may be able to be just triggered locally when the buddy list has focus (which also need to check for conflicts)
Controls/Use (Included in this update since this information will be changed in the next version):
  • All of the functionality can be accessed through: Pidgin Menu > Tools > Status Hot Keys
  • Global Shortcut Keys
    Back [Available]Ctrl+Shift+B
    Disconnect [Offline]Ctrl+Shift+D
    Show Pidgin Buddy ListCtrl+Shift+P
    Toggle Buddy List in TashbarCtrl+Shift+T

License: I am unsure if Pidgin plugins need to also be licensed under the GPL, as I am not using any of their files beyond linking to the headers. I am including their copy of the GPL from the main directory of the Pidgin source code in the file “COPYING”, just in case. I am considering this to be under the Dakusan License though until I found out if it definitely needs to be GPLed.

Download Content