Machine Learning Intuition: Cost Function Optimization

Suppose you want to identify and describe the patterns that arise in some data. How do you look for patterns? How do you measure how closely your descriptions match the data? How can you improve your descriptions  of this data? How do you know your description is general enough to describe other data like this data?

Test-Driven iOS: Passing Information With Segues

In past posts of test-driven iOS, we have talked about instantiating view controllers with dependencies. What if we want to pass information from one view controller to the next one? Let’s explore how we would test-drive a storyboarded iOS application that passes information from a master list view controller to a detail view controller.

One-Page Notes: Weapons of Math Destruction, by Cathy O’Neil

Folks ask me about the dangers of trusting computer-generated algorithms and artificial intelligence. The conversation usually brings up a future scenario in which the machines outsmart humans. But there’s a more current problem: we trust machines to build algorithms based on incomplete or biased data that we feed them, and they perpetuate poor and unfounded decisions under the guise…

Test-Driven iOS: Mocking Dependencies

Once upon a time we talked about how to initialize and launch view controllers manually. We did that so we could inject our dependencies via the initializer, then unit test our view controllers independently of those components. Then we talked about how you can inject dependencies while loading your view controllers from the storyboard, instead of…

One-Page Notes: On Intelligence, by Hawkins and Blakeslee

I was researching Numenta, a company with a mission to reverse-engineer the human neocortex in software. One of the engineers gave a talk that introduced Numenta’s software at OSCON 2013. He offered a couple of resources for audience members who wanted to learn more about the science: a white paper on hierarchal temporal memory and…

Test-Driven iOS: Using Segues

When we build storyboards in iOS to wireframe and illustrate the flow of our apps, we can use segues to create transitions between screens and their elements. But if we want to unit test those transitions, we have to do it differently than we would if we were manhandling the transition programmatically with presentViewController(). So how…

Test-Driven iOS: Introduction to Feature Tests

In past articles about test-driven iOS, I have talked about how to resolve some challenges of unit testing an iOS app. This time I’ll talk about higher level tests that validate how the view looks and behaves when users interact with it (UI tests) as well as the app’s API requests and response handling (integration…

Test-Driven iOS: Dependency Injection

In the last Test-Driven iOS post, we talked about setting up our code and test files to allow unit testing on storyboarded apps. I mentioned  that an extension of that setup could be used to take control of dependency injection inside of our apps. We’ll talk about that today.

Test-Driven iOS: Testing an App with Storyboard UI

In this post a while back, I mentioned two options for setting up unit test-friendly dependency injection in an iOS app: dependency injection libraries and constructor injection with code-defined views. In that piece, I talked about using a code-only UI to achieve my testing goals. Since then, I have learned a few more strategies that allow…

Machine Learning: Wine Recommender

This weekend I built an application that allows users to rate wines. Once a user has rated some wines, the application uses k-means analysis to recommend some wines that the user hasn’t rated, but might enjoy.

Diagramming Data, Part 3: Preventing and Curing Data Deficiencies

In part 1 of this series, we discussed the relationship between data and code complexity. In part 2, we talked about some of the deficiencies datasets might have and how they happen. Now we’ll talk about some starting points for building healthy datasets—and nursing deficient datasets to health as much as possible. It’s important to note that…