Skip to content

Instantly share code, notes, and snippets.

Pythonista learning new technologies

Zhiming Wang zmwangx

Pythonista learning new technologies
View GitHub Profile
View 0001-Add-experimental-support-for-Top-stories.patch
From 06e70e23f8086bb68d98893bbaeaa9df3639ef89 Mon Sep 17 00:00:00 2001
From: Zhiming Wang <>
Date: Sun, 11 Oct 2020 23:19:12 +0800
Subject: [PATCH] Add experimental support for "Top stories"
googler | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/googler b/googler
extern crate ffmpeg_next as ffmpeg;
use ffmpeg::*;
use std::env;
const DEFAULT_INPUT: &str = "input.gif";
const DEFAULT_OUTPUT: &str = "output.gif";
const DEFAULT_TARGET_FPS: f64 = 25.0;
fn main() {
zmwangx / aesctr.js
Created Mar 16, 2020
AES-CTR encryption & decryption in JavaScript & Python (use this for obfuscation, think thrice about using this for security)
View aesctr.js
const base64ToUInt8Array = b64 =>
Uint8Array.from(window.atob(b64), c => c.charCodeAt(0));
const textToUInt8Array = s => new TextEncoder().encode(s);
const UInt8ArrayToString = u8 => String.fromCharCode.apply(null, u8);
const UInt8ArrayToBase64 = u8 => window.btoa(UInt8ArrayToString(u8));
(async () => {
const key = await window.crypto.subtle.importKey(
zmwangx / stripNonBMPCharacters.m
Created Dec 29, 2019
Strip non-BMP characters from string in Mathematica <12.
View stripNonBMPCharacters.m
surrogateQ[ch_] := # >= 55296 && # < 57344 &@First@ToCharacterCode[ch];
surrogateQ::usage =
"Tests whether the given character is a surrogate, i.e., in the \
range U+D800 to U+DFFF.";
stripNonBMPCharacters[s_] :=
StringJoin[Select[Characters[s], ! surrogateQ[#] &]];
stripNonBMPCharacters::usage =
"Strips the given string of Unicode code points outside of the \
Basic Multilingual Plane (BMP), i.e., characters beyond U+FFFF, by \
zmwangx /
Created Nov 15, 2019
googler installation script (working copy)
#!/usr/bin/env python3
import builtins
import collections
import hashlib
import os
import pathlib
import shutil
import subprocess
import sys
zmwangx /
Last active Dec 29, 2018
Python: cross-platform code to read keypress with a timeout. Good for "press any key to continue" with an expiration timer.
import os
import time
from typing import Optional
if == "posix":
import select
import sys
import termios
import tty
zmwangx / urlgrep
Created Dec 27, 2018
Python script to extract URLs from HTML documents.
View urlgrep
#!/usr/bin/env python3
"""Extract URLs from HTML documents."""
import argparse
import re
import sys
import urllib.parse
import bs4
zmwangx /
Created Dec 7, 2018
Share sheet extension to download YouTube videos and save them to apps of your choice, powered by youtube-dl and Pythonista
import contextlib
import logging
import os
import shutil
import sys
import tempfile
import appex
import console
import youtube_dl
zmwangx / fonts.reg
Created Oct 20, 2018
How to make Chinese filenames not so ugly in Windows 10
View fonts.reg
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts]
"Segoe UI (TrueType)"="-segoeui.ttf"
"Segoe UI Black (TrueType)"="-seguibl.ttf"
"Segoe UI Black Italic (TrueType)"="-seguibli.ttf"
"Segoe UI Bold (TrueType)"="-segoeuib.ttf"
"Segoe UI Bold Italic (TrueType)"="-segoeuiz.ttf"
"Segoe UI Emoji (TrueType)"="-seguiemj.ttf"
"Segoe UI Historic (TrueType)"="-seguihis.ttf"
You can’t perform that action at this time.