Skip to content

Instantly share code, notes, and snippets.

available for OSS Go packages

B.G.Adrian bgadrian

available for OSS Go packages
View GitHub Profile
bgadrian / slicestricks.go
Created May 14, 2020
go slices more tricks
View slicestricks.go
// StringToImmutableBytes returns a slice of bytes from a string without allocating memory
// it is the caller's responsibility not to mutate the bytes returned.
func StringToImmutableBytes(s string) []byte {
if len(s) == 0 {
return nil
// NB(xichen): We need to declare a real byte slice so internally the compiler
// knows to use an unsafe.Pointer to keep track of the underlying memory so that
bgadrian / docker.datadirectory
Created Nov 23, 2019
Docker change the data directory (Images, containers) on Ubuntu
View docker.datadirectory
According to the official documentation, as of Feb 2019, there are no --graph, -g options. These were renamed to the single argument --data-root.
vim /lib/systemd/system/docker.service so that the ExecStart takes into consideration that argument
ExecStart=/usr/bin/dockerd --data-root /mnt/data/docker -H fd://
systemctl daemon-reload
service docker restart
View bytes-to-string-no-memory.go
bytes := []bytes //string here, can be reused or kept on stack
stringVal := *(*string)(unsafe.Pointer(&bytes))
bgadrian /
Created Jan 1, 2019
Get my public IP
dig ANY +short
bgadrian / hugo.yml
Created Dec 28, 2018
Hugo deployment to gitlab/github eg: .gitlab-ci.yml
View hugo.yml
name: klakegg/hugo:0.53-ext-alpine
entrypoint: [""]
- hugo
- public
bgadrian /
Last active May 1, 2020
Hugo lazy image loading

I presume the images are bundled as post resources in the ./images/ folder.

It creates a new version at 5% of its original quality that is fetched in the initial page load. When and if the original image is loaded by the browser it will replace the low quality one.

{{< lazyimg "images/1.jpeg" >}} {{< lazyimg "images/1.jpeg" "caption" >}}

bgadrian / .gitignore
Created Dec 19, 2018
Global git ignore for any system
View .gitignore
bgadrian / http.request_mock.go
Created Dec 15, 2018
Fake a HTTP Request/Client.Do response w/o a webserver.
View http.request_mock.go
type recordingTransport struct {
req *http.Request
func (t *recordingTransport) RoundTrip(req *http.Request) (resp *http.Response, err error) {
t.req = req
return &http.Response{
Body: ioutil.NopCloser(bytes.NewBufferString("alfa")),
}, nil
bgadrian / Makefile
Last active Nov 5, 2018
Go 1.11 makefile example
View Makefile
# Makefile example from
# GO111MODULE is required only when inside GOPATH
source := ./cmd/pseudo-service-server/main.go
#this will be triggered before any command, or when just calling $ make
mkdir -p ./build/
env GO111MODULE=on go get -d ./
env GO111MODULE=on go test -race ./...
bgadrian / app.yaml
Created Nov 4, 2018
App Engine for Go 1.11 servers ( or custom)
View app.yaml
runtime: go111
service: myservice
HOST: ""
instance_class: B1
max_instances: 2
idle_timeout: 15m