Skip to content

Instantly share code, notes, and snippets.

View mindon's full-sized avatar
🙃
hx/ui, coding with ts/js, zig, golang and sometimes qt...

Mindon Feng mindon

🙃
hx/ui, coding with ts/js, zig, golang and sometimes qt...
View GitHub Profile
@mindon
mindon / ipr.ts
Last active June 16, 2022 03:29
deno typescript server to provide ip external for client or visitor at server
import {
serve,
type ConnInfo,
type Handler,
type ServeInit,
} from 'https://deno.land/std@0.144.0/http/server.ts';
function assertIsNetAddr(addr: Deno.Addr): asserts addr is Deno.NetAddr {
if (!['tcp', 'udp'].includes(addr.transport)) {
throw new Error('Not a valid network address');
@mindon
mindon / optimize-embed-images-size-in-svg.js
Created May 26, 2022 12:36
Let's say, what if your designer providing a svg file with large embedded images... how to optimize the svg file size?
(function(svgdoc, scale) {
// optimize large embed images in a svg
// usage: <html><body><svg>your own real svg with too large embeded images...</svg><script src="optimize-embed-images-size-in-svg.js">< /script></body></html>
// author: mindon@live.com
function optimize(img, cb) {
const src = img ? img.getAttribute("xlink:href") : undefined;
let c = document.createElement("canvas");
const done = () => {
cb && cb();
@mindon
mindon / lost-in-cos.go
Created May 25, 2022 11:12
Find any file sync failed folders under Tencent Cloud COS bucket 查找腾讯云COS有同步(移动)失败文件的文件夹
package main
import (
"context"
"log"
"net/http"
"net/url"
"os"
"path"
"path/filepath"
@mindon
mindon / drc_hook.rb
Created April 6, 2022 02:35
hook (previouse) for KLayout DRC, put this file under folder bin-release/drc/
# $autorun-early
require 'open3'
# mindon@live.com 2022-04-02
module DRC
module Hook
def self.on(drc, macro)
name = 'KLAYOUT_HOOK_DRC'
body = macro.text
@mindon
mindon / keyield.go
Last active February 22, 2022 10:25
RSA Private/Public Key Generator, Encrypt and Decrypt in Golang
package main
import (
"crypto"
"crypto/rand"
"crypto/rsa"
"crypto/sha256"
"crypto/x509"
"encoding/hex"
"encoding/pem"
@mindon
mindon / clock.css
Last active November 29, 2024 04:25
a simple clock in pure css
.clock {
display: inline-block;
--size: 360px;
width: var(--size);
height: var(--size);
position: relative;
overflow: hidden;
}
.clock > .hour {
--pointer-size: 12px;
@mindon
mindon / guides.js
Created January 5, 2022 02:54
simple guides tour
function guides(hashes, shared) {
let g = undefined,
gs = {},
list = [],
step = 0,
astyle,
padding,
m,
width = 0,
height = 0,
@mindon
mindon / tai-chi.css
Last active November 29, 2024 07:51
Chinese Tai-Chi Diagram Pure CSS Style
.yinyang {
--size: 360px;
--dot: 60px;
--yin: #222;
--yang: #c30;
--duration: 8s;
width:var(--size);
height:var(--size);
position: relative;
overflow: hidden;
@mindon
mindon / wasm-at.ts
Last active November 16, 2022 09:22
read wasm at local or from remote in deno typescript
// import { Response } from "https://deno.land/std@0.103.0/http/server.ts";
export async function wasmAt(src: string): Promise<any> {
if(/^http[s]?:\/\//i.test(src)) {
return fetch(src);
}
return new Response(await Deno.readAll(await Deno.open(src)), {status: 200, headers:{
'content-type': 'application/wasm'
}});
}
@mindon
mindon / vasp2cif.ts
Created August 11, 2021 08:35
Convert VASP POSCAR to Cif - TypeScript | JavaScript
let cifblocknr = 1;
const findsymtolerance = 0;
// convert VASP POSCAR to cif format
function vasp2cif(poscar: string): string {
const lines = poscar.split('\n');
const cell = new Cell();
cell.HMSymbol = "'P 1'";
cell.label = cifblocknr.toString();