Skip to content

Instantly share code, notes, and snippets.

Avatar

Michael Hendricks mndrix

View GitHub Profile
@mndrix
mndrix / sms.go
Last active Jun 23, 2020
SMS over IRC
View sms.go
// A proxy for sending/receiving SMS via IRC
//
// This code is part of our family IRC server whose code is available at
// https://gist.github.com/mndrix/7947009178e4a18c247b4bd25821661f
//
// This file won't compile by itself because it's only one file from
// my larger family server (movie hosting, Asterisk dialplan, Git
// hosting, personal assistant, etc).
//
// Copyright 2018 Michael Hendricks
@mndrix
mndrix / irc.go
Last active Jun 23, 2020
Family IRC server
View irc.go
// My small, family IRC server
//
// This file won't compile by itself because it's only one file from
// my larger family server (movie hosting, Asterisk dialplan, Git
// hosting, personal assistant, etc).
//
// Users authenticate via NICK and PASS. The USER is interpreted as a
// "device" name. That allows each user to connect from multiple
// devices simultaneously while still appearing as only one nick in
// channels. Each nick-device combo has a queue of messages which
@mndrix
mndrix / read-race.go
Created Mar 3, 2017
Can multiple goroutines read from a single map?
View read-race.go
package main
// "go run -race read-race.go"
import (
"fmt"
"sync"
)
func main() {
@mndrix
mndrix / sample.txt
Created Jan 6, 2017
SWI-Prolog V7.3.34 pack_install sample
View sample.txt
Sampling process 43655 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling swipl (pid 43655) every 1 millisecond
Process: swipl [43655]
Path: /Users/michael/lib/swipl-7.3.34/bin/x86_64-darwin15.6.0/swipl
Load Address: 0x101c2e000
Identifier: swipl
Version: 0
Code Type: X86-64
Parent Process: bash [41679]
@mndrix
mndrix / tmux.conf
Created Dec 20, 2016
tmux config for my workspace
View tmux.conf
# main: window where I spend most of my time
tmux rename-window main
# shells: window where spare shells live (see C-n and C-p)
new-window -d
rename-window -t 2 shells
split-window -d -t shells
split-window -d -t shells
@mndrix
mndrix / collatz.eve
Created Dec 9, 2016
Collatz Conjecture in Eve
View collatz.eve
# Collatz Conjecture
## Description
The Collatz Conjecture deals with an integer #`n` and the #`steps` it takes to reach 1.
```
commit
[#n]
[#step]
```
@mndrix
mndrix / hello.ama
Last active Oct 31, 2016
Hello Amalog
View hello.ama
use("amalog.org/std/io", Io); # See Note_use
main(W) {
Io.printf(W, "Hello, world!\n");
}
### Note_use:
`use/2` is a macro that expands into
@mndrix
mndrix / README.md
Last active Oct 28, 2016
Abandoned attempt at a nice Go package for PayPal's NVP API. That API is too much of an abomination to proceed
@mndrix
mndrix / append.go
Last active Nov 2, 2016
Compiling Prolog to Go
View append.go
package prolog
/*
%% append(list,list,list)
%% append(+,+,+) is semidet.
%% append(+,+,-) is det.
%% append(+,-,+) is semidet.
%% append(+,-,-) is det.
%% append(-,+,+) is multi.
%% append(-,+,-) is multi.
@mndrix
mndrix / currency.pl
Created Oct 7, 2016
PriceCharting's Prolog library for currency amounts
View currency.pl
:- module(currency, [ atom_currency/2
, codes_currency/2
, currency//1
]).
:- use_module(library(clpfd)).
:- use_module(library(dcg/basics), [integer//1]).
:- use_module(library(delay)).
:- use_module(library(error)).