Author Archives: niemeyer

Reference strepr implementation

In an effort to polish the recently released draft of the strepr v1 specification, I’ve spent the last couple of days in a Go reference implementation. The implemented algorithm is relatively simple, efficient, and consumes a conservative amount of memory. … Continue reading

Posted in Design, Erlang, Go, Java, Lua, MongoDB, Perl, Project, Python, Ruby, Security, Snippet | 2 Comments

IEEE-754 brain teaser

Here is a small programming brain teaser for the weekend: Assume uf is an unsigned integer with 64 bits that holds the IEEE-754 representation for a binary floating point number of that size. The questions are:

Posted in C/C++, Erlang, Go, Haskell, Java, Math, Perl, Puzzle, Python, Ruby, Snippet | 7 Comments

strepr v1 (draft2)

Note: This is a candidate version of the specification. This note will be removed once v1 is closed, and any changes will be described at the end. Please get in touch if you’re implementing it. Contents Introduction Supported values Representation … Continue reading

Posted in Architecture, Article, C/C++, Cloud, Design, Erlang, Go, Haskell, Java, Lua, Math, MongoDB, Python, Ruby, Security | 14 Comments

The heart of juju

The very first time the concepts behind the juju project were presented, by then still under the prototype name of Ubuntu Pipes, was about four years ago, in July of 2009. It was a short meeting with Mark Shuttleworth, Simon … Continue reading

Posted in Architecture, Cloud, Design, Go, MongoDB, Project, Python | 6 Comments

In-flight deb packages of Go

Since relatively early in the public life of the Go language, I’ve been involved in pushing forward packages that might be used in Ubuntu, including making the compiler suite itself happier in such packaged environments. In due time, these packages … Continue reading

Posted in Architecture, Design, Go, Project | 15 Comments

Efficient XPath for Go

This week I found some time to work on another small spin-off from the juju project at Canonical, and I’m happy to make it openly available today: the xmlpath package, which implements an efficient and strict subset of the XPath … Continue reading

Posted in Design, Go, Snippet | Leave a comment

Gopher-powered backups

10gen, the company behind the MongoDB database, recently announced the availability of the MongoDB Backup Service. This is not a traditional backup service, though. Rather than simply sending scheduled snapshots of the data over to a remote system, the backup … Continue reading

Posted in Go, Java, MongoDB, Project | 3 Comments

jsonpeer puts the P in JSONP

Today ubuntufinder.com was updated with the latest image data for Ubuntu 13.04 and all the previous releases as well. Rather than simply hardcoding the values again, though, the JavaScript code was changed so that it imports the new JSON-based feeds … Continue reading

Posted in Cloud, Go, Project, Security, Uncategorized | Leave a comment

Porting 6700 lines of C to Go

A few years ago, when I started pondering about the possibility of porting juju to the Go language, one of the first pieces of the puzzle that were put in place was goyaml: a Go package to parse and serialize … Continue reading

Posted in Architecture, Article, C/C++, Design, Go, Project | Leave a comment

Exceptional crashes

Last week I was part of a rant with a couple of coworkers around the fact Go handles errors for expected scenarios by returning an error value instead of using exceptions or a similar mechanism. This is a rather controversial … Continue reading

Posted in Architecture, Article, C/C++, Design, Go, Python, Snippet | 16 Comments