Mosquitto 提供 Windows 系統的安裝包。但是有些事沒說清楚,對首次接觸者帶來些許困擾。我在此補充一些事。 v1.5.1 (2018-08-16) 有重要變動。
缺少功能
Mosquitto 的 Windows 系統安裝包在 v1.5.1 之前並未啟用 MQTT over websockets 功能。如果你需要這功能,你得要下載原始碼自行編譯。
而在 v1.5.1 (2018-08-16) 起,將 websockets 功能編入了。你只需要按 MQTT用戶端入門 - 二 的說明,在組態檔中啟用 websockets 。
至於我個人的作法則不一樣。因為是 Windows 10 ,所以我啟用 Windows Subsystem for Linux (WSL) 安裝 Ubuntu on Windows 。然後在 Ubuntu on Windows 中直接用 apt-get 安裝 mosquitto 套件,同 Debian 安裝 mosquitto。本文寫作時, Ubuntu on Windows 運行的散佈版本為 16.04 , mosquitto 套件版本為 1.4.8 ,已可使用 MQTT over websockets 。
Windows Subsystem for Linux 是好東西啊。
安裝時的必要項目
Mosquitto 安裝程式 (Native build) 會提示你在繼續安裝前,先複製與安裝兩個軟體。但我建議先中斷 Mosquitto 安裝程式,等安裝了下列三個軟體之後,才去執行 Mosquitto 安裝程式。喔,你沒看錯,是「三個」。
近幾年來,使用平板、手機播放線上音樂的人愈來愈多。他們雖然不是音響發燒友,但同樣會尋求更優雅舒適的音樂聆聽環境。他們希望有大顆的喇叭,可以讓手機播放的音樂繞樑於耳、餘韻不絕,而不是聽到手機小喇叭聲嘶力竭的破嗓音。為此,音響廠商近一、兩年推出的平價新產品,幾乎都將無線音樂串流列為支援項目。這類產品如 TEAC NT-503, Yamaha WXA-50, Pioneer N-70AE, Oppa Sonica DAC 等。
這波追求無線便利性的潮流,也影響了傳統音響發燒友。但我們通常已經擁有等級不差的傳統二聲道擴大機和高價位 DAC 。音響發燒友是一群不會為了音質而妥協的人,未必願意為了聆聽無線音樂串流去添加平價但降級的無線音樂串流設備。那麼我們就會想找可以連接手機和傳統擴大機的無線連接設備。本文將說明我的方式,讓平板、手機透過無線連接設備搭配傳統擴大機。
Lenovo Yoga Book 實在是令人驚艷的產品。那隻可替換筆芯的觸控筆可說是最大賣點。將觸控筆的筆芯換成原子筆筆芯後,可以放張紙在 Create Pad 上書寫並同步到 OneNote 記錄。不少消費者就是為了滿足手寫書寫感而買下它。
但是它給了我們兩種筆芯,卻只有一隻筆桿。說真的,應該很少有用戶會忍著不裝原子筆筆芯。然而帶著兩種筆芯換來換去實在很麻煩。Yoga Book 用戶絕對需要兩隻筆。還有,原子筆的筆芯是耗材,我們也想知道何處取得補充品。
Lenovo 網站上可以找到這些配件,但常常缺貨,更重要的是價格難以下手。替代品如下:
- 觸控筆: Samsung Galaxy Note series Stylus
- 原子筆筆芯: DT&CREATION Mini Star Refills
谷阿莫是以製作「X分鐘帶你看完某某電影」系列短片聞名的網路紅人。近日被電影片商控告侵權,谷阿莫挨告。電影片商:於網路取得非法影片已侵權。
一般對著作權有所了解的人,會想到以電影 90 分鐘以上的內容和短片不到 5 分鐘的內容比例來看,是否可以主張合理使用? 然而這類影評短片的製作者若要主張合理使用的話,片源的合法來源基本有兩種途徑。一是從片商公開的預告片,二是從自購的 DVD、BD 影像。而谷阿莫製作短片的片源並不合法,這正是電影片商之主張重點。
由於留言板的使用率非常低,且 disqus 系統會拖長網頁載入時間,所以我調整了我的留言板機制。
現在大部份文章都不會看到留言板了。具共同主題或同系列的文章,則會共用同一主題的留言板。
少量的意見回饋與交流,使用 twitter 和 facebook 足以。
「台灣 119 求救簡訊」是整合了 GPS 定位與 SMS 文字簡訊功能的應用程式。當使用者遇難需要向 119 消防局報案求助時,這個應用程式可以利用 SMS 文字簡訊送出求救訊息和 GPS 位置,讓消防局更快掌握受困者的地點。
此類工具對經常從事戶外活動的人頗有用處,各地方政府亦有發行類似的 App 。例如新聞「定位神準!119APP救出摸黑的登山客」。但受限於我國政府單位的短淺目光,僅在 Android 和 iOS 的軟體市集上發布此類 App 。
我用 HTML5 和 JavaScript 設計了「台灣 119 求救簡訊」這個純網頁版本的 Webapp 。此外,受益於微軟在 Windows 10 時增加了 UWP (Universal Windows Platform, 通用 Windows 平台) 的應用程式模式,同樣的源碼可以直接包裝成 UWP App 供 Windows 安裝。
UVC (USB video class - wikipedia) 泛指使用 USB 連接介面的影像產品。一般使用者最熟悉的 UVC 設備就是 WebCam 。除了 WebCam ,還有數位攝影機、電視卡、或具有照相功能的設備。故一台電腦接了兩台以上的 UVC 設備並非罕見。
在 Linux 核心中,會為可用的 UVC 設備各自分配一個 dev 路徑,檔名為 video 編號。例如 /dev/video0, /dev/video1 。但是當你的電腦接了兩台以上不同的 UVC 設備時,你將發現系統缺乏清楚的訊息告訴你這些 dev 路徑與 UVC 設備的關係。你不知道這些 dev 路徑各自代表哪一台 UVC 設備。當你的應用軟體需要用 dev 路徑開啟特定設備時,這會帶給你一些小麻煩。
本文以 shell script 和 python 分別實作了一個列出 dev 路徑與其代表的 UVC 設備名稱的小工具。
本補遺所列者通常是簡化語法。功能性不強,我個人不常用。但為免閱讀他人程式時看不懂,還是需要整理列出。
同事在 linux 上設計一套基於影片的 Kiosk 導覽系統時,想在使用者操作時加入一些音效或語音提示。然而這個導覽系統本身會持續播放影片與聲音,故他必須在保持影片播放動作的狀態下,同時混入操作音效。
此外,在目標系統上,預期會有兩個音效裝置,即主機板內建音效裝置,和螢幕 HDMI 音效裝置。目標系統用螢幕喇叭,故也必須確保音效從 HDMI 音效裝置輸出。他希望用導覽系統內部呼叫命令列程式的方式簡單地實現這些需求。
我任職的公司使用 Debian 套件格式管理自行開發的各類軟體,也會將一些第三方的軟體打包為 debian 套件。套件維護者有時候會需要調整版本的描述方式,夾綴一些如 rev, update, fix 之類的字眼,以便使用者更容易理解套件的版本意義。但套件維護者在調整版本文字時,有時會搞錯版本文字所代表的新舊順序。例如 “1.0.0rev1” 和 “1.0.0-1” 何者代表的版本較新?
套件維護者需要一些工具幫助他決定如何調整版本文字的內容。本文介紹兩種比較版本文字新舊意義的方式。分別使用 dpkg 命令列工具與 python 的 apt_pkg 庫。
我最近轉推網頁文章時,注意到同樣只放上文字和連結的推文,有些來源的網頁在我沒有附上圖片的情況下,依然會在推文中顯示網頁中的圖片。而且這類型的推文愈來愈多。這種推文的效果很好,我也想在我的部落格 (使用 github pages) 中加上這種效果。
概觀
首先看下圖。圖中是兩篇同樣只放上文字和網頁連結的推文,但呈現效果卻不相同。

下方的推文只有文字內容。但上方的推文主動地顯示了該網頁中的圖片縮圖與摘要文字。看起來,上方推文的閱讀效果較佳。
大約一年前,我在「臉部辨識系統經驗談」提到虹膜辨識系統的可用性與照相鏡頭有很大的關係。當時,我認為日本 NTT 尚未徹底解決虹膜辨識系統的手機照相需求。
規劃將虹膜辨識應用於行動設備或家用消費級產品時,我們首先會想到一般的相機是否可用?遺憾的是,一般相機並不適合用於虹膜辨識。各位可以用自己的手機相機自拍眼睛周圍。從照片可以看出,由於反光等因素,甚至會在虹膜區域出現相機的倒影。故取出的虹膜特徵品質極差。
在 COSCUP 2016 無人機空汙監控物聯網 這場關於 IoT 實作經驗的議程中,與會者向講者提問了一個問題。大意是說透過 MQTT 發出控制命令後,有沒有辦法確認感應器收到命令了?
MQTT 的 qos 機制可以確保訂閱者收到訊息。但發佈方法是非同步動作,當方法返回時,並不等於訂閱者都收到訊息了。若發佈者想知道訂閱者是否收到或何時收到訊息時,確實需要多一道工作。
首先說明中華民國紅十字會在國際上的關係。提到紅十字會的國際關係,就要提到三件事物。一個是概念性的「國際紅十字與紅新月運動」團體,另兩個則是具有正式組織架構的「紅十字國際委員會(ICRC)」和「紅十字會與紅新月會國際聯合會(IFRC)」。且 ICRC 和 IFRC 是兩個獨立組織,彼此沒有從屬關係。 ICRC、IFRC 以及各地紅十字會三者共同合作推動「國際紅十字與紅新月運動」。 ICRC 承認中華民國紅十字會,屬於「國際紅十字與紅新月運動」團體。但受限於 IFRC 的組織章程,中華民國紅十字會不是 IFRC 的會員。民進黨立委李俊俋說「中華民國紅十字會根本不被國際紅十字會承認」,顯然他沒有搞懂紅十字會組織間的關係。我也不知道他口中的「國際紅十字會」是哪個。
自從看了 xtreme 的 iFi Purifier2 開箱文後,我就在想能不能弄一個窮人版的。儘量拿一般人手上現有的零件,搭出一個便宜又有顯著效果的 USB DAC 連接器。
Part 1. FE1.1s
首先,第一個主角, axpro USB 2.0 Hub。

構造非常簡單,一個不到 150 元。原本是我帶筆電出差旅遊時用的,今天就請他為了數位音響界獻身。
Python Tools for Visual Studio (PTVS) 是一個銜接 Visual Studio 和 Python 解譯器的工具。現在是 Visual Studio 2015 安裝時的可選用內容。
注意,當你安裝 Visual Studio Community 和 PTVS 時, Visual Studio Community 安裝工具並不會一併幫你安裝 Python 解譯器,你得要自己下載 Windows 版的 Python 解譯器。推薦使用 CPython for Windows 。你可以選擇 Python2 或 Python3 。如果你打算用 Python 撰寫檔案處理小工具的話,我建議選擇安裝 Python3 ,它解決了 Unicode 檔名的處理問題。
Python 解譯器與 Visual Studio Community 的安裝順序並不重要。誰先裝都行。
推薦主題文章 MQTT用戶端入門 :
另外,我在配合 Apache MQ 的 MQTT 模組時,遇到 qos 為 2 還是漏訊的情形。但配合 mosquitto 時就沒遇過。
最近規劃把 disqus 的最近留言 放到首頁側欄上。
上月底有點忙,配合「非本國國民自動通關系統」驗收,得到機場加班微調程式。硬體閘門廠商先後提供的控制規格文件和設備實際回報的內容不一樣。結果我得要自己一一觀察每個 sensor 的實際回報資料調整程式內的狀態表。這些人是在破壞軟體協作的信賴關係。