I've wanted a more recognizable online "brand" for years. I took a stab at
creating something myself a few times, but was never satisfied with what I
came up with so I finally asked a friend to design a logo for me. The process
was delightful and I'm very happy with the results.
No, not that Avatar. And not the other one either. This post is about
avatar.png, a handful of lines of PHP that have inspired me for a long time.
Around 2011 or 2012 a friend of mine, Andrew Kvalheim, blew
my mind when he made his Skype profile picture display the IP address of the
computer I was using. It might have looked a bit like this.
Several years ago I did a take-home interview which asked me to write a TFTP
server in Go. The job wasn't the right fit for me, but I enjoyed the
assignment. Lately, in my spare time, I've been tinkering with a Rust
implementation. Here's what I've done to parse the protocol.
I'm starting the new year with a new job. To paraphrase a friend, "it's just
moving from one $BIGCORP to another", but it's still exciting. I worked my
last gig for 5 years, so I'm nervous, but also very ready to do something new.
While I'm doing one new thing I might as well do another. Taking some time off
between jobs has given me enough breathing room to redo my website.
Hello! Welcome to the once-yearly blog post! This year I'd like to examine the
most peculiar bug I encountered at work. To set the stage, let's start with a
little background.
Since Layabout launched last year it has been downloaded 5,755 times, gotten
16 stars on GitHub, been used by a Portuguese startup to teach a
Haskell workshop, and received a Twitter shout-out from @roach, one of
the core contributors to the official Python Slack client. During that time the
official client library also got a lot better! So much better, in fact,
that I've decided to deprecate Layabout.
Today I'm announcing Layabout, my first official Python library. Layabout is
a small event handling library on top of the
Slack Real Time Messaging (RTM) API. You can get it right now
on PyPI.
Haha. Get it? Resolving a DNS issue. OK, that was bad. You don't have to read
anymore, but I'm SOA into this. You might even say I'm in the zone. I think
it's gonna be A great read, so consider sticking around, 'cuz there's no
TLD;R.
If you're unfamiliar with what a callback is, don't worry, we can sort that out
quickly. If callbacks are old hat for you you might want to skip to
the interesting bit.
Simply put, a callback is a function that is passed as an argument to
another function which may execute it.
When I first created this site I wanted to get it live as quickly as possible.
Hexo, a blogging framework written in Node.js, seemed like the perfect
tool. At the time I was rather interested in Node.js, so it seemed natural to
use a framework rooted in that community.
By the time of my last post I'd become increasingly disinterested in Node.js
and much more interested in Rust and its community. It was mostly
procrastination, but I convinced myself that using a tool written in a language
I didn't use often directly contributed to the paucity of posts here, so I
finally decided to ditch Hexo.
I've been signing git commits for my dotfiles repository since its
inception in October of last year, so I was excited to see that GitHub recently
added GPG signature verification. All you have to do is upload your
public key to GitHub and you'll be verifying commits like a champ. Or so I
thought…
I've been wanting to start a blog for a long time now. Today I'm pulling the
trigger on that with a simple hexo init blog. Well, it wasn't that simple,
so I feel like it's worth talking about a few of the complications I had.