#!/usr/bin/env python
import asyncio
from keyed_pool import KeyedPool
async def produce(pool):
await pool.put('foo', 'bar')
await pool.put('hello', 'world')
await asyncio.sleep(4)
await pool.put('foo', 'baz')

Modular PHP serving with Nginx

  • Simple maps for vhost locations and PHP versions
  • Still allows custom vhosts when added manually inside conf.d/

WARNING: I use this setup for local development, it is not meant to be used in production as is.

View wpgetridofubuntusystemfont.php
* Plugin name: Get rid of Ubuntu font
* Description: Attempt to override the 4.6 system font stack to get rid of Ubuntu font.
* Author: Otto Rask
* Author URI:
* License: MIT
View wp-transients-example.php
* WordPress transients example.
* This file shows the normal usage for WordPress transients with beefy comments.
* @author Otto J. Rask

Keybase proof

I hereby claim:

  • I am rask on github.
  • I am ojrask ( on keybase.
  • I have a public key whose fingerprint is D1F1 B1EC 2861 B7CE 37BE 4DAE CB4C E54A F8F3 5199

To claim this, I am signing this object:

View document-scrolltop-shim.js
* document-scrolltop-shim.js
* Cross-browser adjustments for getting and setting the current scrollTop -value for
* the body/html element.
* @author Otto Rask
View cq-prolyfill-sass-escaper.js
* This node-sass function can be used to escape class names generated for ausi/cq-prolyfill.
var nsass = require('node-sass');
var sassFunctions = {
* Sass function to escape [!=><] characters with a
# Originally created by eerac (and ivalegre) at
# Modified by Otto Rask to work with WordPress 4.* WXR files (<item>s are indented with a
# single \t instead of two).
# This script is designed to take a wordpress xml export file and split it into some
# number of chunks (2 by default). The number of lines per chunk is determined by counting
# the number of occurences of a particular line, '<item>\n' by default, and breaking up the
# such that each chunk has an equal number occurences of that line. The appropriate header