Locally Optimal

Hill climbing in SF

Notes From VanPyDay 2016

| Comments

A one-day conference born from the Vanocuver equivalent of our local SF Python meetup. I had meet one of the organizers (Seb, @elbaschid) during a previous PyconAU and he convinced me to drop by and give a talk.

Really great community (small and friendly!) in a beautiful city. I’ve never had such a friendly conference audience, it was great to have conversations with many people over the course of the day šŸ˜Š

I’ve tried to write up some useful notes on each of the longer talks, but I very much enjoyed taking part and getting to hear from the diverse backgrounds of all the different speakers and attendees.

PyconAU 2015 Field Notes

| Comments

I was lucky enough to speak at PyconAU 2015, in Brisbane! Least I can do is write up some notes about the talks I particularly enjoyed. Here they lie, somewhat edited and mostly linked against the conference website.

Building a Basic Package Pt. 1: Bare Bones

| Comments

Every once in a while I get the itch to turn some one off script I wrote into a proper package. Turns out advice on the subject is a little scattered, and if you’re anything like me it can be frustrating to track down relevant posts on the entire subject. So, just for fun, let’s walk through the process of taking a one-off script I wrote and making it into a nice python package, complete with isolated testing, uploading to pypi, and convenient installation.

Now knowing my blogging habits, I’m splitting this into a few small posts in the hopes that I actually get through them. So lets take a current project I have and decide where to start.

There Is No Such Thing as Magic

| Comments

Do you know my favorite fact about programming? In the end, everything is build from code and you can understand it all – there is absolutely no magic. With enough effort, almost everything you interact with can be dug into, demystified, and explained. I know I often interact with various tools I use as if they were black boxes, either for lack of time, lack of interest, or a fear that I wouldn’t understand them if I tried. But let’s fight back against that.

So for this post, let’s understand what’s going on with python’s virtualenv package.

Coding-Free Interview Tips

| Comments

Interviews are a tricky thing to administer well. I still remember overflowing with nervous energy when I interviewed with Yelp and Google a couple years ago, wondering whether I’d make a complete fool of myself when it came time for the inevitable programming challenge. I stumbled through the various questions, handling some easily and getting completely flustered by others, and overall was relieved when the ordeal was over. Perhaps most importantly, the whole time I had basically zero clue what I was doing or how I should be presenting myself – I was simply going with the flow and testing out whatever anecdotal advice I picked up along the way.

Having spent a year or so on the other side of the table, there are several easy ways to improve how you come across in an interview – and none of them involve cramming!

Sins of the Test

| Comments

We all make mistakesā€¦some more embarrassing than others in hindsight. I always really appreciate when programmers I look up to make a point of pointing out their own faults, so I figured it was only fair for me to do the same.

So in that spirit, let’s talk about where I’ve gone wrong! Looking back on the tests I’ve written in the last six months has made me realize several things I’d change if I could write them again.

A New Year

| Comments

All the cool kids wrote New Year posts, so I figured that was excuse enough for me to chime in with a quick one.

Writing here has been a nice outlet for the end of 2012, but I figure now’s as good a time as any to make a couple minor changes.

First, I’m going to actually bother telling people this exists. Theoretically I was waiting until I was more comfortable with the writing, or until I decided this would actually be of interest to other people, or some other unspecified timeā€¦but better now than not at all.

Second, I’m planning on publishing a lot more short, one-off posts with little snippets of code I’ve found useful. Back in grad school I found many a solution in the tiny posts from the desk of Stinkpot and would love to save other people some frustration in the same way.

So Happy New Year and here’s to a great 2013.

Hiding Complexity With Context Managers

| Comments

Very reliably, my favorite part of programming is the simple process of taking a series of steps that I used to have to do by hand and packaging it up in a nice, reusable form. It’s pretty wonderful that it remains just as rewarding now as it did when I wrote my first function in C++ 8 years ago.

So in that spirit, I figured I’d write down a few thoughts on python’s context managers – the latest built-in feature that I’ve grown quite attached to.