Skip to content

Instantly share code, notes, and snippets.

View chrisdone-artificial's full-sized avatar

Chris Done chrisdone-artificial

View GitHub Profile
@chrisdone-artificial
chrisdone-artificial / Adds gimmie.hs
Created August 21, 2025 20:42
applicative-wired-value-with-builder.hs
{-# LANGUAGE KindSignatures #-}
{-# language GADTs, LambdaCase, GeneralizedNewtypeDeriving #-}
import Control.Applicative.Free
import qualified Data.ByteString as S
import qualified Data.ByteString.Char8 as S8
import Data.Functor.Identity
import Data.ByteString (ByteString)
import qualified Data.Map as Map
import Data.Map (Map)
import qualified Data.Set as Set
@chrisdone-artificial
chrisdone-artificial / applicative-wired monad pattern.hs
Last active August 16, 2025 22:29
applicative-wired monad pattern.hs
{-# language GADTs, LambdaCase #-}
import qualified Data.ByteString as S
import qualified Data.ByteString.Char8 as S8
import Data.Functor.Identity
import Data.ByteString (ByteString)
import qualified Data.Map as Map
import Data.Map (Map)
import qualified Data.Set as Set
import Data.Set (Set)
import Control.Monad.Trans.State.Strict
@chrisdone-artificial
chrisdone-artificial / update-website.sh
Last active July 15, 2025 19:45
update-website.sh
- id: "update-website"
execute-command: "/home/chris/update-website.sh"
# include-command-output-in-response: true
trigger-rule:
and:
- match:
type: "payload-hmac-sha256"
secret: "....
parameter:
source: "header"
# The Caddyfile is an easy way to configure your Caddy web server.
#
# Unless the file starts with a global options block, the first
# uncommented line is always the address of your site.
#
# To use your own domain name (with automatic HTTPS), first make
# sure your domain's A/AAAA DNS records are properly pointed to
# this machine's public IP, then replace ":80" below with your
# domain name.
{-# LANGUAGE TypeSynonymInstances #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE OverloadedStrings #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
-- | Useful utilities for using Lucid with Yesod.
module Yesod.Lucid
(module Yesod.Lucid
,module Yesod
@chrisdone-artificial
chrisdone-artificial / 0readme.md
Created February 7, 2025 14:11
vega lite for a line chart with error bands.json
@chrisdone-artificial
chrisdone-artificial / lt-estimation.md
Last active February 4, 2025 11:05
lt-estimation.md

Mechanics

A method of estimation I've used successfully on a bunch of projects goes like this. Estimations are one of four choices:

  • <hour
  • <day
  • <week
  • <month
@chrisdone-artificial
chrisdone-artificial / fib.hell.hs
Created January 10, 2025 21:30
hell vs ghci fib(35)
{-
20,952,577,648 bytes allocated in the heap
5,725,800 bytes copied during GC
84,856 bytes maximum residency (2 sample(s))
24,704 bytes maximum slop
6 MiB total memory in use (0 MiB lost due to fragmentation)
Tot time (elapsed) Avg pause Max pause
Gen 0 5009 colls, 0 par 0.046s 0.029s 0.0000s 0.0001s
Gen 1 2 colls, 0 par 0.000s 0.000s 0.0001s 0.0001s
6f81ffa2114bd81c18229f2958299953021e77ca HEAD -> cd/2025-01-07-streamspec
Author: Chris Done <[email protected]>
Date: Tue Jan 7 15:38:48 2025 +0000
Support stream spec
1 file changed, 18 insertions(+)
src/Hell.hs | 18 ++++++++++++++++++
Modified src/Hell.hs
@chrisdone-artificial
chrisdone-artificial / default.conf
Last active December 10, 2024 11:02
keyd - disable super
[ids]
*
[main]
leftmeta = layer(mymeta)
[mymeta:C]
1 = M-1
2 = M-2