Skip to content

Instantly share code, notes, and snippets.

💭
trolling craigslist for free pallets

Chris Martin chris-martin

💭
trolling craigslist for free pallets
Block or report user

Report or block chris-martin

Hide content and notifications from this user.

Learn more about blocking users

Contact Support about this user’s behavior.

Learn more about reporting abuse

Report abuse
View GitHub Profile
@chris-martin
chris-martin / default.nix
Last active Apr 15, 2019
LaTeX + Nix setup for "Finding Success and Failure in Haskell"
View default.nix
{
pkgs =
import (import ./nixpkgs.nix) {};
texlive =
import ./texlive.nix { inherit (pkgs) texlive; };
fontsForLatex =
[
{ name = "google-fonts";
View triangles.txt
https://twitter.com/Cshearer41/status/1103717536921800704
Let a, b, c be the triangles, smallest to largest.
Observations from the illustration about the relative triangle sizes:
side b = 2 * height a [observation ab]
side c = 2 * height b [observation bc]
Let w be the rectangle's width and let h be its height.
View IfThenElse.hs
{-# LANGUAGE LambdaCase #-}
import Prelude (Bool (True, False), Monad, (>>=))
ifThenElseM :: Monad m => m Bool -> m a -> m a -> m a
ifThenElseM cond ifTrue ifFalse =
cond >>= \case { True -> ifTrue; False -> ifFalse }
ifThenElseM' :: Monad m => [(m Bool, m a)] -> m a -> m a
View HttpPipes.hs
import Pipes
import Pipes.HTTP
import qualified Pipes.Prelude as P
import qualified Pipes.ByteString as PB
import qualified Data.ByteString as BS
url = "https://typeclasses.com"
fetch url action =
do
View cachix.nix
{ pkgs, ... }:
let
src = pkgs.fetchFromGitHub {
owner = "cachix";
repo = "cachix";
# Jun 23, 2018
rev = "6a65632a4b51488b5355377e5c292a6a01efee2e";
sha256 = "13l12xkqpx6l7pfqwysz6yrgpjk6ydj6w7c85h74mzz4fvzihxyl";
};
View zlib.md

The problem:

chris@cubby ~ ❯❯❯ nix run -f '<nixpkgs>' zlib -c cabal install zlib
Resolving dependencies...
Configuring zlib-0.6.2...
Failed to install zlib-0.6.2
Build log ( /home/chris/.cabal/logs/ghc-8.2.2/zlib-0.6.2-L2Qec9Buml21zwTs2VzSGb.log ):
cabal: Entering directory '/tmp/cabal-tmp-31070/zlib-0.6.2'
Configuring zlib-0.6.2...
View deploy.sh
#! /usr/bin/env bash
set -e # Exit immediately if a command exits with a non-zero status.
set -u # Treat unset variables as an error when substituting
# The .nix directory is where we put all our Nix output symlinks. Create it if it doesn't already exist.
mkdir --parents .nix
# Pin Nix to the exact version of nixpkgs we're using.
nix build -f nixpkgs.nix --out-link .nix/nixpkgs
View isHex.hs
isHex :: Word8 -> Bool
isHex w =
(w >= 48 && w <= 57) || -- '0' to '9'
(w >= 97 && w <= 102) || -- lower-case 'a' to 'f'
(w >= 65 && w <= 70) -- upper-case 'A' to 'F'
View chris-martin-nginx.nix
{
services.nginx = {
enable = true;
appendHttpConfig = ''
types {
text/html html;
text/css css;
text/xml xml rss;
image/gif gif;
View fib-memo.hs
{-# LANGUAGE LambdaCase #-}
import Data.IORef
import Data.Map (Map)
import qualified Data.Map as Map
import Numeric.Natural
type Cache a b = IORef (Map a b)
newCache :: IO (Cache a b)
You can’t perform that action at this time.