2016年11月19日 星期六

2016/11/19 跑步 (第一個 10K)

這是第一次跑 10K。跑三分之一左右覺得右膝蓋有點酸,到二分之一左右就不酸了。跑完回家後反而是左膝蓋很酸。

上星期跑 6.6K 第一根和第二根腳趾中間磨到起小水泡,所以特別準備五指襪把他們隔開。
穿起來不太習慣但有效,這次沒有起水泡。




2016年11月14日 星期一

Redmine modify document preview

Redmine 文件預覽時只會顯示文件的前 250 字。
在網頁上找不到可以修改的地方,只好直接改原始碼。

修改方法:
1. 開啟 C:\redmine-3.1.1\app\helpers\application_helper.rb,尋找 length = options[:length] || 250,將 250 改為想要的數字。
2. restart Redmine 才會生效。

修改前:

修改後:

2016年11月12日 星期六

2016/11/12 跑步

才跑 6.6K 就起水泡,會不會太誇張!




2016年11月7日 星期一

Get a Free SSL Certificates for Windows IIS

Reference:
使用 SSL For Free 產生 Let’s Encrypt SSL 憑證上傳給 IIS 站台使用

1. 到 https://www.sslforfree.com/ 申請 Free SSL Certificates
2. 選用 Manual Verification,下載認證檔,放到 C:\well-known\acme-challenge
3. 在 IIS 建立虛擬目錄 .well-known,指向 C:\well-known
4. 新增 MIME type . text/plain
5. 驗證後下載 SSL 憑證,並建立過期前通知信箱
6. 安裝 Open SSL for Windows
7. 將憑證轉為 pfx 格式
    cd "C:\Program Files (x86)\GnuWin32\bin"
    openssl pkcs12 -export -out C:\tmp\sslforfree\certificate.pfx -inkey C:\tmp\sslforfree\private.key -in C:\tmp\sslforfree\certificate.crt -certfile  C:\tmp\sslforfree\ca_bundle.crt
8. 在 IIS 管理員匯入 pfx 憑證,並在 Binding 將憑證修改為匯入的這一個

2020/05/21 update:
另一個方法:
Let’s Encrypt 使用 ACME 協定,對於 Windows 有提供相對應的版本可用。
Win32/Win64 Portable ZeroSSL client for Let's Encrypt
操作說明

Ex:
cd c:\tmp
le64.exe --key account.key --csr domain.csr --csr-key domain.key --crt domain.crt --domains "www.domain.com" --generate-missing --unlink --path C:\well-known\acme-challenge --export-pfx "mypasswd" --tag-pfx "mydomain" --live

注意:
IIS bind 憑證時必須要能夠連上 Internet,否則憑證 binding 會有問題。

安裝憑證之後,用Chrome, Firefox開自己網頁,如果顯示 "不安全",
必須更改為 TLS 1.2。
作法參考 在Windows Server 2008 R2 IIS服務中,啟用TLS 1.2傳輸協定

2022/1/13 update: 
Zerossl.com只提供三個免費憑證可以申請。
改用 Let’s Encrypt 使用 ACME 對應的程式申請免費憑證。
搭配 nginx 選用 kshcherban / acme-nginx 這個工具。
因為驗證時會暫時用到http,所以需要把 linux 的 http service 關閉,
如果使用 firewalld 需要 allow http,再確認 Internet firewall policy 已經開好。
執行 acme-nginx -d www.domain.com 取得憑證。
如果遇到問題可用 acme-nginx -d www.domain.com --debug
完成後憑證放在 /etc/ssl/private/letsencrypt-domain.pem

2016年10月26日 星期三

Excel VBA 下拉清單

Reference:
https://msdn.microsoft.com/zh-tw/library/office/ff835840.aspx
http://forum.twbts.com/thread-3516-1-1.html


1. 選擇 開發人員
2. 插入 下拉清單
3. 點選 下拉清單
4. 輸入 下拉清單名稱,按 Enter 確定
5. 按 Alt + F11 開啟 VBA 編輯畫面
6. 輸入 VBA 程式

Sub tt()
    Sheet1.Shapes("mon_1").ControlFormat.RemoveAllItems     '清除所有下拉選項
    Sheet1.Shapes("mon_1").ControlFormat.AddItem ("111")    '新增一筆下拉選項
    Sheet1.Shapes("mon_1").ControlFormat.AddItem ("aaa")    '新增一筆下拉選項
    Sheet1.Shapes("mon_1").ControlFormat.AddItem ("xxx")    '新增一筆下拉選項
    Sheet1.Shapes("mon_1").ControlFormat.Value = 2          '將下拉選單設定預設值為第二筆
    MsgBox (Sheet1.Shapes("mon_1").ControlFormat.List(2))   '顯示第二筆選單的值
End Sub

2016年10月14日 星期五

VBA to get web asp result

Reference:
Excel VBA 2a:Learning MSXML2.XMLHTTP
Scraping a website's HTML in VBA
XmlHttp Post in Excel VBA not updating website form

Example:
use VBA to download 台灣期貨交易所的台股期貨
http://www.taifex.com.tw/chinese/3/3_1_2.asp

VBA code:
Sub get_taifex()
    Dim pXmlHttp As Object
    Set pXmlHttp = CreateObject("MSXML2.XMLHTTP")
    pXmlHttp.Open "POST", "http://www.taifex.com.tw/chinese/3/3_1_2dl.asp", False
    pXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    pXmlHttp.send ("goday=&DATA_DATE=&DATA_DATE1=&DATA_DATE_Y=&DATA_DATE_M=&DATA_DATE_D=&DATA_DATE_Y1=&DATA_DATE_M1=&DATA_DATE_D1=&syear=&smonth=&sday=&syear1=&smonth1=&sday1=&datestart=2016%2F09%2F14&dateend=2016%2F10%2F14&COMMODITY_ID=TX&commodity_id2t=&his_year=2015")
   
    MsgBox pXmlHttp.ResponseText
End Sub

用 Wireshark 收集到的網頁傳輸參數