Dropping IE Support

I’ve almost completely dropped support for old Internet Explorer in my most recent projects despite the fact that they should be accessible to a wide and non-technical audience. Call me crazy but I have more reasons than simple insanity for doing so. Internet Explorer usage (for versions I’m not targeting) has dropped to single digits and progressive enhancement is something that should be applied in a generalized way that targets all browsers. I won’t advocate for dropping IE wholesale but if you’re thinking of moving that way, maybe this will ease some of your concerns.

Read on

Getting Good at Development

I’ve been thinking a lot about design lately and having a hell of a time designing and coding a simple landing page for a marketing campaign I’m working on. 2015 was a very code heavy year for me. I didn’t do much design work for most of the year so now that I need to design something it’s harder than ever. This then got me to thinking about how it was that I got to be any good at either coding or design. What I discovered is something I wish I had known as a beginner and something that I think would help anyone struggling with a creative block or just general frustration over the quality of their work. This is how to become good at anything.

Read on

Design for Programmers (and Other Non-Designers)

Let’s face it – most developers suck at design. They aren’t the greatest marketers either. That’s okay, you can’t be an expert in everything. But what happens when you want to create beautiful designs to bring your ideas to life? Designing landing pages and marketing sites is tough for programmers and non-designers. That’s why today I’m going to share with you my secrets to designing great looking web pages even (or especially) if you’re not a designer.

Read on

Mobile First Is Now Mandatory

About six years ago I started really getting into the idea of Mobile First design for the web. At the time this was a newer concept. Up until then everyone was focused on responsive design and making sure that sites scaled down nicely. We’ve come to a point now where scaling down is the wrong way to go about design. It’s no longer optional to think of mobile first and scale your designs up from mobile instead of scaling down from desktop these days.

Read on

Classes in JavaScript [Video]

A while back I wrote about initializing a class in Node. Well, now the nice people over at Webucator have taken that post and made it into a video.

Read on

You Shoudn’t Need document.ready

If you’ve been developing with jQuery for any length of time you’ll have seen or even be using $(document).ready() at the start of your JavaScript file. Did you know you don’t really need that there? In fact, I’d argue that if you’re using $(document).ready() in your JavaScripts then you’re doing something wrong.

Read on

How to Learn to Code

The most common question I get when teaching workshops is “How do I learn to code”? The fact that I’m being asked this question after the workshop ends tells me that a weekend workshop is obviously not enough time to learn code. At first the question made me feel bad as though I didn’t do a good job of explaining the concepts but it turns out that learning to code just isn’t something you can learn in a weekend. That’s not to say coding bootcamps are a waste of time. On the contrary they’re actually very useful. It’s incredibly valuable to have an expert help you debug code and explain concepts that can sometimes be pretty difficult to understand when reading an online tutorial. The real value of these workshops is the ability to get immediate feedback and ask questions of an instructor but once the weekend is over the students are left to their own devices. I’ve been thinking of how we can help people want to learn to code a lot lately. If you’re wondering “how can I learn to code” then this post is for you.

Read on

Organizing Express Routes

Express, the Sinatra of Node.js web frameworks, is a piece of software I’m very fond of for its lack of enforced structure. You can structure your Express.js application any way you like. But like the dude said to Spider Man,

“With great power comes great responsibility”

I’ve worked through quite a few iterations of different Express apps from real tiny ones to very large scale ones and I thought that maybe it would help someone one day if I shared how I organize my Express routes from the file structure to the actual code.

Read on

How to Structure Bookshelf.js Models

I’m starting my second project using the excellent Bookshelf.js ORM (for relational databases) for Node.js and I’ve noticed that unless you’re a JavaScript pro it’s easy to screw up the structure of your models and get circular dependency errors. I love Bookshelf but the documentation has actually gotten worse recently so I decided I’d document how to structure your models in different files the correct way using Bookshelf.js.

Read on

Understanding Rails by Building a Ruby Web Framework From Scratch

I’ve been teaching a part time Back End Web Development course at General Assembly which focuses on building web applications using Ruby and Rails. I very purposely say “Ruby and Rails” instead of “Ruby on Rails” because understanding the Ruby language will allow you to understand any Ruby web framework. One of the biggest challenges in teaching the course is explaining all of the “magic” that Rails uses to do its job. Having written a custom MVC framework on top of Sinatra many times before I understand the broad strokes of that magic but to really understand Rails and even the more basic Sinatra I think you need to go deeper and start with Rack and a basic knowledge of Ruby fundamentals. That’s why I’ve been building a Ruby web framework on top of Rack for the last few days. If you want to understand Rails then let’s check out Rack and build a basic web framework.

Read on