Year in Review (2019)
Another year, another annual review of my public contributions to the world.
My output is down this year due to 1. raising a toddler and 2. devoting a lot of my free time to working on climate change causes.
Articles
-
When to use Kotlin's standard functions
I've long thought that Kotlin's stdlib functions (
let()
,apply()
, etc.) are abused, especially by people new to Kotlin. As such, I wanted to let people know that it's perfectly fine not to use any of them until they're ready for it. -
Adding
git log -S
to your code detective toolboxFew people know of the glory of
git log -S
, so I wanted to spread the gospel. -
Preventing Unwanted Content from Google Keyboard
As commonly happens, chasing down an odd behavior in Trello led me down a rabbit hole that resulted in a blog post. In this case, it's how Google Keyboard stickers really screw with apps that don't natively support them.
-
Never break the chain: use Kotlin's extension functions
A short note about how you can extend any fluent API in Kotlin using extension functions.
-
Why I’m No Longer Traveling for Conferences
I've become deeply concerned about climate change and I'm trying to lower the biggest contributors to my carbon footprint. Distant conferences are not a necessary part of my life, so I'm cutting them out.
-
Fixing Android Studio Keyboard Shortcuts
I kept running into the same Android Studio keyboard shortcut issues, so I documented how to fix them. (This post didn't get a lot of views, which maybe means most people don't know about how great keyboard shortcuts are in general? Come on, people!)
-
Android Pseudolocalization Update
Two quick fixes for Android psuedolocalization issues I've run into recently.
Talks
As I wrote about above, this year, I chose to stop traveling to conferences. That sure didn't stop my talk output, though - there are plenty of places to give talks in the Twin Cities (or online).
-
I was invited to give an intro talk to junior devs in the twin cities. No recording, but that doesn't matter, because as I noted in the talk, Android development is evolving so fast that if you were to see this talk a year later half of it would be outdated. (It is, in fact, the second time I've given an intro Android dev talk - and I had to ditch much of what I brought up the first time!)
-
Crazy Fancy Android Text (Slides)
I rewrote the markdown library on Trello Android two years ago, and so I condensed all that I learned from that experience into one talk about spannables.
-
The Importance of Developer Communities (Slides)
I did a webinar for Microverse on getting involved with developer communities. Good intro for people who are just getting into development!
-
Automated Tests Aren't Enough (Slides)
I've done a lot of soul searching regarding manual vs. automated testing in the past year which I summarized in this talk. Tl;dr - manual testing is vital, at least in my opinion.
-
A talk about coroutines, coming from a much more fundamental layer than most talks do. I assume you don't know what they are at all, and try to build up the pattern from scratch.
-
What Tech Can Do About Climate Change (Slides)
As I've mentioned a few times now, I've been working on climate change. Part of what I'm doing is spreading the word. I'm focused less on convincing people it is real (as people have largely caught on to that by now) and instead focusing on pushing more people to take action.
-
Smart Phones, Dumb Apps @ Pubconf 2019, Minnesota
PubConf are short ignite-style talks that are humorous in nature. My talk, "smart phones, dumb apps" was recorded but will hopefully never see the light of day. (I'm not ashamed of it, but taken out of context, it would sound very bad, as I'm essentially playing a character on stage.)
Open Source
-
HPB's website lets you find the stores that have a book available. I wanted the other way around: find all stores that have a set of books available. It's not a fantastic tool by any means, but it's fun to have the ability to manipulate data easily as a developer.
-
I'm still maintaining this library, years after it was the best tool for the job. Partially because I'm still using it (though only because there's no reason to go through the hassle of upgrading), but that's the point, right? Keep old things working if people use them and it's not much of a bother.