0%

command

1
2
3
$ ansible -i hostfile all -m user \
-a "name=admin update_password=always password={{ newpassword|password_hash('sha512') }}" \
-b --extra-vars "newpassword=12345678"

reference

playbook

或許用 playbook 比較好.

1
2
3
4
5
6
7
8
9
---
- hosts: all
become: yes
tasks:
- name: Change user password
user:
name: admin
update_password: always
password: "{{ newpassword|password_hash('sha512') }}"

phpmyadmin

phpmyadmin是一個廣為使用的 mysql 管理的介面。
我很小的時候就在使用這個工具了,今天就來說說使用的場景。
在我們的環境中有幾個設定是必須要注意的。

  • docker-compose
  • mysql
  • nginx
閱讀全文 »

開發環境

一般我們在 linux 上安裝軟體都是用 package 管理工具進行。
不過總是有些工具是沒有被放進 package 管理裡。
這時候我們就必須要自己編釋了。
那就是要安裝 GNU 的 gcc 的開發環境。

這篇文章就是在記錄該如何在一個乾淨的 centos 安裝一個開發環境。

閱讀全文 »

編碼

個人覺得這個問題和 2000 年的問題差不多,
就是以前的人為了省空間,然後沒有考慮清楚,所以留下來的爛攤子。
不過事情已經發生了我們也只能想我們該如何處理。
所以現在我們都是常常是用 utf-8 來處理我們處理的文字。
但是,就是有這個但是,就是有人會有不同的想法不同的想法不同的現實,所以我們的生活才會精彩無比。
只是不知道是被人精彩還是自己精彩。

其實現在的文字都是 unicode 的,在我小的時候還有 big5 等編碼,不過這個世界就是有很多不同的人。
而那些人是不使用 big5 的,當這兩個世界的人看到對方的編碼用自己的編碼方式看就全是亂碼啦。
例如gb2312的人用gb2312的方式看我們big5的文字,全部都是亂碼,反之已然。

不過在電腦裡看到的東西都是 bytes,而不是 unicode 也不是 big5。
所以我們就需要常常在 unicode 和 bytes 間轉換。

1
2
3
>>> teststr = 'http://tw.yahoo.com'
>>> type(teststr)
<type 'str'>

utf-8

在 python3 裡,我們可以看到 teststr_utf8_bytes 是 bytes。
不過在 python2 我們會看到不一樣的結果,他會是 str 。

1
2
3
>>> teststr_utf8_bytes = teststr.encode(encoding="utf-8")
>>> type(teststr_utf8_bytes)
<class 'bytes'>

decode

1
2
3
>>> teststr_string = teststr_utf8_bytes.decode()
>>> type(teststr_string)
<class 'str'>

亂碼

讓我們看看我們常常看到的混亂世界是什麼。

1
2
3
4
5
6
7
8
9
10
>>> str1 = '讓我們看看我們常常看到的混亂世界是什麼。'
>>> type(str1)
<class 'str'>
>>> str1_big5_bytes = str1.encode(encoding='big5')
>>> type(str1_big5_bytes)
<class 'bytes'>
>>> str2 = str1_big5_bytes.decode("gb2312")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'gb2312' codec can't decode byte 0xad in position 4: illegal multibyte sequence

python 和我們抱怨他無法正確處理。

總結

我們完成了unicode和bytes的遊戲了,希望大家會喜歡。

compress/decompress

我們有時會有想要壓縮資料及解壓縮資料的需求。
不論是什麼理由要進行壓縮,在python裡,我們可以使用到zlib。

今天讓我們來看看如何在 python 裡使用 zlib 進行壓縮。

zlib

zlib 是一個歷史悠久的工具,我們可能每天都在不知情的情況下使用到了這個工具帶來的結果。
在 python 裡 zlib 模組提供了 Zlib 壓縮的能力,而 Zlib 是由 GNU 專案的一部分。

compress

一般給定一個想要進行壓縮的 byte 字組,就會進行壓縮,回傳同樣是一組 byte 字組。
也可以追加一個 level(0-9) 的參數來指定壓縮的程度。0代表沒有壓縮,9代表最大的壓縮。
我們在進行解壓縮時再一起講範例吧。

decompress

相對於 compress 我們一定會需要 decompress 來進行反相的工作。

1
2
import zlib
c = zlib.compress(b'hello python')

c 的結果是 ‘x\x9c\xcbH\xcd\xc9\xc9W(\xa8,\xc9\xc8\xcf\x03\x00\x1e\xf0\x04\xd7’

1
x = zlib.decompress(c)

同樣的上面會得到原來的字串。
我們也可以用compressobj來進行壓縮。

1
2
3
4
s1 = b'hello python'
c = zlib.compressobj()
s2 = c.compress(s1)
s2 = s2+c.flush()

上面的 s2 會和前面的例子中的 c 有一樣的結果。

1
2
3
d = zlib.decompressobj()
x = d.decompress(s2)
x = x+d.flush()

上面的例子又同樣得到了 b’hello python’

1
print(zlib.ZLIB_VERSION)

在我的 mac 上python用的是 ‘1.2.11’

ssh 設定

ssh 是遠端操控 unix 基礎的好工具。
因為 ssh 的強大,所以 ssh 的選項特別多和繁雜。
如果要簡化這些,有些聰明的方法。
就是透過 ssh config 把常用的設定放在設定檔中。

讓我們來看看我們有那些可以設定。

  • 別名
  • ip/hostname
  • user
  • key file
  • port
  • host key checking
  • agent forward
  • local forward
  • remote forward
  • x11 forward
  • gateway port
  • proxycommand
  • proxyjump
閱讀全文 »

安裝 ps

docker 是好用的東西,但是有時為了精簡系統,有些我們常用的工具也省略了。
ps 常常是會捨棄的部分。
在 ubuntu 中我們要裝何安裝 ps 呢?

1
$ sudo apt-get install -y procps

有時第一次跑會失敗,可以先執行apt-get update就可以正常執行了。

docker 常用指令

  • 啟動容器
  • 列出容器
  • 執行容器
  • 連上容器
  • 容器 log
  • 停止容器
  • 移除容器
  • 登入 docker registry
  • 容器版號
  • 容器資訊
  • 儲存容器
  • 載入容器
  • docker 影像
  • docker 執行程式
    閱讀全文 »

更新mac電腦裡的node.js

參考

1
2
3
4
$ node -v
$ sudo npm cache clean -f
$ sudo npm install -g n
$ sudo n stable

全台各大小證券商手續費比較表

無論是上市、上櫃、興櫃股票之股價皆是指這張股票一「股」的現在的價格,
實際買進股票要付出的股款就是成交價×買進的股數。
而股票的買賣會被收取額外的券商手續費0.1425%(最高,買賣皆收一次)
及證交稅0.3%(賣出才收)。券商收取的的手續費最高不能超過0.1425%,
實際上,各證商都有提供3~6折的手續費折扣。

1
2
股票買進(付出)=買進價格 + 0.1425%的手續費
股價賣出(收回)=賣出價格 - 0.1425%的手續費 - 0.3%的證交稅

如果以無折扣手續費0.1425%例,可算出股票買入及買出的費用如下:

  • (1) 買入股票的費用:如果要買進一張股價100元的鴻海(2412), 手續費 為 100 x 1000 x 0.1425% = 142.5元,為成交價的0.1425% (無手續費折扣下)
  • (2) 賣出股票的費用:如果要賣出一張股價100元的鴻海(2412), 交易稅 為 100 x 1000 x 0.3% = 300元, 手續費 為 100 x 1000 x 0.1425% = 142.5元,為成交價的0.4425% (無手續費折扣下)
  • (3) 買進又賣出一趟的費用:0.4425%~0.585%的成交價

實例說明

1
2
3
4
a. 券商手續費(無折扣)=0.1425% 如果鴻海股價維持100元不變,
買進又賣出一趟的成本約為成交價的0.1425%(買)+0.4425%(賣)= 0.585%
b. 券商手續費(5折)=0.1425% x 50% 如果鴻海股價維持100元不變,
買進又賣出一趟的成本約為成交價的0.07125%(買)+0.37125%(賣)= 0.4425%
券商 電子下單折扣 單筆最低手續費 下單軟體 手機軟體
犇亞證券 1.68~3折 8元 有 有
日進證券 2.8折 20元 有 有
台灣工銀證券 2.8折 20元 有 有
宏遠證券 2.8折 20元 有 有
新光證券 2.8折 20元 有 有
國泰證券 2.8折 20元(定期定額最低1元) 有 有
台銀證券 3.5折 20元 有 有
土銀證券 3.5折 20元 有 有
大展證券 3.6折 20元 有 有
玉山證券富果帳戶 3.8折-6折 12元 有 推薦使用
亞東證券 3折 20元 有 有
台新證券 3~6折 20元 有 有
大昌證券 3折 15元 有 有
新百王證券 3折 20元 有 有
致和證券 4.38折 20元 有 有
台企銀證券 5.6折 20元 有 有
大慶證券 5折 20元 有 有
中農證券 5折 20元 有 無
北城證券 5折 20元 有 有
兆豐證券 5折 20元 有 有
合庫證券 5折 20元 有 有
彰銀證券 5折 20元 有 有
福邦證券 5折 20元 有 有
元大寶來證券 5折 20元 有 有
元富證券 6.5折 20元 有 有
日茂證券 6.5折 20元 有 無
永豐金證券 6.5折 20元 有 有
安泰證券 6.5折 20元 有 有
高橋證券 6.5折 20元 有 有
國票證券 6.5折 20元 有 有
康和證券 6.5折 20元 有 有
富隆證券 6.5折 20元 有 有
華南永昌證券 6.5折 20元 有 有
群益證券 6.5折 20元 有 有
聯邦證券 6.5折 20元 有 有
豐農證券 6.5折 20元 有 有
永興證券 6.8折 20元 有 有
中國信託證券 6折 20元 有 有
日盛證券 6折 20元 有 有
光和證券 6折 20元 有 有
光隆證券 6折 20元 有 有
第一金證券 6折 20元 有 有
凱基證券 6折 20元 有 有
富邦證券 5-6折 20元 有 有
統一證券 6折 20元 有 有
陽信證券 6折 20元 有 有
德信證券 6折 20元 有 有
永全證券 7.5折 20元 有 有