It's rare that I advocate writing something from scratch when an off-the-shelf solution will fit your needs perfectly, as is almost always the case with an ORM. This time, I got a little too curious, and I wanted to know how the sausage was made. It all began with a discussion at work about which ORM solution we should poke with a few sticks. Our schema can be a little wonky , and we're doing a…
The state of the password has changed a lot over the past several decades, and unfortunately, not for the better. First, everyone had a few online accounts, and using the same password for the two or three accounts you might have had was probably pretty common. A few years go by and there are a whole slew of new services and sites, each with their own accounts and passwords. By now, it was common…
For a long time, my site has sat stangnant, a desolate and dusty Wordpress blog that contained a few thoughts and musings from years past. I've tried, over and over, to get back into content creation for my personal site, but I always fall short. Whether I get too busy with work, find a more involving hobby, or straight up forget, things end up the same way; no blog updates. Well, this year I'm…
With the onset of modern web technologies and the advent of the MVC/VM wars, it was pretty much forgotten that a lot of projects aren't in the right place to use these new "auto-ajax" toolsets. Perhaps they're legacy projects, or maybe they're being built by people who either don't understand or like the MV* approach. In either case, projects that are just using a "legacy" approach to AJAX can…
For the past several weeks, there has been a lot of discussion both online and in my office about the "ideal" practices when it comes to software development. What steps should be taken before you start coding? How much planning should you do? How do you eliminated scope creep? Around the same time we were holding these discussions at work, someone asked on Reddit . While I was a little bit late…
I've been invited to speak at DemoCamp Hamilton 5 on February 9th of this year. I'll be giving a brief demo of PathJS, a client side routing library that leverages the power of "Hashbang" URLs in an intuitive wrapper. This will be the first time at a DemoCamp Hamilton that a code library is demo'd (as opposed to product demos), and I'm incredibly excited to have the opportunity to break that…
One thing that has always caused issue when writing web applications is the issue of querying the server for long-running background tasks (generating thumbnails or PDF's, sending batch emails, etc). Often times these actions are too long-running to be contained in an HTTP request, so a short request is made and an interval is set up to begin querying for the eventual finish. This isn't a terrible…
Since day one of college, documentation was toted as being of the utmost importance. It was necessary, at all times and in every situation. "By god, what does the variable "i" mean in this "for" loop!?" I could imagine my professors mumbling as they read through my code. Of course, when I was writing that code, it was painfully obvious what "i" was doing. It's always obvious what "i" is doing -…
Nobody will argue that the HTML5 History API was a step in the right direction in regards to Web Applications. Unfortunately, there was no simple, consolidated way that provided a routing mechanic that was both versatile and easy to manage. As of today, the simple routing mechanic of PathJS is fully compatible with the HTML5 History API. You get the power of a manual, with the simplicity of an…
The internet has been abuzz since the suite of Gawker sites switched from regular old links, to Fragment URIs . Long story short, a JavaScript bug caused all content, on all of their sites, to be inaccessible to the entire world. Ouch, I know. But just because one developer made a farce of a piece of technology doesn't make it as horrendous as everyone's saying it is. A Brief Introduction So…