Skip to content

Instantly share code, notes, and snippets.

@eborden
eborden / cheesecake.md
Last active Jan 15, 2021
My Mom's South Philly Cheesecake
View cheesecake.md

Story

My Mother worked as a special needs teacher at Saint Catherine's school in Philadelphia. She became friends with a parent of two autistic twins. This mother was South Philly in every way. Big hair, big attitude, larger than life. She shared this recipe with my mother and it has been a staple in our household.

Ingredients

  • 1 lb cream cheese
  • 1 lb ricotta cheese
  • 6 eggs
@eborden
eborden / haskell-extension.log
Created Nov 17, 2020
Failure from VS Code Haskell extension
View haskell-extension.log
[client] run command: "/home/eborden/.config/Code/User/globalStorage/haskell.haskell/haskell-language-server-0.6.0-linux-8.8.4 --lsp -d"
[client] debug command: "/home/eborden/.config/Code/User/globalStorage/haskell.haskell/haskell-language-server-0.6.0-linux-8.8.4 --lsp -d"
[client] server cwd: undefined
haskell-language-server version: 0.6.0.0 (GHC: 8.8.4) (PATH: /home/eborden/.config/Code/User/globalStorage/haskell.haskell/haskell-language-server-0.6.0-linux-8.8.4) (GIT hash: 372a12e797069dc3ac4fa33dcaabe3b992999d7c)
Starting (haskell-language-server)LSP server...
with arguments: LspArguments {argLSP = True, argsCwd = Nothing, argFiles = [], argsShakeProfiling = Nothing, argsTesting = False, argsExamplePlugin = False, argsDebugOn = True, argsLogFile = Nothing, argsThreads = 0, argsProjectGhcVersion = False}
with plugins: [PluginId "brittany",PluginId "eval",PluginId "floskell",PluginId "fourmolu",PluginId "ghcide",PluginId "hlint",PluginId "importLens",PluginId "moduleName",PluginId "ormolu",PluginId "
View scrum-vs-kanban.md

IMHO, Kanban and SCRUM attempt to achieve the same goal, throughput. However they put systemic pressure on different points of organizational breakdown.

SCRUM takes the stance that communication is where throughput suffers. Without effective communication, via iterative planning, efficiency is lost.

Kanban believes focus is the point of efficiency loss. By moving tasks through work limited stages a team gains laser focus which should encourage high throughput.

That doesn't mean that SCRUM doesn't value focus. It utilizes story points and velocity to encourage tightly focused iterations.

Nor does Kanban ignore communication. Boards communicate work status and well designed work in progress limits on your board should encourage communication and collaboration amongst team members.

@eborden
eborden / FreshVar.hs
Last active Sep 24, 2019
Shared values that always stay fresh
View FreshVar.hs
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE MultiWayIf #-}
{-# LANGUAGE NamedFieldPuns #-}
module Control.Concurrent.FreshVar
( FreshVar
, newFreshVar
, newPreemptiveFreshVar
, readFreshVar
)
@eborden
eborden / stack-ghcid.sh
Last active May 16, 2019
Run ghcid in a monorepo via stack
View stack-ghcid.sh
project=$(basename "$(pwd)")
# build dependencies
build_deps="stack build $project --fast --pedantic --dependencies-only --interleaved-output"
# restart on changes in other packages
restarts=$(find ../. -maxdepth 1 -type d \
-not -name "$project" \
-not -name .stack-work \
-not -name . \
View take-throw-test.hs
$ ./take-throw-test.hs
with
m
...
with
m
with
m
with
m
@eborden
eborden / AVerbalArithmetic.hs
Last active Mar 9, 2018
A brute force solution to verbal arithmetic
View AVerbalArithmetic.hs
import Control.Monad (guard)
import Data.Bifunctor (second)
import Data.Foldable (for_, traverse_)
import Data.List (nub, permutations, unwords)
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Maybe (fromMaybe)
test :: IO ()
@eborden
eborden / stretch.service
Last active Nov 8, 2017
Insecure stretching reminder using giphy, jq and systemd timers
View stretch.service
[Unit]
Description=Stretching Reminder
[Service]
User=username
Environment=DISPLAY=:0
Type=oneshot
ExecStart=/path-to/stretch.sh
@eborden
eborden / Chans.hs
Created Oct 13, 2017
Immortal chans
View Chans.hs
#!/usr/bin/env stack
-- stack --resolver lts-9.8 script
module Main where
import Data.Functor (void)
import Data.Foldable (traverse_, for_)
import Data.Traversable (for)
import Control.Concurrent (forkIO, readChan, writeChan, newChan, getNumCapabilities)
import Control.Immortal (create, wait, Thread)