Skip to content

Instantly share code, notes, and snippets.

View komuw's full-sized avatar

Komu Wairagu komuw

View GitHub Profile
@komuw
komuw / three_sigma_sampling.py
Last active December 4, 2020 10:18
In a normal distribution, 99.7% of the values are not anomalous. Which means you can throw away 99.7% without losing context. This is useful in sampling.
def sample_anomalous(samples):
"""
Sampling:
- Central limit theorem(Alan Turing)
- 3-sigma rule: In a normal distribution, 99.7% of the values are not anomalous.
Which means you can throw away 99.7% without losing context.
- You may also use 2-sigma(95%) or 1-sigma(68%)
see:
1. https://youtu.be/inrqE0Grgk0?t=26080 (Emmanuel T Odeke)
2. https://en.wikipedia.org/wiki/68%E2%80%9395%E2%80%9399.7_rule
@komuw
komuw / cert-manager.yaml
Created September 16, 2021 07:40
create a golang k8(kubernetes) struct from yaml file
# gotten from; https://github.com/jetstack/cert-manager/releases/download/v1.3.3/cert-manager.yamlhttps://github.com/jetstack/cert-manager/releases/download/v1.3.3/cert-manager.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
labels:
app: cert-manager
app.kubernetes.io/component: controller
app.kubernetes.io/instance: cert-manager
app.kubernetes.io/name: cert-manager
name: cert-manager
@komuw
komuw / check_mux.go
Last active November 23, 2021 11:07
golang muxes do not inherit middlewares. Also middlewares are not deduped.
package main
import (
"fmt"
"net/http"
"github.com/go-chi/chi"
"github.com/gorilla/mux"
)
@komuw
komuw / erasure_encoding.go
Last active August 3, 2023 08:40
use erasure encoding to survive data loss
package main
import (
"fmt"
"os"
"github.com/klauspost/reedsolomon"
)
// You can use erasure encoding to;
@komuw
komuw / encrypt_decrypt.go
Last active July 6, 2022 19:32
encrypt and decrypt in Go
package main
import (
"crypto/aes"
"crypto/cipher"
"crypto/rand"
"crypto/sha256"
"encoding/base64"
"errors"
"fmt"
@komuw
komuw / fake_crd.yaml
Created November 16, 2022 17:26
fake crd status/health
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
# name must match the spec fields below, and be in the form: <plural>.<group>
name: komucrontabs.stable.example.com
spec:
# group name to use for REST API: /apis/<group>/<version>
group: stable.example.com
# list of versions supported by this CustomResourceDefinition
versions:
@komuw
komuw / a_sqlite.go
Last active April 19, 2024 06:53
golang and sqlite
package main
import (
"context"
"database/sql"
"database/sql/driver"
"fmt"
"path"
"sync"
"sync/atomic"
@komuw
komuw / fixed_main_test.go
Last active February 20, 2024 14:34
It's hard to use gomock when there are goroutines involved. gomock sometimes expects them to be called and sometimes it doesn't
// file: main_test.go
package main
import (
"math/rand"
"sync"
"testing"
"time"
gomock "github.com/golang/mock/gomock"
@komuw
komuw / hey.html
Created November 10, 2023 14:06
nested html table
<!DOCTYPE html>
<html>
<style>
table, th, td {
border:1px solid;
}
</style>
<body>
<h2>A basic HTML table</h2>
<table style="width:100%">
@komuw
komuw / kenya_electricity_power.py
Last active February 24, 2025 08:19
kenya electricity power back of envelope stats
# These statistics, figures and projections are back of the envelope
# see; https://en.wikipedia.org/wiki/Back-of-the-envelope_calculation.
# Do not rely on them for serious matters.
# But they should mostly be relatively accurate.
import math
# According to EPRA(Energy and Petroleum Regulatory Authority)
# See: https://www.epra.go.ke/sites/default/files/2024-10/EPRA%20Energy%20and%20Petroleum%20Statistics%20Report%20FY%202023-2024_2.pdf
peak_demand_for_electricity_in_year_2020 = 1880 # megawatt. This was in july 2020