Skip to content

Instantly share code, notes, and snippets.

@gfixler
gfixler / theofthe.hs
Last active Oct 6, 2015
Militia Name Generator
View theofthe.hs
-- Clojure -> Haskell port of: https://gist.github.com/nasser/1db446782cf7f3587283
import System.Random (getStdRandom, randomR)
pick :: [a] -> IO a
pick xs = do
n <- getStdRandom $ randomR (0, length xs - 1)
return $ xs !! n
adjs = ["people's", "brave", "invincible", "unstoppable", "righteous", "just", "honorable", "terrifying", "peaceful"]
@gfixler
gfixler / vim_mapkey.vim
Created Jul 25, 2012
Vim Mapkey() function: an inverse for maparg()
View vim_mapkey.vim
function! Mapkey (keys, mode)
" Inverse of maparg()
" Pass in a key sequence and the first letter of a Vim mode.
" Returns key mapping mapped to it in that mode, else '' if none.
" <Keys> - e.g. "<Space>" and "<CR>" - are matched case-insensitively,
" as are things before dashes, e.g. the "C-S-" part of "<C-S-A>".
" Chorded "<keys>" are not handled properly yet (i.e. "<C-Space>")
" Example:
" :nnoremap <Tab> :bn<CR>
" :call Mapkey(':bn<CR>', 'n')
@gfixler
gfixler / showsh.vim
Created Jul 27, 2012
Vim: Show-And-Shell - simple, shell session playback
View showsh.vim
" SHOW-AND-SHELL
" An *extremely* simplistic shell 'simulator'.
" Allows for copying a shell session into vim,
" marking up 'typed' sections, then stepping
" through a simulation of using the shell with
" a single key. Useful for didactic demos.
"
" Usage:
" Load or create a ShowShell file.
" Run :ShowShell_setup()
@gfixler
gfixler / blamecol.py
Created Aug 26, 2012
Simple SVN blame temporal grayscale colorization
View blamecol.py
#!/usr/bin/env python
'''
SVN blame temporal colorizer
Pipe shell output of `svn blame` through this.
Creates a grayscale heatmap of recentness of line changes.
Normalizes range of revisions over 20 shades of gray.
Usage:
@gfixler
gfixler / sendit
Last active Dec 12, 2015
Gnome Nautilus script to zip/scp files to server.
View sendit
#!/bin/bash
# zip/scp selected file(s) to server; copy URL to X clipboard
# put in ~/.gnome2/nautilus
# Put these 4 lines in ~/.sendit:
# SENDIT_USER='username' # your scp login
# SENDIT_SITE='yoursite.com' # site to scp to
# SENDIT_PATH='website/path' # where to 'sendit'
# SENDIT_LINK='http://www.yoursite.com/path' # for copying URL
@gfixler
gfixler / gist:5368404
Last active Dec 16, 2015
ThatOtherFile - Stateless buffer toggling in Vim, via basename. Toggle between proj/file.ext and proj/<basename>/<basename>_file.ext
View gist:5368404
function! ThatOtherFile (basename)
" Toggle between ./file.ext and ./<basename>/<basename>_file.ext
" Prompts to create missing <basename> directory if absent.
let path = expand('%:p:h')
let filename = expand('%:p:t')
let opath = path[-len(a:basename):]
let ofilename = filename[:len(a:basename)]
if opath == a:basename
if ofilename == a:basename.'_'
let opath = path[:-len(a:basename) - 1]
View randcode
aol bpm
aar bbs
abe bcf
ade bef
adm ben
ahl bim
ame bnf
amr bns
ana bob
ann boo
View A vim Primer
Intro
Why Vim?
Approach
Configuration
vim as Language
Getting Things Done
Searching Your Text
Moving Around Your Text
Changing Text
Deleting Text
View mayaOnUbuntu.sh
#!/bin/bash
#Heith Seewald 2012
#Feel free to extend/modify to meet your needs.
#Maya on Ubuntu v.1
#This is the base installer... I’ll add more features in later versions.
#if you have any issues, feel free email me at heiths@gmail.com
#### Lets run a few checks to make sure things work as expected.
#Make sure we’re running with root permissions.
if [ `whoami` != root ]; then
@gfixler
gfixler / tripod.hs
Last active Dec 12, 2016
101 Tripod Hits song lookup
View tripod.hs
#!/usr/bin/env stack
{- stack --resolver lts-7.13 --install-ghc runghc -}
import Data.Maybe (mapMaybe)
import System.Environment (getArgs)
song :: Int -> Maybe String
song 1 = Just "A Shandy Too Far"
song 2 = Just "Adult Contemporary"
song 3 = Just "Air Guitar"