Skip to content

Instantly share code, notes, and snippets.

R. DuPlain rduplain

Block or report user

Report or block rduplain

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
rduplain / Vagrantfile
Created Jan 2, 2019
Simple FreeBSD vagrant.
View Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
Vagrant.configure(2) do |config|
config.vm.guest = :freebsd = "freebsd/FreeBSD-11.2-RELEASE"
config.vm.box_version = "2018.06.22"
config.vm.box_check_update = false
rduplain / nginx-site-include.conf
Last active Oct 28, 2018
Configuration files for deployment on a single server.
View nginx-site-include.conf
# nginx configuration
# gzip is enabled, but only used by clients requesting it:
# curl -H 'Accept-Encoding: gzip,deflate' -sSL
server {
listen 80;
rduplain /
Last active Sep 18, 2018
beCamp 2018 guest blog post for ButterCMS

beCamp: Charlottesville's Annual Unconference (now using ButterCMS)

beCamp is like any of the best conferences you've attended. Multiple sessions at a time take place throughout the day, with a generous lunch break. The topics are relevant, current, and thought-out, whether presentations or round-table discussions. The differences? It's local to Charlottesville, it's free to attendees--including refreshments and meals--thanks to sponsors, and the entire agenda was created the night before by conference attendees.

That evening, 100+ optimists show up to meet each other, often for the first time, and pitch ideas. It works, every time. Attendees leave the event with inspiration unlike anything they expected, better than anything they expected.

Two things happen when attendees organize the agenda:

  1. Whatever topic of most interest to the room is the one currently in discussion.
  2. Whoever has perspective on the topic has an opportunity to take the floor.
View ClojureScript - Native Executables.ipynb
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
rduplain / vpn
Last active Oct 4, 2018
OpenVPN rc.d script for VPN client, intended for BSD jail which is focused on a single service.
View vpn
# PROVIDE: vpn
# KEYWORD: shutdown
# vpn service designed for a jail which is focused on a single service.
# Uses OpenVPN and assumes the configuration does not need any authentication
# beyond the given .conf file. Consider an approach using `expect` if needed:
rduplain / rrsync-mountpoint
Created Dec 27, 2017
Ensure rrsync subdirectory is a mountpoint.
View rrsync-mountpoint
# Simple pre-rsync check to ensure rrsync subdirectory is a mountpoint.
# That is, only allow rsyncing to a mounted drive, and fail otherwise.
# Drop-in replacement for rrsync in .ssh/authorized_keys.
# Assume -ro always comes before the subdirectory, if provided.
if [ $# -eq 0 ]; then
rduplain /
Last active Dec 9, 2017
"21 Rules of Thumb for Shipping Great Software on Time" by Jim McCarthy at Microsoft

21 Rules of Thumb for Shipping Great Software on Time

Jim McCarthy, Microsoft Corporation

Shipping great software on time is a difficult but not impossible task. Elements you think would count the most count for very little. Development methodology, process, technical prowess, excellence of tools and depth of project management skills all influence the outcome of a software development project; but nothing indicates success as much as the manager's ability to focus on a few critical and conceptually simple things. These things can be expressed as rules of thumb.

I enumerate twenty-one of these rules of thumb. Pick a handful (or so), apply them, and your project will be more likely to succeed. I lump them into three groups: "Shipping," "Great Software," "On Time". Duh. I cover them in a different order, because the concepts build a bit.

On Time

rduplain /
Last active Apr 10, 2019
Code Quarterly's 2011 Q&A with Rich Hickey, by Michael Fogus

From the Archives: Code Quarterly's 2011 Q&A with Rich Hickey

Rich Hickey is frequently quoted as saying:

You can reach a point with Lisp where, between the conceptual simplicity, the large libraries, and the customization of macros, you are able to write only code that matters. And, once there, you are able to achieve a very high degree of focus, such as you would when playing Go, or playing a musical instrument, or meditating. And then, as with those activities, there can be a feeling of elation that accompanies that mental state of focus.

rduplain /
Last active Nov 29, 2016
Setting up libRETS with SWIG

Setting up libRETS with SWIG


Goal: Get a working [SWIG][SWIG] build of the latest [libRETS][libRETS].

This setup will use Ubuntu with [vagrant][vagrant], a tool for creating development environments with virtual machines on Mac, GNU/Linux, and Windows.

Initial setup:

rduplain /
Created Nov 26, 2016
Battlefield 1 Configuration on Aging PC

Battlefield 1 Configuration on Aging PC



I have a Windows PC (dual-boot with GNU/Linux) that I built in 2010. It's fully upgraded, in that any additional hardware would require replacing the motherboard, and all existing components are in the mid- to upper-range of a moderate (not high-end) PC.

  • Windows 10 64-bit
  • AMD Phenom II X6 6-Core 1066T Processor 2.80 GHz
You can’t perform that action at this time.