hits counter

Author Archive

會「推」的天氣站

事緣有天從iPhone看 Yahoo!天氣,明明十多度卻被說成三十多,實在氣死了。不少程式都直接從天文台的文字版本或是feed直接找天氣資料,曾幾何時也打算弄個Web Service把資料拿出來的,不過氣溫之類的天文台也不會說自己身處的地方的天氣,心想不如自己弄一套簡單的天氣探測裝置好了,於是便有了用Arduino實行這個計劃的打算。

Arduino是啥?Arduino其實是一套當初為了讓不諳電子技術的學生,以廉宜的價錢弄一些簡單的小裝置的一套平台。基本上這平台包括了一塊掌心大小的電路板,和用以寫程式的 IDE。只消把電路板經USB 駁上電腦,就可以透過Arduino IDE直接編寫程式和控制連上電路板的各種電子零件,諸如LED,發聲喇叭,馬達,甚至還可以加插擴展模組連上藍芽,LCD,GPS,甚至網絡的能力。

只要能駁得上就能玩,能改,是這套開源硬件平台的魅力。

不過香港的店舖,即使是鴨寮街,根本就沒Arduino電路板賣,從外國直接訂購又太昂貴,所以從大陸淘寶找。因為Arduino是開源硬體,電路設計圖可以從官方網站下載,只要有材料就可以弄一塊出來,使用官方的軟體編寫程式,所以網絡上也有不少合法的複製品。淘寶也有不少大陸廠商直接放板子和模組一併賣,只要挑個便宜,有信譽的,放個信用卡號,速遞就會把貨品送到家,非常方便(只是某速遞公司送貨到住宅區的收費不便宜)。

有時候買一點小零件,好像電阻,電容,LED,光敏電阻,簡單IC之類的訂購未免有點小題大做,便會直接去鴨寮街採購。有一家兩層的店材料和工具(例如剪線鉗和萬用錶)都很齊全,有時候還有特價,不過就是比較複雜一點的零件賣很貴,或是根本沒賣,這又得另外找一家國際電子零件商幫忙。幸好那公司的取貨點就在我公司附近,可以省下一筆可觀的運輸費。

初時也是門外漢,電子甚麼的除了初中教的簡單電路特性還記得以外其餘的都一竅不通。所以先著手砌一些簡單的小裝置,例如上面的光度探測器。以後再看網絡上的文章,技術文件等等,累積了不少電子零件上和電子訊號處理的知識(也間接了解到不少電腦硬體上的原理),便開始向製作自己的私人天氣站的目標進發。

Arduino 天氣站 v.1

Arduino 天氣站 v.1

起初參考了這個網站買了內文提到的探測器和其他零件,又用了跟Arduino一起買的Ethernet模組將這東西接上家裏的LAN,那麼即使電腦沒開程式Arduino也可以直接把資料放到網絡上。當初這東西只有自己的網頁伺服器,要看資料非得要到訪它,沒記錄功能又不會通知,不甚實用。後來在官方論譠「刨」文章看到原來有一套叫pachube的服務,可以讓用家上載由不同地方獲得的環據數據,便趕緊申請了來試玩。

Arduino 天氣站 v.2

Arduino 天氣站 v.2

後來,又將這套服務的數據傳到放在網頁伺服器(也就是這裏)的python script,靠它定時將資料從pachube扯過來發 twit。而且,這套script還會將資料儲到資料庫,那我便也可以跟天文台一樣繪製「溫度走勢圖」,「氣壓走勢圖」,「全年最高濕度」等等有用的資訊了。最近為了將氣壓的量度精度提升,把購入已久但一直沒接上的ADC (Analog/Digital Converter – 模擬數碼訊號轉換器)接上,順手為這迷你天氣站加了一個「個人」網頁,利用Google的Visualization API提供廿四小時的天氣走勢,更容易看出天氣變化。

當然我不會就此心足。除了將網站美化外,還打算將天氣站移師窗邊,取得更真實準確的天氣數據(現時在電腦正上方,太熱了)。但在這之前我想還是先搞好網頁,貼出更多有用的資訊吧。

話說如果超過某個溫度/濕度自動發twit也頗有趣的…

賭王老谷

被外人稱為「國際賭王」的老谷突然高調宣佈要親臨白家賭場消遣,L 城的人聽了都嚇一跳,然後都想在「賭王」造訪那天一睹這位聞名中外賭王的風采,於是原本已經熱鬧的賭場那天更是擠得水洩不通。賭場本身更是不敢怠慢,找來了營運主管,白家大兒子白發在正門親自迎接。白發殷勤招呼老谷,首先領著他四處參觀,讓他站在二樓的陽臺俯覽地下大廳,又親自講解鎮店的風水石雕和推介賭場附屬的一流餐廳和酒店的總統套房,弄得老谷好不高興,幾乎忘了來賭場的主要目的 – 賭錢。

於是,白發領著老谷到帳房換了籌碼,然後闢了在賭場大廳中央的一張賭桌開局。

「請問谷先生想玩點甚麼?」

「就來一局德州撲克吧。」

「很抱歉,」白發尷尬的小聲說,「德州撲克的規則我們都不太懂。我們有一款叫福州撲克的,據說規則跟德州撲克有點相似,不如谷先生屈就一下如何?」

老谷有點掃興。「那好吧,你可以教教我這…這福州撲克怎麼玩?」

「我們先來一局,大家邊玩我邊講解,好不好?」老谷心想,這分明是欺我不懂規則,先把我的賭注騙到手吧。但是在場少說也有數千賭客圍觀,為免有失儀態,唯有忍氣吞聲,啞巴吃黃蓮,就迫著答應了。

白發找來了資深荷官胡沖在首局當莊家,賭場常客也是白家好友的仇太也應邀出席坐陣。第一局就這樣開始了。

「原來這福州撲克跟德州很像,玩法真的差不多,對我來說上手應該不難。」老谷打量了一下佈局,暗忖道。這時老谷把黑桃 4 和6 摸到手。大家都下過注,公家開了紅心 K,黑桃 5 和方塊 9。「今天運氣真是不錯。」,老谷心想,另一邊把自己的賭注推到賭桌中央。

(待續)

令人緊張的聖誕

聖誕節又到了。

我不是不喜歡聖誕節。雖然天氣有點熱,但自己依然被周圍的氣氛感染。聖誕老人啦,聖誕樹啦,雪人啦,當然少不了聖誕禮物,聖誕派對和聖誕大餐。不過,聖誕節有種集體活動我不明白:迎接聖誕節為甚麼要倒數?

迎接新年來臨,除夕送舊迎新,自己所在的地方進入下一年的一瞬間,的確值得記念,慶祝一下很應該。聖誕又為甚麼要倒數?你生日有倒數過嗎?朋友生日有倒數過嗎?車公誕有倒數過嗎?國慶前一晚又有倒數過嗎?如果你真的為以上每一件事都煞有介事倒數一遍的話,你可能要去看心理醫生,檢查一下是不是患上了「倒數強迫症」。

只剩下聖誕老人和公眾假期的現代社會,我更搞不清為甚麼為聖誕倒數。難道聖誕老人上門送禮,吃掉你特意準備的牛奶和曲奇,也得倒數?「聖誕老人還有十秒…九…八…七…(略)…來了!歡迎你啊聖誕老人!禮物呢?」要是聖誕老人知道大家像是迎接使徒般嚴陣以待,一定會嚇得跑掉。

假期又不是十二月廿五號才有,難道就得為迎接這公眾假期期待著它到臨的一分一秒?那麼,每個星期五晚上其實也得認真的倒數一次。大病初癒一週年,搬址入伙三週年,結婚十週年,出獄十七週年,這些大事統統都得倒數迎接,不是嗎?

是因為那一秒,那一刻很重要,倒數才有其意義。聖誕整天都值得記念,感恩,却不是只有凌晨零時零分零秒才要慶祝。難道大家知道,耶穌在哪一秒冒了頭出來?

Google 的 DNS 服務

Google 最近推出免費的公眾 DNS 服務,在芸芸網絡服務商之中也算是前所未有。除了在全球各地廣設伺服器,用上一堆加快存取和增強保安的技術,就連 IP 也挑個易記的 8.8.8.8 和 8.8.4.4,可見他們也花了不少心思。

DNS 算是網絡不可或缺的服務之一,在你看見這篇文章,不論是直接鍵入 mk.netgenes.org 也好,從 Google Reader 經 feedburner 的 feed 看見也好,電腦已無聲無息的跟網絡上的 DNS 伺服器溝通,將域名翻成電腦懂的 IP 位置,最後經 TCP/IP 協定把資料扯回來,顯示在螢光幕上。

電腦在連上網絡的時候,就已經跟網絡上發送設定的電腦溝通好,自動把 DNS 伺服器的位置記下,不用使用者操心。所以,老爸老媽上網從來不用知道啥是 DNS,只知道把網址輸入 Firefox,按個 Enter 網頁就顯示出來了。這背後通常都是你的 ISP,為了便利等等原因,就預先幫你設定好的。既然如此,Google 又何須大費周章,另設服務 reinventing the wheel?

瀏覽速度是不是真的快了,沒有試過不敢亂評。不過有一點看 Google 往績,就是很會乖乖守規則。有些網絡供應商的 DNS 伺服器比較奇怪,當電腦詢問一個不存在的網址的時候,它不是照慣例送回正常的「找不到」訊息,反而會把使用者導向廣告網站,從中獲利。在某些地方,網管更可設定名單禁止使用者得知某些網域的 IP,效果便如同鎖網一樣,普通使用者進不了去。

由此可知,Google Public DNS 很可能是為將來 network neutrality 形勢不利自己的後備武器。Google 逐步推出網絡基本服務,原因便是要切斷使用者對傳統網絡服務供應商的「依賴」,那麼即使將來 ISP 真的搞分化,破壞互聯網的互連基礎,那 Google 也可以很容易轉變成為一家網絡頻寬供應商,不會被眾網絡商杯葛,從互聯網上消失。

DNS 甚為普及,連上互聯網必會用到。Google 可以利用這點,收集大家的網絡習慣。就算不用 Google 的搜尋器,Google 無時無刻也知道你剛去了哪些網站,對他們這班病態資料收集狂來說不是很美妙的事情嗎?

突然想起 Hyperion Cantos 裏的人工智能集合 Technocore。表面上它們為人類提供了無數好處:傳送門,武器,超光速技術,但暗地裏其實佔盡人類便宜,當他們牲畜而已。被 Google 暗中佔了便宜,是不是得不償失?

《新世紀福音戰士:破》觀後感

以下分 spoiler-free 及 spoiler 版本,先說沒劇透的:

  1. 中文字幕真的不行。連我這外行都看見某些地方譯錯,但同步率下滑才是主要問題!某些地方對白差不多遲了一整句,不專心會看得一頭霧水。所以,進場時請留心 :P
  2. 劇初英配感覺有點外行。英語是很正統沒錯啦,但感覺有點抽離。
  3. 內容則有點透不過氣的感覺。太密麻麻,比《序》還要急。劇情發展太快,來不及消化又來一場奪人觀感的戰鬥場片… 恐怕我已忘掉一些重要的地方。
  4. 一如既往,電影沒打算回答問題,僅僅只是製造更多問號而已。恐怕到四齣都上畫了庵野還是要大家把答案猜出來吧?
  5. 作戰場面氣勢不減,不過傳統武器今集都只是陪襯用(明明原作都是陪襯用),沒幾秒 EVA 就上場。節奏明快也急了,好像趕著打趕著收工的樣子。

那麼,到劇透囉!
Continue reading ‘《新世紀福音戰士:破》觀後感’ »

[隨傳隨貼]函館山夜景

基本上拍這種照片很容易,只要選對地方按快門就成。
Hakodate
某朋友說,在函館的街道上,絕對不會想到從上面俯覽下來會是如此風景。

Windows 與 UAC

微軟為了解決長久以來困擾 Windows 用戶的保安問題,在 Vista 裏加入了所謂的 UAC – User Account Control。簡單來說,程式如果要用到系統管理員才能用到的 API,例如更改系統設定,安裝程式,系統維護,設定防火牆等等,都必須經過 UAC 向使用者取得確認,那就是在螢幕上顯示詢問,「你要讓這程式更改系統設定嗎?拒絕還是接受」使用者要按「接受」才能讓程式繼續執行。

但是,由於牽涉過多 API,程式的流程裏就可能要用上十多次 UAC,反而麻煩了使用者。隔壁的蘋果也不忘在廣告挖苦對方一番,在廣告中 PC 連跟 Mac 說句話也得要身旁的保鏢批准。雖然現實沒麻煩到這個程度,但也夠擾人了。雖然微軟在 SP1 及後來推出的 Windows 7 大量減少詢問出現的次數,不過有時會因 API 的問題令某些程式不能執行。

其實,root cause 不是微軟 NT 架構不夠安全,而是其使用者和程式開發人員的不配合。Windows 曾經有兩大品種,其一是繼承 Windows 3.1 血統的 9x 系列,另一邊則是來自 Windows NT 4 的 NT 核心。9x 系列至末代 Me 都沒有多用戶的概念,作業系統僅設計讓同一人執行,程式亦 assume 執行者擁有更改電腦任何設定的權利。所以當微軟準備將兩系整合成家用商用皆宜的 XP,便曾考慮過將預設帳戶預訂為沒管理員權限的普通使用者。奈何很多來自 9x 系統那邊的程式都因為 API 大受限制停止運作,所以方案就此作罷。

在平衡兼容性和保安問題兩大因素,才出現了 UAC 這四不像。對比 *NIX 的 sudo,UAC 是跟軟件兼容妥協下的產物。UAC 除了影響正常操作外,也對保安沒甚麼助益。用戶遇著上千百萬個詢問視窗,難免養成一種不管內容是甚麼都按 “Yes”,”Allow” 的反射行為,不論是菜鳥還是資深用家也是如此。有些用戶嫌麻煩更索性關掉。即使 Vista SP1/Win7 已大大減少這類視窗出現次數,但這亦無補於事。

要改變這個死局,微軟不是跑去改善 UAC 的 User Experience,而是應該協助使用者洗脫惡習,戒除凡事每每用 admin 權限的習慣。既然也著手增強保安加入了 UAC 這擾人之物,何不徹底改革,將 admin right 改成如非必要不能動的帳戶?

我媽的電腦便是如此。她也是染上了「按 Yes/Allow/Next 準沒錯」的普通用戶,也許由於這樣她以前的電腦積滿了不少不明來歷的怪軟件。為她安裝新電腦我便做了個小實驗,將她要用的軟件裝好,再將她的帳戶降格為普通用戶。這樣我至少不用再為奇怪的軟件煩惱,她要安裝真的有用的軟件,也只要我幫她 Run as Admin – 也就是 Windows 的 sudo,就能解決。

顯然把 OS X/Linux 的一套學習過來套用明明就沒問題,但箇中有甚麼原因令視窗出現了 UAC,則不得而知。