Skip to content

Instantly share code, notes, and snippets.

Avatar

Tevin tevino

View GitHub Profile
@tevino
tevino / subtraction_by_addition.py
Created Jun 6, 2020
A way of implementing subtraction using addition only. Available operations: loop, assign, add by one. Restrictions: no negative numbers, integers only.
View subtraction_by_addition.py
# A way of implementing subtraction using addition only.
# Available operations: loop, assign, add by one.
# Restrictions: no negative numbers, integers only.
#
# Aadit M Shah on StackOverflow says this method was devised by Stephen Cole Kleene, but I can't find any sources.
# https://stackoverflow.com/a/34079075
def subtract(minuend, subtrahend):
for _ in range(subtrahend):
@tevino
tevino / codesign-gdb.sh
Last active Apr 4, 2020
Signing gdb on macOS with codesign
View codesign-gdb.sh
#!/bin/bash
CERT_ID='gdb-cert' # the name of the certificate used for signing
if ! security find-certificate -c "$CERT_ID" &>/dev/null; then
echo >&2 "> ❌ certificate($CERT_ID) not found"
echo "Here is a brief note on how to create one:"
echo
echo "1. Open Keychain Access"
echo "2. Open the menu item: Keychain Access -> Certificate Assistant -> Create a Certificate..."
@tevino
tevino / duplicacy.1s.py
Last active Jan 13, 2020
A BitBar plugin that runs duplicacy backup hourly
View duplicacy.1s.py
#!/usr/bin/env python3
# <bitbar.title>Duplicacy Scheduler</bitbar.title>
# <bitbar.version>v1.0</bitbar.version>
# <bitbar.author>Tevin</bitbar.author>
# <bitbar.author.github>tevino</bitbar.author.github>
# <bitbar.desc>Run duplicacy backup every hour.</bitbar.desc>
# <bitbar.dependencies>duplicacy,python3</bitbar.dependencies>
import os
@tevino
tevino / Daily Journal.applescript
Created Oct 12, 2019
Markdown daily journal template based on builtin smart template "Daily Journal" in DEVONthink 3
View Daily Journal.applescript
(*
Based on script by Chuck Lane October 2, 2013
https://discourse.devontechnologies.com/t/daily-journal-script/16509
Updated and optimized for DEVONthink 3 by Christian Grunenberg April 30, 2019
Localized and styles updated by Eric Böhnisch-Volkmann June 28, 2019
Changes done by Tevin Zhang 2019-10-12
- Use markdown instead of rtd
- Remove news
- Use date format specified by ISO 8601 to reduce the effort of localization
*)
View wpad.dat
function r(r){for(var t={};i=r.pop();)t[i]=1;return t}function FindProxyForURL(r,i){if(isPlainHostName(i))return e;var f=i,o=0;do{if(_.hasOwnProperty(f))return t;if(n.hasOwnProperty(f))return e;o=i.indexOf(".",o)+1,f=i.substring(o)}while(o>0);var u=dnsResolve(i);if(!u)return t;if(u.indexOf(":")>=0)return e;var l=u.split("."),p=(255&l[1])<<8|255&l[2],v=l[0],d=s[v],h=a[v];if(0===d)return t;if(16===h)return e;var w=0,L=d.length,c=L>>1;do d[c]>p?L=c:w=c,c=w+L>>1;while(w+1<L);return p-d[w]>>h[w]===0?e:t}var t="PROXY 127.0.0.1:1235;",e="DIRECT",n=r("v2ex.co|qishu.co|cn|loli.vg|pp.cc|cnu.cc|adchina.cc|chinave.cc|hefei.cc|yiyi.cc|snsfun.cc|ulink.cc|ffdy.cc|ngacn.cc|zhibo8.cc|akarin.xyz|sf.gg|iapps.im|dcloud.io|mindstore.io|daocloud.io|coding.io|jianshu.io|my-card.in|pdim.gs|51.la|ijq.tv|acg.tv|yy.tv|muho.tv|zerodm.tv|pps.tv|mootion.tv|miomio.tv|imgo.tv|rrmj.tv|bilibili.tv|fun.tv|zhanqi.tv|xiaoka.tv|feizao.tv|1006.tv|ganews.tv|hoolo.tv|panda.tv|acfun.tv|1cool.tv|cctvcom|kdnet.net|cloudxns.net|lxdns.net|768cn.net|zoosn
@tevino
tevino / casio-watch-spider.py
Last active Aug 27, 2019
A spider to get CASIO(including G-SHOCK) watch specs, to help you make your choice.
View casio-watch-spider.py
import re
import scrapy
def parse_date(s):
if s:
s = s.replace('年', '').replace('月', '').replace('NEW', '')
if len(s) == 5:
month = s[-1]
s = s[:4] + "0" + month # add a leading zero to month
s = int(s)
View truth_about_love.py
while you.is_single and you.love_letter in you.code_written:
you.is_single = True
View Find similar contents.scpt
-- Find Similar Contents.
-- Created by Christian Grunenberg on Thu Feb 10 2005.
-- Copyright (c) 2005-2014. All rights reserved.
-- Limit for more or less identical contents (0.0: no similarity, 1.0: almost identical)
property pLimit : 0.9
-- Max. number of similar results to display
@tevino
tevino / paperkey.sh
Last active Apr 7, 2019
A script to split long(e.g. 4096 bits) private keys into qr codes so you could print on a paper.
View paperkey.sh
#!/bin/sh
# Q&As
#
# Q: Why not use [paperkey][paperkey]?
# A: It brings much more complexity and dependencies, and I don't have time to check the implementation for security.
#
# Q: Why not OCR?
# A: I didn't find an open-source ocr software that works for normal photos.
# even though I used [OCR-A][OCR-A] for printing and [ScannerPro][ScannerPro] for image processing.
@tevino
tevino / sync-brightness
Last active Nov 7, 2018
Sync brightness between builtin and external monitor on a Mac
View sync-brightness
#!/bin/bash
set -e
DEPS="ioreg ggrep jq ddcctl"
EXTERNAL_DISPLAY_NO=${EXTERNAL_DISPLAY_NO:-1}
RATIO=${RATIO:-100} # 0-100
get-builtin-brightness() {
You can’t perform that action at this time.