As configured in my dotfiles.
start new:
tmux
start new with session name:
As configured in my dotfiles.
start new:
tmux
start new with session name:
#! /usr/bin/env stack | |
-- stack --resolver lts-18.8 script | |
{-# LANGUAGE OverloadedStrings #-} | |
{- | |
This is a handy illustration of converting between five of the commonly-used | |
string types in Haskell (String, ByteString, lazy ByteString, Text and lazy | |
Text). |
This post also appears on lisper.in.
Reader macros are perhaps not as famous as ordinary macros. While macros are a great way to create your own DSL, reader macros provide even greater flexibility by allowing you to create entirely new syntax on top of Lisp.
Paul Graham explains them very well in [On Lisp][] (Chapter 17, Read-Macros):
The three big moments in a Lisp expression's life are read-time, compile-time, and runtime. Functions are in control at runtime. Macros give us a chance to perform transformations on programs at compile-time. ...read-macros... do their work at read-time.
Get Git log in JSON format
git log --pretty=format:'{%n "commit": "%H",%n "abbreviated_commit": "%h",%n "tree": "%T",%n "abbreviated_tree": "%t",%n "parent": "%P",%n "abbreviated_parent": "%p",%n "refs": "%D",%n "encoding": "%e",%n "subject": "%s",%n "sanitized_subject_line": "%f",%n "body": "%b",%n "commit_notes": "%N",%n "verification_flag": "%G?",%n "signer": "%GS",%n "signer_key": "%GK",%n "author": {%n "name": "%aN",%n "email": "%aE",%n "date": "%aD"%n },%n "commiter": {%n "name": "%cN",%n "email": "%cE",%n "date": "%cD"%n }%n},'
The only information that aren't fetched are:
%B
: raw body (unwrapped subject and body)%GG
: raw verification message from GPG for a signed commitWindows Registry Editor Version 5.00 | |
[HKEY_CLASSES_ROOT\Directory\Background\shell\open_msys2] | |
@="Open MSYS2 here" | |
[HKEY_CLASSES_ROOT\Directory\Background\shell\open_msys2\command] | |
@="c:\\msys64\\usr\\bin\\mintty.exe /bin/sh -lc 'cd \"$(cygpath \"%V\")\"; exec bash'" | |
[HKEY_CLASSES_ROOT\Folder\shell\open_msys2] | |
@="Open MSYS2 here" |
#!/bin/bash | |
#Make sure we’re running with root permissions. | |
if [ `whoami` != root ]; then | |
echo Please run this script using sudo | |
echo Just type “sudo !!” | |
exit | |
fi | |
#Check for 64-bit arch | |
if [uname -m != x86_64]; then |
#!/bin/bash | |
#Heith Seewald 2012 | |
#Feel free to extend/modify to meet your needs. | |
#Maya on Ubuntu v.1 | |
#This is the base installer... I’ll add more features in later versions. | |
#if you have any issues, feel free email me at heiths@gmail.com | |
#### Lets run a few checks to make sure things work as expected. | |
#Make sure we’re running with root permissions. | |
if [ `whoami` != root ]; then |
(A book that I might eventually write!)
Gary Bernhardt
I imagine each of these chapters being about 2,000 words, making the whole book about the size of a small novel. For comparison, articles in large papers like the New York Times average about 1,200 words. Each topic gets whatever level of detail I can fit into that space. For simple topics, that's a lot of space: I can probably walk through a very basic, but working, implementation of the IP protocol.
See https://github.com/romainl/idiomatic-vimrc for an up-to-date version.
Require Import Coq.Program.Basics. | |
Require Import Coq.Program.Syntax. | |
Require Import Coq.Init.Datatypes. | |
Require Import Coq.Unicode.Utf8. | |
Open Local Scope program_scope. | |
Open Local Scope list_scope. | |
Open Local Scope type_scope. | |
Class Functor (φ : Type → Type) := { |