I recently came up with the most satisfying way to edit registers in Vim I’ve ever seen. I hope you like it as much as I do.
Posted Fri, Oct 20, 2017
Posted Mon, Oct 16, 2017
Recently at ZipRecruiter I implemented a tool to ensure that we know if some service is crashlooping. It was really easy thanks to Upstart but it took almost a whole day to get just right.
Posted Mon, Sep 25, 2017
Yesterday I spent a little over an hour finally figuring out how to detect a file based on its contents in vim. It’s pretty easy!
Posted Wed, Sep 20, 2017
Recently my coworker Andy Ruder was complaining that he often reached for grep when filtering JSON, and I offered to give him some tips. This post is an expansion of what I told him.
Posted Mon, Sep 18, 2017
I use Vim quite a bit and fairly heavily, so I run into a good amount of bugs. I’ll share a couple tricks I’ve learned that help debug vim.
Posted Fri, Sep 8, 2017
Recently I spent time figuring out why sending items to our message queue often took absurdly long. I am really pleased with both my solutions and my methodogy, maybe you will be too.
Posted Sun, Aug 20, 2017
This post is the seventh in my series about supervisors and I’m discussing some ideas that I’ve had while writing this series.
Posted Wed, Aug 2, 2017
This post is the sixth in my series about supervisors. I’ll spare you the recap since it’s getting silly at this point. This post is about readiness protocols.
Posted Mon, Jul 31, 2017
This post is the fifth in my series about supervisors. The first two posts were about traditional supervisors. The third was about some more unusual options. The fourth was about the current most popular choices. This post is about some of the unusual trends I’ve noticed during my three year long obsession with supervisors.
Posted Wed, Jul 26, 2017
This is the latest in my apparently unending series about supervisors. While the first two posts were about “traditional supervisors,” the third was about a few odd variants, both good and bad. This post is about the current reigning champions: Upstart and systemd.
Posted Mon, Jul 24, 2017
This post is a continuation of my series about suprevisors. The first post was about the most basic supervisors. The second post was about some more advanced, but still basically traditional supervisors. This post is about some more unusual options.
Posted Fri, Jul 21, 2017
On Monday I began a series about supervisors. It
mostly covered the most basic Supervisors out there,
perp. This post will cover the more
advanced generation, which includes
Posted Wed, Jul 19, 2017
Posted Mon, Jul 17, 2017
I say “station” all the time and people never seem to know why. Here’s why.
Posted Fri, Jul 14, 2017
At my talk at YAPC a few weeks ago I discussed some technology at ZipRecruiter that’s called the read/write splitter (or more often the rwsplitter or simply the splitter.) I have intended to write about this for a long time and the fact that I was unable to refer to a blog post for the talk finally convinced me that I must.
Posted Wed, Jul 12, 2017
A year ago, when I was on paternity leave, I decided that I needed to be better at time management. I think that my inspiration was simply the recommendation of the book, Getting Things Done by Alfie John. Having used the GTD system for about a year, I feel comfortable writing about it.
Posted Mon, Jul 10, 2017
A couple of weeks ago I went to YAPC::NA 2017. I already wrote about my own talk, but I still want to highlight a few other talks that I think people should see.
Posted Fri, Jul 7, 2017
I did a talk at YAPC this year, and while I am really proud of it and think that it went well, I think it could have gone better. This post is a retrospective on what I could do better next time.
Posted Wed, Jul 5, 2017
I started this blog ten years ago today!
Posted Mon, Jul 3, 2017
On Monday I wrote about using Amazon Athena from Perl. That’s only step one though, because often I find myself needing to dig further.
Posted Wed, Jun 14, 2017
At ZipRecruiter we write “a lot” of logs, so actually looking at the logs can be a lot of work. Amazon Athena provides a nice solution, and recently an API was (finally) provided to allow us to use it in our code. I wrote some code recently to leverage the API.
Posted Mon, Jun 12, 2017
On Monday I wrote about how QuickFix and friends are slow. I was legitimately chasitized on reddit for giving up too soon in trying to find a solution, so I did some more digging.
Posted Fri, May 26, 2017
Last time I blogged about vim sessions I showed a cool pattern for making sessions more generally useful. There was a bug in my example that hamstrung the technique, so I’ll be sharing and updated version here.
Posted Wed, May 24, 2017
I have recently been working on honing a lot of my tools, and a coworker, Andrew Ruder, mentioned using Denite.nvim for selecting more than simple directories. I decided to investigate using it instead of builtin file selection mechanisms. I was surprised at the result.
Note: while this post is still worth looking at for comparing how you can define various lists for vim, the performance issues turned out to be unrelated. See my new post for more details.
Posted Mon, May 22, 2017
After using the aptly named AwesomeWM for nearly five years I have switched back to XMonad.
Posted Fri, May 19, 2017
I wrote a plugin on Friday to making orienting yourself in a large piece of code
easier. The short version is that with the new plugin
lost.vim you can call
:Lost or use the
gL mapping to find your bearings.
Posted Mon, May 15, 2017
At ZipRecruiter we use AWS for nearly all of our infrastructure, so securing our usage of AWS is important for obvious reasons. In this article I will go over some of the things that I had to do (with help) to go from “pretty insecure” to “pretty secure” with respect to AWS permissions.
Posted Thu, May 11, 2017
Sometimes I will edit a huge file and got confused or distracted and lose track of where in the file I am. I wrote a tool a few days ago and integrated it into vim. It’s pretty cool.
Posted Mon, May 1, 2017
I have a ton of little programs I use on a day-to-day basis just to make my life easier. I figured it would be fun to share them so other people could either copy them or be inspired to make there own. I have blogged about some of these tools before and will link to the appropriate full posts when applicable.
Posted Fri, Apr 7, 2017
We have a handy little shell script at work that we can use to figure out what an IP address is. It could be an EC2 instance, or someone’s laptop, or a few other random things. I’ve been using it a lot lately and got annoyed that it was so slow. I ported it to Go over the weekend and wanted to share my experience.
Posted Mon, Mar 27, 2017 Updated Mon, Mar 27, 2017
I use a lot of plugins for vim. I’d like to go through all of my vim settings in a post at some point, but plugins are nicely isolated for the most part so describing their functionality seems more approachable. I am listing (nearly) all of my plugins and various things I know about each.
Posted Fri, Mar 17, 2017
Last Friday I blogged about some things that inspire me and mentioned a missing link; how to build your own operating system from scratch. I found it!
Posted Sat, Mar 11, 2017
I have added a handful of features to git. The features are not perfect and most people can’t use them, but they are easy to prototype and I can polish them before writing and submitting a proper patch to git.git.
Posted Fri, Mar 10, 2017
At work I ssh into a lot of machines. I recently came up with a script that would ensure that my dotfiles would be deployed to any server I have access to quickly and reliably.
Posted Wed, Mar 8, 2017
Many years ago some coworkers and I collaborated on a document that would describe how to install the ODBC drivers from Microsoft on Debian, instead of RedHat as they were intended. Recently Microsoft has made this a much simpler task, so I decided to write a new version.
Posted Mon, Mar 6, 2017
I thought it would be cool to share a list of things that are inspiring to me. I haven’t done much with any of these things, but I’d like to.
Posted Fri, Mar 3, 2017
At 9:36 am, Los Angeles time, my friend sent me a link about GCE vs AWS. It all went downhill from there.
Posted Tue, Feb 28, 2017
I keep reading tweets about how interviews should be done, almost entirely from the job seeker point of view. Having done (by my coarse count in google calendar) nearly ninety interviews at ZipRecruiter, I think that I can speak from a bit more experience than most about the interview process. I am not going to expose all of the gory details of the ZipRecruiter interview process, just how I (and my interview partner) administer it.
Posted Mon, Feb 27, 2017
I have blogged before about vim sessions and how useful they are. This post is about a pattern I discovered (though I’m likely not the first to discover it) at work when frustrated that certain settings were not stored in the session.
Note (2017-05-24) : this post has a critical error, see the updated version instead.
Posted Fri, Feb 10, 2017
I recently had a bug in some of my personal software and found it both interesting and horrifying. The software in question is what allows me to mute some kind of email (usually based on subject but it could be anything really) and unmute it on a given day. It’s great for stuff at work that will continue spewing until we are able to release a new build.
Posted Wed, Jan 11, 2017
Lately I have been roasting my own coffee. I am certainly not the first person to do this nor even document it, but I tend to use my own blog as reference, so here we go!
Posted Mon, Dec 19, 2016
I grew up in the deep south and had gumbo pretty regularly. It’s delicious and I miss it. This past Saturday I decided to make some from scratch which we rarely did even at home because there were starters available in supermarkets (unlike in Santa Monica.) Read how I did it here!
Posted Sun, Nov 6, 2016
Continuing my (likely unending) series of posts on email I want to talk about my latest in a Sisyphean line of tools to make the world suit my preferences.
As mentioned before I am a mutt user. Mutt, being not-Gmail, acts differently than what people have come to expect in 2016, though normally I can ignore other people’s expectations and move on. But I finally had to act in this case: email from the issue tracker we use at ZipRecruiter was not threading properly.
Posted Wed, Nov 2, 2016
I’ve posted plenty about email before, so it might not be surprising that along with all of my other tooling, I have some email filtering tools as well. I recently rewrote most of my filtering tools after being inspired by my friend and coworker Meredith’s email filtering. It’s pretty cool!
Posted Sat, Oct 29, 2016
At ZipRecruiter we have an awesome access log that includes information about each request, like a measure of the response time, the increase in rss, and lots of other details. Before I joined we had a measure of how much CPU was used, but it was a little coarse. Read about how I increased the granularity here!
Posted Thu, Oct 13, 2016 Updated Fri, Oct 14, 2016
This week I released Digest::MurmurHash2::Neutral.
Posted Fri, Sep 23, 2016
For years I’ve wanted a way to link to emails without being tied to some specific provider. All emails have a header, Message-ID, that is supposed to be unique. I think it would be incredibly useful if there could be links based on these ids. I implemented that this past week!
Posted Thu, Sep 15, 2016
At ZipRecruiter we have a problem that I suspect is fairly common. We use cronjobs for various tasks and sometimes a cronjob will fail to clean up after itself and end up filling up a partition. It’s annoying. I solved this by using some simple but poorly supported Linux features.
Posted Mon, Sep 12, 2016
My doctor recently told me I probably have some high blood pressure issues. That may or may not be the case, because apparently isolated measurements are not to be trusted, but I did a bunch of research anyway, because that’s my deal.
Posted Thu, Sep 1, 2016