Skip to content

Instantly share code, notes, and snippets.

Swimming 🏊 in the sea of code~~

jdhao jdhao

Swimming 🏊 in the sea of code~~
View GitHub Profile
jdhao /
Created Mar 11, 2020
Save image with quality parameter in OpenCV
import cv2
img = cv2.imread('test.jpg')
# specify the write parameter, can be found in
write_param = [cv2.IMWRITE_JPEG_QUALITY, 90, cv2.IMWRITE_JPEG_OPTIMIZE, 1]
cv2.imwrite("test_new.jpg", img, write_param)
# Reference
jdhao /
Last active Dec 16, 2019
There is a difference between random.choices() and random.sample() in Python

In python, random.choices() will select K items from a list with replacement, which means that there are may be duplicated items in the result list. If you want to select K random item from the list without duplication, you need to use random.sample() instead.

I wasted one hour debugging this issue and suddenly found the casue. Sad :[

jdhao / build.bat
Last active Dec 16, 2019
Create Markdown tags for use in tagbar, see also
View build.bat
pyinstaller --onefile --console
jdhao /
Created Sep 17, 2019
How to grep unicode character in command line

How do I grep unicode characters using its code point?

For example, if we want to grep a(unicode code point is u+0041), we can use the following trick:

grep "$(printf '\u0041')" my_file.txt


View gist:43d2d12c3d9e9e3cb31878f4452cb704

When log in to server, I see the following error message;

RSA host key for xxxx has changed and you have requested strict checking. Host key verification failed.

You can remove the offending host key from file ~/.ssh/known_hosts. For example, if line 1 includes the offending hosts info, just remove it:

sed -i.bak -e '1d' ~/.ssh/known_hosts
jdhao / en.utf-8.add
Created Sep 16, 2019
Nvim spell file
View en.utf-8.add
jdhao / utils.vim
Created Sep 12, 2019
My utils functions used in init.vim
View utils.vim
" Remove trailing white space, see
function utils#StripTrailingWhitespaces() abort
let l:save = winsaveview()
" vint: next-line -ProhibitCommandRelyOnUser -ProhibitCommandWithUnintendedSideEffect
keeppatterns %s/\v\s+$//e
call winrestview(l:save)
" Create command alias safely, see
" The following two functions are taken from answer below on SO:
jdhao / cpp.vim
Last active Sep 12, 2019
Filetype plugins for Neovim
View cpp.vim
nnoremap <F9> :w <CR> :!g++ -Wall -std=c++11 % -o %<&&./%<<CR>
jdhao /
Created May 31, 2019
Convert Unicode string to bytes and convert bytes back to Unicode string in Python 3

Conversion between bytes and string in Python 3

To convert Unicode string to bytes object, you can use two methods:

  • 'hello'.encode('utf-8')
  • bytes('hello', encoding='utf-8')

To convert bytes back to Unicode string, you can use two methods:

  • b'\xe4\xbd\xa0\xe5\xa5\xbd'.decode('utf-8')
jdhao / Markdown2docx.sublime-build
Created May 30, 2019
Markdown to docx build system for Sublime Text 3
View Markdown2docx.sublime-build
"shell_cmd": "pandoc \"${file}\" -o \"${file_path}/${file_base_name}.docx\" ",
// "path": "C:/Users/east/AppData/Local/Pandoc/;%PATH%",
"file_regex": "^(..[^:]*):([0-9]+):?([0-9]+)?:? (.*)$",
"working_dir": "${file_path}",
"selector": "text.html.markdown",
You can’t perform that action at this time.