Skip to content

Instantly share code, notes, and snippets.

View bradclawsie's full-sized avatar

Brad Clawsie bradclawsie

View GitHub Profile
@bradclawsie
bradclawsie / sha1_bloom_filter.hs
Created June 30, 2012 07:07
sha1_bloom_filter.hs
module Main where
import qualified Crypto.Hash.SHA1 as SHA1
import qualified Data.Text as T
import qualified Data.Text.Encoding as TE
import qualified Data.ByteString as B
import qualified Text.Printf as P
import qualified Data.Word as W
import qualified Data.List.Split as S
import qualified Foreign as F
@bradclawsie
bradclawsie / loadredis.cpp
Created June 15, 2012 06:03
loadredis.cpp
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <ctime>
#include <random>
#include <hiredis/hiredis.h>
int main() {
const std::time_t now = std::time(NULL);
@bradclawsie
bradclawsie / loadredis-faster.hs
Created June 14, 2012 05:01
loadredis-faster.hs
module Main where
import qualified Data.DateTime as DATE
import qualified Control.Monad as C
import qualified Control.Monad.Trans as CT
import qualified Database.Redis as R
import qualified System.Random as SR
import qualified Data.ByteString.UTF8 as U
import qualified Data.Vector as V
@bradclawsie
bradclawsie / loadredis.hs
Created May 30, 2012 05:48
loadredis.hs
module Main where
import qualified Data.DateTime as DATE
import qualified Control.Monad as C
import qualified Control.Monad.Trans as CT
import qualified Database.Redis as R
import qualified System.Random as SR
import qualified Data.ByteString.UTF8 as U
-- a nice find from the web - picking an elt at random
<?php
$u = 4/0;
if ($u == $t) {
print "do stuff with *your* credit card number here\n";
}
?>
{-# LANGUAGE TupleSections #-}
module Main where
-- see https://plus.google.com/u/0/105746006385940131491/posts/9Uev6KVRUgK for
-- context
-- what we essentially have is a non-associative operation (represented by
-- concatenation):
--
-- ab = ba = c
-- bc = cb = a
@bradclawsie
bradclawsie / strpuzzle.hs
Created April 6, 2012 05:48
string puzzle solution
module Main where
import Data.List
import Data.List.Split
-- performs the transformation of adjacent strings
tr :: String -> String
tr s = case s of
"ab" -> "c"
"ba" -> "c"
"ac" -> "b"
@bradclawsie
bradclawsie / wai-sample.hs
Created April 1, 2012 05:48
complete wai/warp sample server
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Network.Wai
import Network.Wai.Handler.Warp
import Network.HTTP.Types
import qualified Data.Text as T
import Data.Time.Clock
import Data.Time.Format
@bradclawsie
bradclawsie / convert_go
Created March 24, 2012 22:47
convert json to native Go
// take an interface{} string and turn it into a real string
func To_S(i interface{}) (string,error) {
i_str,ok := i.(string)
if !ok {
e := fmt.Sprintf("cannot convert %v to string\n",i)
return "", errors.New(e)
}
return i_str,nil
}
@bradclawsie
bradclawsie / go_type
Created March 24, 2012 22:25
match Go type to json
#!/usr/bin/env gorun
package main
import (
"encoding/json"
"fmt"
)
type MyJSONType struct {