Skip to content

Instantly share code, notes, and snippets.

@garthk
garthk / lv_call_time.ex
Last active October 13, 2020 02:51
LiveView call time
defmodule LVCallTime do
@moduledoc """
Best used sparingly.
LVCallTime.start()
:timer.sleep(:timer.seconds(20))
LVCallTime.dump()
LVCallTime.stop()
or just
@garthk
garthk / PASTE_ME.exs
Last active November 5, 2020 19:08
Watch all Phoenix.LiveView and LiveComponent handle_event callbacks
(fn gl ->
:dbg.stop_clear()
repr = fn
%Phoenix.LiveView.Socket{} -> "socket"
v -> inspect(v)
end
{:ok, _} =
:dbg.tracer(
@garthk
garthk / bundler.py
Created December 18, 2020 05:23
Poetry Lambda bundler
#!/usr/bin/env python3
"""
Bundle the converter.
Inspiration: https://github.com/python-poetry/poetry/pull/2682
"""
from argparse import ArgumentParser
from contextlib import contextmanager
@garthk
garthk / flash_leds_on_boot.py
Created January 30, 2021 06:55
Flash LEDs on boot #lca2021
# Flash configured LEDs on boot.
import aiko.led
import time
import binascii
DURATION_MS = 100
COLOURS = ["e40303", "ff8c00", "ffed00", "008026", "004dff", "750787"]
GAMMAS = [v for v in binascii.a2b_base64(b"".join([
# Overkill, but I wanted the orange to look orange.
@garthk
garthk / example.ex
Created February 17, 2021 21:37
Forging span links using OpenCensus and Honeycomb
@doc """
Forge links between spans.
Preferred, but not supported by our reporter:
:PARENT_LINKED_SPAN
|> :oc_span.link(link_trace_id, link_span_id, %{})
|> :oc_trace.add_link(span_ctx)
... but that's ok, [Honeycomb can link using the attributes of extra spans][send-links].
@garthk
garthk / README.md
Created February 18, 2022 22:37
/usr/share/dict/wordle

dict wordle

A dump taken 2022-02-19 of the NY Times version of the Wordle dictionary, suitable for installation as /usr/share/dict/wordle.

@garthk
garthk / demo.go
Last active February 21, 2022 22:50
Propagating OpenTelemetry trace context through the HTTP to GRPC gateway to the request handlers
package demo
import (
"context"
"net/http"
"github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
"go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp"
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/propagation"
@garthk
garthk / xdg.plugin.zsh
Last active December 30, 2024 06:02
ZSH plugin for XDG Base Directory Specification environment variables
if case $(uname) in
Linux)
XDG_CONFIG_DIRS=/etc/xdg
XDG_BIN_HOME=~/.local/bin
XDG_CACHE_HOME=~/.cache
XDG_DATA_DIRS=/usr/local/share:/usr/share
XDG_CONFIG_HOME=~/.config
XDG_DATA_HOME=~/.local/share
XDG_RUNTIME_DIR=/run/user/$(id -u)
XDG_STATE_HOME=~/.local/state
@garthk
garthk / macos_paths.plugin.zsh
Created August 29, 2024 07:51
ZSH plugin for macOS paths
typeset -xUT PATH path :
typeset -xUT MANPATH manpath :
typeset -xUT INFOPATH infopath :
eval "$(/usr/bin/env -i PATH= MANPATH= INFOPATH= /usr/libexec/path_helper -s)"
@garthk
garthk / brew.plugin.zsh
Created August 29, 2024 07:56
ZSH plugin for Homebrew in /usr/local
# WARNING: requires macos_paths.plugin.zsh
typeset -x HOMEBREW_PREFIX=$(brew --prefix)
typeset -x HOMEBREW_CELLAR=/usr/local/Cellar
typeset -x HOMEBREW_REPOSITORY=/usr/local/Homebrew
infopath=(/usr/local/share/info "${infopath[@]}")
manpath=(/usr/local/share/man "${manpath[@]}")
path=(/usr/local/bin /usr/local/sbin "${path[@]}")