Skip to content

Instantly share code, notes, and snippets.

Avatar

Alexandre Moreno moleike

View GitHub Profile
@moleike
moleike / CC.hs
Created Jul 4, 2020 — forked from atennapel/CC.hs
Calculus of Constructions, normalization-by-evaluation, semantic typechecking
View CC.hs
data Tm = Var Int | Ann Tm Tm | Abs Tm | App Tm Tm | Pi Tm Tm | Fix Tm | Uni
data Clos = Clos Tm Env
data Dm = DVar Int | DAbs Clos | DNeutral Int [Dm] | DPi Dm Clos | DFix Clos | DUni
type Env = [Dm]
capp :: Clos -> Dm -> Dm
capp (Clos b e) t = eval (t : e) b
vapp :: Dm -> Dm -> Dm
vapp a b =
@moleike
moleike / App.java
Created Apr 28, 2020 — forked from thomasdarimont/App.java
Simple AuthN & AuthZ example with Spring Boot / Security / Session
View App.java
package demo;
import java.io.Serializable;
import java.security.Principal;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
@moleike
moleike / pair_programming_roles
Created Mar 23, 2018 — forked from jordanpoulton/pair_programming_roles
Pair Programming Role Definitions - Driver:Navigator
View pair_programming_roles
Driver:
-Write the code according to the navigator's specification
-Listen intently to the navigators instructions
-Ask questions wherever there is a lack of clarity
-Offer alternative solutions if you disagree with the navigator
-Where there is disagreement, defer to the navigator. If their idea fails, get to failure quickly and move on
-Make sure code is clean
-Own the computer / keyboard
-Ignore larger issues and focus on the task at hand
-Trust the navigator - ultimately the navigator has the final say in what is written
@moleike
moleike / ssh_client.go
Created Mar 15, 2018 — forked from svett/ssh_client.go
SSH client in GO
View ssh_client.go
package main
import (
"fmt"
"io"
"io/ioutil"
"net"
"os"
"strings"
View tmux-cheatsheet.markdown

tmux shortcuts & cheatsheet

start new:

tmux

start new with session name:

tmux new -s myname
@moleike
moleike / Makefile
Created Mar 2, 2018 — forked from llj098/Makefile
a sample tcp server runs in kernel
View Makefile
obj-m += tcp_svr_sample.o
all:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules
clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clea
@moleike
moleike / memory_layout.md
Created Jan 14, 2018 — forked from CMCDragonkai/memory_layout.md
Linux: Understanding the Memory Layout of Linux Executables
View memory_layout.md

Understanding the Memory Layout of Linux Executables

Required tools for playing around with memory:

  • hexdump
  • objdump
  • readelf
  • xxd
  • gcore
@moleike
moleike / 00_input.conf
Created Aug 31, 2017 — forked from steveash/00_input.conf
ELK configuration for aggregating cassandra and spark logs
View 00_input.conf
input {
lumberjack {
# The port to listen on
port => 5043
# The paths to your ssl cert and key
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder/logstash-forwarder.crt"
ssl_key => "/etc/pki/tls/private/logstash-forwarder/logstash-forwarder.key"
# default type, but this will already be set by logstash-forwarder anyways
@moleike
moleike / arch-linux-install
Created Jul 11, 2017 — forked from mattiaslundberg/arch-linux-install
Minimal instructions for installing arch linux on an UEFI system with full system encryption using dm-crypt and luks
View arch-linux-install
# Install ARCH Linux with encrypted file-system and UEFI
# The official installation guide (https://wiki.archlinux.org/index.php/Installation_Guide) contains a more verbose description.
# Download the archiso image from https://www.archlinux.org/
# Copy to a usb-drive
dd if=archlinux.img of=/dev/sdX bs=16M && sync # on linux
# Boot from the usb. If the usb fails to boot, make sure that secure boot is disabled in the BIOS configuration.
# Set swedish keymap
@moleike
moleike / promise-monad-proof.js
Created Apr 28, 2017 — forked from briancavalier/promise-monad-proof.js
A proof that Promises/A is a Monad
View promise-monad-proof.js
//-------------------------------------------------------------
//
// Hypothesis:
//
// Promises/A is a Monad
//
// To be a Monad, it must provide at least:
// - A unit (aka return or mreturn) operation that creates a corresponding
// monadic value from a non-monadic value.
// - A bind operation that applies a function to a monadic value
You can’t perform that action at this time.