Skip to content

Instantly share code, notes, and snippets.

View yyfrankyy's full-sized avatar

Frank Xu yyfrankyy

View GitHub Profile

Keybase proof

I hereby claim:

  • I am yyfrankyy on github.
  • I am yyfrankyy (https://keybase.io/yyfrankyy) on keybase.
  • I have a public key ASA12QqsBCElHPqpOm4GOofxEYrQ0QJ_wMhGVGHrr6lLago

To claim this, I am signing this object:

/Users/frank/sdk/platform-tools/adb shell screencap -p | perl -pe 's/\x0D\x0A/\x0A/g' | /usr/local/bin/convert - -size '10%' - | /usr/local/bin/impbcopy -
@yyfrankyy
yyfrankyy / export.sh
Created February 5, 2016 08:04
export header dependencies
# export icu.c's header requirement for sqlite icu extension
gcc -MMD -MF /tmp/out -I$HOME/projects/icu/icu4c/source/common/ -I$HOME/projects/icu/icu4c/source/i18n -DU_USING_ICU_NAMESPACE=0 icu.c
@yyfrankyy
yyfrankyy / machine info
Last active July 1, 2016 13:12
yyfrankyy/okio benchmark
Machine: MacBook Pro (Retina, Mid 2012)
Processor: 2.3 GHz Intel Core i7
Memory: 8 GB 1600 MHz DDR3
@yyfrankyy
yyfrankyy / pad.js
Created May 29, 2015 11:54
padding function
function pad(n, m) {
return String(Array(n+1).join('0')+m).slice(-n);
};
@yyfrankyy
yyfrankyy / linkify.js
Created September 2, 2014 03:58
Extendable Linkify Implementation
function linkify(el, transforms) {
var node, nodes = [],
count = 0, loop = 0, match = 0;
var walker = document.createTreeWalker(el, NodeFilter.SHOW_TEXT, {
acceptNode: function(node) {
if (!(node.parentNode
&& node.parentNode.nodeName.toUpperCase() == 'A'
|| node.parentNode.nodeName.toUpperCase() == 'STYLE')) {
return NodeFilter.FILTER_ACCEPT;
@yyfrankyy
yyfrankyy / check_sqlite_pragma.sh
Created April 21, 2014 12:48
Checking SQLite's PRAGMA Settings
lw='application_id auto_vacuum automatic_index busy_timeout cache_size cache_spill case_sensitive_like checkpoint_fullfsync collation_list compile_options count_changes data_store_directory database_list default_cache_size defer_foreign_keys empty_result_callbacks encoding foreign_key_check foreign_key_list foreign_keys freelist_count full_column_names fullfsync ignore_check_constraints incremental_vacuum index_info index_list integrity_check journal_mode journal_size_limit legacy_file_format locking_mode max_page_count mmap_size page_count page_size parser_trace query_only quick_check read_uncommitted recursive_triggers reverse_unordered_selects schema_version secure_delete short_column_names shrink_memory soft_heap_limit stats synchronous table_info temp_store temp_store_directory user_version vdbe_addoptrace vdbe_debug vdbe_listing vdbe_trace wal_autocheckpoint wal_checkpoint writable_schema'
for i in $lw; do
echo "$i: $(sqlite3 QMMailDB "PRAGMA $i")";
done
@yyfrankyy
yyfrankyy / BackupGitlab.sh
Last active December 28, 2017 20:57
Backup Gitlab Day by day to Dropbox
#!/bin/sh
# You might want to put this script in crontab, backup day by day.
#
# $ sudo -u git -H crontab -l
# $ 0 0 1 * * /path/to/your/BackupGitlab.sh
cd /home/git/gitlab
/usr/local/bin/bundle exec rake gitlab:backup:create RAILS_ENV=production
@yyfrankyy
yyfrankyy / remove_bom.sh
Created March 17, 2013 04:05
remove bom
awk '{if(NR==1)sub(/^\xef\xbb\xbf/,"");print}' INFILE > OUTFILE
@yyfrankyy
yyfrankyy / taoke_to_itemid.js
Created March 12, 2013 12:04
读取淘客链接对应的商品ID
function findItemIdByTaokeLink(u, cb) {
console.log('GET %s', u)
request.head({
url: u
}, function(err, res) {
if (err) return cb(err)
console.log('%s %s', res.statusCode, u)
var iid = res.headers['at_itemid']
if (iid) return cb(null, iid)