View sprout.js
'use strict'
const exec = require('exec-then')
// prefills values for questions to ask, such that if there is a non-null value, ask the question
// if the value has a value, skip the question
// alterantive would be a `value` property on questions, which if not null, then ask the question
exports.load = function (utils) {
return'package.json').then(function (source) {
const data = JSON.parse(source)
return {
View next.config.js
module.exports = {
webpack: (config) => {
const webpack = require('webpack')
const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
config.plugins = config.plugins || []
config.plugins.push(new webpack.ContextReplacementPlugin(/moment[/\\]locale$/, /en/))
config.plugins.push(new BundleAnalyzerPlugin())
return config

Convert XPS to PDF on Linux and Mac

Add the contents to your bashrc file. If you don't know what that means, then run the following:

curl -fsSL | bash

Use like so:


Powerful yet low powered DIY servers


  • Intel Compute Stick
  • Up Board
  • Udoo x86
  • Rasberry Pi
  • Jaguar Board
  • Riot Board
View gist:a1934563e0b47ed58ef1466badef7820
Verifying that "" is my Blockstack ID.
  • Web developer since 2005, specialist in JavaScript since 2009, used Node.js since v0.3. Created over 200 open-source JavaScript projects including over 180 npm packages, History.js (over 8000 github stars), and DocPad (over 2000 github stars).
View automate.js
const commands = [
'git reset --hard',
'rm -Rf esnextguardian.js .babelrc nakefile.js',
'wget -N',
'wget -N',
'wget -N',
'wget -N',
'wget -N',
'wget -N',
'wget -N',

Comprehensive Node.js Training

The following is an outline for a training that I offer. You can make bookings through my company.

  • Node History & Scene
    • Theory
      • History of Node Tech and Business
        • Package Managers
          • npm
          • pre-npm