真是後知後覺...
https://twitter.com/codetengu/status/718331771713163264
然後測試應該是在國內沒錯,不確定在哪個機房。
linux-gap3 (0.0.0.0) Fri Apr 8 15:41:28 2016
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 192.168.2.249 0.0% 12 0.2 0.2 0.1 0.3 0.0
2. 125-227-128-254.HINET-IP.hinet.net 0.0% 12 6.4 6.2 5.7 7.0 0.0
3. tpdt-3307.hinet.net 0.0% 11 6.5 10.4 5.6 37.5 9.5
4. 220-128-2-22.HINET-IP.hinet.net 0.0% 11 11.6 13.5 9.8 18.6 2.9
5. r4102-s2.tp.hinet.net 0.0% 11 6.4 6.5 5.7 6.9 0.0
6. Customer.WAN-Port.AR.HiNet.NET 0.0% 11 7.3 7.3 6.4 8.4 0.3
7. 104.27.134.206 0.0% 11 7.2 6.8 6.2 8.3 0.5
不過走IPv6就會繞到國外去
My traceroute [v0.86]
linux-gap3 (::) Fri Apr 8 15:41:43 2016
Keys: Help Display mode Restart statistics Order of fields quit
Packets Pings
Host Loss% Snt Last Avg Best Wrst StDev
1. 2001:b030:1005:100::1 0.0% 2 0.3 0.3 0.3 0.3 0.0
2. 2001:b030:1005:ff1d::ffff 0.0% 2 7.0 6.8 6.5 7.0 0.0
3. 2001:b000:a0:5:22:2631:141:2 0.0% 2 8.1 7.4 6.7 8.1 1.0
4. 2001:b000:80:4:3012:3308:2:2 0.0% 2 14.8 13.2 11.6 14.8 2.2
5. 2001:b000:80:4:3012:4103:7:b 0.0% 2 6.0 6.4 6.0 6.7 0.0
6. 2001:b000:80:4:13:27:1:1 0.0% 2 6.4 8.0 6.4 9.5 2.0
7. 2001:b000:80:7:211:72:233:41 0.0% 1 50.5 50.5 50.5 50.5 0.0
8. ae-4.r22.osakjp02.jp.bb.gin.ntt.net 0.0% 1 50.0 50.0 50.0 50.0 0.0
9. ae-5.r30.tokyjp05.jp.bb.gin.ntt.net 0.0% 1 53.9 53.9 53.9 53.9 0.0
10. ae-5.r02.tokyjp03.jp.bb.gin.ntt.net 0.0% 1 55.4 55.4 55.4 55.4 0.0
11. 2001:218:2000:5000::3a2 0.0% 1 165.7 165.7 165.7 165.7 0.0
12. 2001:cb0:104:1:19::1 0.0% 1 166.7 166.7 166.7 166.7 0.0
13. 2001:cb0:104:1:1b::2 0.0% 1 166.3 166.3 166.3 166.3 0.0
14. 2001:cb0:105:1:17::2 0.0% 1 165.1 165.1 165.1 165.1 0.0
15. 2001:cb0:105:2:10::2 0.0% 1 170.1 170.1 170.1 170.1 0.0
16. 2400:cb00:2048:1::681b:86ce 0.0% 1 166.6 166.6 166.6 166.6 0.0
2016年1月11日 星期一
Django在Python2/3的環境下,上傳檔案的差異
在Python 2的情況,取用request.POST裡的檔案,其型態會是str,不需要額外處理就能使用。
但是在Python 3的情況,request.POST的檔案變成bytes,不轉換成str就沒辦法處理,所以我是用以下的方式:
http://stackoverflow.com/questions/26724453/django-uploaded-file-is-binary-is-it-possible-to-change-to-utf-so-readline
但是在Python 3的情況,request.POST的檔案變成bytes,不轉換成str就沒辦法處理,所以我是用以下的方式:
f = TextIOWrapper(request.FILES['file1'].file, encoding=request.encoding)來源參考這一篇:
http://stackoverflow.com/questions/26724453/django-uploaded-file-is-binary-is-it-possible-to-change-to-utf-so-readline
2015年12月15日 星期二
2015年12月8日 星期二
使用IPv6
因為中華電信現在開放光世代客戶上網申請IPv6,我就去申請了,然後發現...
Ubuntu 15.04會取得兩個global link v6的IP,一個是亂數產生,一個是後64bits使用網卡Mac位址。而在CentOS 7裡頭,只有一個使用Mac位置的v6 IP。
在IPv6無狀態自動設置會使用Mac位置IP(RFC 4291),因為這個IP不會變動,存在隱私的疑慮。
為了解決以上的問題, Privacy Extensions (RFC 4941)就誕生了,除了原本使用的Mac位置IP之外,還有一個亂數產生的IP,而且會定期更換IP。但是這在某些情況下會造成問題,例如IP在被更換之後,被網站或應用程式認定已登出。而且RFC 4941沒有替代Mac位置的v6 IP,這代表隱私洩漏依然有可能發生。
而RFC 7217試圖解決上述的問題,這裡產生的IP是根據演算法所產生的『相對固定』IP,在同一個子網路之下,不管硬體如何更換IP都是相同的,但是主機移到不同的子網路就會產生不同的固定IP,並且確保這個演算法是單向的。因為是固定IP,要進行管理也變得簡單。
目前看來,每個作業系統的實做都不太相同。CentOS 7因為使用NetworkManager 1.0.0,所以只支援Mac位置IP。而Ubuntu 15.04的NetworkManager是0.9.10.4,卻支援Privacy Extension(打了patch?)。Win7也會有兩個IP,其中一個是『臨時IPv6位址』,應該就是依據Privacy Extensions所產生的,不過另一個卻不是Mac位址IP?
NetworkManager在1.2版之後也會支援RFC 7217。
Ubuntu 15.04會取得兩個global link v6的IP,一個是亂數產生,一個是後64bits使用網卡Mac位址。而在CentOS 7裡頭,只有一個使用Mac位置的v6 IP。
在IPv6無狀態自動設置會使用Mac位置IP(RFC 4291),因為這個IP不會變動,存在隱私的疑慮。
為了解決以上的問題, Privacy Extensions (RFC 4941)就誕生了,除了原本使用的Mac位置IP之外,還有一個亂數產生的IP,而且會定期更換IP。但是這在某些情況下會造成問題,例如IP在被更換之後,被網站或應用程式認定已登出。而且RFC 4941沒有替代Mac位置的v6 IP,這代表隱私洩漏依然有可能發生。
而RFC 7217試圖解決上述的問題,這裡產生的IP是根據演算法所產生的『相對固定』IP,在同一個子網路之下,不管硬體如何更換IP都是相同的,但是主機移到不同的子網路就會產生不同的固定IP,並且確保這個演算法是單向的。因為是固定IP,要進行管理也變得簡單。
目前看來,每個作業系統的實做都不太相同。CentOS 7因為使用NetworkManager 1.0.0,所以只支援Mac位置IP。而Ubuntu 15.04的NetworkManager是0.9.10.4,卻支援Privacy Extension(打了patch?)。Win7也會有兩個IP,其中一個是『臨時IPv6位址』,應該就是依據Privacy Extensions所產生的,不過另一個卻不是Mac位址IP?
NetworkManager在1.2版之後也會支援RFC 7217。
2015年11月26日 星期四
Ubuntu的白痴bug
昨天裝了Ubuntu 15.10的VM,安裝完更新之後就無法進入到桌面,換成Lubuntu 15.10也是一樣,然後今天換成我工作用電腦Kubuntu 15.04也無法進入到桌面,systemd顯示的錯誤訊息大致來說是相同的,尋找錯誤訊息找不到什麼可用的資訊。
一開始注意到的是console-kit-log-system-start.service無法啟動,可惜這不是真正的問題所在。之後發現到local-fs.target跟proc-bus-usb.mount啟動失敗。查詢proc-bus-usb.mount之後,在stackoverflow上的問答裡頭找到了提示。
註解掉之後重開機,就可以進入到桌面。結論是更新Kernel導致,新的Kernel把usbfs支援給拿掉了,但是Ubuntu QA居然沒測試到。這一行是Eaton Winpower安裝程式加上去的.... Orz
以前還是用sysvinit的時候,如果碰到fstab mount failed,會停止啟動程序並提示,換成systemd就不會,而且訊息很雜亂,難以找出真正的原因。
一開始注意到的是console-kit-log-system-start.service無法啟動,可惜這不是真正的問題所在。之後發現到local-fs.target跟proc-bus-usb.mount啟動失敗。查詢proc-bus-usb.mount之後,在stackoverflow上的問答裡頭找到了提示。
檢查fstab看看?檢查之後,最底下有一行
usbfs /proc/bus/usb usbfs defaults 0 0
以前還是用sysvinit的時候,如果碰到fstab mount failed,會停止啟動程序並提示,換成systemd就不會,而且訊息很雜亂,難以找出真正的原因。
訂閱:
文章 (Atom)
-
之前因為 製作Macross Frontier第一話的字幕 ,開始接觸到這塊領域。剛開始我使用Subtitle Workshop製 作字幕,這個軟體的介面還蠻人性化的,但是不支援Unicode是個大問題,時間軸的調整也很難做的精準,此外它對SubStation Alpha (....
-
在Firefox 3正式發布前夕,Mozilla基金會成員之一的 Deb Richardson ,撰寫了一篇圖文並茂的 說明 ,讓你徹底了解Firefox 3的新功能。這些新功能與改進有些非常巨大,有些細微到你完全不會注意到,但是卻讓Firefox 3變得更簡單易用。就整體而言,...
-
試了很久才發現成功的方程式…這是因為每次安裝ROCm都需要下載安裝超過30GB的檔案!!! tl;dr 直接說結論 OS: Ubuntu 22.04(因為ROCm 6.1只支援此以下的版本) ROCm: <= 6.1.2,6.2跟6.3都沒辦法正常運行 PyTorch...