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 / canvas.hs
Created January 21, 2012 00:10
gtk2hs drawingArea
import Graphics.UI.Gtk
import Graphics.Rendering.Cairo
import Control.Monad.Trans
main :: IO ()
main = do
initGUI
window <- windowNew
vbox <- vBoxNew False 0
canvas <- drawingAreaNew
@wavewave
wavewave / test.hs
Created January 21, 2012 05:08
gtk2hs: double buffering and timer
import Graphics.UI.Gtk
import Graphics.Rendering.Cairo
import Control.Applicative
import Control.Monad.Trans
import System.Random
import Data.IORef
import Data.Sequence
import Data.Foldable
@wavewave
wavewave / CmdArgs.hs
Created February 15, 2012 23:22
using dyre and gist together
{-# LANGUAGE DeriveDataTypeable #-}
module CmdArgs where
import System.Console.CmdArgs
data MyArgs = MyArgs
{ welcome :: String }
deriving (Show,Eq,Data,Typeable)
@wavewave
wavewave / Main.hs
Created February 16, 2012 07:13
using haskelldb with chrisdone's template haskell lib
module Main where
import qualified Model.BookField as F
import qualified Model.BookTable as T
import Database.HaskellDB
import Database.HaskellDB.HDBRec
import Database.HaskellDB.Extra
import Database.HaskellDB.HDBC
@wavewave
wavewave / slowcp.hs
Created July 31, 2012 17:10
slow copy: using zipped conduit sinks
import Control.Concurrent
import Control.Monad
import Control.Monad.Trans
import qualified Data.ByteString as B
import Data.Conduit
import Data.Conduit.Binary as CB
import qualified Data.Conduit.List as CL
import qualified Data.Conduit.Util as CU
import System.Environment
import System.Exit
@wavewave
wavewave / poppler-0.12.2-patch-for-recent-gtk.patch
Created September 7, 2012 01:33
patch for poppler-0.12.2 to be used with recent version of gtk
diff -Naur poppler-0.12.2/comm poppler-0.12.2-iw/comm
--- poppler-0.12.2/comm 1969-12-31 19:00:00.000000000 -0500
+++ poppler-0.12.2-iw/comm 2012-04-23 06:13:32.933346893 -0400
@@ -0,0 +1 @@
+/home/wavewave/.cabal/bin/gtk2hsC2hs --include=dist/build --include=/home/wavewave/usr/lib/ghc-7.0.4/array-0.3.0.2 --include=/home/wavewave/usr/lib/ghc-7.0.4/base-4.3.1.0 --include=/home/wavewave/usr/lib/ghc-7.0.4/bytestring-0.9.1.10 --include=/home/wavewave/.cabal/lib/cairo-0.12.3/ghc-7.0.4 --include=/home/wavewave/usr/lib/ghc-7.0.4/containers-0.4.0.0 --include=/home/wavewave/.cabal/lib/glib-0.12.3/ghc-7.0.4 --include=/home/wavewave/.cabal/lib/gtk-0.12.3/ghc-7.0.4 --include=/home/wavewave/usr/lib/ghc-7.0.4/haskell98-1.1.0.1 --include=/home/wavewave/usr/lib/mtl-2.0.1.0/ghc-7.0.4 --cppopts=-Idist/build/autogen --cppopts=-Idist/build --cppopts=-I. --cppopts=-I/usr/include/poppler/glib --cppopts=-I/usr/include/poppler --cppopts=-I/usr/include/glib-2.0 --cppopts=-I/usr/lib/x86_64-linux-gnu/glib-2.0/include --cppopts=-I/usr/i
@wavewave
wavewave / gdtest.hs
Created September 9, 2012 01:38
make image(jpeg and png) files using data uri scheme into html (gd library is used)
{-# LANGUAGE OverloadedStrings #-}
import Graphics.GD.ByteString
import qualified Data.ByteString as B
import Data.ByteString.Char8 ()
-- import Data.ByteString.Base64.URL
import Data.ByteString.Base64
import Data.Monoid
pngtest :: IO B.ByteString
@wavewave
wavewave / parsetest.hs
Created September 28, 2012 22:17
pdf print of hoodle file
--
-- testing program for attoparsec and sax hoodle parser
--
import Control.Monad
import Data.Attoparsec
import qualified Data.ByteString as B
import System.Environment
--
import Data.Hoodle.Simple
@wavewave
wavewave / filerecurse.hs
Created October 5, 2012 23:55
recurse directory using directory-tree
{-# LANGUAGE StandaloneDeriving, DeriveFunctor, DeriveFoldable, DeriveTraversable #-}
import Control.Applicative
import Control.Monad
import qualified Data.Foldable as F
import qualified Data.Traversable as T
import Data.List
import Data.Maybe
import System.Directory
import System.Directory.Tree
@wavewave
wavewave / couchdbtest.hs
Created January 4, 2013 03:44
Simplest example of using haskell CouchDB
{-# LANGUAGE DeriveDataTypeable, ScopedTypeVariables #-}
import Database.CouchDB
import Text.JSON
import Text.JSON.Pretty
import Text.JSON.Generic
data BookData = BookData { title :: String, author :: String }
deriving (Show, Typeable, Data)