feeds.feedblitz.com feeds.feedblitz.com

Android Emulator on CircleCI’s MacOS Executor

The Android Emulator, unfortunately, doesn’t work in CircleCI’s conventional (Docker-based) Android build environment. With a little tinkering, though, we can make it work in another environment! What Doesn’t Work Since CircleCI 2.0, the recommended CircleCI method for most projects is the Docker Executor. Overall, it’s great: Docker images are fast, portable, and cacheable. Chances are you can start with a prebuilt one. One of...

feeds.feedblitz.com feeds.feedblitz.com

Sharing TypeScript Code Between Web and React Native

We’re building a hybrid mobile app out of an existing web app. The front end will run out of a webview, and we’re adapting the back end to run on-device in React Native. One of the challenges we encountered was how to share code between our existing monorepo built with webpack and our new React Native app (which bundles with Metro). Though it’s all TypeScript, this wasn’t super straightforward. In this post, I’ll describe...

feeds.feedblitz.com feeds.feedblitz.com

Ergonomic TypeScript Generics with Higher-Order Functions

Much of TypeScript’s flexibility comes from its support for generics. They’re great for building up reusable abstractions so that you can share the “how” across your codebase even as the “what” varies significantly. In this post, I’ll describe a limitation that recently got in my way, and how I worked around it. Background First, a brief refresher on TypeScript generics. Type parameters can describe function parameters...

feeds.feedblitz.com feeds.feedblitz.com

Organize One-Off Task Files with Dated Work Directories

Say you’re about to begin a task that will involve working with some files. Perhaps you’re creating a diagram or encoding some GIFs. Where do you put the files? It’s tempting to use the desktop, but that quickly becomes unsustainable. For a decade or so, I’ve placed artifacts like this in dated directories like ~/datedwork/2018.06.23-grep-production-logs. This works well for a few reasons: I don’t have to think about it. It...

feeds.feedblitz.com feeds.feedblitz.com

Fixing the External Monitor Color Problem with My 2018 MacBook Pro

I recently upgraded to a 2018 MacBook Pro. I’m enjoying the additional cores and memory () and coming to terms with the touchbar (). A low point of my first week came when I plugged into my external display, and the image looked really bad. In this post, I’ll describe what I learned and how I managed to fix it. The Symptom I’ve been using a 27″ Dell at work for a couple years, connected to my Mac via DisplayPort. It’s a...

feeds.feedblitz.com feeds.feedblitz.com

.NET Core, OSX, libcurl, and OpenSSL

.NET Core makes it convenient to develop and test C# code across platforms. On my current project, this means we can do much of our work on Macs without ever firing up a Windows VM. Even the best abstraction layers occasionally leak, though. Here’s a story of an OSX-specific issue we encountered, what we learned, and how to resolve it. The Problem So there I was, running an existing .NET Framework project on .NET Core for the first...