Inklings: a tumblelog

Build reliable, traceable, distributed systems with ZeroMQ

Implementing functional languages: a tutorial

This book gives a practical approach to understanding implementations of non-strict functional languages using lazy graph reduction. The book is intended to be a source of practical labwork material, to help make functional-language implementations ‘come alive’, by helping the reader to develop, modify and experiment with some non-trivial compilers.

The unusual aspect of the book is that it is meant to be executed as well as read. Rather than merely presenting an abstract description of each implementation technique, we present the code for a complete working prototype of each major method, and then work through a series of improvements to it. All of the code is available in machine-readable form.

Type Theory and Functional Programming by Simon Thompson

Yet another book currently out-of-print but freely available in electronic form. More writers (or, more to the point, publishers) should do this kind of thing. It makes things better.

The Remote Agent Experiment: Debugging Code from 60 Million Miles Away

Guilder: a limited-release condensed sans serif typeface family

The Little MongoDB Book (source)

Getting Real About Distributed System Reliability

(To read)

Mosh (mobile shell)

Remote terminal application that allows roaming, supports intermittent connectivity, and provides intelligent local echo and line editing of user keystrokes.

Mosh is a replacement for SSH. It’s more robust and responsive, especially over Wi-Fi, cellular, and long-distance links.

It’s essentially SSH over UDP (the actual protocol’s name is SSP) with no need for a privileged daemon on the server. It looks very, very nice.

How David Weber orders a pizza

A parody of the writing style of author David Weber. My favourite comment on the whole thing is this one:

Needs more husky contralto.

If you’ve read any of his books, you’ll know why. :-)

Gaia Machina

This kind of thing is proof positive that often knowing how something works doesn’t subtract from ones sense of wonder evoked by something, but can, in fact, add to it greatly. To a layperson, this demo’s pretty; to a software developer, it’s not just pretty, but mindblowing how the developers managed to fit all of that into a 64kB compressed executable. It’s an impressive piece of work.

git-sweep

git-sweep is a command-line tool that helps you clean up Git branches that have been merged into master.

You have to ask yourself: why doesn’t git support something like this in core already?

tox

tox aims to automate state-of-the-art packaging, testing and deployment of Python software right from your console or CI server, invoking your tools of choice.

[It] is a generic virtualenv management and test command line tool you can use for:

  • checking your package installs correctly with different Python versions and interpreters
  • running your tests in each of the environments, configuring your test tool of choice
  • acting as a frontend to Continuous Integration servers, greatly reducing boilerplate and merging CI and shell-based testing.

zmqc: netcat for ØMQ.

zmqc is a small but powerful command-line interface to ØMQ. It allows you to create a socket of a given type, bind or connect it to multiple addresses, set options on it, and receive or send messages over it using standard I/O, in the shell or in scripts. It’s useful for debugging and experimenting with most possible network topologies.

As an aside, text rendered using light fonts in grey is nigh-unreadable, especially against a white background. Don’t do that to your readers, it’s not nice.

Using Redis Pub/Sub and IRC for Error Logging with Python

Interesting idea.

Installing FreeBSD on Soekris net4801-48

My MiniITX box, etain, died today. I don’t think there’s much worth recovering from it (though I’ll keep it about just in case something occurs to me). Thus it looks like it’s time to replace it with something a bit more apt for what its duties were. I’m thinking a wee Soekris box and a NAS, but haven’t decided.

Salt

Salt is a distributed remote execution system used to execute commands and query data. It was developed in order to bring the best solutions found in the world of remote execution together and make them better, faster and more malleable. Salt accomplishes this via its ability to handle larger loads of information, and not just dozens, but hundreds or even thousands of individual servers, handle them quickly and through a simple and manageable interface.

The documentation is here.

Sentry

Sentry is a realtime event logging and aggregation platform. It specializes in monitoring errors and extracting all the information needed to do a proper post-mortem without any of the hassle of the standard user feedback loop.

There also raven, its Python client, and ports of raven for PHP and Ruby, though I have no idea how complete or up-to-date they are.

Alain de Botton: Values Without Religion

The title’s a bit misleading. It’s worth watching whether you’re of a religious or non-religious persuasion.

Dubstar: Stars

Just ‘cause.

pandas

pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.

OctoGit

A command-line interface for Github.