調整留言板(disqus)的使用內容
由於留言板的使用率非常低,且 disqus 系統會拖長網頁載入時間,所以我調整了我的留言板機制。
現在大部份文章都不會看到留言板了。具共同主題或同系列的文章,則會共用同一主題的留言板。
少量的意見回饋與交流,使用 twitter 和 facebook 足以。
由於留言板的使用率非常低,且 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 安裝。
Touch 輸入法 Copyright (C) 2013 遊手好閒的石頭成 <shirock.tw@gmail.com>
Touch IME is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see
<https://www.gnu.org/licenses/lgpl-3.0-standalone.html>.
You should see https://rocksources.googlecode.com/ to get more information about Touch IME.
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) 中加上這種效果。
首先看下圖。圖中是兩篇同樣只放上文字和網頁連結的推文,但呈現效果卻不相同。
下方的推文只有文字內容。但上方的推文主動地顯示了該網頁中的圖片縮圖與摘要文字。看起來,上方推文的閱讀效果較佳。
在 COSCUP 2016 無人機空汙監控物聯網 這場關於 IoT 實作經驗的議程中,與會者向講者提問了一個問題。大意是說透過 MQTT 發出控制命令後,有沒有辦法確認感應器收到命令了?
MQTT 的 qos 機制可以確保訂閱者收到訊息。但發佈方法是非同步動作,當方法返回時,並不等於訂閱者都收到訊息了。若發佈者想知道訂閱者是否收到或何時收到訊息時,確實需要多一道工作。
首先說明中華民國紅十字會在國際上的關係。提到紅十字會的國際關係,就要提到三件事物。一個是概念性的「國際紅十字與紅新月運動」團體,另兩個則是具有正式組織架構的「紅十字國際委員會(ICRC)」和「紅十字會與紅新月會國際聯合會(IFRC)」。且 ICRC 和 IFRC 是兩個獨立組織,彼此沒有從屬關係。 ICRC、IFRC 以及各地紅十字會三者共同合作推動「國際紅十字與紅新月運動」。 ICRC 承認中華民國紅十字會,屬於「國際紅十字與紅新月運動」團體。但受限於 IFRC 的組織章程,中華民國紅十字會不是 IFRC 的會員。民進黨立委李俊俋說「中華民國紅十字會根本不被國際紅十字會承認」,顯然他沒有搞懂紅十字會組織間的關係。我也不知道他口中的「國際紅十字會」是哪個。
自從看了 xtreme 的 iFi Purifier2 開箱文後,我就在想能不能弄一個窮人版的。儘量拿一般人手上現有的零件,搭出一個便宜又有顯著效果的 USB DAC 連接器。
首先,第一個主角, 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 的實際回報資料調整程式內的狀態表。這些人是在破壞軟體協作的信賴關係。
我的筆記型電腦 Thinkpad X200s 有好一陣子沒有使用 WiFi 網路。前兩天帶著出外勤時,才發現 WiFi 啟用後一下就斷線,之後再也連不上網路。不論是連接手機分享網路,或是無線 WiFi 基地台都相同。查看 dmesg 後發現下列錯誤訊息:
wlan0: authentication with xxxxx (try 1)
wlan0: authentication with xxxxx (try 2)
wlan0: authentication with xxxxx (try 3)
wlan0: authentication with xxxxx time out
Debian 8 套件庫中提供了 python-mosquitto 作為 Mosquitto 的用戶端程式庫。但現在不用這個,改用 Paho 專案 提供的 Python 用戶端程式庫: Paho Python Client。此程式庫具有泛用性,連接對象不限於 mosquitto ,亦可連接支援 MQTT 協定的其他 MQ 服務。
MQTT用戶端入門之二,本文說明 JavaScript 用戶端的程式設計內容。
你的 JavaScript 寄宿環境必須支持 WebSockets 介面。 WebSockets 是 HTML5 規範項目之一,主要網路瀏覽器近三年的版本基本都提供 WebSockets 介面。 node.js 使用者請自行確認。本文範例將以瀏覽器為操作環境。
本文簡單說明在 Debian 8 上安裝 MQTT 實作品 mosquitto 的經驗。
MQTT 是用於遙測裝置或行動式應用程式之間傳送訊息的協定。它最早由 IBM 規劃實作,並在 2013 年提交給 OASIS (結構化資訊標準促進協會) 成為現在 IoT (Internet of Thing) 領域的訊息傳輸標準之一。
MQTT 通訊協定預期用於無線及低頻寬網路。可針對行動式應用程式可靠地處理遞送訊息的複雜性,並保持低成本地進行網路管理。 MQTT 用戶端程式庫比較小。程式庫如同郵箱,使用連接至 MQTT 伺服器的其他 MQTT 應用程式傳送及接收訊息。透過傳送訊息(而不是保持連接至等待回應的伺服器),MQTT 應用程式可節約電池壽命。 IBM WebSphere MQ 資訊中心 MQTT 簡介