Skip to content

Instantly share code, notes, and snippets.


Ben New leftclickben

View GitHub Profile
leftclickben / gist:322b7a3042cbe97ed2af
Last active May 24, 2021
Steps to migrate from SVN to GitLab
View gist:322b7a3042cbe97ed2af

Steps to migrate from SVN to GitLab

This process worked for me. I take no responsibility for any damage or loss incurred as a result of following or not following these steps or, for that matter, anything else you might do or not do.


  • SVN is hosted at
  • SVN is accessible via http (other protocols should work).
  • GitLab is hosted at and:
View sloc-by-extension
set -u
# usage example to find all Java source files: ./sloc-by-extension java
for dir in $(ls -d */); do
pushd ${dir} >/dev/null
LIST=$(find . -name "*.${EXTENSION}" | grep -iv test)
leftclickben /
Last active Nov 13, 2019
Experiment: gist as a blogging platform

Experiment: gist as a blogging platform

Am I crazy? Perhaps. But why shouldn't we use gist as a blogging platform?

What it has going for it

  • support for comments
  • renders markdown
  • support for multiple files, so code examples can be attached as well as inline
  • automatic indexing by search engines
leftclickben / test-ldap-2.php
Last active Jul 5, 2019
Open a connection to an LDAP server, query it for a given user, and check group membership for that user (test script)
View test-ldap-2.php
# Parse options
$opts = getopt('h:n:u:p:b:s:', array( 'help' ));
if (isset($opts['help']) && $opts['help']) {
echo <<<ENDHELP
$argv[0] [-h HOSTNAME] [-n PORTNUM] [-u USERNAME] [-p PASSWORD] [-b BASEDN] [-s SEARCH]
leftclickben / admin-access.js
Last active Jul 4, 2018 — forked from spencermefford/0-model-override.js
An alternative to extending Loopback's built-in models: use a boot script to enhance the built-in model
View admin-access.js
(function () {
'use strict';
// Relevant resource:
module.exports = function (server, callback) {
var ACL = server.models.ACL,
User = server.models.User,
Role = server.models.Role,
RoleMapping = server.models.RoleMapping;
leftclickben / git-update
Last active Jul 29, 2016
Pull down latest from git remote and remove dead branches
View git-update
# git-update
# Pull down latest from git remote and remove dead branches
# To create an alias to `git update`, put this on your path, then:
# git config --global alias.update '!git-update'
# Copyright (c) 2016
# License: MIT
leftclickben / ubuntu-node-setup-5.x
Created Jan 22, 2016
Complete instructions for installing node 5.x on Ubuntu via apt (should work for other versions, just change `5.x`)
View ubuntu-node-setup-5.x
curl -sL | sudo -E bash -
sudo apt-get install nodejs
sudo chown -R $USER /usr/lib/node_modules/
sudo chgrp $USER /usr/bin
sudo chmod g+w /usr/bin
leftclickben / loadtest.js
Last active Dec 28, 2015
Simple website load tester written in Node.js
View loadtest.js
/*jslint node: true, white: true, nomen: true, plusplus: true*/
/*globals require: true, process: true*/
* Generic load tester
* Copyright (c) 2013
* MIT License, or whatever.
* Author assumes no liability for damage, loss, etc.
* Configuration is passed as a command-line argument when running node, e.g.
leftclickben / knockoutDateSelector
Last active Dec 24, 2015
Knockout date selector - use three `<select>` elements and compute a date, also restrict date within certain range
View knockoutDateSelector
<!doctype html>
<title>Knockout Date Selector</title>
<body style="background-color:#eee;font-family:sans-serif;">
<article style="width:600px;background-color:#fff;margin:1em auto;border:1px solid #000;padding:1em;">
<h1>Knockout Date Selector</h1>
leftclickben / testUnsort
Created Sep 6, 2013
Take an array of items and "unsort" them so that the items sharing similar properties are separated as much as possible. This code is not highly optimised and is not recommended for large data sets.
View testUnsort
// This is the input array.
$values = array(
'title' => 'First item (1,1)',
'categoryID' => 1,
'storeID' => 1