Skip to content

Instantly share code, notes, and snippets.

View bradclawsie's full-sized avatar

Brad Clawsie bradclawsie

View GitHub Profile
@bradclawsie
bradclawsie / json_types
Created March 24, 2012 22:16
json of different value types
{"S":"a string"}
{"N":"123456"}
{"SS":["a string","another string"]}
{"NS":["123","456"]}
@bradclawsie
bradclawsie / rstring.hs
Created March 1, 2012 06:38
random string of uppercase chars
module Main where
import Control.Monad.Random
import Data.Char
rnd :: (RandomGen g) => Rand g Int
rnd = getRandomR (65,90)
main = do
values <- evalRandIO (sequence (replicate 10 rnd))
@bradclawsie
bradclawsie / uuid.hs
Created February 18, 2012 06:03
generate hashed and random uuids in haskell
{-# LANGUAGE PackageImports #-}
module Main where
import qualified Data.Char as C
import qualified Data.Word as W
-- must qualify this (requiring the ghc pragma above) to disambiguate
-- from the Data.UUID also in system-uuid
import qualified "uuid" Data.UUID as U
import qualified Data.UUID.V5 as U5
@bradclawsie
bradclawsie / counter.hs
Created February 16, 2012 22:13
atomic counter with potential for reduced persistence
module Main where
import Control.Monad
import Control.Monad.STM
import Control.Concurrent
import Control.Concurrent.STM
oneSecond = 1000000
writerThread :: TChan Int -> IO ()
@bradclawsie
bradclawsie / ischain.hs
Created January 21, 2012 06:10
ischain.hs
{-# LANGUAGE ScopedTypeVariables #-}
module Main where
import qualified Control.Monad as C
import qualified Data.Char as CH
import qualified Data.Maybe as M
import qualified Data.List as L
import qualified Network.Memcache as MC
import qualified Network.Memcache.Protocol as MCP
import qualified Network.Memcache.Key as MCK
@bradclawsie
bradclawsie / loaddictionary3.rkt
Created January 2, 2012 05:28
loaddictionary3.rkt
#lang racket
(require racket/file)
(require (planet "memcached.rkt" ("jaymccarthy" "memcached.plt" 1 0)))
(define loaddict
(lambda (fn)
(let ([mc (memcached "localhost" 11212)])
(for-each (lambda (l)
(if (> (bytes-length l) 0)
(memcached-set! mc l #"1")
@bradclawsie
bradclawsie / loaddictionary.go
Created January 2, 2012 05:21
loaddictionary.go
package main
import (
"fmt"
"os"
"bufio"
memcache "github.com/bradfitz/gomemcache"
)
func main() {
@bradclawsie
bradclawsie / loaddictionary2.rkt
Created December 27, 2011 07:04
loaddictionary2.rkt
#lang racket
(require racket/file)
(require (planet "memcached.rkt" ("jaymccarthy" "memcached.plt" 1 0)))
(define loaddict
(lambda (fn)
(let ([mc (memcached "localhost" 11212)]
[lines (file->bytes-lines fn)])
(for-each (lambda (l)
(if (> (bytes-length l) 0)
@bradclawsie
bradclawsie / loaddictionary3.hs
Created December 27, 2011 06:07
loaddictionary3.hs
module Main where
import qualified Control.Monad as C
import qualified Network.Memcache as MC
import qualified Network.Memcache.Protocol as S
main = do
conn <- S.connect "127.0.0.1" 11212
words <- (C.liftM lines . readFile) "/etc/dictionaries-common/words"
sets <- C.mapM_ (\w -> MC.set conn w (1::Int)) words
S.disconnect conn
@bradclawsie
bradclawsie / loaddictionary2.hs
Created December 27, 2011 05:17
loaddictionary2.hs
module Main where
import qualified Data.List as L
import qualified Control.Monad as C
import qualified Network.Memcache as MC
import qualified Network.Memcache.Protocol as S
import qualified Data.ByteString.Char8 as BC
setword conn word = do
let b_word = BC.unpack word
success <- MC.set conn b_word (1 :: Int)