Skip to content

Instantly share code, notes, and snippets.

@HeinrichApfelmus
HeinrichApfelmus / 01_ExampleMonadic.hs
Last active Oct 11, 2018
Chart library examples — monadic vs pure API
View 01_ExampleMonadic.hs
plotSpectrum1 lattice n m = toFile def file $ do
layout_title .= "Spectrum of '" ++ name ++ "'"
layout_x_axis . laxis_title .= "momentum k (" ++ show m ++ " points)"
layout_y_axis . laxis_title .= "energy E"
setColors $ colorGradient blue (length rows)
forM_ rows $ \row -> plot (line "band" [row])
where
...
@HeinrichApfelmus
HeinrichApfelmus / ipython.log
Created Jan 20, 2014
Log of a failed installation of IPython when running `IHaskell notebook`.
View ipython.log
------------------------------------------------------------
/Users/apfelmus/.ihaskell/ipython/bin/pip run on Sun Jan 19 23:56:41 2014
Obtaining ipython from git+https://github.com/ipython/ipython.git@9c922f54af799704f4000aeee94ec7c74cada194#egg=ipython-dev
Cloning https://github.com/ipython/ipython.git (to 9c922f54af799704f4000aeee94ec7c74cada194) to /Users/apfelmus/.ihaskell/ipython/src/ipython
Found command 'git' at '/opt/local/bin/git'
Running command /opt/local/bin/git clone -q https://github.com/ipython/ipython.git /Users/apfelmus/.ihaskell/ipython/src/ipython
Running command /opt/local/bin/git submodule update --init --recursive -q
Running command /opt/local/bin/git tag -l
@HeinrichApfelmus
HeinrichApfelmus / DynamicEventSwitching.hs
Created Oct 2, 2013
Create new behaviors and switch between them.
View DynamicEventSwitching.hs
{-# LANGUAGE Rank2Types #-}
{-# LANGUAGE ScopedTypeVariables #-}
import Data.Traversable (sequenceA)
import Reactive.Banana
import Reactive.Banana.Frameworks
newtype Wrapper = Wrapper (forall t. Moment t (Event t () -> Behavior t Integer))
main :: IO ()
View InputElement.hs
{-# LANGUAGE RecordWildCards #-}
import Data.Monoid
import Control.Monad
import qualified Graphics.UI.Threepenny as UI
import Graphics.UI.Threepenny
data Input = Input
@HeinrichApfelmus
HeinrichApfelmus / SnapDebugLogChrome
Last active Dec 17, 2015
Web servers fail to serve large files on MacOS X.
View SnapDebugLogChrome
-- debug log for querying http://localhost:100000/video.mp4 with Chrome
Listening on http://0.0.0.0:10000/
Can't open log file "log/access.log".
Exception: log/access.log: openFile: does not exist (No such file or directory)
Logging to stderr instead. **THIS IS BAD, YOU OUGHT TO FIX THIS**
Can't open log file "log/error.log".
Exception: log/error.log: openFile: does not exist (No such file or directory)
@HeinrichApfelmus
HeinrichApfelmus / RandomAccessParser.hs
Last active Mar 21, 2020
Parsing a random-access format into a pure data structure. Parsing will be lazy: parts of the data structure will be parsed on demand.
View RandomAccessParser.hs
import Data.Word
import qualified Data.ByteString as B
type ByteString = B.ByteString
data Tree = Leaf [Word8] | Branch Tree Tree deriving (Eq,Show)
parse :: ByteString -> Tree
parse xs = case view xs of
Cons 0 xs -> case view xs of
Cons length xs -> Leaf . B.unpack $ B.take (fromIntegral . toInteger $ length) xs
@HeinrichApfelmus
HeinrichApfelmus / CurrencyConverter.js
Created Oct 19, 2012
Program compiled with haste that fails with a JavaScript error
View CurrencyConverter.js
/* Eval
Evaluate the given thunk t into head normal form.
If the "thunk" we get isn't actually a thunk, just return it.
*/
function E(t) {
if(t instanceof Thunk) {
if(t.f) {
t.x = t.f();
t.f = 0;
}
@HeinrichApfelmus
HeinrichApfelmus / gist:3845711
Created Oct 6, 2012
Log for haste-boot (2012-10-06)
View gist:3845711
peach:~ apfelmus$ haste-boot
Downloading base libs from ekblad.cc
Reading package info from stdin ... done.
Reading package info from stdin ... done.
Reading package info from stdin ... done.
Reading package info from stdin ... done.
Attempting to clone/update: git://github.com/valderman/fursuit.git
Cloning into fursuit...
remote: Counting objects: 134, done.
remote: Compressing objects: 100% (74/74), done.
@HeinrichApfelmus
HeinrichApfelmus / GameLoop.hs
Created Oct 2, 2012
Game loop in reactive-banana
View GameLoop.hs
{------------------------------------------------------------------------------
reactive-banana
Implementation of an "industry strength" game loop with fixed time step
and variable fps.
See also http://gafferongames.com/game-physics/fix-your-timestep/
-------------------------------------------------------------------------------}
{-# LANGUAGE NoMonomorphismRestriction #-}
module Main where
@HeinrichApfelmus
HeinrichApfelmus / Form.html
Created Jul 19, 2012
Problem with 'POST' ajax request and Scotty-0.4.4
View Form.html
<html>
<head>
<title>Test</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" /></script>
<script type="text/javascript" charset="utf-8">
// onLoad Handler
$(function () {
$('#form').submit( function() {
$.post('/submit', { x : $('#x').val() }, function (result) {
$('#x').val(result);