Skip to content

Instantly share code, notes, and snippets.

View weswigham's full-sized avatar
:shipit:
:shipit:

Wesley Wigham weswigham

:shipit:
:shipit:
View GitHub Profile
@weswigham
weswigham / matrix.lua
Created July 2, 2013 23:42
O(1) Matrix Rotation. I think.
local rawget = rawget
local rawset = rawset
local setmetatable = setmetatable
local tostring = tostring
local error = error
local type = type
local print = print
@weswigham
weswigham / matrix_test.lua
Created July 2, 2013 23:45
Example usage of matrix.lua
local Matrix = require("matrix")
print(tostring(Matrix(3)))
local mat = Matrix(3)
mat[1][1] = 1
mat[1][2] = 2
mat[1][3] = 3
mat[2][1] = 4
mat[2][2] = 5
@weswigham
weswigham / scope
Created July 14, 2013 22:13
Lua scope
function SomeFunc()
local x = 3
local function InnerFunc()
x = 22
end
InnerFunc()
@weswigham
weswigham / scope
Created July 14, 2013 22:14
Scope in python
def SomeFunc():
x = 3
def InnerFunc():
x = 22
InnerFunc()
return x
@weswigham
weswigham / webclude.lua
Last active December 24, 2015 12:49
Pull Lua dependencies straight from the web! Now adds a searcher to require, instead of other things!
local socket = require("socket")
local http = require("socket.http")
--Safety is overrated. Pull scripts form the web!
local function webclude(target, ...)
local body, status, res_head, res_stat = http.request(target, ...)
if body then
return body
@weswigham
weswigham / method_missing.lua
Created November 5, 2013 04:33
You've always wanted method_missing in lua, right? This is a pretty close approximation.
--[[
Method missing should be an optional definition on any object.
If a method cannot be found, method_missing is called if available
]]
local field = '__method__missing'
function method_missing(selfs, func)
local meta = getmetatable(selfs)
@weswigham
weswigham / chargin_voxel.lua
Created March 4, 2014 05:07
Imma chargin mah lazor
local color = Color(255, 255, 255, 255)
Voxel.display.color = color
Voxel.display:zero()
local function toggleCore(center, size)
for x=center-size,center+size do
for y=center-size,center+size do
for z=center-size,center+size do
if math.sqrt((x-center)^2 + (y-center)^2 +(z-center)^2)<=size then
@weswigham
weswigham / deepcopy.lua
Last active August 29, 2015 14:01
A recursive deepcopy implementation
local copymember = {
['function'] = function(val, memo)
local copy;
local err = pcall(function() --handling the error is faster than getting debug info
copy = loadstring(string.dump(val))
end)
if (not copy) then
memo[val] = val
return val
end
@weswigham
weswigham / resteasy.js
Last active February 25, 2016 13:32
resteasy.js - Makes consuming rest interfaces as data promises super simple
(function(window) {
//Step 1: Promised wrapper for XMLHTTPRequest
function Request(url, options) {
return new Promise(function(resolve, reject) {
if (!options) {
if (typeof(url) == "string") {
options = { url: url };
} else {
@weswigham
weswigham / get-mumble.sh
Last active November 14, 2018 10:35
D/l and build mumble from source on centos
# Install so many prerequisite libraries:
sudo yum groupinstall "Development tools"
sudo yum install openssl-devel git qt-devel boost boost-devel libsndfile-devel avahi avahi-compat-libdns_sd avahi-compat-libdns_sd-devel protobuf-compiler protobuf-devel gettext gettext-devel festival libtool-ltdl-devel libffi-devel pcre-devel readline-devel automake libtool gtk-devel intltool dotconf speech-dispatcher speech-dispatcher-devel alsa-lib-devel libdaemon-devel libusb-devel libtool rpm-build
# Clone the client’s source:
cd ~
git clone https://github.com/mumble-voip/mumble.git
cd mumble
# Checkout a stable revision:
git checkout 1.2.x
# Build the makefile: