2018年5月5日 星期六

Biking : 自行車道→華中橋

天氣狀況 : 晴
TRIP DIST : 27.77
TRIP TIME : 01:10:44
AVG. SPEED : 23.56
MAX. SPEED : 34.08

很久沒夜騎了,白天累積的熱量不少,又坐在沙發上昏昏沉沉的度過了一個下午,晚上選擇自行車道運動運動。

週六的夜晚,河濱不少人在散步、慢跑、騎車,甚至溜滑板,尤其是景美到公館那一段路,騎起來令人隨時都是精神緊繃的狀態,大大降低運動舒壓的效果。

快到馬場町,看到開闊的河面,喝個水,拍個照,緩緩前面那段緊張的心情。


一路來到華中橋,不想在昏暗的燈光下繼續前進,就由橋下折返。河水大概變低了,可以看到河床上的爛泥。看到對面一大片房子,拍了張照,沒想到減光後,快門變慢,一晃動,拍出的照片效果還特別的。底下貼一張正常版和,一張無心插柳的版本。


照相玩夠了,就一路加速回家了。

2018年5月3日 星期四

Biking : 明德宮

天氣狀況 : 陰雨
TRIP DIST : 9.99
TRIP TIME : 00:52:10
AVG. SPEED : 11.49
MAX. SPEED : 33.76

經過昨天誤闖渡船頭小路的考驗後,確定目前騎陡坡,雙腳是不會抗議的。傍晚雨停了,雖然氣溫有較低,倒是滿適合騎自行車的天氣。不過,天色較暗,只好選擇一個小時左右的行程。就以杏花林、明德宮為目標。

上一次騎貓空的山路至少超過兩年以上了,為了怕腳又抗議,一路輕齒而上。速度雖慢,讓自己的心也跟著踩踏的節奏慢慢沉澱。

久沒騎山路,有沒有差呢?答案是肯定的,上到杏花林,碼錶上的騎乘時間是35分34秒。這時間應該是花最久的一次了。


來到明德宮前,遠方的101濛濛的,此時我的心卻是如此清明。





2018年5月2日 星期三

Biking : 新店小粗坑

天氣狀況 : 晴
TRIP DIST : 25.50
TRIP TIME : 01:30:05
AVG. SPEED : 16.99
MAX. SPEED : 36.46

很久沒騎新店的小粗坑,看完舊的記錄,一趟要近二個小時,等到小孩有人可以陪,基本上要摸黑騎回家,週一正因如此而打消了騎乘的念頭。

好不容易痛了幾天的左下背痛解除了,昨晚發現換右背,有人在說,去騎車嘛!放在心上,多增加一點動機。今天天氣較好,雖已過了五點半,仍然決定騎一趟小粗坑。由於時間較晚了,選擇較短的路線,由恆光橋進,一壽橋出,再走中與路轉北新路,接上新烏路後,由新烏路右叉至永興路,進入小粗坑路以後,景觀與氣溫就明顯不同了。此時路燈已然點亮,一路上只見零星的幾位慢跑的朋友,少了人的壓力,多了大自然的氣味、聲音及美景。

由直潭路進入新潭路以後,天色明顯的暗下來。好久沒爬陡坡了,幸好新潭路這一段坡,在輕齒慢騎的狀態,安然的渡過。不過,本日最精彩的來了。

新潭路在最高點分為永業和金龍路,天色暗的狀況下,沒看清楚指標,居然由金龍路下滑,就這樣,一路滑到路愈來愈小,最後到了渡船頭。水岸邊有幾位釣客,對面則是燈光炫麗奪目的碧潭水岸



同樣是在新店溪,兩岸差那麼多。

稍事休息以後,該面對問題了。剛剛陡坡滑得很開心是吧!怎麼下來的,就怎麼回去!


只能輕齒慢踩了,反正終會回到踏錯步的那個地方。


夜幕低垂,遙望對岸的直潭水廠,只剩下點點明燈。

終於進入永業路,達到碧潭吊橋,熙來人往的吊橋讓人感到真真實實的回到城市裡了。

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 底板。底下分享一下作法。

 
© 2009. Design by Pocket