Skip to content

Instantly share code, notes, and snippets.

View isovector's full-sized avatar

Sandy Maguire isovector

View GitHub Profile
<?xml version="1.0"?>
<canvas version="0.9" width="160" height="240" xres="2834.645752" yres="2834.645752" view-box="-1.333333 2.000000 1.333333 -2.000000" antialias="1" fps="24.000" begin-time="0f" end-time="1s" bgcolor="0.500000 0.500000 0.500000 1.000000">
<name>Synfig Animation 4</name>
<keyframe time="0f">Start</keyframe>
<keyframe time="10.500f">Return</keyframe>
<keyframe time="1s">End</keyframe>
<layer type="PasteCanvas" active="true" version="0.1" desc="Torso">
<param name="z_depth">
<real value="0.0000000000"/>
</param>
@isovector
isovector / gist:4113638
Created November 19, 2012 20:22
add up socket log lengths
awk 'match($0,/\([0-9]+\)/){ sum += substr($0,RSTART+1,RLENGTH-2) } END { print sum }' sockets.shandy2.raw.txt
@isovector
isovector / gist:5936263
Created July 5, 2013 18:14
Python script to scrape dictionary.com's words of the day into an anki deck
import urllib2
import re
# precompile our regexs since we use them on every iteration
wordRE = re.compile(r'"hw">([^<]+)<')
pronounceRE = re.compile(r'\\([^;,\\]+)')
typeRE = re.compile(r'<i>([^<]+)</i>')
defRE = re.compile(r'<b>1.</b> ([^<]+)')
otherDefRE = re.compile(r'-->([^<]+)</p>', re.DOTALL)
@isovector
isovector / eduroam
Created November 5, 2013 14:49
certificate for eduroam
-----BEGIN CERTIFICATE-----
MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG
A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
package juicy.source.ast
trait Expression extends Visitable
trait Statement extends Visitable
trait BinOp extends Expression {
val lhs: Expression
val rhs: Expression
protected def rewriter[T <: BinOp]
type App = ReaderT (AcidState Database) (ServerPartT IO)
processForm :: App Response
processForm =
do method POST
db <- ask
(games, _) <- query db (GetState) ----- this part explodes
prefs <- sequence $ map (runText . fst) prefMap
ok $ template "form" $ H.p "success!"
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
type Inventory = (Game, Int)
type UserRank = (User, (Game, Int))
unwrapPair :: Monad m => (a, m b) -> m (a, b)
@isovector
isovector / xmonad.hs
Created July 16, 2015 22:35
xmonad.hs
import Prelude hiding (mod)
import Control.Monad (when, liftM2)
import System.Environment (getArgs)
import System.IO
import XMonad
import XMonad.Actions.DynamicWorkspaces
import XMonad.Actions.WindowGo
import XMonad.Layout.Fullscreen
@isovector
isovector / Test.hs
Last active November 29, 2015 03:13
module Test where
import Control.Concurrent.MVar
import Control.Monad.IO.Class
import Control.Monad (join)
-- Memoize an IO result
memoIO :: MonadIO m => m a -> m (m a)
memoIO action = do
ref <- liftIO $ newMVar Nothing
module Components.KeySelector where
import Graphics.Input exposing (button)
keySelector : (Note -> a) -> Signal.Address a -> Element
keySelector f address = flow right
<< flip List.map noteEnum.elems
<| \note ->
button (Signal.message address <| f note)
<| toString note