UIStackView Tricks: Proportional Custom UIViews with ‘Fill Proportionally’

In iOS 9, Apple introduced a very handy new UI concept: the UIStackView. Stack views help us quickly compose sequential “stacks” of views without Auto Layout. UIStackView offers a number of distribution and spacing options in Interface Builder. If you’re unfamiliar with UIStackView, I recommend reading “Exploring UIStackView Distribution Types” first.

In this post, I’ll describe how to use the Fill Proportionally option with any custom view while enjoying fine-grained control over the proportions themselves. Read more on UIStackView Tricks: Proportional Custom UIViews with ‘Fill Proportionally’…

Security Hygiene for Software Professionals

As software makers, we face a unique threat model. The computers or accounts we use to develop and deliver software are of more value to an attacker than what ordinary computer users have—cloud service keys can be stolen and used for profit, and the software we ship can be loaded with malware without our knowledge. And that’s before we consider that the code we write has a tremendous value of its own and should be protected.

Taking responsibility for our security hygiene is, thankfully, not very difficult. Today, most tools we need are either already present in our operating systems or can be added without much effort. In this post, I’ll take you down a list of things you should consider.
Read more on Security Hygiene for Software Professionals…

Three Tips to Make Your Next Dependency Upgrade Easier

Over time, even well-managed web apps can see their dependencies fall behind. The JavaScript community moves fast, and if you don’t stay on top of it, you can wind up with a package.json from the stone ages (two months ago). A few weeks ago, my team upgraded an aging Ember 1.13 app to Ember 2.10. Here are three tips to help make your dependency upgrade process go smoother than ours. Read more on Three Tips to Make Your Next Dependency Upgrade Easier…

Active Record Aggregate Fields via Sub-Selecting Scopes

I was recently working on a piece of code from a legacy Rails application. An unusually large number of queries being run on a particular page let me know there was an N+1 query lurking.

The application was an online assessment platform dealing with assessments, questions, and responses. The question listing page was simply asking each question if it’s locked—which happens if it has any responses. So what’s the best way to query for lots of questions and their locked status? Read more on Active Record Aggregate Fields via Sub-Selecting Scopes…

Atomic’s Curriculum for Teaching Young Developers about Design

Created for recent Computer Science grads, Atomic’s Accelerator program is designed to supplement their development training and get them up-to-speed fast on higher-level consulting practices and skills. Participants in Atomic’s Accelerator Program make a commitment to study on top of their 40-hour work week, and they receive significant coaching and training in project management, team leadership, and handling customer relationships.

In recent weeks, I’ve had the fun and energizing opportunity to lead the design-focused portion of our Accelerator curriculum. Members of Cell Zero have been doing three to four hours of reading homework on design topics each week, complemented by two-hour discussions in which we unpack and distill our learnings.
Read more on Atomic’s Curriculum for Teaching Young Developers about Design…

A Guide to Interacting with iBeacons in iOS using Swift

I’ve recently been working on an iOS project that uses iBeacons. In this post, I’ll provide a comprehensive guide for working with iBeacons in iOS using Swift. I’ll describe what iBeacons are, how you can use them, and what you should know about the programming model for interacting with them in iOS. I’ll also share some of the best practices that I learned.
Read more on A Guide to Interacting with iBeacons in iOS using Swift…

More Than a Policy – What Dealing with Workplace Harassment Looks Like

Atomic does a great job of cultivating a healthy work environment within our own building. We’ve got strong core values, great people, and high expectations for kindness, respect, and community. We don’t often need to exercise our policies around harassment, workplace sexism, or other forms of mistreatment.

However, despite our best efforts to find collaborators who fit our culture well, we don’t always have full knowledge or control over the people we’ll be working with.

So, what do we do when something does go wrong?
Read more on More Than a Policy – What Dealing with Workplace Harassment Looks Like…

Why I Ditched Spotlight for Spreadsheets

Besides its intended focus of searching your entire computer, did you know that macOS’s Spotlight search makes it really easy to perform simple arithmetic? Over time, this has actually become one of my favorite things about Spotlight. It’s a hugely convenient handicap for my dyscalculia, always ready and only two keystrokes away. Despite this, if I were forced to promulgate something approximating a New Year’s resolution, it would be that I’m not going to use Spotlight for calculations anymore. Read more on Why I Ditched Spotlight for Spreadsheets…

Retrospective: “Building a Virtual Appliance – Repeatably”

A few years back, I wrote a post describing how we used Chef and other tools to build a virtual machine “appliance.”

The short version is that we tried to make a copy of everything we were installing so that if we needed to make a point release later, we’d be able to reproduce the build. We made sure that we mirrored all external dependencies, downloaded all the RPMs, and kept the DVD ISOs around.

It’s been a few years now, and I had cause to go back to it. Spoiler: It didn’t really work. Read more on Retrospective: “Building a Virtual Appliance – Repeatably”…

The Many Uses of Pairing: Replacing Post-Work Review with Collaboration

One big thing that Extreme Programming got right is pair programming. Rather than waiting until work is complete to review code with another developer, the authors of XP figured that if having two pairs of eyes on code was important, why not do it continuously? Read more on The Many Uses of Pairing: Replacing Post-Work Review with Collaboration…

loading…