2018年4月22日 星期日

Biking : 石碇

天氣狀況 : 陰
TRIP DIST : 29.61
TRIP TIME : 01:39:01
AVG. SPEED : 17.94
MAX. SPEED : 40.14

早上將樓下的三部腳踏車整理了一下,稍好的下背痛更有感了,雖然看起來要變天的樣子,還是決定去伸展伸展。

太久沒往石碇,居然忘了由恆光橋側進入自行車道,只好從道南橋的入口滑下去。經過動物園,人山人海,遊客過斑馬線時,連地上畫的自行車標誌都不管了,只好自己小心的穿過人群。

106乙上的車子不少,空氣有一點糟,還好過了雙溪口,車流明顯減少了。本來想走淡蘭吊橋的,看遊客不少,還是乖乖的騎 106乙。路邊有兩叢油桐花,就停下來,順手拍了一下。


哈~這個季節不拍一下油桐花,好像不夠潮!

到了石碇東街,本來想買碗王家豆腐的豆花來吃的,看遊客很多,又沒人看車,就放棄了,下次再來回味吧!

回程時牽車走淡蘭古道,這應該是第一次走反方向的。


快到吊橋前,路中的大石頭上,居然有人將很多小石塊堆疊在一起,哈!還滿有趣的,彷彿是某種石陣般。心想不知是何方妖孽設陣擋道?讓它吃我的「瘋火輪」!


以前淡蘭古道沒鋪碎石子時,可以一路都用騎的,今天實在怕自己會因為一個不小心,復建變成拉傷,還是慢慢牽車較安全。不過,逆向的缺點是扛車的路段多為下樓梯,相對吃重些。

回家以後,休息了一下,早上的酸痛好多了,人還是要動一動才行啦!


2018年4月20日 星期五

Biking : 自行車道→大稻埕碼頭

天氣狀況 : 陰
TRIP DIST : 40.26
TRIP TIME : 01:49:09
AVG. SPEED : 22.13
MAX. SPEED : 34.45

昨晚坐在沙發上太慵懶,打了個小噴嚏,來不及坐正,左下背的筋肉一緊,哇!老毛病又犯。幸好不嚴重,偶爾像被「電到」的小痛,小小的刺激而已,這我已經是老經驗了(哈!有什麼好誇口的!)。下班後稍好了,騎車去大稻埕碼頭伸展伸展。



2018年4月14日 星期六

Biking : 碧潭→寶藏巖

天氣狀況 : 陰
TRIP DIST : 23.57
TRIP TIME : 01:10:41
AVG. SPEED : 20.01
MAX. SPEED : 33.77

這兩年多因為「髂脛束症候群(Iliotibial Band Syndrome, ITBS)」的關係,無法上山騎車,里程稍多一點,連平路都會發作。這樣一來,騎車的興緻都打壞了,登山車放到鏈條都生鏽。

上週三和朋友由景美騎到大稻埕,輕齒的狀況下,騎乘的時間應該超過二個小時,沒有造成任何痛感。加上這幾天有人看到我的肚肚,說到我似乎該運動一下了,早上還沒六點就醒來,索性爬起來將登山車簡單的整理一下,打飽氣後去扛車下樓,展開 2018 年登山車的第一次騎乘。

昨天下過雨,為了避開河堤內自行車道可能的積水,直接騎平面道路到碧潭。不過,沒想到這麼早,路上的車子還不少,吸了不少廢氣。

太久沒到碧潭,居然忘記吊橋的入口在哪裡,在新店捷運站旁的入口進入。沿著步道牽車,看到好多人在練功。其實很想停下來一起練功,哈~臉皮太薄了,只好繼續牽車前行。


六點多的碧潭不像平日的喧囂,到處都是人。晨間的人都在一旁練功、跳舞,不然就是在水裡划船、游泳,跑步的不多,騎起來悠閒,騎起來自在。綠地裡的小花看來特別嬌嫩鮮艷。

想想那些在夜間大放異彩,引人吸睛的水舞,在晨間都褪去五光十色的外衣,恢復成樸素的模樣


沒了夜幕,沒了觀眾,也只能這樣靜靜在岸邊隨波載浮載沉了。

離開碧潭,就一路加速,因為時間不夠,騎到寶藏巖,小休一下就折返,由自行車道回家。





2018年4月5日 星期四

Life : 家鄉的味道

硫磺味、玉蘭花香是我一輩子都忘不了的味道,因為它們打我小時候就深深的印在腦海中,那也是家鄉的味道。


硫磺谷是我回老家必經之處,不過說實在的,長那麼大,離老家麼近的地方,卻沒有印象有去步道走過。今天刻意在一旁佇足許久,看著熱氣飄渺,聞著熟悉的氣味,許多小時候的畫面跟著躍動而出。


老家庭院的七里香、玉蘭花依舊飄香


去年清明未見開花的高大木棉樹,花兒們又準時回來報到了


近五十年過去了,景物依舊,人事已非。




2018年4月4日 星期三

Biking : 自行車道→大稻埕碼頭

天氣狀況 : 晴
TRIP DIST : 40
TRIP TIME : 03:00:00
AVG. SPEED : ?
MAX. SPEED : ?

很久沒有騎長程的了,2018年第一次稍長的騎乘沒有騎登山車。加上配合朋友騎的 YouBike,輕輕鬆鬆的到了大稻埕碼頭,再原路折返。由於沒有馬錶,記錄是參考 2018.04.20 的里程。

大概是輕鬆騎的關係,膝蓋並沒有任何異狀,希望它們可以一直乖乖的。

2018年3月10日 星期六

DIY : 小兵立大功之遙控器按鈕回春術

最近電視機遙控器上的電源鈕老是不乖,一般來說,如果不是電路板壞了,大概就是按鈕導電不良。之前曾拆開並以 95% 的酒精擦拭過按鈕和電路板上的接點,有一點效果,但是幾天以後又變得很鈍。因為家裡沒有導電膠(漆),好吧!只好使出大絕招了。


剛好有帶背膠的鋁箔,剪了一小丁點,貼在按鈕的柱頭上。不過,因為接觸面太小,為了確保它不會脫膠,還是先上了一層白膠再貼上去,等白膠乾,重組完就大功告成了。

好了!本來不乖的按鈕,現在變成最靈敏的。小小一片鋁箔,救了一支差一點被拋棄的遙控器。



2018年3月3日 星期六

LimeJS : 存取物件的屬性

LimeJS 可以在 build 時利用 -a 的參數進入「ADVANCED_OPTIMIZATIONS」 mode,也是就幫我們把程式碼「瘦身」。主要就是將變數或函數名稱改短一點,處理完的程式檔案小很多。不過,以前遇過加了 -a ,產出的程式卻出現不明的錯誤而無法執行的情形。最近新程式中使用到 JSON 格式資料來匯出、匯入,加上 -a 參數 build 後所產生的程式碼無法正確的匯出、匯入我要的資料。想到「ADVANCED_OPTIMIZATIONS」會做的動作:「改變數名稱」,靈光一閃,找到兇手了!

先來看看 W3Schools 中提到如何存取 object 的 property:

The syntax for accessing the property of an object is:
objectName.property          // person.age
or
objectName["property"]       // person["age"]
or
objectName[expression]       // x = "age"; person[x]

我習慣用第一種方式,以點「.」來存取內容,例如:

nodes.lines

一但使用「ADVANCED_OPTIMIZATIONS」mode,名稱可能會被改變,例如:

a.b

這樣一來,我就沒辦法正確的取得我要的「lines」內容。

實證的結果是在存取物件時,使用 W3Schools 中建議的第二種方式,也就是:

nodes['lines']

語法改了以後,使用「ADVANCED_OPTIMIZATIONS」mode 來 build 的 LimeJS 程式碼就可以正確的執行了。



LimeJS : 在物件中觸發 input 的 click

上週在為「偷插電的資訊科學」「HTML5版圖形Graph繪製工具」加入匯入檔案功能是,一直卡在 input 元件無法於 Android 或 iOS 中以程式觸發 click 事件,明明是很簡單的指令,硬是動也不動。試了好久,才重頭研究筆順練習中的寫過的程式碼,結果是再度證明自己現在的健忘。之前 input 的 click 是放在 lime.Button 物件的 click 中觸發的,用 mousedown 或 touchstart 也是會失敗,已經忘了當時測試的過程,但是想必也是花了不少時間才有的成果。基於如此,還是趕快趁記得先將心得寫下,以免日後還要再花時間找答案,重點是以後不見得重頭找還找得到答案啊!

程序大概是:

  1. 建立一個 lime.Button 的物件(假設叫 myLimeButton)。
  2. 建立一個 HTML input 且 type 為 file 的物件(假設叫 inputFile)。
  3. 監聽 myLimeButton 的 click 事件,並將 inputFile.click() 放入程序中。
  4. 監聽 inputFile 的 change 事件,取得使用者選擇的檔案內容。

goog.events.listen(myLimeButton, ['click'],function(e){    inputFile.click();
   goog.events.listen(inputFile, ['change'] , function(evt) {
      ......
      ......
   });
});

在好奇心驅使之下,研究了一下 LimeJS 的 button.js ,Button 物件其實是先監聽 mousedown、touchstart和touchmove,然後去處理按下或放開按鈕時的圖片切換,裡面最後的動作是監聽 mouseup 和 touchend,並送出 click 的動作。

實驗了一下,如果不用 lime.Button 的 click 來觸發 input 的 click 事件的話要怎麼做呢?

哈!其實後簡單,就是不能將 inputFile.click(); 那行放到按下去觸發的 mousedown 和 touchstart,而要放在放開時觸發的 mouseup 和 touchend 中。

假設 myLimeSprite 是利用 lime.Sprite 建立的物件,程式碼大概如下:

goog.events.listen( myLimeSprite, ['mouseup', 'touchend'], function(e){
   inputFile.click();
   goog.events.listen(inputFile, ['change'] , function(evt) {
      ......
      ......
   });
});

或是

goog.events.listen( myLimeSprite, ['mousedown', 'touchstart'], function(e){
      ......
      ......
   e.swallow( ['mouseup', 'touchend'], function() {
      inputFile.click();
      goog.events.listen(inputFile, ['change'] , function(evt) {
         ......
         ......
      });
   });
});



2018年2月8日 星期四

Apps Script : PK 遊戲題庫產生器

上學期去宜蘭分享,看研習的老師們那麼認真,但有些學員又被遊戲題庫的參數弄得暈頭轉向的,提到了是否有遊戲題庫產生器的需求?大家的答案當然是:「要!」。

哈!自已挖的坑,當然得自己跳囉!利用 Google Spreadsheet 及 Apps Script 寫了一個「PK 遊戲題庫產生器」。這個工具所產生的題庫檔案除了可以給 PKPK2 兩個遊戲使用,也可以應用在使用相同題庫格式的其它遊戲,例如:王牌投手、籃球高手、搶救公主、打鬼......等遊戲


2018年1月31日 星期三

Apps Script : 批次查字典

教育部有好幾個線上辭典,直接使用網站只能一個個語詞慢慢查閱,而輸出的格式亦無法自訂。之前為了製作遊戲所需要的題庫檔案,以 PHP 寫了幾個小工具,可以批次查詢線上字典,並將結果轉為遊戲所需要的題庫檔。程式放在學校主機中,但是學校主機的資料又無法在家更新,為了解決這個困擾,決定好好研究一下使用 Google Apps Script 來完成任務的替代方案。花幾天的時間,把 Apps Scrip 的 UrlFetchApp.fetch 弄清楚了,利用它來模擬線上辭典的查詢動作,寫了一個可以批次查詢成語的小工具。


2018年1月6日 星期六

Flash : 開放瀏覽器讀取本機的設定檔

2016年9月曾經在「雄 : Flash : Flash Player projector」中提到捨網頁瀏覽器,改用Adobe 的「Flash Player porjector」來開啟 .swf ,不然使用較新版的網頁瀏覽器開啟我設計的 Flash 小工具就老出現錯誤訊息而不能使用,類似底下的畫面:


會有錯誤訊息的主要原因是瀏覽器中的 Flash 播放器基於安全理由,預設是不讓程式讀取本機的其它檔案的,這樣一來,我的程式就無法載入設定檔繼續運作了。

除了之前的方法,另外下載單獨的播放器來開啟 .swf 檔案以外,其實也可以透過較複雜的設定程序,修改「受信任的位置設定」,告訴瀏覽器內嵌的 Flash 播放器要捨安全管制,開放電腦中哪些目錄給播放器讀取檔案。底下就以 Chrome 和 Safari 瀏覽器為例,說明如何解除安全管制。

2017年12月30日 星期六

3DP : 白膠底板牢牢抓得住列印件

3D printer 在印東西時,列印底板能不能把物件牢牢的黏緊是很重要的關鍵,黏不牢,輕的話走位變四不像,重則可能最後只得到一盤「炒米粉」。但是物件被黏太牢而取不下來則又是另一種困擾,如果再加上自己急於取下物件而疏於注意安全,少不了皮肉痛,甚或有血光之災。

前輩們都建議在列印平臺上貼 3M 的「藍色膠帶」或是抹口紅膠。因為實在不喜口紅膠黏黏的手感,又捨不得買貴貴的「藍色膠帶」,以前都會到處去搜刮各種寛版的膠帶來試,雖然找到幾款黏得住的替代的膠帶,但還是覺得不夠牢靠。

2016年年初買了幾片 FR4(玻璃纖維)的薄板,後來試著在上面塗了有人建議的白膠,果真可以將列印件黏得牢牢的,而因為底板用的是薄薄的FR4玻璃纖維板,可以彎曲,因此在取下較大的物件時,會比硬硬的玻璃底板來得容易,可以說是滿不錯的 DIY 底板。底下分享一下作法。

2017年11月12日 星期日

Mac : 移除 CS5ServiceManager 更新的訊息

自己手動刪除了 CS5 ,但每次 OS X 開機時卻仍然出現  CS5ServiceManager 需要更新的訊息。找遍圖形界面,就是找不到刪除它的入口,只得好好的研究一下 Mac OS X 的開機流程,利用下指令的方式來移除 CS5ServiceManager。

2017年11月1日 星期三

Python : 在 Windows 安裝 OpenCV

使用 OpenCV 分析影片會使用到「cv2.VideoCapture」,同樣的程式在 Mac OS X 上可以執行,換到 Windows 上居然開不了影片檔,試了好久,才發現原來除了在 Python 中加入 OpenCV 的模組以外,還得加入 ffmpeg 的函式庫才行。記錄一下安裝的程序。

2017年10月28日 星期六

Windows 10 :Wireless LAN RTL8192DE driver

Lenovo G570 可不可以安裝 Windows 10 呢?經過實測是可以的,不過有幾個 drivers 可能要手動更新一下驅動程式。像讀卡機、顯卡 ...... ,只要將電腦接上有線網路,然後在「裝置管理員」中找到有異樣的裝置,對準它,按滑鼠右鍵選「更新驅動程式」,讓系統自動「上網」找最新的驅動程式即可。

哈!所以大前題是要能「上網」,不過,剛安裝完 Windows 10 的 G570 無線網卡的驅動程式在裝置管理員中是有「驚嘆號」的,明明有安裝驅動程式了,無線網卡卻無法用。沒關係,可以試試底下的方法:
 
© 2009. Design by Pocket