Browse by Month RSS Feed
  • May 2008
  • April 2008
  • March 2008
  • February 2008
  • January 2008
  • December 2007

  • Busy Renovating…May 11, 2008
    Filed under: Life @ 1:19 am

    I’m back in Vancouver, but the house we’ve moved into is in extremely bad shape, so I’ll be busy renovating for the next week or two. Apologies to everyone who’s emailed, but I’m not going to be at my computer much…!

    Comments (0)


    What’s Up.April 25, 2008
    Filed under: Life @ 11:47 am

    I thought it a quick post to let everyone know what’s up and what’s coming round the bend.

    For the last few months, my time has mostly been taken up with Form Tools 2 and “real” work (meaning: PAID) for Encore Web Studios. Next Friday I’m moving back to Vancouver with my girlfriend, so the next week will probably be devoted mostly to packing, and the following week to unpacking. Ah, joy. Fingers crossed the car survives the drive from Saskatoon to BC. If it dies at some point, leaving us stranded with 3 cats and a hamster, we’re not going to be terribly thrilled…

    I’m going to take a much-needed break from Form Tools 2 and work on some smaller projects for a little while. First, I’ll be releasing version 2.5 of my Really Simple Validation library as a Prototype and jQuery add-on. It’s such a useful, powerful script I’d like to see it being adopted more widely. I’m also improving the error display: right now it lets you assign styles directly to the error fields, which is ugly: it can override any styles already there. Now it will simply add/remove an error class. Much cleaner. The “Plain Vanilla” and Prototype versions are done; just grappling with the jQuery one.
    Secondly, I’m well aware of the problems with version 1.7 of the Flash Image Scroller (thanks for all the emails & posts, guys! If I didn’t respond it’s simply because I have too much on my plate, not because I’m an unbelievable jerk). I’m going to go through everyone’s post in the comments and resolve them all. Plus I’m going to look into figuring out a way to add that mirroring effect I’ve seen in other, similar (non-free) tools.

    Once I get back, I’ll be releasing the first version of some cardiography reporting software I’ve been working on with Joseph Lo since January of this year. It’s a lovely script: beautiful UI, clear and receptive, all in Ajax. I’m very pleased with it. It’ll be a free service for cardiologists, radiographers, doctors etc. to generate human-readable reports for CT Scans, Consultation exams and Holter reports. I’ll make another post when that goes live; I’m in the process of fixing up the remaining bugs, setting up the staging environment etc. - all the fun stuff you do prior to pushing live.

    I’ve also been spending a little time on an Adobe AIR version of generatedata.com, but it’s been going very slowly. The SQL Lite stuff is bloody finicky and hard to debug.

    Oh - and I’ve just wrapped up work for a Salvation Army website, probono.ca. I’m just doing the backend. I just heard that the Ontario branch of Salvation Army will be adopting it. Nice.

    So yeah, pretty busy. Can’t wait to get back.

    Comments (1)


    Another reason to hate TelusApril 23, 2008
    Filed under: Life @ 1:33 pm

    Pardon the vitriol - I don’t normally make Hate posts, but DAMN I HATE TELUS. I’ve had such a long, sordid relationship with them I’ve lost count of the number of times they’ve tried - successfully or not - to screw me over.
    Here’s a few segments from their landline signup form. My comments in angry, bold capitals:

    “You can choose whether you would like to be listed in the Yellow Pages™ or directory assistance, as well as the display of your name.

    - Published (listed in the phone book, online, and directory assistance)
    - Non-published (not listed in the phone book, online, or directory assistance - $2.00/month)”

    WHY IS IT $2/month TO HAVE YOUR NAME *OMITTED*..!!!?? IT’S A SODDING BIT FLAG! IT’S LESS WORK FOR THEM! LESS PAPER! LESS TREES! LESS EVERYTHING!

    “Your name will appear as follows in the Yellow Pages™
    TELUS’ directory publisher makes available list of published listing to various organizations, such as charities, telemarketers and political parties, for a fee.

    Do you wish to be removed from these directory publisher lists provided to other organizations? Yes No”

    WHY IS THIS EVEN AN OPTION? WHO WANTS TO BE CONTACTED BY TELEMARKETERS? CRAZY PEOPLE? THAT’S UNFAIR TO CHARITIES (AND EVEN POLITICAL PARTIES) TO BE LUMPED IN WITH TELEMARKETERS. GROUPING THEM TOGETHER IS A LOUSY BUSINESS DECISION THAT CLEARLY STEMS FROM YOUR OWN SELF-INTEREST.

    And now for the icing on the cake: THE FORM DOESN’T EVEN WORK. It just submits the information back to itself and deletes all your hard-entered fields. So 30 minutes later of surfing their website for a viable telephone number and being put on hold I finally reach a real life person who clearly hates her job.

    Nice work, Telus. Top notch. And would you please stop inundating us with those bloody awful Koodo ads?

    Apologies for the post. I needed to vent and my girlfriend’s at school.

    Comments (3)


    jQuery plugin: switchClassApril 18, 2008
    Filed under: Software, JavaScript @ 10:43 pm

    I had a little JS problem which I thought I’d solve as a plugin.

    This plugin provides functionality similar to jQuery’s built in toggleClass() function, but instead of adding/removing a single class from an element, switchClass toggles between TWO classes ensuring that one and only one of the two classes is assigned to an element (or elements) at one time. It leaves all other element classes untouched and only affects the two classes specified.

    See demo and download script here.

    Comments (0)


    Smart Lists 1.0.2April 17, 2008
    Filed under: Software @ 10:26 am

    A small bug fix update for the Smart Lists script. In the previous release, if your flags contained more than one non-breaking space, only the first was being converted properly; the others were displayed unescaped.

    Thanks for the bug report, A. Ichinoe!

    Learn more about the script here.

    Comments (1)


    Open Web VancouverApril 16, 2008
    Filed under: Life @ 2:58 pm

    “Y’know, just because it’s Open Source, doesn’t mean it has to be ugly…” - Tim Bray, from his keynote, decrying the lack of web designers in the audience

    I’ve been in BC this week, attending the Open Web Vancouver conference. It’s a little funny I had to fly back for this, since in a little over two weeks I’ll be returning to Vancouver for good. Bah!

    The conference was a little hit and miss, but generally worthwhile. For me, a couple of talks really stood out; both were on JS, which probably isn’t a coincidence. Brad Neuberg - author of the Really Simple History JS library - gave a talk on Google Gears, something I’ve had in my peripheral vision for some time but never closely examined. It’s an AMAZING tool - very promising indeed. Brad emphasized that it’s not just for offline javascript. I’m currently working on a large Ajax app for cardiologists (which today I just heard is being picked up by Vancouver’s St. Paul’s Hospital for managing their CT Scan reports - nice!). I’d been planning to supplement its online functionality with an Adobe AIR desktop version, but now I’ve learned a little more about Gears, I think it may be a better fit. Interestingly, functionally, Gears and AIR share a lot of the same characteristics, but approach it from different angles. One acts as a standalone desktop app, the other directly enhances the user’s web browser. I’m not sure to what extent - if any - Gears provides access to the user’s filesystem, so I’m going to have to do a little more homework… but regardless, I think it may the right tool for the job.

    There was also a talk on writing scalable javascript by Eric Promislow from ActiveState which was quite fun. [A friend of mine actually works at ActiveState, and gave me a quick tour of their office. Neat place!] I confess that I’d rather hoped his talk would be of a more generic nature, but ended up covering a single example of scaling up a Google Maps app and some solutions to avoid latency for the user. The crux of the problem revolved around the fact that inserting Markers onto the Google Maps is a CPU-intensive process, and the larger the number of markers to insert, the longer the wait.

    Having written a few Google Maps apps myself, it was nice to revisit the code and see his solutions. That said, to put on my UI Developer hat, I have to take exception to his general approach. Reducing latency is certainly important, but more important is focusing on the root cause of the user experience problem (I mean, that’s the reason for refactoring the code in the first place). To explain: people tend to assume that wait time is inherently bad, whereas in fact it really isn’t. It only becomes bad if it irritates the user. If the user doesn’t get angry by having to wait 10 minutes then odd though it sounds, it may not be a bad thing. Sometimes, in fact, a little wait is actually expected, and if it doesn’t happen, users distrust the software thinking it’s not doing its job properly. I’ve heard this allegation leveled at Ajax in general, with people feeling that Ajax apps “feel flimsy”. I can’t say I share the feeling, having worked so much with Ajax apps, but the “feeling” shouldn’t be discounted.

    Anyway, if I were faced with Eric’s problem, I’d have supplemented his refactoring solutions with a simple DB query called prior to retrieving and rendering the markers, returning the total number markers to draw. Then, in the UI, I’d add something like a “[X] results found. Displaying: [Y]“. As each marker was rendered (I’d display each one, sequentially), I’d increment the Y counter. Hence, the user would see the total number markers (X), and the total currently on screen (Y) which would keep incrementing until it reaches X. This would be far less frustating or bewildering for the user than seeing nothing happen on the screen for a few seconds and displaying all results in a lump. Even if it took a full minute to sequentially display all the markers, the user would know what to expect - and that’s the key. Sometimes “common sense” UI solutions like this are overlooked in favour of refactoring for efficiency.

    Good talk though. Seemed like an interesting dude.

    Anyway, my plane’s about to board. Nice of Vancouver airport to provide a publicly available wireless at last…!

    Comments (2)

    Next Page »