Author: jra

  • Two more stories

    Here’s two stories that worked their charm on a not-very-sleepy little boy, turning him into a sleepy one. Bep and the Giant Pumpkin: It is October, the official start of pumpkin season in our house. That means it is time to start talking about pumpkins and where we get them. So mommy, daddy, Elio and…

  • Once upon a time…

    My son now needs a bedtime story, whispered in the dark, to go to sleep. My wife and I both love good story telling. She even took a course on it once, and told a story to an audience as the final project. We go to le Nuit des Contes every year here in Lausanne,…

  • Zero Downtime upgrades of TCP servers in Go

    by

    in

    A recent post on the golang-nuts mailing list mentioned that Nginx can upgrade on the fly without ever stopping listening to it’s listen socket. The trick is to unset close-on-exec on the listen socket, then fork/exec a new copy of the server (on the upgraded binary) with an argument to tell it to use the…

  • Testing Go’s HTTP server for CVE-2011-3192 vulnerability

    by

    in

    The recent DoS attack on Apache is caused by sending in a malformed Range header. I decided to send the same header into Go’s range header parser and see what happened. It passed with flying colors, giving the “invalid range” error, which would result in the Go webserver sending back HTTP response code 416 to…

  • I love my Chumby

    I have been wanting a digital photo frame for a while, so I could see the same pictures I send to the other digital frames in my family. I post pictures of Elio to Picasaweb, and my family sees them via Toshiba digitical frames with built-in wireless and FrameChannel clients. Here in Switzerland, the digital…

  • No IPv6 from CityCable of Lausanne

    by

    in

    My home ISP is CityCable of Lausanne. While I have nothing bad to say about their IPv4 offering (fair price, good service, no noticable speed problems) I’ve got nothing good to say about their IPv6 service… because they don’t support it yet. Shame on you CityCable. You should support IPv6: it’s not so hard, and…

  • Now with IPv6!

    I have been learning about IPv6 for work, and getting it turned on for home and for my server at nella.org. It’s been interesting, and a bit depressing just how hard it is to get people to do something that’s so easy… Anyway, if your web browser is on IPv6, you’ll get a nifty ribbon…

  • A trip down the (split) rabbithole

    by

    in

    Note: This post is out of date, and will become increasingly out of date when Go’s new contiguous stacks are implemented. I’m leaving it here because it is still interesting, even if out of date. Go uses split stacks (also called segmented stacks in the literature) in order to allow thousands of stacks in the…

  • How to control your HTTP transactions in Go

    by

    in

    The Go http pacakge has http.Get and http.Post, which make it easy to do GET and POST operations. They are meant for client use. They implement things from the point of view of a naïve client, one that just wants to give a URL and get back the results. They don’t want to chase redirects,…

  • A rate-limiting HTTP proxy in Go

    by

    in

    Hello Go-fans. Missed a week due to a nice little ski vacation, but I promise I was dreaming of Go while riding the ski lifts, so I’ve got something interesting to share with you this week. I’ve worked in Africa and Indonesia in the past. There, I saw first-hand the possibilities of the Internet, but…