Don't Blow Your BigQuery Budget on Unknown Data!

It’s easy to blow your BigQuery budget when you are exploring a new data set. Because you’re billed for the amount of data scanned, not the ultimate result set, when you don’t know what you’re looking for, you can end up with wasteful queries. In this post, I’m going to share some tips for more efficiently scanning data in BigQuery when you don’t quite know what you need. ...

October 6, 2017 · 5 min · Dan Kleiman

GoBridge with Bill Kennedy

Last weekend, I had the chance to volunteer at a GoBridge event taught by Bill Kennedy of Ardan Labs. I’m trying to make 2017 my year of learning Go, so helping out at the event felt like a natural extension and a great way to connect with more people in the Go community. Going in with Ruby as my first language, I braced myself for static typing and wanted concurrent programming to bend my brain, but that’s not really what happened at all. ...

February 12, 2017 · 8 min · Dan Kleiman

My 5 Strategies for Learning Go in 2017

Over the past couple of years, one thing I’ve become more and more aware of is the unease and uncertainty of diving into a new project. Not matter what the new X is, I find I always go through the same set of uncomfortable feelings on my initial approach. Now, though, I’m starting to become familiar enough with this process that – even though the discomfort doesn’t go away in the initial learning stages – I can embrace it, coexist with it, and forge ahead in learning, because of the strategies I’m going to lay out here. ...

December 29, 2016 · 6 min · Dan Kleiman

Rails Security Exercises from Bearclaw

In this post, I’m going to tell you what I learned doing a series of Rails security exercises developed by Bearclaw, a Rails security consultancy. Before I go into the exercises, though, I want to send a huge thank you to Ali Najaf, founder of Bearclaw. What I’ve learned here is due to the thoughtfulness of the exercises he’s put together and his willingness to try something new by sharing them with me. Normally these exercises are part of a workshop he leads in person. ...

September 24, 2016 · 9 min · Dan Kleiman

Nice Try, NilClass

I love that feeling when a new concept starts to come together in your mind and you can point to all the converging sources of insight. Right now, I can’t tell if I’m fooling myself, hiding some logic, or making my code more readable with this particular concept, but when I put together these three pieces of information, I think I start to see something emerge. I’ve been inspired to do some more digging into these kinds of questions lately thanks to the awesome new Ruby Book Club Podcast. Co-hosts Nadia Odunayo and Saron Yitbarek are leading us chapter-by-chapter through different Ruby books and sharing their thoughts on the podcast as they go. ...

April 10, 2016 · 4 min · Dan Kleiman

Migrating Posts and Pages from Wordpress to Jekyll

This is Part 1 in a series on Migrating from Wordpress to Jekyll. The documentation for getting started with Jekyll is great. I’m not going to rehash everything that’s covered there. Instead, this post and the others in the series will be more like, “here’s the order I wish I had done things in” or “here’s everything I ended up needing to pull together to get stuff working”. I hope it helps you and saves you time if you ever decide to do a similar migration from a self-hosted Wordpress install to Jekyll. So here we go…. ...

March 11, 2016 · 5 min · Dan Kleiman

Migrating from Wordpress to Jekyll

So, I’ve decided to migrate my Tai Chi site at dankleiman.com from Wordpress to a new static site using Jekyll. Since I haven’t posted there in almost two years, but I get a steady stream of new subscribers who want to learn about Tai Chi, qigong, and meditation, I thought it would be good to give the 300+ pages and posts a more evergreen feel. ...

March 9, 2016 · 1 min · Dan Kleiman

I Hate Voicemail: Straight to SMS with Twilio

I hate checking my voicemail. I hate the nagging voicemail icon on my phone that won’t be dismissed unless I actually check my voicemail. I hate how listening to a voicemail, capturing relevant information from it, and calling someone back breaks up the normal flow of how I communicate with people all day long: asynchronously, via written communication like email or text. These days, when I want to talk to someone, we plan a time to talk and that’s fine. But some people still call and leave me a black-box-of-a-voicemail that I have to wade into. I needed some way to cut voicemail out of my life…so I hooked up a Twilio app to handle it for me. ...

September 15, 2015 · 6 min · Dan Kleiman

Text Me When You're Done: Twilio for Notifications of Long-Running Dev Tasks

This week at work, we ran into a slight hiccup with one of our larger third-party data syncs. Without going into too much detail, to fix the issue, we had to carefully reproduce data in various states and test fixes that would transform that data back to the correct state – or for the purpose of this post, I spent a lot of time this week setting things up and waiting for them to run. Outside of work I’ve been continuing to play with Twilio and this morning, with hours of data prep still in front of me, I stumbled across this article on Sending a Twilio SMS from the Shell. ...

August 29, 2015 · 5 min · Dan Kleiman

SMS To Do List with Twilio

The other day, I had the pleasure of talking to someone who builds mobile apps with people in developing countries so that community health workers can deliver medical information and collect data. As were talking about the technical challenges and logistical challenges (provisioning hundreds of mobile phones and numbers in one go in a country where you have no presence, e.g.), I have a pretty clear mental model of a basic CRUD app distilled down to Android…and then he said something that changed how I thought about the entire problem: Some of their programs are limited to SMS-only communication. No smartphones, no apps, just text. ...

August 13, 2015 · 7 min · Dan Kleiman