I gave a talk at PuppetConf 2014 entitled “The Seven Habits of Highly Effective Puppet Users” based on a collection of observations that I’ve made over the years regarding high-functioning Puppet users. These users exhibit common behaviors that go far beyond policies and procedures. These behaviors are broadly understood by team members and nearly universally […]
Topic: Software Development
iOS Security: How Apple Protects Data on iOS Devices – Part 1
Apple has invested a lot of resources into making the iPhone and iPad secure. Here I discuss some of the techniques that Apple uses to secure information stored on iOS devices. Guiding principles In an effort to provide a system that is both secure and easy to use Apple follows these principles. Hide complexity from […]
Building for Mobile
If you’ve paid even a little attention to web development in the past few years, you’re aware everyone’s going cuckoo for mobile- and tablet-friendly web sites. Or more accurately, nobody wants to be caught flat-footed by the question “How does it look on mobile?” because more and more people are using smartphones as their primary […]
Space: the Final Frontier – a story of MySQL Compression
Space: the final fontier. Space, as in disk space, that is, was the driving factor behind a recent data compression project I worked on, along with a whole host of individuals and teams at Constant Contact. Due to ongoing data growth, my team was tasked with finding the best option for compressing data within the Contacts […]
Reactive, Component-based UIs with React
Managing UI complexity is hard. State exists on the server, in browser memory and in the DOM, all mutating over time. Keeping it in sync is easy at first, but as you dial up the interactivity things get buggy and fragile. Is there a simpler way? We’ll look at building apps that minimize mutable state […]
Java SimpleDateFormat and Thread Safety
Multi-threading is always a challenge when developing large-scale applications. In Java, the SimpleDateFormat class is wonderfully easy to use, but can be spectacularly dangerous and unpredictable in a multi-threaded application. The use of the SimpleDateFormat class as a static data member or in an enum are important to safeguard. Wrapping it in a thread-safe class […]
Mobile Apps: Deciding Which App Type Is Best
As a mobile developer, picking the right platform for your mobile applications is an important decision. Once you’ve decided on a platform, the most important decision is whether to go with a mobile web, native, or hybrid application. This article will help you decide which of these types is best for you by comparing them […]
Using SVG to Make Images Look Great on Retina Displays
I recently made some changes to the Constant Contact website and updated our logo from a Portable Network Graphic (PNG) to a Scalable Vector Graphic (SVG). There are important benefits to using SVGs over PNGs. SVGs offer resolution-independent, fully scalable and crystal clear graphics. Because SVG is a resolution-independent vector format, SVG images are always […]
Something Better than IDs for Identifying Elements in Selenium Tests
Developing Selenium / WebDriver tests is typically a cumbersome, back-and-forth process with developers. Conventional wisdom says you should use element IDs as much as possible.This requires that developers insert the element IDs into the code. In turn, developers ask for which elements do quality engineering (QE) needs IDs, to which QE responds with either some general, […]
The perfect CSS for Organizational Chart Avatars
The requirement sounded simple; show a user’s photo next to their name. The reality was that some photos were square and some wide while others were very large and some were small. I thought this was a good chance to combine a few code and CSS techniques to see what could be accomplished. First I […]