Skip to content

Instantly share code, notes, and snippets.

View dmjio's full-sized avatar
:octocat:
🍜

David M. Johnson dmjio

:octocat:
🍜
View GitHub Profile
################################################################################
# GitLab docs on types of pipelines:
# https://docs.gitlab.com/ee/ci/pipelines/pipeline_architectures.html
#
# This one is set to be a basic pipeline of the following steps:
#
# build binaries -> test binaries -> build and push image -> deploy image
#
# we do fan out during deploy and push to all environments at once since our
# deployes are driven by infra changes

Haskell Survey

Proficiency scale

  1. Not aware of the feature/concept/package in question, what it is or when to use it. Reading the description of this feature/concept/package is the first time I've heard of it.
  2. Have heard of said feature/concept/package, vaguely familiar with usage, not familiar with implementation.
  3. Moderate usage, familiar with best practices, have used in personal projects or on the job.
  4. Used feature/concept/package heavily, know when to use, advanced understanding.
  5. Commanding understanding of the feature/concept/package, comprehensive knowledge of trade-offs to make with said feature/concept/package. She knows when not to use it, expert level understanding and familiarity with implementation, can create pedagoical implementation where/if applicable.
module Main where
import qualified Data.ByteString.Lazy as BL
import qualified Data.ByteString.Lazy.Char8 as BL8
import System.Environment
import Debug.Trace
main :: IO ()
main = do
fileName:currentPath:newPath:[] <- getArgs
{
module Lexer98 ( scanTokens ) where
import Data.Text (Text)
import qualified Data.Text as Text
}
%wrapper "basic"
@dmjio
dmjio / SplitOn.hs
Last active December 4, 2020 07:06
import qualified Data.ByteString as B
import Data.ByteString (ByteString)
splitOn' :: ByteString -> ByteString -> [ByteString]
splitOn' del bs | B.null bs = []
splitOn' del bs =
case B.breakSubstring del bs of
(ls, rest) ->
if B.null rest
# run these two lines first
echo 'nix' | sudo tee -a /etc/synthetic.conf # or edit this file and just add nix
/System/Library/Filesystems/apfs.fs/Contents/Resources/apfs.util -B
[ 0 -ne "$?" ] && echo "Restarting APFS failed, please reboot your computer"
# reboot if it tells you to reboot
# then run this
sudo diskutil apfs addVolume disk1 APFSX Nix -mountpoint /nix # make sure disk1 is correct
sudo diskutil enableOwnership /nix
sudo chown -R $(whoami) /nix
sudo chflags hidden /nix # if you don't want to see Nix volume in finder
newtype DL a = DL { unDL :: [a] -> [a] }
instance Show a => Show (DL a) where
show = show . toList
instance Semigroup (DL a) where
perms [] = []
perms [x] = [pure x]
perms k@(z:zs) = do
(ls,rs) <-
splitAt
<$> [ 0 .. length zs ]
<*> perms zs
pure (ls ++ [z] ++ rs)
==================== Output Cmm ====================
2020-06-27 01:29:07.434663996 UTC
[Test.test_entry() { // [R2]
{ info_tbls: [(cA7,
label: Test.test_info
rep: HeapRep static { Fun {arity: 1 fun_type: ArgSpec 5} }
srt: Just GHC.Num.$fNumInt_closure)]
stack_info: arg_space: 8
@dmjio
dmjio / Foo.hs
Created May 10, 2020 02:57 — forked from Lysxia/Foo.hs
{-# LANGUAGE
DeriveGeneric,
FlexibleInstances,
FlexibleContexts,
AllowAmbiguousTypes,
ScopedTypeVariables,
TypeApplications,
TypeFamilies,
TypeOperators,
PartialTypeSignatures,