Skip to content

Instantly share code, notes, and snippets.

Avatar

Quentin McGaw qdm12

View GitHub Profile
@qdm12
qdm12 / bench_test.go
Last active Jul 12, 2021
Fast thread-safe uniformly distributed numbers generation in Go
View bench_test.go
package main
import (
"crypto/rand"
"encoding/binary"
"fmt"
"hash/maphash"
mathrand "math/rand"
"runtime"
"sync"
@qdm12
qdm12 / main.go
Created May 11, 2021
Fetch API and send email (@clemone210)
View main.go
package main
import (
"context"
"fmt"
"io"
"log"
"net"
"net/http"
"net/smtp"
@qdm12
qdm12 / main.go
Last active Mar 26, 2021
DNS over HTTPS server resolver under 300 lines of clean Go code
View main.go
package main
import (
"bytes"
"context"
"crypto/tls"
"errors"
"fmt"
"io/ioutil"
"log"
@qdm12
qdm12 / Dockerfile
Created Oct 15, 2020
Domoticz docker image dockerfile
View Dockerfile
FROM debian:buster-slim
WORKDIR /domoticz
EXPOSE 8080/tcp 443/tcp 6144
ENTRYPOINT [ "/domoticz/domoticz" ]
RUN apt-get update -y && \
apt-get install -y wget libusb-0.1-4 libcurl3-gnutls && \
wget -q -O domoticz.tgz https://releases.domoticz.com/releases/release/domoticz_linux_x86_64.tgz && \
tar -xf domoticz.tgz && \
rm domoticz.tgz *.txt
@qdm12
qdm12 / README.md
Last active Sep 9, 2021
Wireguard and iptables restrictions for multiple users
View README.md

Wireguard and iptables restrictions for multiple users

If you don't know what Wireguard is, well, you should. It's fast, easy to setup and highly configurable. We will configure Wireguard for multiple users with various restrictions using iptables.

Assumptions

This should fit most setups (not mine though 😉)

@qdm12
qdm12 / buildx-release.yml
Last active May 14, 2020
Buildx Release with Github Actions
View buildx-release.yml
name: Buildx release
on:
release:
types: [published]
paths-ignore:
- .github/workflows/buildx-latest.yml
- README.md
jobs:
buildx:
@qdm12
qdm12 / buildx-latest.yml
Created May 14, 2020
Buildx Latest with Github Actions
View buildx-latest.yml
name: Buildx latest
on:
push:
branches: [master]
paths-ignore:
- .github/workflows/buildx-release.yml
- README.md
jobs:
buildx:
runs-on: ubuntu-latest
@qdm12
qdm12 / buildx-latest.yml
Created May 14, 2020
Buildx Latest with Github Actions
View buildx-latest.yml
name: Buildx latest
on:
push:
branches: [master]
paths-ignore:
- .github/workflows/buildx-release.yml
- README.md
jobs:
buildx:
runs-on: ubuntu-latest
@qdm12
qdm12 / karabiner.json
Created Feb 11, 2020
Karabiner Elements configuration file for Mac OS
View karabiner.json
{
"global": {
"check_for_updates_on_startup": true,
"show_in_menu_bar": true,
"show_profile_name_in_menu_bar": false
},
"profiles": [
{
"name": "Default profile",
"selected": true,
View pia-startcmd.go
func (c *commander) Start(name string, arg ...string) (stdoutPipe, stderrPipe io.ReadCloser, waitFn func() error, err error) {
cmd := c.execCommand(name, arg...)
stdout, err := cmd.StdoutPipe()
if err != nil {
return nil, nil, nil, err
}
stderr, err := cmd.StderrPipe()
if err != nil {
return nil, nil, nil, err
}