Back in the dark days of 2013 we were using a self-hosted Jenkins installation for continuous integration and deploying onto Docker containers hosted on our own server. (That’s right, we were using Docker before it was cool.) Administering our own server and dealing with Jenkins configuration issues was a…
Real-World JavaScript Anti-Patterns (Part One)
Code reviews are a perfect opportunity to continue learning and improving your coding style. I work with a team of experienced developers, so I don’t see many really glaring errors. But when I am called on to review third-party code, I’ve noticed certain bad practices crop up over…
Geo-Tree: A Library for Fast Searching by Latitude and Longitude
When working on a map-related project recently, we ran into performance issues when placing large number of objects on the map. The operations we needed were simple: inserting markers onto the map and collecting the subsets that met some search criteria (usually markers within some rectangular area or within a…
When Should JavaScript Developers Use hasOwnProperty?
Every aspiring JavaScript developer should read and reread JavaScript Garden [http://bonsaiden.github.io/JavaScript-Garden/] (discovered via @javascripting [https://twitter.com/javascripting]), which provides a great overview of some of the most confusing and misunderstood JavaScript behavior. Experienced JS developers have probably learned most of this already, but may have…
Stop Writing AngularJS Directives!
I see it time and time again. A new developer comes to Angular. She wants to, say, display a list of things and a button that sorts them. So she asks her fellow—more Angular savvy—colleagues how on earth to do that. Write a directive, they say. Your logic…