-
Kinesis Freestyle (Terrible key switches. Mushy and un-lovable)
-
Kinesis Freestyle Edge (Traditional layout with too many keys, mech switches, proably too big to be tented easily/properly)
-
Matias Ergo Pro (Looks pretty great. Have not tried.)
-
ErgoDox Kit (Currently, my everyday keyboard. Can buy pre-assembled on eBay.)
-
ErgoDox EZ (Prolly the best option for most people.)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open Lwt.Infix | |
exception Source_terminated | |
type 'a node = N of ('a * 'a node Lwt.t) | |
type 'a t = 'a node Lwt.t | |
let push ref_waker v = | |
let new_node, new_waker = Lwt.wait () in |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
typedef struct { | |
int tag; | |
union { | |
int l; | |
struct { | |
char* fst; | |
float snd; | |
} r; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
" Statusline (requires Powerline font) | |
set statusline= | |
set statusline+=%(%{&buflisted?bufnr('%'):''}\ \ %) | |
set statusline+=%< " Truncate line here | |
set statusline+=%f\ " File path, as typed or relative to current directory | |
set statusline+=%{&modified?'+\ ':''} | |
set statusline+=%{&readonly?'\ ':''} | |
set statusline+=%= " Separation point between left and right aligned items | |
set statusline+=\ %{&filetype!=#''?&filetype:'none'} | |
set statusline+=%(\ %{(&bomb\|\|&fileencoding!~#'^$\\\|utf-8'?'\ '.&fileencoding.(&bomb?'-bom':''):'') |
It's now here, in The Programmer's Compendium. The content is the same as before, but being part of the compendium means that it's actively maintained.
Note: you can copy the file 2-lenses.js
below over to repl.it and
play along from home!
A lens in programming, much like a lens in the real world, allows you to focus in on a small part of a larger whole and then do something with or to
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
open Lwt.Infix | |
exception End_of_stream | |
type 'a node = N of 'a * 'a node Lwt.t | |
type 'a t = 'a node Lwt.t ref | |
let push ref_waker v = | |
let new_node, new_waker = Lwt.wait () in |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{-# LANGUAGE GeneralizedNewtypeDeriving #-} | |
import Data.Map.Strict (Map) | |
import qualified Data.Map.Strict as M | |
import MonadLib | |
type Tables t a = (PrefixMap t a, InfixMap t a) | |
newtype PrattM t r a = PrattM | |
{ runPrattM :: ReaderT (Tables t r) (StateT [t] (ExceptionT String Id)) a |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{- * Foundational functions -} | |
id :: a -> a | |
id x = x | |
const :: a -> b -> a | |
const x y = x | |
fix :: (a -> a) -> a | |
fix f = f (fix f) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{- | |
This came from looking at the source for the orc package on hackage. | |
I wanted to know why it works, and to see if I can come up with an | |
alternative implementation which does cool things, and possibly provide | |
a mechanism for orchestrating non-linear tube computations. | |
-} | |
-- | Pilfered from the orc package on Hackage. | |
-- The original is specialized to one MonadIO instance. | |
-- Also this looks suspiciously like a continuation monad. |