"ssh server mkdir" on Windows

How to use WinRM to connect from Linux to Windows and make a directory. Warning, may make your eyes bleed! In fact, the WinRM stuff is not completely insane, but the PowerShell syntax the guy chose for how to make a directory is pretty ridiculous.

April 12, 2017 · 1 min · jra

Goman numerals

I made a roman numeral encoder in Go. Nifty.

April 11, 2017 · 1 min · jra

httptrace, a new Go debugging tool

Today I was investigating why HTTP redirects resulted in more persistent connections staying open than I was expecting. I found myself digging around deep inside net/http/transport.go and I noticed the new net/http/httptrace package. It is new in Go 1.7, which is currently in beta. net/http/httptrace is lightly documented, and because it is new, there are no examples to look at. So I decided to share what I came up with here. ...

July 1, 2016 · 2 min · jra

The SRE book

I gave a Lightning Talk at SREcon16 and I was lucky enough to win the SRE book from Google while I was there. Here are some notes of things I was thinking while reading it. First, this is a phenomenal piece of work, that really marks a special point in time: the dawn of the possibility of wide adoption of SRE principles. I say, “possibility” because after getting exposed to the deepest details of what makes SRE work, I think that there are lots of organizations that won’t be willing or able to make it work. ...

June 14, 2016 · 4 min · jra

A Kafkaesque Experiment

As part of my interview prep, last night I challenged myself to do the following: Make a Kubernetes cluster (on Google Cloud Platform) …running Dockerized Zookeeper (1) and Kafka (2) …with Kafka reporting stats into Datadog Send in synthetic load from a bunch of Go programs moving messages around on Kafka Then run an experiment to kill the Kafka master and watch how the throughput/latencies change. Since thats a lot of that stuff I’ve never touched before (though I’ve read up on it, and it uses all the same general concepts I’ve worked with for 15 years) it should not be too surprising that I didn’t get it done. Yet. ...

June 8, 2016 · 3 min · jra

Interview Questions I Hope I Get

I have an interview coming up, and so my “keep in shape hacking time” has been recently devoted to interview preparation. I thought I would make a post about what’s in my head, both as a way to solidify it (no better way to learn something than by teaching it) and in case this interview goes bad, so that my next prospective employer can see what I’m thinking about. If you, my current prospective employer are reading this, would you please not take advantage of this by removing these questions from your list? Come on guys, give me a break. If I’m going to be transparent in my thought processes, the least you can do is throw me a bone and ask at least one of these in person! ...

May 31, 2016 · 6 min · jra

git log --grep "Résumé"

(This is an old post, which is missing years and years of interesting commits from my work at the DEDIS lab at EPFL and Pie Aéronefs. But it is still a good representation of what I can do for future clients and future team mates.) For a while now, it’s become clear that a useful and important piece of data about how a future colleague might work out is their open source contributions. While the conditions of open source work are often somewhat different than paid work, a person’s manner of expressing themselves (both interpersonally, on issue trackers for example and in code) is likely to tell you more about their personality than you can learn in the fake environment of an interview. ...

March 10, 2016 · 4 min · jra

I'm speaking at SREcon16

I’ve just been informed that my proposal for a Lightning Talk on HTTP/2 has been accepted for SREcon16 in San Jose, CA on April 7th and 8th. Come meet me!

March 9, 2016 · 1 min · jra

Seeking around in an HTTP object

Imagine there’s a giant ZIP file on a HTTP server, and you want to know what’s inside it. You don’t know if it’s got what you are looking for, and you don’t want to download the whole thing. Is it possible to do something like “unzip -l https://example.com/giant.zip"? This is not a theoretical problem just to demonstrate something in Go. In fact, I wasn’t looking to write an article at all, except that I wanted to know the structure of the bulk patent downloads from the US Patent and Trademark Office (USPTO) from those ZIP files. Or, I thought, how cool would it be to be able to fetch individual images of some of the patents issued in 1790 out of these tarfiles? ...

January 17, 2016 · 8 min · jra

Dynamic DNS circa 2016

In the old days, if you had an ISP that changed your IP address all the time but you wanted to run a server, you used dynamic DNS, i.e. a hacky script talking to a hacky API on an hacky DNS provider. These days, if you bring up a cloud server from time to time to work, it is likely to get a different IP address. But you might want a DNS record pointing at it so that it is convenient to talk to. ...

January 15, 2016 · 1 min · jra