Skip to content

Instantly share code, notes, and snippets.

@nc6
nc6 / Indent rules.tmPreferences
Last active December 13, 2015 21:29
Slightly modified preferences for OCaml indentation in Sublime Text 2.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>name</key>
<string>Indent rules</string>
<key>scope</key>
<string>source.ocaml</string>
<key>settings</key>
<dict>
@nc6
nc6 / patchHardlinks.sh
Last active December 14, 2015 02:29
CVMFS doesn't allow for hardlink groups that exist outside of a single directory. As such, we need to convert any of these into symbolic links before trying to publish a repository. This script sorts that out.
@nc6
nc6 / app.models.dao.ParameterTypeDO.scala
Created April 25, 2013 08:58
Demonstration of the issue in playframework/play-slick#48. Results in an error: 'ReflectError: value ParameterTypes is not a package' during Slick DDL generation.
package models.dao
import play.api.db.slick.Config.driver.simple._
/**
* A parameter to a role type.
*/
private[models] case class ParameterTypeDO(id: Long, name: String, description: Option[String])
private[models] class ParameterTypes extends Table[ParameterTypeDO]("PARAMETER_TYPES") with StandardQueries[ParameterTypeDO] {
@nc6
nc6 / mannwhitney.hs
Last active December 22, 2015 17:58
Implementation of Mann-Whitney U test in Haskell, along with various approximations.
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE FlexibleContexts #-}
module Statistics.MannWhitney where
import Prelude hiding (sort)
import Control.Monad (forM)
import Data.List (genericLength, intersect, intercalate, nub, sortBy, splitAt)
import Data.Number.Erf (normcdf)
@nc6
nc6 / splitList.hs
Last active December 28, 2015 08:09
Small script to pull out lines from one file based on another. Basically grep -f but using sorting and much much faster.
{-# LANGUAGE LambdaCase #-}
module Main where
import Control.Monad (liftM)
import qualified Data.ByteString.Char8 as BS
import qualified Data.ByteString.Lazy.Char8 as B
import Data.Monoid (mconcat)
import Data.Ord()
import System.Environment (getArgs)
@nc6
nc6 / bigsed.hs
Created November 18, 2013 11:44
Takes a file of replacements and applies it to every field in another file.
{-# LANGUAGE LambdaCase #-}
module Main where
import Control.Monad (liftM)
import qualified Data.ByteString.Char8 as B
import qualified Data.ByteString.Lazy.Char8 as LB
import qualified Data.Map as Map
import Data.Maybe (fromMaybe, catMaybes)
import Data.Monoid (mconcat)
@nc6
nc6 / ChattyCalculator.hs
Created January 22, 2014 14:54
A 'chatty calculator' written in Haskell for the Cambridge software craftsmanship meetup group.
module ChattyCalculator where
import Prelude hiding (exponent, subtract)
import Control.Applicative hiding ((<|>))
import Data.List (intercalate)
import Text.Parsec
import Text.Parsec.Expr
@nc6
nc6 / Foreign.chs
Created February 13, 2014 16:07
Bindings to ioctl for setting/getting window size.
{-# LANGUAGE ForeignFunctionInterface #-}
{-# LANGUAGE EmptyDataDecls #-}
#include <sys/ttycom.h>
#include <sys/ioctl.h>
#c
typedef struct winsize winsize;
#endc
@nc6
nc6 / demo.html
Last active August 29, 2015 13:57
Smith Waterman Demo
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Smith-Waterman Demo</title>
</head>
<body>
<form>
<label for="word1">Word 1</label>
<input name="word1" id="word1" value="ACACACTA" />
@nc6
nc6 / hdup.hs
Created July 2, 2014 12:34
Test of behaviour using hDuplicateTo on multiple threads.
import GHC.IO.Handle
import Control.Concurrent (forkIO, forkOS, threadDelay)
import System.Directory (createDirectoryIfMissing)
import System.Environment
import System.IO
main ::IO ()
main = do
putStrLn "Writing to stdout"
mapM_ (createDirectoryIfMissing True) ["output_io", "output_os"]