Skip to content

Instantly share code, notes, and snippets.

@notae
notae / GenericIso.hs
Created June 8, 2018 09:33
Convert between isomorphic types with GHC.Generics
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE DefaultSignatures #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE UndecidableInstances #-}
module GenericIso
@notae
notae / mydocker
Created November 24, 2017 02:04
Personalization of an existing docker image
#!/bin/bash
IMAGE=local/ubuntu-dev:16.04
NAME=mydocker
LANG=C.UTF-8
DIR=`dirname $0`
SETUP=mydocker-setup
SETUP_CMD=/root/${SETUP}
HOST_UID=`id -u`
HOST_GID=`id -g`
@notae
notae / MatrixProd2.hs
Last active October 30, 2016 14:46
https://gist.github.com/notogawa/1eb31c647bf230dbaebd88283a8b1699 を GHC 7.10 で動くよう変更。元コードの意図をちゃんと汲めてないかも・・
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeOperators #-}
module MatrixProd2 where
import Data.Proxy
@notae
notae / osx_notify.hs
Last active February 24, 2016 15:30
Notify results of "stack build --file-watch" on OSX
#!/usr/bin/env stack
-- stack --resolver lts-4.0 --install-ghc runghc
module Main where
import Control.Monad (forM_, when)
import Data.List (isInfixOf)
import GHC.IO.Exception (ExitCode (..))
import System.Process (readProcessWithExitCode)
{-
Waifu2x.hs by @notae_c based on https://github.com/WL-Amigo/waifu2x-converter-cpp/blob/master/appendix/waifu2x-commented.py
MIT license, see https://github.com/nagadomi/waifu2x/blob/master/LICENSE
-}
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedLists #-}
{-# LANGUAGE OverloadedStrings #-}
@notae
notae / bashcheck.log
Last active August 29, 2015 14:07
bashcheck on Mac OS X Mavericks before / after OS X bash Update 1.0
Before:
$ ./bashcheck
Vulnerable to CVE-2014-6271 (original shellshock)
Vulnerable to CVE-2014-7169 (taviso bug)
./bashcheck: line 18: 2839 Segmentation fault: 11 bash -c "true $(printf '<<EOF %.0s' {1..79})" 2> /dev/null
Vulnerable to CVE-2014-7186 (redir_stack bug)
Test for CVE-2014-7187 not reliable without address sanitizer
Variable function parser still active, likely vulnerable to yet unknown parser bugs like CVE-2014-6277 (lcamtuf bug)
@notae
notae / setup_music-suite_sandbox.sh
Created September 19, 2014 22:12
Script to setup sandbox for music-suite
#!/bin/sh -xe
WORKDIR=~/Documents/Haskell
MWORKDIR=~/Documents/Haskell/music-suite
cabal sandbox delete
cabal sandbox init
cabal sandbox add-source \
${WORKDIR}/cpfd \
${WORKDIR}/muse \
@notae
notae / ghc_setup_home.sh
Last active August 29, 2015 14:05
GHC/Cabal initial setup script for home directory
#!/bin/sh -e
#
# Module : ghc_setup_home.sh
# Description : GHC/Cabal initial setup script for home directory
# Copyright : (c) notae@me.com, 2014
# License : BSD-style
# Maintainer : notae@me.com
# Stability : experimental
# Portability : POSIX
@notae
notae / example.log
Last active August 29, 2015 14:05
bindings-portaudio test
# with GHC 7.8.3 (Haskell Platform 2014.2.0.0) on Mac OS X 10.9.4
$ cabal sandbox init
$ cabal install bindings-DSL
$ cabal configure -fCoreAudio
$ cabal install -fCoreAudio
$ cd example/
$ cabal --sandbox-config-file=../cabal.sandbox.config configure
$ cabal --sandbox-config-file=../cabal.sandbox.config build
@notae
notae / CFPFD1.hs
Last active August 29, 2015 14:04
Constraint Programming over Multiple Finite Domain (with class Enum)
{-|
Module : CFPFD1
Description : Constraint Functional Programming over Multiple Finite Domain
Copyright : (c) notae@me.com, 2014
License : BSD-style
Maintainer : notae@me.com
Stability : experimental
Portability : POSIX
This module provides interfaces for constraint programming