Skip to content

Instantly share code, notes, and snippets.

View valderman's full-sized avatar

Anton Ekblad valderman

View GitHub Profile
@valderman
valderman / thumbs.py
Created April 12, 2022 10:08
Communicate on GitHub PRs using only emoji
#!/bin/env python3
from typing import Callable, TypeVar, TextIO, Iterable
T = TypeVar("T")
chars = ["👍", "👎", "😄", "🎉", "😕", "🧡", "🚀", "👀"]
def chunk(size: int, xs: list[T]) -> Iterable[list[T]]:
for ix in range(0, len(xs), size):
yield xs[ix : ix+size]
def thumbs(s: str) -> str:
{-# LANGUAGE OverloadedLabels, OverloadedStrings, DeriveGeneric #-}
import Database.Selda
import Database.Selda.SQLite
data Post = Post
{ postId :: ID Post
, topic :: Text
-- ...
} deriving Generic
instance SqlRow Post

Keybase proof

I hereby claim:

  • I am valderman on github.
  • I am valderman (https://keybase.io/valderman) on keybase.
  • I have a public key ASCVJw6-3BtUP1m4DJYizcPyJCjQs8w1ssQkYXv5w012ego

To claim this, I am signing this object:

@valderman
valderman / ExceptSelda.hs
Last active August 23, 2018 10:48
MonadSelda + ExceptT
{-# LANGUAGE DeriveGeneric, OverloadedStrings, OverloadedLabels #-}
import Database.Selda
import Database.Selda.Backend (MonadSelda (..))
import Database.Selda.SQLite
import Control.Monad.Except
instance (MonadMask m, MonadSelda m) => MonadSelda (ExceptT e m) where
seldaConnection = ExceptT (Right <$> seldaConnection)
type ExceptSeldaT e m = ExceptT e (SeldaT m)
@valderman
valderman / commitinspector.hs
Last active May 11, 2017 23:21
Calculate per-commit statistics for git repos
import Control.Shell
type CommitId = String
main = shell_ $ do
case cmdline of
[repo] -> inDirectory repo $ do
cids <- getCommitIds
formatDiffStat =<< zipWithM getDiffLines cids (drop 1 cids)
_ -> do