Skip to content

Instantly share code, notes, and snippets.

View qdm12's full-sized avatar

Quentin McGaw qdm12

View GitHub Profile
@qdm12
qdm12 / README.md
Created March 3, 2022 16:57
Go: mocks and subtests
View README.md

Contents

  1. Presenting the potato code, part 1
  2. Using mockgen from golang/mock
  3. //go:generate commands for mocks generation
  4. CI check for updated mocks, see mocks.yml
  5. Testing CutAndFry with golang/mock, see potato_test.go part 1
  6. Mock calls order, see previousCall *gomock.Call
  7. Comparing with golang/mock with mockery, see potato_mockery_test.go
  8. Presenting the potato code, part 2
@qdm12
qdm12 / bench_test.go
Last active October 29, 2022 07:42
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 14:39
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 July 25, 2023 17:55
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 October 15, 2020 23:54
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 September 19, 2023 09:18
Wireguard and iptables restrictions for multiple users
View README.md
@qdm12
qdm12 / buildx-release.yml
Last active May 14, 2020 01:42
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 01:34
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 01:34
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 February 11, 2020 17:37
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,