Skip to content

Instantly share code, notes, and snippets.

View blixt's full-sized avatar
🚧
???

Blixt blixt

🚧
???
View GitHub Profile
@blixt
blixt / modifyresponse_test.go
Created January 9, 2019 11:10
Testing ModifyResponse with ReverseProxy and web sockets
package main
import (
"bufio"
"fmt"
"io"
"io/ioutil"
"log"
"net/http"
"net/http/httptest"
@blixt
blixt / transform-class.ts
Created November 22, 2018 18:02
Did you know TypeScript's type system is Turing complete?
// Return a type with only the methods of T that return R.
type MethodsWithReturnType<T, R> = {
[P in keyof T]: T[P] extends () => infer RR ? (RR extends R ? P : never) : never
}[keyof T]
// Filter away all keys except methods that return void and
// return a new type with those methods returning booleans.
type VoidMethodsToBoolMethods<T> = { [P in MethodsWithReturnType<T, void>]: () => boolean }
// Our test input class:
@blixt
blixt / progress.py
Last active July 5, 2018 16:38
Simple progress indicator copy/paste function for Python scripts
# -*- coding: utf-8 -*-
import sys
_last_status = None
_last_status_permille = 0
def print_status(status=None, fraction=0):
global _last_status, _last_status_permille
permille = int(fraction * 1000)
if status != _last_status:
@blixt
blixt / docker-antics.bash
Last active June 11, 2018 17:55
Workaround for copying files in same directory in separate layers (without specifying individual files)
# First, outside the Dockerfile:
tar --exclude ./static-large --exclude-from=.dockerignore -czf non-large.tar.gz ./*
# Then, in the Dockerfile:
COPY static-large $WORKDIR_PATH/static-large/
ADD non-large.tar.gz $WORKDIR_PATH/
Verifying my Blockstack ID is secured with the address 1B9f1ZMCJzGfG4yzy3gyshA87whqkQTRj https://explorer.blockstack.org/address/1B9f1ZMCJzGfG4yzy3gyshA87whqkQTRj
@blixt
blixt / shutdown.go
Last active October 30, 2017 19:28
Minimal code needed to implement graceful shutdown of HTTP server in Go 1.8 and up.
package main
import (
"context"
"log"
"net/http"
"os"
"os/signal"
"syscall"
"time"
Verifying that "blixt.id" is my Blockstack ID. https://onename.com/blixt
@blixt
blixt / middleware.go
Created May 5, 2017 16:36
A couple of middleware http.Handler functions for Go
// A couple of middleware http.Handler functions (scroll down).
// EXAMPLE USAGE:
http.HandleFunc("/", RequestHome)
http.Handle("/s/", Cacher(168*time.Hour, http.StripPrefix("/s/", http.FileServer(http.Dir("static")))))
http.Handle("/favicon.ico", FileWithCache("static/favicon.ico", 168*time.Hour))
if err := http.ListenAndServe(":8080", Logger(http.DefaultServeMux)); err != nil {
log.Fatalf("http.ListenAndServe: %v", err)
diff --git a/yarn.lock b/yarn.lock
index 2e5918c..b54dd76 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -39,42 +39,18 @@ [email protected]:
version "0.1.11"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7"
-asn1@~0.2.3:
- version "0.2.3"
@blixt
blixt / attempt1.diff
Created January 16, 2017 16:04
Inconsistent yarn upgrade
diff --git a/yarn.lock b/yarn.lock
index 4ad8aa0..86e8f3a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -39,42 +39,18 @@ [email protected]:
version "0.1.11"
resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.1.11.tgz#559be18376d08a4ec4dbe80877d27818639b2df7"
-asn1@~0.2.3:
- version "0.2.3"