Skip to content

Instantly share code, notes, and snippets.

View mikesmullin's full-sized avatar
🛴
woot!

Mike Smullin mikesmullin

🛴
woot!
View GitHub Profile
@mikesmullin
mikesmullin / arc4.coffee
Last active August 29, 2015 14:00
A CoffeeScript implementation of RC4
# A CoffeeScript implementation of RC4
class ARC4
i: 0
j: 0
psize: 256
S: null
constructor: (key=null) ->
@S = new Buffer(@psize)
if key
@init key
@mikesmullin
mikesmullin / .sh
Created April 13, 2011 12:56
Install Ubuntu Server in VirtualBox
# download an ISO of Ubuntu 10.4 LTS Server
# NOTE: If your pc is 64-bit and can emulate 64-bit VMs get that one. If not, use the i386/32-bit iso
# http://releases.ubuntu.com/lucid/ubuntu-10.04-server-amd64.iso
# http://releases.ubuntu.com/lucid/ubuntu-10.04-server-i386.iso
# download and install latest VirtualBox (3.2.4 r62467)
# http://www.virtualbox.org/wiki/Downloads
# run VirtualBox
# click Machine > New (Ctrl+N)
# click Next
@mikesmullin
mikesmullin / install-ejabberd.sh
Created July 10, 2012 02:07
install ejabberd server on Ubuntu
sudo apt-get install ejabberd
sudo vim /etc/ejabberd/ejabberd.cfg
# may optionally want to set the hostname and acl admin user, otherwise not required
sudo /etc/init.d/ejabberd start
ejabberdctl register mikesmullin localhost PaSsWoRD
tail -f /var/log/ejabberd/*.log
@mikesmullin
mikesmullin / loop.sh
Created June 21, 2014 21:18
Bash Process Loop
#!/bin/bash
# Process Loop
# Author: Mike Smullin <mike@smullindesign.com>
# License: MIT
# Usage:
#
# ./loop node --debug app.js
#
# Ctrl+C Restarts
# Ctrl+\ Quits
@mikesmullin
mikesmullin / vm.rb
Created May 12, 2013 22:48
VirtualBox VBoxManage CLI helper
#!/usr/bin/env ruby
# vim: set ft=ruby :
verb = ARGV[0]
who = ARGV[1..-1]
workers = %w{Zero Nasir Harsh Nino Victor Andy Abbas Atef}
group = who.first.downcase == 'all'? workers : who
group.each do |worker|
next if %w{Zero}.include? worker # skip
@mikesmullin
mikesmullin / timer.rb
Created May 12, 2013 22:48
Pomodoro Timer
#!/usr/bin/env ruby
# vim: set ft=ruby :
class Sax
attr :b
attr :s1
attr :s2
def initialize
require 'bloops'
# the bloops o' phone
@mikesmullin
mikesmullin / recipe.rb
Created May 28, 2013 04:07
I found a situation when chef had generated Chef::Exceptions::CommandTimeout exception in git clone command if time of git clone is more than 600 seconds (10 minutes). Here's how to set the timeout value for such situations in chef recipe.
# monkey-patch Chef Git Provider
# to raise the default ShellOut timeout setting
# because this repo can take over 10min
# to clone from github.com
class ::Chef::Provider::Git
def clone # based on opscode/chef commit b86c5b06
converge_by("clone from #{@new_resource.repository} into #{@new_resource.destination}") do
remote = @new_resource.remote
args = []
#!/bin/bash
#
# /usr/local/bin/git-shove
# example:
# git shove "#6: its easier when working alone--or with another very closely--to do smaller, more frequent commits"
#
git add -A &&
if [ $# -gt 0 ]
then
@mikesmullin
mikesmullin / asm-alternative.txt
Last active December 21, 2015 16:18
experimental asm alternative modern syntax
eax = ebx # mov
eax = &ebx # lea
push eax
pop eax
eax++ # inc
eax-- # dec
eax += 1 # add
eax -= ebx # sub
eax = &d * &e # imul
# and so on with idev, and, or xor, not, neg, shl, shr,
@mikesmullin
mikesmullin / c.cpp
Last active December 22, 2015 01:59
moar_fun_language_experimentation
#include <GL/glfw.h>
#include <iostream>
#define GLFW_INCLUDE_GLU
using namespace std;
int main()
{