Skip to content

Instantly share code, notes, and snippets.

@cmtsij
cmtsij / tailscale
Last active March 20, 2024 09:14
tailscale completion
#!/bin/bash
# tailscale completion -*- shell-script -*-
_tailscale()
{
local cur prev words cword
_init_completion -n = || return
if [[ $cword -eq 1 ]]; then
SUBCOMMANDS=$(tailscale --help 2>&1 | awk '/SUBCOMMANDS/{ f = 1; next } /FLAGS/{ f = 0 } f{print $1}')
Normal: (reponse 204)
$ wget http://connectivitycheck.gstatic.com/generate_204
--2020-06-17 00:58:49-- http://connectivitycheck.gstatic.com/generate_204
Resolving connectivitycheck.gstatic.com (connectivitycheck.gstatic.com)... 172.217.24.3, 2404:6800:4008:800::2003
Connecting to connectivitycheck.gstatic.com (connectivitycheck.gstatic.com)|172.217.24.3|:80... connected.
HTTP request sent, awaiting response... 204 No Content
2020-06-17 00:58:49 (0.00 B/s) - ‘generate_204.1’ saved [0]
KBRO hijack: (reponse 302 redirect to http://192.168.81.72/redirect/R3_CHC.php)
$ wget http://connectivitycheck.gstatic.com/generate_204
BEGIN:VCALENDAR
PRODID:-//Xinmedia Inc//xinmedia_bike_ical//TW
VERSION:2.0
METHOD:PUBLISH
TZID:Asia/Taipei
COMMENT:2020-03-1601:26:47
BEGIN:VEVENT
SUMMARY:2020第11屆順風四馬200K騎福[尚未公布]
DTSTART;VALUE=DATE:20201226
DTEND;VALUE=DATE:20201227
@cmtsij
cmtsij / google.xml
Last active July 11, 2019 06:45
Custom "Google Map" source for Mobile Atlas Creator 1.9.8
<!--
custom "Google Map" source for Mobile Atlas Creator 1.9.8
save in *.xml and move to /mapsources
-->
<customMapSource>
<name>Google Map</name>
<minZoom>0</minZoom>
<maxZoom>20</maxZoom>
<tileType>PNG</tileType>
#!/bin/sh
filename=${0##*/}
usage()
{
cat<<EOF
Usage:
$filename <iface>
EOF
@cmtsij
cmtsij / lottery.py
Created October 20, 2016 13:24
Taiwan lottery
#!/usr/bin/env python
import random
l=range(1,1+49)
random.shuffle(l)
# extend 5 numbers. (49->54)
l.extend(random.sample(l[0:48],5))
# display
@cmtsij
cmtsij / gist:6709130
Last active December 23, 2015 23:19
目擊者行車記錄器 轉檔
sudo add-apt-repository ppa:jon-severinsson/ffmpeg
sudo apt-get update
sudo apt-get install ffmpeg
# start/end and crop
ffmpeg -ss [start_second] -t [period] -i [input.file] -c:a copy -filter:v "crop=640:240:0:0" [output.file]
# use -an to remove audio stream
ffmpeg -ss [start_second] -t [period] -i [input.file] -an -c:a copy -filter:v "crop=640:240:0:0" [output.file]
@cmtsij
cmtsij / strtoul_wrapper.c
Created September 27, 2012 10:15
wrapper of strtoul
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <limits.h>
#include <assert.h>
unsigned long int strtoul_wrapper(const char *nptr, char **endptr, int base,int *ret_errno)
{
int set_error = 1;
@cmtsij
cmtsij / unzip_ebill_big5.sh
Created September 25, 2012 02:12
unzip ebill by convmv and 7z.
#!/bin/sh
file=$1
path=${file%%.zip}
mkdir -p $path
LANG=en_US.BIG-5 7z e -y -o"$path" "$file" 2>/dev/null
(cd "$path" && convmv -f BIG5 -t UTF-8 --notest --replace * )
@cmtsij
cmtsij / unzip_ebill_big5.py
Created September 25, 2012 02:09
unzip ebill with filenames encoded by big5.
#!/usr/bin/env python
# -*- python -*-
# -*- coding: utf-8 -*-
import sys
import os
import zipfile
import getpass
def usage():