Skip to content

Instantly share code, notes, and snippets.

View patrickt's full-sized avatar
🍉

Patrick Thomson patrickt

🍉
View GitHub Profile

Things You Should Know Before Your First Software Job

How do you teach yourself?

Take notes

You won’t refer to all of them, but the act of writing things down helps remember.

Set up backups/cloud syncing

You should ensure that if, tomorrow, your computer were to fail, you won’t lose any data.

Figure out what to memorize and what to keep in reference

You probably don’t need to memorize it… but if you do, you need to work at it.

Find communities

#!/usr/bin/env cabal
{- cabal:
build-depends:
, base
, recursion-schemes > 5
, free
, comonad
-}
{-# LANGUAGE DeriveTraversable #-}
{-# LANGUAGE LambdaCase #-}
diff --git a/PLAN.org b/PLAN.org
index a79dafc..df34532 100644
--- a/PLAN.org
+++ b/PLAN.org
@@ -30,5 +30,6 @@ So how are we gonna do messages, too? Presumably there should be a status bar on
sidebar, +status bar, and body+
generalize the (Reader (BChan x)) and (Reader (MVar x)) and whatever with some unified Pipe interface
+prevent crashes by implementing valid, occupied :: Position -> Canvas -> Bool
slurp in some enemies
benchmarked Error/Either
time 24.22 μs (22.36 μs .. 26.34 μs)
0.983 R² (0.970 R² .. 0.998 R²)
mean 22.90 μs (22.65 μs .. 23.36 μs)
std dev 1.045 μs (590.7 ns .. 1.930 μs)
variance introduced by outliers: 24% (moderately inflated)
benchmarked Error/Identity/Church.ErrorC
time 9.092 ms (8.772 ms .. 9.300 ms)
0.995 R² (0.990 R² .. 0.998 R²)
benchmarked Error/Either
time 48.08 μs (47.20 μs .. 49.37 μs)
0.994 R² (0.989 R² .. 0.999 R²)
mean 47.06 μs (46.60 μs .. 47.64 μs)
std dev 1.740 μs (1.034 μs .. 2.432 μs)
variance introduced by outliers: 18% (moderately inflated)
benchmarked Error/Identity/Either.ErrorC
time 5.277 ms (4.860 ms .. 5.552 ms)
0.980 R² (0.969 R² .. 0.988 R²)
diff --git i/summoner-cli/src/Summoner/Default.hs w/summoner-cli/src/Summoner/Default.hs
index 41dfaa6..6a25abe 100644
--- i/summoner-cli/src/Summoner/Default.hs
+++ w/summoner-cli/src/Summoner/Default.hs
@@ -29,12 +29,12 @@ import Relude.Extra.Enum (prev)
import Data.Time (getCurrentTime, toGregorian, utctDay)
import NeatInterpolation (text)
-import System.Directory (getHomeDirectory)
+import System.Directory (getHomeDirectory, doesFileExist)
{-# LANGUAGE AllowAmbiguousTypes #-}
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE TypeApplications #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE TypeOperators #-}
{-# OPTIONS_GHC -Wno-redundant-constraints #-}
{-# LANGUAGE ConstraintKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GADTs #-}
{-# LANGUAGE KindSignatures #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeFamilies #-}
module Data.Some
( Some (..)
, Some1 (..)
, Any

Benchmarking re. ask

With -O1

Before any optimizations:

benchmarked Control.Carrier.Reader/ask/10
time                 9.877 ns   (9.380 ns .. 10.43 ns)
                     0.985 R²   (0.971 R² .. 0.997 R²)
tr-sttr-0.5.0.0-2ca28879
tr-sttr-0.5.0.0-e60384cd
tr-sttr-g-0.2.0.1-8ca53757
tr-sttr-g-0.2.0.1-396cb03e
tr-sttr-g-0.2.0.1-90280971
tr-sttr-g-0.2.0.1-cb98253a
tr-sttr-jsn-0.3.0.0-5e1d169c
tr-sttr-jsn-0.3.0.0-6dddeb00
tr-sttr-jsn-0.3.0.0-cfda7faf
tr-sttr-jv-0.4.0.0-3db72760