Random Musings

O for a muse of fire, that would ascend the brightest heaven of invention!

  • Your Infrastructure should be Boring

    Imagine if every time you picked up your phone to make a call, they had completely re-designed and re-invented the buttons on it. Or if you went to turn on the stove, instead of having a button or knob to press, it was now something different - maybe you needed to swipe it like a touch device, or give a special hand gesture. Now imagine that it was different every day.

    Read more…
  • IOCaging up the RabbitMQ

    Here, I’ll show you how to set up rabbitmq, a well-known open source message queue system, based on Erlang/OTP, in a container, using a tool called iocage that runs on FreeBSD, using zfs and jails that have been in base FreeBSD for a decade or longer, connected via tunnels between endpoints using spiped, a robust and reliable tool designed specifically for reliably & securely tunnelling network services across unsecured networks.

    Read more…
  • The Command-Line RESTafarian

    Almost any modern-day service or application provides an HTTP endpoint to work with. Whether they provide metrics, allows remote administration, or accepts complex requests, a system administrator will spend a lot of time working in the terminal accessing and updating such APIs. There are many many tools to help us, but today we’re going to look at just four key tools: curl, jq, yajl, and httpie. curl curl is probably available on every non-Windows system out of the box these days, except minimal builds.

    Read more…
  • Setting up a FreeBSD 10.1 box within vagrant

    Here’s a few brief notes on setting up a FreeBSD 10.1 vagrant config based on the current beta. Once 10.1 is released, I’ll turn this into an ansible config, and create a vagrantcloud box. config 4GB RAM if you’re going to use jails etc, otherise 1 is probably enough 20 GB split disk called zroot use VT + EPT virtualisation engine remove soundcard, usb hub add a serial port boot from CD install enable IPv6 use DHCP for everything use zfs everywhere your clock will not be set to UTC use the UTC timezone Before you reboot, let’s make some further changes in the shell.

    Read more…
  • Installing ZFS on Debian Linux

    ZFS is arguably the most reliable and most advanced filesystem ever, with over a decade of stable implementations in Solaris and FreeBSD operating systems. apt-fails For several years a port has been made available, including debian packages. Following the official build steps, we install the required GPG keys and then retrieve packages from the archive: apt-get upgrade -y gpg --keyserver pool.sks-keyservers.net --recv-keys 9A55B33CA71C1E00 gpg --keyserver pgp.mit.edu --recv-keys 0AB9E991C6AF658B echo deb http://archive.

    Read more…
  • A RAM-disk based workflow

    It’s easy to pick up a laptop today with 16 or more GB of memory. Or spin up a cloud instance with as much as you need. ramdisks are scary fast, and as most cloud instances have poor IO, it’s a great way of getting high performance servers without striping multiple disks. As an added benefit, if your cloud provider offers sub-hour pricing, as GCE does, you’ll even save cash as well as time, by finishing well before an equivalent disk workload, despite using a very fast instance.

    Read more…
  • Getting Started with D3

    This O’Reilly book is part of the “Getting Started” series, which I have to say I don’t really find valuable other than for a quick flick through a new topic. This is not a reference book that you’ll come back to time & time again, nor is it going to stand the test of time, as is often the case for tech books. Much of the material is now covered in blog posts and existing documentation on the improved D3js site, which wasn’t so slick at the time of publishing.

    Read more…
  • Standardising Configurations with Ansible

    For one of my customers I need to clean up some infrastructure that has been manually maintained over time. As we have not yet made a decision on what tool to use, I still wanted to clean up some things first but not spend too much time rolling out a tool to help me do that. We are using ssh keys to control access to the servers, and not all nodes have the right keys on them.

    Read more…
  • Running IRC Meetings with MeetBot

    Running meetings is a black art at the best of times. Running them over IRC is a step more complex. Instead of audio, and people waiting turns, you’ve got a thousand monkeys typing a thousand thoughts. Async. On recommendation from @nslater’s involvement in another project, I gave MeetBot a try. It’s based on a venerable Python IRC bot called supybot, and while setup on debian is a piece of cake, it certainly wasn’t so obvious on my mac.

    Read more…
  • Inside Windows Debugging

    This book is awesome. It will become your bible for windows debugging, and covers both theoretical aspects such as how the kernel & userland fit together in Windows, details on how 64 bit & 32 bit cohabit etc, and real-world expertise on debugging strategies for remote, local, and virtual machine scenarios. If you are programming or supporting Windows apps & servers, then you want this book. For novices, if you’ve not debugged an NT BSOD yet then this will give you enough understanding and straightforward tips to do so yourself, and for experts, if you don’t learn something new from this book I’d be very surprised.

    Read more…