Diagramming Data, Part 1: Simple Code Depends on Nice Data

I came across an article on Firstround called ‘Forget Tech Debt…Here’s How to Build Technical Wealth.’ Andrea Goulet introduces us to some of the practices her consultancy uses to dive headfirst into legacy codebases, improve their design, and make them more maintainable.

The problem is, you think it’s about skin color.

Look around your office. If you’re in tech, I suspect I can predict what you see: lots of white faces. We’ve known tech to be a sea of white faces for a long time. Big companies respond by sponsoring code education programs and hiring (usually white) Directors of Diversity. But the numbers aren’t changing: tech…

Android How-To: Card Flip Animation in API 23

Hello! Lots of android devs are using this tutorial from the Google documentation to try to achieve a card flip animation, and they’re getting errors, including this one: 05-22 11:32:34.706: E/AndroidRuntime(6801): java.lang.RuntimeException: Unknown animation name: objectAnimator There does not appear to be a definitive answer that I can find as to how to get this…

When Not to Use Microservices

Microservice architecture: breaking one large, monolithic app with lots of functionality into a network of small apps that all communicate with each other. This architectural style addresses two frustrations associated with building monolithic apps:

Allyship in Times of Crisis

This presentation is for allies who are looking for a way to take care of the communities affected by the Pulse shooting in Orlando. I gave this talk at lunch at my workplace. In the event of a tragedy like this, we need allies to step up. It can be difficult to know what to say…

Spring Batch with Java Config: An Example

Enterprises tend to be large, old institutions. They have done a lot of stuff, and they have a lot of data under their belts. When we’re working with enterprises to build apps that will help them understand their data, we need a way to process that data that takes time and system limitations into account….

Test-Driven iOS: Enabling Unit Testing with a Code-Only UI

I write automated unit tests for each of the classes inside my apps. This includes iOS apps, which have classes that extend classes defined by the iOS framework. I want these classes to take care of the framework-specific and device-specific details of showing new screens, handling their life cycles, et cetera. For other logic that…

Material Design: An Experience Report by Andy Detskas

Today at lunch at Pivotal Labs, our designer Andy Detskas talked with us about some of the things he has learned about material design for Android Marshmallow. If you’d like to see more details on the presentation than the rundown provided here, or if you’d like to follow some links to useful resources on designing for…

If I had a quarter for every time I have seen this damn dagger error…

Caused by: java.lang.IllegalArgumentException: No inject registered for {path.to.SomeClass}. You must explicitly add it to the ‘injects’ option in one of your modules. Let’s be honest: this error is the hazing of Android development with Dagger*. My colleagues and I have spent oodles of time trying to figure out why we are getting this. We are not…

Machine Learning, Part 2: Classification

I’m working my way through a Coursera specialization on Machine Learning. The specialization includes several courses, the first of which provides a high-level overview of ML. I finished that one before I began talking about the coursework on my blog because I didn’t want to identify myself as a student of machine learning until I…