Blog

  • Boxes and Bombs

    Like with all good projects, this one's genesis involved some copious amounts of alcohol and a discussion over MSN Messenger about Rubik's cubes and Minesweeper. Obviously, the topic quickly degenerated into combining the two into a 3D Minesweeper and we learned that, while such games already exists, all available options are either Linux-exclusive, expensive, or buggy.

    I found the situation absolutely unacceptable, so I ended up spending my winter break on learning the basics of OpenGL and creating the first prototype for Boxes and Bombs, which I called CubeSweeper back then. The result was such as one would expect, update logic tied to framerate, GL_SELECT picking, and about a dozen unnecessary dependencies. Ugh.

    This all happened about a decade ago, so I thought it's about time for me to try again and hopefully do a bit less of an awful job this time. Download it here.

    Boxes and Bombs

    12/31/2017 5:55:36 AM
  • BlazeGears v1.1.0-s Released

    Update January 1st, 2013 3:07 PM: Made a mistake in the change log of the previous version, the method that supersedes the BlazeGears.BGTL.parse method is called compileTemplate, not parseTemplate. Made a new release (v1.1.0-s.1) with the fixed change log.

    Well, this one took quite a while, mostly because I spent the majority of my time on planning how I'm going to clean up the API. So I'll go crazy on the deprecated label for the next release.

    This release renames some members of the API, fixes some bugs, and adds QUnit unit tests for most of the important functionality, so I'll have a harder time introducing new bugs in the future. Also, I removed all eval'd functionality that would cause problems with JavaScript minifiers/compilers that shortens the names of the local variables and arguments.

    Change Log

    • Superseded the BlazeGears.cloneArray function with the BlazeGears.cloneObject alias.
    • Superseded the BlazeGears.escape function with the BlazeGears.escapeHtml alias.
    • Superseded the BlazeGears.generateFlash function with the BlazeGears.renderFlash alias.
    • Superseded the BlazeGears.getEntity function with the BlazeGears.getEntityValue alias.
    • Superseded the BlazeGears.isObject function with the BlazeGears.isAnonymousObject alias.
    • Superseded the BlazeGears.updateEntity function with the BlazeGears.setEntityValue alias.
    • Superseded the BlazeGears.BGTL.parse method with the BlazeGears.BGTL.parseTemplate BlazeGears.BGTL.compileTemplate alias.
    • Superseded the BlazeGears.Form.generate method with the BlazeGears.Form.render alias.
    • Superseded the BlazeGears.FragVars.getFragVars method with the BlazeGears.FragVars.getFragVarValues alias.
    • Superseded the BlazeGears.FragVars.setFragVars method with the BlazeGears.FragVars.setFragVarValues alias.
    • Superseded the BlazeGears.Paginator.generate method with the BlazeGears.Paginator.render alias.
    • Deprecated the BlazeGears.Class function.
    • Deprecated the BlazeGears.Singleton function.
    • Added the BlazeGears.isBoolean method, which determines if a variable is a boolean.
    • Added the BlazeGears.BGTL.TemplateInterface class, which is used for documenting the members of the parsed templates.
    • Added the BlazeGears.Classes namespace, which supersedes the class declaring functionality of the BlazeGears namespace.
    • Added the BlazeGears.Classes.ClassInterface and BlazeGears.Classes.SingletonInterface classes, which are used for documenting the default members available for declared classes.
    • Added the BlazeGears.Formats.enableUTCTime method, which can be used to switch between the UTC and local time zone.
    • Fixed the bug where the BlazeGears.isInArray method would incorrectly handle the recursive searches.
    • Fixed the bug where the variable type determining functions would return an incorrect result if the variable's constructor included the sought object's name.
    • Fixed the bug where constructing the first FragVars object anytime other than during page loading would break the page.
    • Fixed the bug where mixing the order of regular and static members during class declaration would delete some members.
    • Fixed the bug where the padding and casing modifiers wouldn't work on some Unix date format specifiers.
    • Fixed the bug where the Unix century specifiers would generate a different value than the date command.
    • Fixed the bug where the %c Unix date format specifier would use the incorrect padding character.
    • Moved the BlazeGears.Form.Field, BlazeGears.Form.Option, and BlazeGears.FragVars.FragVar classes to their own separate files.
    • Removed some variables accidentally introduced into the global scope.
    • Removed most of the eval'd functionality, so the code can be minified using some more aggressive compilation methods.
    • The main features of library are now unit tested.
    12/31/2012 6:47:04 PM
  • BlazeGears v1.0.3-s Released

    I realized that (according to the documentation) the updateEntity function was working as expected, so I reverted the last fix made to it. Whoops.

    Change Log

    • Reverted the fix made to the BlazeGears.createEntity function in the previous release, because the original functionality was correct.
    • Fixed the bug where the static version of the BlazeGears.Class._super_ method wouldn't do anything, when it can't find the sought method. Now it will throw an error in such a case.
    7/21/2012 6:14:07 PM
  • BlazeGears v1.0.2-s Released

    Found a couple of cases where some methods silently fail. Now they throw exceptions instead.

    Change Log

    • Fixed the bug where the BlazeGears.Class._super_ method wouldn't do anything, when it can't find the sought method. Now it will throw an error in such a case.
    • Fixed the bug where the BlazeGears.createEntity method wouldn't do anything, if the suggested entity ID was already in use. Now it will throw an error in such a case.
    7/17/2012 9:06:24 AM
  • BlazeGears v1.0.1-s Released

    Update February 3rd, 2012 1:41AM: I forgot to update the version number and history in the readme and license files. Made a new release (v1.0.1-s.1) with the fix. The amount of ones here is getting a bit unsettling.

    Apparently, I'm unable to follow even my own design documents. Anyway, the BlazeGears.Format class is now properly declared as a singleton, as it meant to be.

    Change Log

    • Fixed the declaration of BlazeGears.Formats, which is now a singleton.
    • Fixed the bug where declaring an instance and a static member of the same name would let them coexist, instead of overwriting the prior member.
    • Fixed the bug where the BlazeGears.Class._super_ method would never return anything.
    1/29/2012 8:42:05 PM
  • BlazeGears

    After years of tinkering, two renaming, and about six complete rewrites, I think my JavaScript toolkit has reached a state where it can be kicked out of the nest.

    Originally, it started out as a supporting toolkit for a CMS, and as the years gone by I stuffed it with more and more of the general functionality that I have been using in most of the websites I created. Eventually, the CMS itself got scrapped, so I stripped out the functionality specific to it and made the interface a bit more suitable for general use.

    This is my first attempt at creating a public API, so it will most likely end up getting butchered pretty soon. Probably should't have labeled it stable, yet. Oh well. Download it here.

    8/29/2011 8:44:54 PM
  • Site Launched

    First!

    1/10/2007 6:23:26 PM