Testing Asynchronous Behavior in JavaScript with Selenium

Full stack browser testing of web applications is awesome. It validates that your application works end-to-end and allows you to check actual user workflows. For the last year and a half, I’ve been using Selenium to test a JavaScript web application we’re developing using Backbone.js.

Unfortunately, web apps that use JavaScript a lot can be challenging to test with Selenium. Read more on Testing Asynchronous Behavior in JavaScript with Selenium…

What “Semantic” Markup Really Means

I’ve found that trying to write semantic markup has helped me write cleaner HTML. It’s been a useful guideline, but it hasn’t been perfect, and I’ve sometimes struggled with how to model things well. Recently at the March SoftwareGR event, I heard Jonathan Snook relay an example that I found very insightful. Read more on What “Semantic” Markup Really Means…

Web Application Architecture from 10,000 Feet, Part 2 – Persistent Data & Relational Databases

In part 1 of this series, I briefly discussed the difference between the client and the server. In part 2, I’m going to focus on how to structure your server side code.

If you’re making a single-page app—which you should be, if you want an app that’s as responsive as your typical desktop application—your backend “only” has a few concerns (heh): Read more on Web Application Architecture from 10,000 Feet, Part 2 – Persistent Data & Relational Databases…

Web Application Architecture from 10,000 Feet, Part 1 – Client-Side vs. Server-Side

Or, Why you can’t get your jQueryUI Datatables plugin to keep your data after you refresh the page.

This three-part series is a general, high-level, first-day-of-Intro-to-Web-Development overview of web app architecture. It is written for the past selves of a few of my college friends, the friends who called and asked me the question in the subtitle above, and then showed me a mess of PHP spaghetti code (copy-pasted from various “This is how you make a form!” type tutorials) when I asked them to show me what they had done so far. Read more on Web Application Architecture from 10,000 Feet, Part 1 – Client-Side vs. Server-Side…

Testing mOxie File Upload with PhantomJS

I was recently working on a feature that allowed users to upload images to a web app. The front end was written in Ember.js and the server was Rails with paperclip for image storage. For the best user experience, we decided to try to read the file locally, display it, and send the data URI up to Rails for storage.

Unfortunately, our target platform included Internet Explorer 9. Read more on Testing mOxie File Upload with PhantomJS…

Advocating CoffeeScript Adoption In Your Organization

CoffeeScript is an expressive alternative to JavaScript that has gained popularity among some developers, and since CoffeeScript compiles to JavaScript it can be used anywhere JavaScript can be used.

However like any new technology, there are human factors to consider when you introduce CoffeeScript to an organization. Read more on Advocating CoffeeScript Adoption In Your Organization…