Skip to content

Instantly share code, notes, and snippets.

View wavewave's full-sized avatar

Ian-Woo Kim wavewave

  • San Francisco, CA, USA
View GitHub Profile
@wavewave
wavewave / start.hs
Created January 16, 2013 23:14
hoodle start.hs script example
{-# LANGUAGE RecordWildCards, DeriveDataTypeable, ScopedTypeVariables #-}
module Main where
import Control.Category
import Control.Lens hiding ((<.>))
import qualified Data.ByteString.Char8 as B
import Data.Monoid
import Data.Time.Clock
import Graphics.Rendering.Cairo
@wavewave
wavewave / llvmread.hs
Created January 19, 2013 05:32
reading llvm bitcode in haskell and execute. llvm created from clang-llvm. (SFMT: mersenne twister)
import Control.Monad
import Data.Int
import Data.Word
import LLVM.Core
import LLVM.ExecutionEngine
import Foreign.C.Types
main = do
initializeNativeTarget
m <- readBitcodeFromFile "SFMT.bc"
@wavewave
wavewave / MacroPatternMatch.h
Created January 30, 2013 08:30
Pattern Match using C99 Macro
#ifndef __MACROPATTERNMATCH__
#define __MACROPATTERNMATCH__
#define CAT(a,...) PRIMITIVE_CAT(a, __VA_ARGS__ )
#define PRIMITIVE_CAT(a,...) a ## __VA_ARGS__
#define IIF(c) PRIMITIVE_CAT(IIF_, c)
#define IIF_0(t, ...) __VA_ARGS__
#define IIF_1(t, ...) t
@wavewave
wavewave / simplereplace.hs
Created January 31, 2013 09:19
simple replace string in a file
{-# LANGUAGE OverloadedStrings #-}
import Control.Applicative
import Data.Attoparsec
import qualified Data.Attoparsec.ByteString.Char8 as AC
import qualified Data.ByteString as B
import qualified Data.ByteString.Char8 as C
import Data.List
import Data.Monoid
import System.Environment
@wavewave
wavewave / pipetest.hs
Created February 2, 2013 16:32
named pipe
import Control.Concurrent
import Control.Monad
import Control.Monad.Loops
import System.IO
import System.Posix.Files
main = do
-- createNamedPipe "/tmp/test.fifo" $ unionFileModes ownerReadMode ownerWriteMode
-- forever (hGetLine pipe >>= putStrLn)
@wavewave
wavewave / popplerpipe.hs
Created February 2, 2013 19:19
IPC using named pipe with poppler lib
{-# LANGUAGE ScopedTypeVariables #-}
import Control.Concurrent
import Control.Monad
import Control.Monad.Loops
import qualified Data.ByteString.Lazy as B
import Data.Monoid
-- import Data.UUID
import Data.UUID.V4
import Graphics.Rendering.Cairo
@wavewave
wavewave / dnd.hs
Last active December 12, 2015 10:09
gtk2hs simplest drag and drop test
--
-- drag and drop test gist
--
-- created by D.Wagner
--
import Control.Monad.IO.Class
import Graphics.UI.Gtk
main = do
@wavewave
wavewave / madgraphRun.hs
Created February 19, 2013 16:37
madgraph-auto sample running
{-# LANGUAGE PackageImports #-}
module Main where
import Control.Applicative
import Control.Monad
import "mtl" Control.Monad.Reader
import "mtl" Control.Monad.Error
import System.FilePath
import System.Directory
@wavewave
wavewave / parsetest.hs
Created February 19, 2013 16:39
sample LHCOAnalysis
{-# LANGUAGE RecordWildCards, GADTs #-}
import Codec.Compression.GZip
import Control.Applicative
import Control.Monad
import qualified Data.ByteString.Lazy.Char8 as LB
import Data.Function (on)
import Data.List
import Data.Maybe
--
@wavewave
wavewave / filelocktest.hs
Created February 20, 2013 03:45
testing file locking
import Control.Concurrent
import System.IO
import System.Posix.Files
import System.Posix.IO
import System.Posix.Types
main = do
putStrLn "file lock test"
let fp = "test.txt"
fd <- openFd fp ReadWrite mode defaultFileFlags