Skip to content

Instantly share code, notes, and snippets.

View dpwiz's full-sized avatar
👁️‍🗨️
🌈

Alexander Bondarenko dpwiz

👁️‍🗨️
🌈
View GitHub Profile
@dpwiz
dpwiz / pika_rpc.py
Created October 30, 2012 13:33
Monads are hard. Oh, the irony!
"""
Or should i use bass-ackwards definitions?.. http://pika.readthedocs.org/en/0.9.6/examples/comparing_publishing_sync_async.html
"""
import pika
pika_conn = 'amqp://guest:guest@localhost:5672/%2F'
def call(uri, service, method, **query):
@dpwiz
dpwiz / PGSParseable.hs
Created October 29, 2012 09:39
Generic attoparsec-parseable fields for postgresql-simple with a hstore example.
{-# LANGUAGE OverloadedStrings, ScopedTypeVariables, TypeSynonymInstances, FlexibleInstances, UndecidableInstances #-}
module PGSParseable where
import qualified Data.Attoparsec.Text as AP
import Data.Typeable (Typeable)
import qualified Data.Text as T
import Data.Text (Text)
import Data.Text.Encoding (decodeUtf8)
@dpwiz
dpwiz / pika_logger.py
Created October 18, 2012 13:24
log all stuff to rabbitmq
import logging
import pika
from myjson import json_dumps
LOGGING = {
'version': 1,
'handlers': {
'amqp': {
'()': 'utils.log.PikaHandler',
module Main where
import System.Environment (getArgs)
import Control.Monad
import qualified Data.ByteString.Lazy.Char8 as BSL
import Network.AMQP
connect = do
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Web.Scotty
import Control.Monad
import Control.Monad.Trans
import qualified Control.Monad.Trans.Resource as RT
import Control.Concurrent (threadDelay)
@dpwiz
dpwiz / gist:3486048
Created August 27, 2012 06:01
Verhoeff Checksum
# http://en.wikibooks.org/wiki/Algorithm_Implementation/Checksums/Verhoeff_Algorithm#Python
verhoeff_table_d = (
(0,1,2,3,4,5,6,7,8,9),
(1,2,3,4,0,6,7,8,9,5),
(2,3,4,0,1,7,8,9,5,6),
(3,4,0,1,2,8,9,5,6,7),
(4,0,1,2,3,9,5,6,7,8),
(5,9,8,7,6,0,4,3,2,1),
(6,5,9,8,7,1,0,4,3,2),
@dpwiz
dpwiz / gist:3285753
Created August 7, 2012 14:19
count django objects across json dump
grep '"model": "' dump.json | sort | uniq -c | sort -nr
@dpwiz
dpwiz / sms2redis.hs
Created August 3, 2012 13:20
Read SMS from a modem and put into a redis queue
{-# LANGUAGE OverloadedStrings #-}
import Prelude hiding (concat)
import Data.ByteString.Char8 hiding (putStrLn)
import qualified Data.List as L
import Data.List.Split (chunk, splitOn)
import qualified Database.Redis as R
import System.IO (withFile, hFlush, Handle, IOMode(ReadWriteMode))
import System.Environment (getArgs)
@dpwiz
dpwiz / FocusAuth.hs
Created July 19, 2012 06:58
Using Data.Vault in Scotty to store a redis connection for action handlers.
{-# LANGUAGE OverloadedStrings #-}
module Focus.Auth where
import qualified Database.Redis as R
import Crypto.BCrypt (validatePassword, hashPasswordUsingPolicy, fastBcryptHashingPolicy)
import Data.ByteString.Char8 (ByteString)
import qualified Data.ByteString.Char8 as BS
import Control.Monad.Trans (liftIO)
@dpwiz
dpwiz / scotty-auth.hs
Last active August 31, 2016 14:28
Check Basic HTTP Authentication in Scotty
main :: IO ()
main = scotty 3000 app
app :: ScottyM ()
app = do
rcon <- liftIO $ R.connect R.defaultConnectInfo {R.connectPort = R.UnixSocket "redis.sock"}
get "/favicon.ico" $ html "ಠ_ಠ"
get "/:method" $ do