2018年11月18日 星期日

Node.js : 安裝指定版本的 firebase-tools

前幾天想更新 Google Firebase 空間中的檔案,執行 firebase deploy 後,居然無法上載檔案。後來將 firebase-tools 更新為最新版以後,更慘~連執行都不能執行。後來一陣亂搞後,連 node.js 都玩壞了。

其實主因還是自己常用的電腦是跑 Windows XP ,node.js 已經無法安裝最新版,連帶的 firebase-tools 也無法使用最新版。

今天把 node.js 重新安裝,順便記錄一下用 node.js nmp 如何安裝指定版本的 firebase-tools。例如想安裝 v4.1.0 的 firebase-tools ,就執行:

npm install -g firebase-tools@^4.1.0

哇~這樣子可以安裝舊版的 firebase-tools ,那在 Windows XP 可以再上載資料到 firebase server 了嗎?

並不是所有的故事都是以歡樂結束的,答案是:「不行!」。

2018年10月30日 星期二

FFmpeg : 切割聲音檔

如果想將一個聲音檔或是影片檔切割,使用 FFmpeg 就可以輕鬆完成任務。

例如底下的指令:

ffmpeg -i input.mp3 -f segment -segment_time 300 -c copy out%03d.mp3

解析一下各參數:
  • -i 後面接的 input.mp3 是要分割的 mp3 檔案。
  • -f segment 指定以固定時間來切割。
  • -segment_time 後面接的 300 是指定每 300 秒為一個檔案。
  • -c copy 指定以原來的編碼來輸出檔案。
  • out%03d.mp3 是輸出的檔名,會以三位數字,自動編號的檔名。



除了用固定長度來切割,也可以用指定開始時間和結束時間的方式來切割,此部份在之前的另一篇「雄 : FFmpeg : 指定要加特效的時間點」中已寫過,就不再贅述。


相關文章




2018年10月18日 星期四

LimeJS : Install error : zipfile.BadZipfile

這幾年寫 HTML5 的工具,主要是使用 LimeJS 這個 HTML5 Game Framework。雖然它已經很久沒有更新與維護了,時至現在,還是滿好用的。

不過,由於 LimeJS 主程式 lime.py 中使用到的兩個工具網址已失連,導致在安裝時,可能出現類似下圖中的錯誤訊息:


或是這個錯誤訊息:


關鍵的地方我用黃色做上記號了。

這兩個錯誤訊息都是因為下載不到檔案而產生的。一個是發生在要安裝「Closure compiler」時,而另一個則是發生在要安裝「Closure Templates」。

既然只是路徑有誤,我們只要修正路徑以後,就可以繼續使用 LimeJS 來開發 HTML5 的程式囉!

LimeJS 的主程式 lime.py 放在 bin 目錄中,先以文字編輯器開啟以後,需要修正的檔案路徑如下:

1.有關「Closure compiler」的部份,找到

http://closure-compiler.googlecode.com/files/compiler-20130411.zip

改為:

http://dl.google.com/closure-compiler/compiler-20130603.zip


2.有關「Closure Templates」的部份,找到

http://closure-templates.googlecode.com/files/closure-templates-for-javascript-latest.zip

改為:

http://dl.google.com/closure-templates/closure-templates-for-javascript-latest.zip


為什麼「Closure Templates」用的是最新版的,而「Closure compiler」卻是採用 20130603 版?其實原來 LimeJS 的「Closure compiler」是要用 20130411 版,不過現在專案空間中已找不到該版本。那又為什麼不使用最新版呢?主要是之前使用時發現一個問題,用較新版的 「Closure compiler」,如果使用「精簡」的「-a」參數處理過的 HTML5 程式,在運作會不正常,因此,以測試過沒問題的 20130603 版來替代會較好。關於這一點,似乎沒有人發現。哈~有看到此篇人,算是撿到了!

關於 LimeJS 詳細安裝方法,在官網中已有「Programing Guid」詳細說明,就不再贅述。









2018年10月17日 星期三

LinuxMint : 解決發不出聲音

上週把舊筆電上的 LinuxMint 18 改安裝為 LinuxMint 19,在測試要給小孩玩的教學軟體後,才發現筆電的喇叭發不出任何音效。改用 Windows XP 開機,音效卻又正常。本來以為是 BIOS 太舊的問題,想辦法更新了 BIOS ,問題依舊。只好再重新認真的找答案。

後來用「linuxmint enable sound」的關鍵字, Google 到一部影片教人家怎麼更改音效卡的輸出設定。哈!在一臺聽不到聲音的筆電上看影片,只能看圖說故事囉!不過,有了大概的方向後,試了一下,真的讓筆電「開金口」了!

關鍵在這部筆電在安裝完 LinuxMint 19 以後,預設的設定,居然是「Off」,然後圖示並不是顯示為關閉的狀態,害我怎麼調音量都沒有用。

底下留一點筆記,以免日後又,「迷路」了。


1.先用滑鼠點一下 LinuxMint 19 畫面右下角「音量控制器」中的「混音器」



2.進入「混音器」(Volume Control) 的設定畫面以後,按一下「Configuration」


如果像上面的「Profile」被設為「Off」,就準備換為其它選項。


3.我將「Configuration」的 Profile 更換為「Analog Stereo Duplex (unplugged)」



4.換好 Profile 以後,就可以關閉設定視窗。


下面是更換 Profile 以後,音量控制選項的畫面



除了輸出,還多了麥克風的選項可以設定。最重要的是筆電在 LinuxMint 19 下,終於可以播放音效了。



2018年10月13日 星期六

LinuxMint : 中文化 chromium-browser-l10n

如果 Linux Mint 安裝完 Chromium 後,界面並不是中文的,沒關係,安裝  chromium-browser-l10n 即可解決問題。

打開終端機,並在裡面執行以下的指令:

sudo apt-get install  chromium-browser-l10n

安裝完,重新啟動 Chromium ,即可出現中文的選單與訊息了。

2018年7月28日 星期六

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

天氣狀況 : 晴
TRIP DIST : 34.91
TRIP TIME : 01:33:54
AVG. SPEED : 22.30
MAX. SPEED : 34.73

晚上七點多出發,一路上騎自行車的不多,跑步和散步的倒是不少。尤其是景美到公館特別熱鬧。在馬場町稍微休息以後,開始進入路燈較少的路段,只好放慢速度,更集中精神小心路上的行人。

昨晚因為太累而錯過了最大火星衝和月食,今晚的月色依舊美麗,在手機 Sky Map 的輔助下,找到了星空裡的幾顆行星,雖然有光害的情形下,金星、水星、火星及木星還是可以輕易的看出來,而木星就伴著天秤座呢!

過了華中橋下後,路變得更暗了,兩個年輕小伙子騎著公路車,從後面超車而過,還對著我耳邊大叫「加油!」,熱情到讓人覺得是挑釁。哈~被這麼一激,就一路往下騎,快到忠孝橋,追上兩個已經累的小伙子,他倆併排騎,哈!當然不用客氣的噹一聲示意超車,對著稍微呆滯的兩人輕聲說了聲「加油」,就這麼從中間超越。之後他們一直尾隨在後面。快到大稻埕碼頭,我放慢速度,他們才呼嘯而過。

假日的大稻埕碼頭很熱鬧,遠遠就可以聽到音樂聲和人聲。美麗的夜景當然也不在話下。


休息了近半個小時,準備要走時,才發現一旁的那群人原來是在看2008上映的電影「媽媽咪呀!」,好久沒看露天電影了,跟著在一旁看了一會兒。

電影播畢散場,不想再騎向黑漆漆的自行車道,改由水門出去,走車多的馬路回家。




2018年7月16日 星期一

Apps Script : TPET10 NFC 簽到系統


上學期期末時,好友原禎 (大學塾的站長) 提到想在 TPET 年會時,玩一下 NFC 的電子簽到系統,初步的構想就是讓學員擁有一張 NFC 貼紙,來上課的學員就拿貼有 NFC 貼紙的名牌,讓設置在講堂的 NFC 讀卡機「嗶」一下(感應),系統再進行名冊資料的搜尋,並登錄簽到的時間。這麼好玩的事,當然不可以放過囉!

為了方便資料的維護,及跨平臺的目標,我們採用了 Google 的試算表當資料的儲存空間,程式則是用 Google Apps Script 來開發。

系統運作大致如下:

前置作業:

試算表的部份
  • 在試算表中建置一個名為「users」的工作表
  • users 第一個欄位為 NFC tag 的 ID (格式建議設為文字,以免零開頭的編號被省略)。
  • users 第二個欄位為學員的姓名。
Apps Script 的部份
  • 填入試算表的 Google DOC ID。
  • 在程式碼中加入所有課程的清單。


程式主要流程:
  • 選定講堂進行的課程,送出課程代碼給程式。
  • 學員刷卡,送出卡號給程式。
  • 在試算表中「users」工作表的第一欄中搜尋和卡號一樣的那一行。
  • 在以課程代碼為名的工作表中登錄學員的卡號、姓名及簽到的時間;如果簽到資料已存在就以新資覆蓋。
  • 在刷卡頁面顯示學員姓名及歡迎詞,並等待下一個人刷卡。

如果沒有 NFC 貼紙和讀卡機怎麼玩?沒關係,可以用 Barcode scanner 加條碼;再沒有,就手動輸入編號即可玩了。

下面看看如何在自己的 Google 雲端硬碟中建置這個簡易的簽到系統。


2018年7月12日 星期四

Biking : 自行車道

天氣狀況 : 晴
TRIP DIST : 28
TRIP TIME : 01:30:00
AVG. SPEED : 18.66
MAX. SPEED : 32.27



滿天星斗的夜,蟲嗚環繞,微熱的風迎面吹拂。

2018年7月11日 星期三

Biking : 自行車道→光復橋

天氣狀況 : 晴
TRIP DIST : 38.6
TRIP TIME : 02:04:12
AVG. SPEED : 18.64
MAX. SPEED : 34.50

今年第8號颱風瑪莉亞由北部海域掠過,兩天的天氣狀況完全不同。樓上的小藍 Neveda 1.0 好久沒有出門了,特地扛它下樓遛遛。

一路由河濱自行車道騎到了光復橋才折返。雨後的自行車道還是老問題,滿多地方因為路旁的積水流至車道,車子一過,噴得到處都是,只好刻意降速。

太久沒有這樣高速的騎乘,加上從上週三起,一連開了六天的車,體力有夠糟,一躺上床就睡著了。

2018年5月23日 星期三

Life : 學習等待

每個人的資質不同,學習曲線亦不一樣。我們常常因為急於看到成果而不耐煩,也造成孩子們莫大的壓力,導致學習的效果更糟。

還記得4月28日小孩在學騎腳踏車,將座墊降低高度後,先讓她自己練習「滑步」。小女生腳力氣不夠,只好由我一手抓著椅子後面幫忙推一把。光一個滑步就練得兩個人滿身大汗,最後因為小女生害怕跌倒,進步實在有限,於是只好暫時休息,牽車回家。



休息了好一陣子,5月23日再練習,才複習十分鐘,大人在後面輕推,已經可以穩穩的滑很遠。開始嘗試加上腳部的踩踏,雖然一開始有一點協調的問題,多試幾次以後,孩子已經可以自己踩踏前進了。


看到孩子可以自己騎車,彷彿人生又往前邁進一大步了,內心的感動真的是無以復加。

學習等待應該是每個大人的功課。在對的時機學習,才能發揮最大的效果。孩子快樂、有成就感;大人看了也開心,何樂而不為!





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

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


雖然已經下午五點多了,自行車道的人車並不多,一路順暢。雲層厚,少了陽光,天色微暗,但沁涼的風迎面而來,相當的舒適。就這樣穿過一座座橫跨在景美溪、新店溪和淡水河上的大橋,來到了大稻埕碼頭。和兩週前的清明連假時的熙熙攘攘相比,雖然還是不少遊人,但是讓人覺得悠閒多了。

剛到碼頭邊,一架飛機正在航道上準備降落,手機掏半天,剛剛好捕捉到,運氣不錯!天快黑了,照片照完,隨即折返。

回程幾乎都是頂著風騎,雖然自行車道上的人更少了,不過,逆風騎,車速不增反降。



接近馬場町那段路,真的有夠直,想當然爾,風更大了。

過了公館,肚子開始餓起來了,哈~到了景美自行車道,就不自主的(明明是故意的)騎出自行車道,往夜市裡的豬血糕攤位騎去。一時的意志力薄弱,享用了美食,今天消耗的熱量應該又回填了吧!


 
© 2009. Design by Pocket