閻奕格 – 凝視 (偶像劇 High 5制霸青春片尾曲)

來自2016年的台灣偶像劇 – High 5 制霸青春 中的片尾曲,收錄在 High 5制霸青春電視原聲帶,由知名的作詞、作曲人陳信延作詞、楊子樸作曲,由曾參加超級星光大道的閻奕格演唱,優美的旋律、歌聲,搭配歌詞中字裡行間透露出的青春氣息,無疑勾起了一些已經被逐漸淡忘的往事、回憶,讓人再次股起勇氣去找回那逐夢的膽量,希望這樣勇敢的信念可以牢記在心中,別再弄丟了!對我來說是很棒的一首歌!

作詞:陳信延 作曲:楊子樸

午後的陽光 照亮你凌亂頭髮 你沒發現身上 有一片蔚藍
凝視你努力流汗 和你努力忍住的淚光
我怎麼也覺得有一點鼻酸

你憑著無懼的膽量 就快拿下了夢想
你卻常常忘了 要為自己鼓掌
凝視你閃爍眼光 倒映著大家奮鬥的模樣
在沉悶的地方 盡情地貪玩

勇敢吧 你跑起來是多麼好看
你不要低估信仰 可以帶你飛向遠方
唱響了年輕的樂章 對得起你那些倔強
不孤單 讓我陪你用力大聲唱

繼續閱讀

在 Debian / Ubuntu GNU/Linux 底下找出特定命令 / 程式的來源套件

Debian / Ubuntu based GNU/Linux 底下做事有個很棒的優點,有太多工具可以透過 apt 套件庫來進行安裝,重灌電腦的時候只要透過 apt 或 apt-get 就可以把一大半會需要用到的工具給裝起來,不過有時候可能邊摸索邊上網查資料來看某工具要怎麼用,一骨腦裝完卻沒作筆記,日後要準備重灌時卻想不起來該裝什麼套件才能把要用到的命令找回來,窘 …

如果你有安裝 command-not-found 這個套件,在 bash shell 底下如果執行了找不到的命令,除了常見的 blah: command not found,他還會有很貼心的提示使用者應該安裝哪個缺漏的套件,像這樣:
$ kvm
The program 'kvm' is currently not installed. You can install it by typing:
sudo apt install qemu-kvm

上面範例為我執行了一個不存在的命令 – kvm ,然後 command-not-found 這套工具建議我去裝 qemu-kvm 這個套件,裝完後就會有 kvm 這個命令可以使用了,如果同時存在不只一個套件包含了同樣的命令,command-not-found 這套工具一樣會很好心的幫我們列出來,例如:
$ sar
The program 'sar' can be found in the following packages:
* sysstat
* atsar
Ask your administrator to install one of them

就算是找不到 100% 符合的命令,command-not-found 也會很好心的列出其他參考,例如:
$ gitx
No command 'gitx' found, did you mean:
Command 'gitg' from package 'gitg' (universe)
Command 'git' from package 'git' (main)
Command 'gitk' from package 'gitk' (main)
gitx: command not found

不過上述的功能僅限於我們沒有正確的安裝對應的套件才能使用,如果是套件已經裝起來了的時候呢?例如我工具都已經裝好了,只是想確認某個命令是從哪裡來的,要做個筆記而已,這種情況很常見的啊,例如遇到問題跑去問 Google ,看到一堆解法,一個不行換一個,換到可以的解法的時候可能已經 apt-get install 不知道多少次了,已經忘記剛剛的命令到底是從哪邊來的了XD

還好 dpkg 有個強大的搜尋功能,可以讓我們從已經安裝的套件中搜尋出他們到底包含了哪些檔案,底下是從 Ubuntu 16.04.1 裏面擷取的 dpkg manpage:

-S, –search filename-search-pattern…
Search for a filename from installed packages.

使用方式為:
$ dpkg -S '檔案路徑/名稱'

要透過 dpkg -S 來找命令對應所屬的套件,只要把命令的完整路徑丟給他就可以了,命令的完整路徑我們可以透過 type 或 which 這兩個指令來確認,例如:
$ type whoami
whoami is /usr/bin/whoami

$ which whoami
/usr/bin/whoami

從上面的輸出我們可以知道 whoami 這個命令的完整路徑是 /usr/bin/whoami ,再把 /usr/bin/whoami 拿去 dpkg 查詢就可以了!例如:
$ dpkg -S '/usr/bin/whoami'
coreutils: /usr/bin/whoami

$ dpkg -S '/usr/bin/curl'
curl: /usr/bin/curl

或是直接
$ dpkg -S "$(which whoami)"
coreutils: /usr/bin/whoami

$ dpkg -S "$(which curl)"
curl: /usr/bin/curl

從上面的結果我們可以發現 curl 這個命令是從 curl 這個套件來的, whoami 這個命令則是從 coreutils 這個套件來的,如果你查詢的是還沒有安裝或是不是透過 apt / dpkg 套件管理工具安裝的命令,那就沒辦法了:
$ dpkg -S '/usr/bin/kvm'
dpkg-query: no path found matching pattern /usr/bin/kvm

要注意的是

1. which 跟 type 輸出的格式不太一樣,type 的輸出結果因為多了 blah is … ,所以還需要經過處理把前面那段拿掉才有辦法餵給 dpkg ,而 which 因為是直接出出路徑所以沒有這問題

2. 這邊如果輸入的不是完整路徑,則可能會出現一堆其他不相關的東西,例如:
$ dpkg -S 'whoami'
bash-completion: /usr/share/bash-completion/completions/ldapwhoami
coreutils: /usr/share/man/man1/whoami.1.gz
coreutils: /usr/bin/whoami

因為 dpkg 會直接把所有完整路徑裏面符合輸入字串的部份都印出來,所以像是 whoami 的 manpage 以及 bash-completion 的自動補齊指令都被列出來了。

好了,這篇筆記雖然短,可我覺得很實用,哪天失憶或是被問問題的時候就可以把這篇丟出來,這就是做筆記最大的用途 … :D

檢查在 Debian / Ubuntu 環境中虛擬化功能的支援 (kvm, LXC)

使用 KVM (Kernel-based Virtual Machine)、Xen、LXC(Linux Containers) 等虛擬化技術時經常需要 linux kernel 或是 CPU 上的硬體支援,像 KVM 這種高度依賴硬體協助虛擬化 (Hardware-assisted virtualization) 例如 AMD-V 或是 Intel VT-x 的技術,最好是在使用前就先確認是否在系統上有被支援,才不會使用起來才發現效能慢得很痛苦,硬體協助虛擬化除了本身硬體支援、也需要相關的設定需要在主機板 BIOS 上啟用及在軟體上的支援,這邊筆記一下在 Ubuntu 上怎麼樣快速的確認是否自己的環境有虛擬化時會用到的功能支援,軟體虛擬化技術的部份會以 KVM / LXC 為主。

1. 檢查 CPU 是否支援硬體虛擬化技術,透過 cpuinfo 裡面的 flag 來確認:

  • AMD 有支援 AMD-V 技術的處理器應該會看到一個 svm 的 flag
  • Intel 的 VT-x 技術對應的 flag 則是 vmx
  • 其他例如 ARM, PowerPC 架構的處理器可以參考這邊的資訊:

2. 檢查 kvm kernel module 是否已經載入,以 intel 處理器為例:

(如果是 AMD 的處理器要看到的應該會有 kvm_amd 而不是 kvm_intel)

另外我們也可以藉由 kvm-ok 這個工具來看看 kvm 環境的支援情形,要使用 kvm-ok 請先使用 apt 安裝 cpu-checker 這個套件 (Ubuntu 有包,但 Debian 沒有)。

以下分別是有有/無支援的輸出結果:

如果處理器本身有支援對應的虛擬化技術,但顯示為沒有支援,或是 kvm 模組沒有被正常載入,可以試試看手動載入相關的模組 (注意有 intel, amd 字樣的模組請對應自己的處理器品牌):

3. 同時檢查包含 QEMU / LXC 虛擬化技術相關的支援及細節

這邊使用的工具是 virt-host-validate ,現在不管是在 Ubuntu 或是 Debian 上都有打包好的套件可以直接安裝使用,透過這個工具可以看到更多虛擬化技術的支援細節,要使用 virt-host-validate 這個工具請用 apt 安裝 libvirt-bin 這個套件。virt-host-validate 使用基本上不需要特別帶參數,除非你只想針對特定一種虛擬化技術做確認,執行結果範例及說明在下方:

沒有支援硬體虛擬化的結果 (libvirt-bin v1.2.x in Ubuntu 14.04.5 / Debian 8.6):

有支援硬體虛擬化的結果 (libvirt-bin v1.2.x / Ubuntu 14.04.5 / Debian 8.6):

另外也有可能出現需要另外載入 kernel module 的提示訊息,例如 vhost_net ,不過我是因為忘了用 root 權限才看到這個訊息的,有些檢查需要使用到比較高的權限才能確認 (libvirt-bin v1.2.x / Ubuntu 14.04.5 / Debian 8.6):

到了 Ubuntu 16.04 , libvirt-bin v1.3.1,結果變得更加的詳細,大致如下,就不分別貼多個版本了:

這些資訊其實透過 sysctl , dmesg 等工具裡面也都可以看到一些蛛絲馬跡,在 unix 的環境裡面往往一件事可能有不只一種作法,只是 dmesg 訊息有時會被 "洗板" ,訊息太多就被蓋掉了,sysctl 的話則是要多背一些位置 ... kvm-ok 或是 cpuinfo 我還是覺得簡單一些,透過上面這些訊息,我們基本上就可以了解到所使用的環境是否有適合來拿做虛擬化的應用了,即便是身處在一個已經經過虛擬化的環境裡,例如使用 AWS c或是 DigitalOcean 的 VPS,只要所在環境軟硬體有適當的巢狀虛擬化支援,再多開一層的虛擬機都還是能有不錯的效能,反之,若是沒有適當的軟硬體虛擬化技術支援,即便是運算能力很強的伺服器處理器,只有一層的虛擬機在跑都還是可以處理器使用率不斷滿載、整體速度慢到讓人無法接受,這也就是為什麼要先確認我們需要用到的虛擬化技術支援情形的原因。

Can I use (瀏覽器功能支援速查網站) … 終於加入 SSL / TLS 的支援資訊

caniuse 是一個整理了各個瀏覽器針對不同功能的支援性做整理的專案,網頁前後端的開發者需要速查某一個 feature 有沒有被特定的 browser 支援、或是被各個瀏覽器支援的情形的時候,caniuse 算是一個方便好用的服務, 網站本身丟在 http://caniuse.com/ (很可惜沒走 https),專案則是 open source 丟在 GitHub 上: https://github.com/Fyrd/caniuse

CanIuse.com

直接在網站首頁的 Can I use ______ ? 的搜尋框輸入相關的關鍵字,下面會列出相關的結果,首頁本身也有列出一些 features 可以給大家參考,如果想對搜尋的結果做進一步的設定,Settings 裏面也可以控制譬如像是針對哪些功能分類、不同的瀏覽器做搜尋、只顯示市佔率超過多少百分比的瀏覽器、排序等等的資訊,不過很可惜的是一直沒有 https / SSL /TLS 支援性的相關資訊,剛剛在 Fyrd/caniuse#1144 這個 GitHub 上的討論串可以看到在今天稍早作者已經表示加入對應的支援了 (在 Fyrd/caniuse@960f5419a ),雖然拖了很久,不過總算是開始把這部份補起來了。

SSL 和 TLS 1.0 的部份分別是現在瀏覽器全面棄用/支援的兩個協定,不過在 caniuse 上沒有獨立的頁面,只會在搜尋結果呈獻說明:

而 TLS 1.1 和 TLS 1.2 則有獨立的頁面顯示目前瀏覽器的支援情況:

TLS 1.1: http://caniuse.com/#feat=tls1-1
CanIuse_TLS-1.1

繼續閱讀

除了 Let’s Encrypt 以外的免費 SSL 憑證

使用 SSL 憑證一直以來的一個門檻是費用問題,在沒有閒錢 (對於小朋友來說還有付款方式的問題) 的情況下想要練習架設有 https 保護的網站而且要能正常運作就有其一定的難度,自簽憑證雖然也可以達到類似的效果,不過整個流程以及最終驗證的方式都還是跟實際上有出入,即便這幾年已經有了很多便宜的 SSL,這個門檻一直都還存在,這也是為什麼會蹦出一個 Let’s Encrypt 要來推免費的 SSL 憑證的主因,目的就是降低甚至消除門檻、普及網路連線的加密, Let’s Encrypt 同時也推自動化工具來簡化整個流程,Let’s Encrypt 推出至今已經簽出超過五百萬張憑證了 ,既然不用錢、也有自動化工具,那為什麼還會用到別家的憑證?

我要找 Let’s Encrypt 以外的免費 SSL 憑證主要有兩個原因:

  1.  Let’s Encrypt 的整個簽證流程不同於以往 (產生 private key, CSR 再送給廠商,完成驗證後簽發),要讓沒經驗的人來學怎麼做這件事情我還是偏好走傳統的方式整個帶過一遍,而不是只透過自動化工具進行部署,這樣觀念上還是會比較好一點,另外就是現在的自動化工具只適用於 domain validation (dv) 的驗證,如果要有 OV (Organization Validated) 或 EV (Extended Validated) 的話還是需要走傳統的作法。
  2. Let’s Encrypt 憑證有效期較短 ,雖然這個問題可透過工具自動 renew 來補足,但仍有其限制,使用憑證的主機如果沒辦法定期或常態對外連網就不見得適用,例如我想要在內部網路環境架設受簽證保護的內部服務,又不想要平常就把對外網路打開、或是自簽憑證再把憑證塞到使用者裝置上等情況。

目前看到的兩家免費憑證,一家是老牌的 StartSSL 、 另一家是對岸的 WoSign,兩者我都有用過,前者曾經被爆出一些潛在的安全性問題,但是問題持續的時間看起來不長,那後者本身是對岸的公司,所以可想而知對一些人來說是有潛在的安全疑慮的,不過不考慮這些為安全考量以及政治因素,丟給新手拿來當練習我覺得是很好的選擇,不知道還有沒有其他可以推薦的?

WoSign 的免費憑證申請在這邊:https://buy.wosign.com/free/?lan=en,一個憑證可以簽 5 個 domain,有效期限可選則一年或兩年,要額外數量的網域認證或是更長的年限就必須另外付錢,不考慮是對岸公司疑慮的情況下,WoSign 本身因為是對岸公司,有提供簡體中文的說明文件、且產生的憑證會按照不同的 httpd 如 IIS、nginx、apache 不同的需求分開提供,不用煩惱Intermediate的問題,我覺得對新手來說是很好的入門。

WoSignFreeSSL

WoSign 申請 Certificate 的畫面

繼續閱讀

Let’s Encrypt 已經簽出超過五百萬張憑證了 …

Progress Towards 100% HTTPS, June 2016 這邊看到的資訊,Let’s Encrypt 從去年 (2015) 年底 public beta 到現在已經簽署超過 500 萬張的憑證,扣掉被撤回以及已經過期的,大概有 380 萬張憑證還是有效的,而這些有效的憑證總共涵蓋了超過 700 萬個獨立的網域 (一張憑證可以簽給多個 domain),因為 Let’s Encrypt 憑證有效期只有 90 天,所以可以想像最近這三個月簽出的憑證數量佔的比例非常的高,官方也用時間/憑證數量的關係畫了一張圖出來給大家參考:

le-certs-issued-june-22-2016

其中有一些成長比較快的時間點是其他網站服務、虛擬主機、CDN 等廠商把 Let’s Encrypt 整合進自家服務的結果,例如文中提到的 OVHWordPress.comAkamaiShopifyDreamhostBitly,另外像是 KeyCDNCDN77 等 CDN 廠商也都陸續把 Let’s Encrypt 憑證簽署自動拉近自家的服務中,使用者因此在價錢以及部署的流程上受惠,同時對 Let’s Encrypt 的推廣及使用量產生相當程度的助長。

文章最後提到 Let’s Encrypt 在去年底剛公開測試的時候,整個 www 大概只有 40% 的網站有使用 https,現在已經長到 45% 了,可以預期今年 (2016) 這個數字可以長到 50% 以上,怎麼看都覺得很驚人!

Sourceforge 推出的 Internet Speed Test 網路速度測試服務

前鎮子跑出一個 Netflix 推出的網路速度測試服務 Fast.com,前兩個禮拜又看到 SourceForge 這個老牌的開源專案協作平台推出自己的測速服務 – SourceForge Internet Speed Test ,網址就是在原本的 sourceforge.net 後面再加上 speedtest 的字樣 https://sourceforge.net/speedtest/,從 SourceForge blog 放出來的這篇 Introducing the SourceForge Internet Speed Test 消息放得很短,只有簡單介紹幾句跟放個截圖就草草結束,實在不像是推出一個全新服務的新聞稿?

網站點進去長這樣,畫面上的文字以及排半略嫌複雜,可能是因為會上 SourgeForge 的使用者比較多組成同時也是開發者所以就比較沒關係?

sourceforge-speedtest

主要特色是使用了 HTML5 而不是 Flash ,除了常見的上下載速率以外,更加入了 jitter (抖動) 以及 package loss (封包遺失) 的資訊,對於這些資訊對於實際使用上帶來的影響底下也有說明(缺點就是字太多了XD):

sourceforge-speedtest-2

我測出來的結果長這樣(IP就馬賽克掉了),和 Fast.com 同樣看起來頻寬不是那麼夠 (比起到處跟 local ISP 合作放點的 speedtest.net 比較起來),不過在手機、平板上面直接使用起來都很正常,這點我覺得很不錯!

SourceForge Internet Speedtest

大家就參考看看吧~