Skip to content

Instantly share code, notes, and snippets.

View nanmu42's full-sized avatar

Zhennan LI nanmu42

View GitHub Profile
@nanmu42
nanmu42 / README.md
Created October 15, 2023 08:47
Example Dockerfile for Python Poetry Projects
@nanmu42
nanmu42 / Flink: throttle messages to walkaround deadlock under heavy iteration feedback load.md
Last active October 11, 2021 11:15
Flink: throttle messages to walkaround deadlock under heavy iteration feedback load
@nanmu42
nanmu42 / Dockerfile
Created March 22, 2021 09:44
Golang: Dockerfile based on Debian
FROM golang:buster as golang
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y \
ca-certificates \
tzdata \
build-essential \
tar \
bash
WORKDIR /app
COPY . .
@nanmu42
nanmu42 / firstn.go
Created March 8, 2021 08:10
Golang: returns first n UTF-8 character at Most
func firstNUTF8AtMost(s string, n int) string {
i := 0
for j := range s {
if i >= n {
return s[:j]
}
i++
}
return s
}
@nanmu42
nanmu42 / fileserver.go
Created March 6, 2021 03:48
Golang Quick Static File Server
package main
import (
"flag"
"fmt"
"net"
"net/http"
)
var (
@nanmu42
nanmu42 / isPrivateIP.go
Created January 19, 2021 02:19
Golang: check if IP address is private
// source: https://stackoverflow.com/questions/41240761/check-if-ip-address-is-in-private-network-space
var privateIPBlocks []*net.IPNet
func init() {
for _, cidr := range []string{
"127.0.0.0/8", // IPv4 loopback
"10.0.0.0/8", // RFC1918
"172.16.0.0/12", // RFC1918
"192.168.0.0/16", // RFC1918
"169.254.0.0/16", // RFC3927 link-local
@nanmu42
nanmu42 / vue.config.js
Created January 13, 2021 04:20
A vue.config.js example for starting new project
const CompressionPlugin = require("compression-webpack-plugin");
const fileToCompressRegex = /\.(js|css|htm|html|svg|png|txt|json|wasm)$/
const productionMode = process.env.NODE_ENV === 'production'
let plugins = []
if (productionMode) {
plugins.push(new CompressionPlugin({
filename: '[path][base].br[query]',
algorithm: 'brotliCompress',
test: fileToCompressRegex,
@nanmu42
nanmu42 / remove_slice_duplicates.go
Created November 18, 2020 06:47
Golang Remove Slice Duplicates
// source: https://www.reddit.com/r/golang/comments/5ia523/idiomatic_way_to_remove_duplicates_in_a_slice/db6qa2e/
func SliceUniqMap(s []int) []int {
seen := make(map[int]struct{}, len(s))
j := 0
for _, v := range s {
if _, ok := seen[v]; ok {
continue
}
seen[v] = struct{}{}
s[j] = v
@nanmu42
nanmu42 / detect-touchscreen.js
Last active March 23, 2020 03:13
Javascript: Does the device have a touchscreen?
function isTouchDevice() {
return 'ontouchstart' in window
}
@nanmu42
nanmu42 / awk.sh
Created March 11, 2020 04:38
awk examples
# unique line
awk '{!seen[$0]++};END{for(i in seen) if(seen[i]==1)print i}' file
# second column of a csv, with white spaces and quotes stripped
awk -F',' '{gsub(/[ "]/, "", $0);print $2}' some.csv > dest.txt