Skip to content

Instantly share code, notes, and snippets.

View ptitfred's full-sized avatar

Frédéric Menou ptitfred

View GitHub Profile
@ptitfred
ptitfred / .vimrc
Created August 29, 2012 07:56
Pretty format your JSON in VIM
function! PrettyJSON()
silent %!python -mjson.tool | sed -e 's/\s*$//'
endfunction
command! Fjson call PrettyJSON()
@ptitfred
ptitfred / thread_local.rb
Created November 23, 2012 12:29
ThreadLocal en Ruby
class ThreadLocal
def [](key)
Thread.current[key]
end
def []=(key, value)
Thread.current[key] = value
end
end
@ptitfred
ptitfred / gist:5090629
Last active December 14, 2015 12:59
Relative time builder in Ruby - requires ActiveSupport Time extensions
require "active_support/time"
# in 3 days
Time.fluent("+3d")
# Tomorrow at 10 am
Time.fluent("+1d @10h")
class Time
def self.fluent(at)
@ptitfred
ptitfred / Tim.scala
Last active December 15, 2015 10:59
Some HTTP server in Scala
package web
import com.sun.net.httpserver._
import java.net.InetSocketAddress
import java.net.Inet4Address
case class Answer(code: Int, body: String)
class MyServer(port: Int) {
type Handler = String => Answer
@ptitfred
ptitfred / gist:5353908
Last active December 16, 2015 01:19
One line banner-style clock
# http://stackoverflow.com/questions/15393441/obfuscated-c-code-contest-2006-please-explain-sykes2-c
cd $(mktemp -d /tmp/clock.XXXX)
cat > clock.c <<C
main(_){_^448&&main(-~_);putchar(--_%64?32|-~7[__TIME__-_/8%8][">'txiZ^(~z?"-48]>>";;;====~$::199"[_*2&8|_/64]/(_&2?1:8)%8&1:10);}
C
gcc -o clock clock.c
@ptitfred
ptitfred / screenshots2pdf.sh
Created October 18, 2013 13:39
Exporter en pdf une collection de screenshot png dans le format .*_[0-9]+.png
#!/bin/bash
i=0
IFS=$'\n'
for f in $(find . -iname "*.png" | sort -k2 --field-separator=_)
do
let "i += 1"
number=$(printf "%03d" $i)
convert "${f}" slide_${number}.pdf
@ptitfred
ptitfred / nodejs-installer
Created February 18, 2014 13:29
NodeJS installer
#!/bin/bash -e
NODE_ARCHIVE_REPOSITORY=http://nodejs.org/dist/latest/
# Move to a temp directory
BUILD_DIR=$(mktemp -t -d "nodejs-installer.XXXXX")
cd $BUILD_DIR
archive=$(curl "${NODE_ARCHIVE_REPOSITORY}SHASUMS.txt" 2>/dev/null | egrep "node-v[0-9.]*.tar.gz" | cut -f3 -d" ")
download_archive="$NODE_ARCHIVE_REPOSITORY$archive"

Keybase proof

I hereby claim:

  • I am ptitfred on github.
  • I am ptitfred (https://keybase.io/ptitfred) on keybase.
  • I have a public key ASBaeSUUdQZUcqJhNE2refT-wv0w2_eDU2zAtdeJUpoylwo

To claim this, I am signing this object:

@ptitfred
ptitfred / Servant.MessagePack.hs
Created February 6, 2018 00:19
Support MessagePack in your Servant APIs
-- msgpack-aeson for msgpack instance derived from aeson instances
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
module Servant.MessagePack
( MessagePack
) where
import Data.Aeson (FromJSON, ToJSON)
@ptitfred
ptitfred / README.md
Last active June 18, 2018 00:52
Patch nodegit prebuilt x86_64 library

What's that

This is an attempt to install clever-tools in a Nix environment.

How to use it

nix-env -i -f default.nix