Skip to content

Instantly share code, notes, and snippets.

View robotmay's full-sized avatar

Robert May robotmay

View GitHub Profile
src/Main.hs:116:49: error:
• Couldn't match type ‘Text’ with ‘()’
Expected type: ParsecT Void Text Data.Functor.Identity.Identity ()
Actual type: ParsecT
Void Text Data.Functor.Identity.Identity (Tokens Text)
• In the first argument of ‘(<|>)’, namely ‘eol’
In the second argument of ‘someTill’, namely ‘(eol <|> eof)’
In the second argument of ‘(<$>)’, namely
‘(someTill anySingle (eol <|> eof))’
|
data Log = Log
{ size :: Int
, time :: Text
, message :: Text
} deriving (Eq, Show)
pLog :: Parser Log
pLog = do
notFollowedBy eof
size <- L.decimal <?> "size"
app :: SpockM () TwcaSession TwcaAppState ()
app = do
get root rootAction
post "ingest" $ body >>= \b ->
let
checker user pass =
Monad.unless (user == "test" && pass == "test") $ do
setStatus Http.status401 >> text "Unauthorised"
log =
@robotmay
robotmay / info.md
Last active February 9, 2017 17:51
Programming Position at Pirate Studios

Programmer at Pirate Studios

We are a rapidly expanding music rehearsal studio company, currently based in 8 cities in the UK. We're planning on at least doubling that in the next year. A big part of our business is our online booking system, however we're also working to integrate technology into lots more aspects of the business, such as automatic power on/off, light controls, video/audio streaming etc.

About the Job

We're looking for an enthusiastic programmer who is willing to learn new things, throw around ideas, and work as part of our small development team on various projects. Our current web stack is built in Ruby (Rails, Postgres, Redis), but anyone willing to learn new languages is welcome. We are working on rebuilding our main application into a separate API and client parts to allow us to build for new platforms more easily, such as a mobile application and integrated components inside our studios.

We work remotely, although we do

@robotmay
robotmay / fish.config
Created October 16, 2015 09:12
Fish function for re-running the docker quickstart gubbins
function docker-quickstart -d "Run the docker quickstart gubbins"
sh "/Applications/Docker/Docker Quickstart Terminal.app/Contents/Resources/Scripts/start.sh"
end
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCyuTleSDNQ5wOGK08WdQcUGNYLph5huVvl0dL8w2mRxEawm9u0cppmTmeObNLRHl/FWMN20d3nbHGZ2sCjsKGeYqGVsxsQ4A2X3OcB/lfZYXaRrGK7k/shsyVO9oee4NoiGBd9vojuZPFeQR0CTEmSoEnvix1vYqwcmAKtO29r5YU6jslAkPNk88iiw1kadFtkYLnCjY85wu3G5VEPjRPRFhgGacfJvBw5qOOsYTSX/Tadm/wef7t0zVfrRGXUhFi3PZ42FyE+1oGF2BsGehhE1boL3nC6vpZ23IVNcRdfiLu5f7QhiZcfRWmlF3ya2P/qpzEzyqER+oPsV+fPGSHQtbXIzW6H1vKh0iwlq9I1Iko/rKHKuYyqrVfO1RghQR0+9ncPcJ5RAHaCDuUzEqP739osD3uv7x6LI/E9pQdFpjuJ5gPpFXM5xvQ96ILoeaO65GusWL7CLyKPSDDunnqETjb+4VuXdCYxpOPYyHGJgn+5iAivPgYgTD0AjocT4+HPo5Rml8x8wGcG12NhLRj4Rz+igz2fY3IHTdPtDAh7FTOdR0ehV4qga9sc7YRc2aXVbWWjO/axEvZnC1SL/pJAgHeUlW+Y0LylZAKPGUSPJR1TXOLq+7IXNOmwY2u6aSa+dQUl0WJ1QTdmRps19DMrjlw6VunyatM9Lgg8o8ghtw== robert@kanso.io
set -x TERM screen-256color-bce
set -U EDITOR vim
source /usr/local/share/fry/fry.fish
alias git=hub
function recursive_replace
grep -rl $argv[1] $argv[3] | xargs sed -i "s/$argv[1]/$argv[2]/g"
end
@robotmay
robotmay / keybase.md
Created September 18, 2014 08:16
keybase.md

Keybase proof

I hereby claim:

  • I am robotmay on github.
  • I am robotmay (https://keybase.io/robotmay) on keybase.
  • I have a public key whose fingerprint is EFA6 A1C4 9D1D 2AB8 9990 5919 BCC4 3C63 2C6E 2D6D

To claim this, I am signing this object:

@robotmay
robotmay / stats_client.coffee
Created June 30, 2014 09:49
Kuiper stats client
#= require underscore
#= require uuid
timestamp = new Date()
class Kuiper
default_options:
api_key: null
api_base_url: "http://api.k.uiper.net"
api_track_path: "/track.gif"
@robotmay
robotmay / .tmux.conf
Created March 7, 2014 16:47
Tmux conf
unbind C-b
set -g prefix C-a
bind -n M-Left select-pane -L
bind -n M-Right select-pane -R
bind -n M-Up select-pane -U
bind -n M-Down select-pane -D
set -g default-terminal "screen-256color"
set -sg escape-time 0