Skip to content

Instantly share code, notes, and snippets.

View mbenford's full-sized avatar

Michael Benford mbenford

View GitHub Profile
@mbenford
mbenford / get-permutations.js
Created April 30, 2015 03:15
Generate all permutations of the given set
function getPermutations(set) {
var result = [];
permutate(set);
return result;
function permutate(set, subset) {
if (!subset) subset = [];
if (set && !set.length) {
result.push(subset);
return;
@mbenford
mbenford / .bash_aliases
Last active August 29, 2015 14:21
My .bashrc file
alias la="ls -a"
alias psa="ps aux"
public static class MappingExtensions
{
public static void Unflatten<T>(this IMemberConfigurationExpression<T> config)
{
config.ResolveUsing(resolutionResult =>
{
var context = resolutionResult.Context;
var prefix = context.MemberName;
var destProperties = context.DestinationType.GetProperties();
var dest = Activator.CreateInstance(context.DestinationType);
@mbenford
mbenford / spring-cleaning.js
Last active April 17, 2017 09:06
ngTagsInput spring cleaning script
const path = require('path');
const GitHubApi = require('github');
const jsonfile = require('jsonfile');
const moment = require('moment');
const async = require('async');
const config = require('./config.json');
const github = new GitHubApi({ protocol: 'https' });
github.authenticate({ type: 'oauth', token: config.token });

Keybase proof

I hereby claim:

  • I am mbenford on github.
  • I am mbenford (https://keybase.io/mbenford) on keybase.
  • I have a public key ASBo0WcLt6b2Gjuq4tG-go7Ez0_bPJq3kNUA28QoKK1bPQo

To claim this, I am signing this object:

@mbenford
mbenford / git-cut-branch.sh
Created July 15, 2019 17:51
Git custom command that moves all commits between @{u} and HEAD into a new branch and deletes them from the current branch
#!/bin/bash
# Moves all commits between @{u} and HEAD into a new branch
# and deletes them from the current branch.
#
# Copyright (c) 2019 Michael Benford <[email protected]>
#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to deal
# in the Software without restriction, including without limitation the rights
@mbenford
mbenford / vpn.sh
Created April 8, 2020 03:10
Starts or stops a VPN connection
#!/bin/bash
set -e
conn_id=$(nmcli conn show | grep vpn | awk '{print $2}' | head -n1)
if [ "$conn_id" == "" ]; then
echo "no VPN connection was found"
exit 1
fi
@mbenford
mbenford / dbus-monitor.py
Created June 13, 2021 22:37
Monitoring DBus with dbus-next
from dbus_next.aio import MessageBus
from dbus_next.message import Message
from dbus_next.constants import BusType
import asyncio
async def main():
match = (
"type='method_call',"
"interface='org.freedesktop.PowerManagement.Inhibit',"
"path='/org/freedesktop/PowerManagement/Inhibit'"