Diro's Journey

Programming Cooking Music Photography

平常 C++ 的開發工具是 Microsoft Visual Studio,然後現在的測試框架是使用 Google Test,以前都是一邊寫,一邊手動執行 test case 來驗證,沒有辦法跟 VS 內建的 Test Explorer 做整合,真的蠻原始的 =.=
最近因為 TDD 的關係,這樣子的開發環境真的太鳥了,所以認真研究了一下解決方案,發現了 Google Test Adapter 這個好東西:
https://github.com/csoltenborn/GoogleTestAdapter

很簡單,照著 github 上的說明安裝完後就可以使用。幾個要注意調整的地方:
  1. 原本它會搜尋結尾為 test / tests 的執行檔來分析裡面的 test case,所以如果你的 Unit Test 程式不是   xxxTest.exe 的話,請記得到 [TOOLS] –> [Option] –> [Google Test Adapter] –> [General] ,裡面有一個 Regex for test discovery,我是使用 UT_[\w]*.exe
  2. 在同一頁中還有一個 Working directory & PATH extension,如果你的執行環境不是在預設的 output directory,也請記得修改。
這樣子基本上就可以跑了,而且只要程式碼有重新編譯,它就會自動幫你跑一次 test case(Run Tests After Build 記得勾起來) 但還有幾個小問題:
  1. 修改 Unit Test Project 會自動跑 test case,但修改原本的 project 並不會被偵測到
  2. 希望可以每次存檔後,就自動 Build & Test ,這樣只要專注綠燈/紅燈就好了。
這個問題我是參考 http://stackoverflow.com/questions/33234498/automatically-build-after-save-for-visual-studio-2015,用 Visual Commander 來解決:多加一個 Visual Commander Extension

public class E : VisualCommanderExt.IExtension
{
    public void SetSite(EnvDTE80.DTE2 DTE_, Microsoft.VisualStudio.Shell.Package package)
    {
        DTE = DTE_;
        events = DTE.Events;
        documentEvents = events.DocumentEvents;
        documentEvents.DocumentSaved += OnDocumentSaved;
    }
    public void Close()
    {
        documentEvents.DocumentSaved -= OnDocumentSaved;
    }
    private void OnDocumentSaved(EnvDTE.Document doc)
    {
        if(doc.Language == "C/C++")
        {
            DTE.ExecuteCommand("Build.BuildSolution");
            DTE.ExecuteCommand("Test.RunAllTestsInSolution");
        }
    }
    private EnvDTE80.DTE2 DTE;
    private EnvDTE.Events events;
    private EnvDTE.DocumentEvents documentEvents;
}

完工,現在只要存檔,就會自動 Build,並且在 Test Explorer 看到紅燈綠燈了



在 LeSS 最後一天,聽到別的公司在導入敏捷時,也成立了很多很多的實踐社群 CoP (Community of Practice),其中一個是 心靈成長 CoP,讓我印象非常深刻,這邊來聊聊為什麼 :) 在第五項修練中,彼得聖吉一直在強調"整體": 「遠古的人類並未把自己跟所處的世界加以區分。那時的人類所看見的世界是一個未被打破的整體,人與自然合而為一。但不知自何時起,我們學會了區分自己, 視自己為分離的個體。我們刻意凸顯個人意識,強調獨立的意志、個人需求和個人的願望。這種自我意識的演化愈來愈強,我們也愈來愈與他人以及上帝所創造的萬物區分。 這對人類的演進而言,是福,也是禍。」 「在企業裡,行銷部門與製造部門處於對立狀態;第一線的管理人員對總公司管理當局懷有近乎憎惡的敵意;各部門的競爭更甚於跟同業的競爭。」 系統思考,講的是不要只看單一個體與簡單的因果關係,你以為你搞懂了整個公司的系統全貌,但從更高一個層級來看,公司也只是大自然中的一個小小個體。 而因為東西方哲學系統的差異、思考的方式不同,彼得聖吉很推崇東方哲學(從整體出發),深受釋儒道影響,也跟南懷瑾大師有許多互動:
南懷瑾與彼得.聖吉 http://www.books.com.tw/products/0010345971 而為了追求更高一個層級中的系統觀,我引用修練的軌跡中講的[天人合一],畫出了這三個層級: [拼命工作]-[系統思考]-[天人合一] 註:拼命工作,或可稱做 [頭痛醫頭,腳痛醫腳] 在[系統思考]出現以前,為了追求更好,唯一能作的就是[拼命工作],但當你的意識進化到[系統思考]這一層級時,就會發現[拼命工作]不一定是有效果的,你可能是在"成長上限"的基模中被困住了,你必需做的是觀照整體、找到 Leverage points 來逆轉整個系統。但是你跟意識停留在[拼命工作]這一層級的人講[系統思考]時,通常他會覺得你腦袋壞了,舉狼圖騰的例子來說: 牧場獵人:身為一個牧場的守獲者,我拼了命把這些狼全殺光不是最好嗎!!你竟然叫我不要打狼打過頭!?
一樣的道理,現在要從[系統思考]升級到[天人合一]這一層級,想必也是很多人無法接受的(就跟小說 三体 裡面不同維度的概念一樣..),但是彼得聖吉一樣先為我們跨出了這一步:
修練的軌跡(已絕版,幸好當年有買 XDD) http://www.books.com.tw/products/0010331986
推薦序:「第六項修練」是心的修練,是靈性的、感性的,是非理性的、沒有結論的。《修練的軌跡》讀起來也許比《第五項修練》更加「不怎麼容易讀」。但是,《第五項修練》的萬千讀者必能在脈絡當中讀出聖吉的苦心孤詣。他毫不吝惜地與我們分享更深層次的學習,在從腦到心的漫長旅程上,他舉一盞「U」型明燈,殷勤守護。
東西方哲學,各是兩個極端(整體與片段),看起來彼得聖吉很努力地把他們連結起來,令我佩服。也許有一天,我們會丟掉彼得聖吉的著作,反而直接從我們的釋儒道去體悟這些東西,看來真
的要來研究一下大學、中庸跟管子才可以了 XD
最後,回到一開始講的,我對於對岸已經開始進化往[天人合一]邁進,感到震憾..
這次裝潢的時侯,主臥跟客廳都採用了電動窗簾。客廳採用電動窗簾,最主要的原因是怕傢俱、木作久了會變色,所以想說用了電動窗簾,設定 schedule 後,白天就可以自動把窗簾拉上,增加傢俱及木作的耐用度。



但是這款電動窗簾其實並沒有 schedule 的功能,只有一個無線遙控器,因此只好自己來了 XD

原廠附的遙控器質感還不錯,是採用磁吸式跟掛架結合

我使用了 OpenHAB + RM2 Pro +RM Bridge 來完成第一步。

第一步 - 用 RM Bridge 來控制窗簾
http://rm-bridge.fun2code.de/
原本的 RM2 Pro 就可以透過它的 App 就來控制窗簾了,但 App 並沒有提供任何 API 或者 HTTP command 讓我們透過程式去操作,因此我另外用了 RM Bridge 操作 RM2 Pro。
RM Bridge 本身就有提供 learning code 的介面 http://rm-bridge.fun2code.de/rm_manage/code_learning.html,你可以自己定義指令名稱,然後按下原本的遙控器讓他學習即可。下面則是窗簾、投影機及布幕等學習完的指令清單。接下來只要透過 URL 就可以去發射遙控器訊號了。


當然,RM2 Pro 本身也有提供完整的 SDK,所以其實要全部自己來,不透過 RM Bridge 也是可以的。

第二步 - 整合進入 OpenHAB
http://www.openhab.org/
OpenHAB 是我目前最喜歡的 home automation 平台,因為各式各樣的 binding 非常豐富,從常見的 Philips Hue, Sonos, INSTEON,到 DAIKIN 冷氣,SAMSUNG電視,甚至我的音樂撥放器 SqueezeBox 都有。而一般 RD 最喜歡看到的 HTTP,TCP也都一應俱全,而且如果覺得不夠,也可以自己再擴充,真的是夢幻逸品啊 XD

這裡我是使用 HTTP binding 來跟 RM Bridge 整合。OpenHAB 最困難的地方是它的設定檔,官方網頁開宗明義就有說:很難學,但是很值得 XD

首先要把它加到 OpenHAB 的 item 中,以我的環境為例:
/opt/openhab/configurations/items/demo.items

在最後面加入
Switch  Curtain           "Living Room Curtain"                   { http=">[ON:GET:http://192.168.11.5:7474/code/openit] >[OFF:GET:http://192.168.11.5:7474/code/closeit]" }

這樣就多了一個 type 為 Switch 的 Curtain 物件,並在 ON/OFF 時分別會送不同的 URL

接下來要在 sitemaps 中把這個 Curtain 加進去:
/opt/openhab/configurations/sitemaps/homekit.sitemap

sitemap homekit label="Diro HomeKit" {
  Switch item=Curtain label="Curtain"
  Switch item=Screen label="Screen"
  Switch item=Projector label="Projector"
}

接下來啟動 OpenHAB 後,就可以透過瀏覽器看到:

這樣就可以透過 OpenHAB 去設定 schedule 來定時開關窗簾了。

第三步 - 整合 HomeKit bridge
https://github.com/htreu/OpenHAB-HomeKit-Bridge
最後就是要想辦法跟 SIRI 做整合了,只能說 OpenHAB 實在太強大了,貢獻者眾,竟然已經有人寫好了 HomeKit Bridge!!

因此只要正確的啟動,就沒有問題了
npm start -- --name "myopenhab-bridge" --sitemap homekit

如果平常沒有在用 node.js 的,應該會缺很多 package,基本上補一補就沒什麼問題了
npm install --save-dev babel-preset-es2015
npm install --save-dev babel-preset-stage-2
npm install stdio
npm install hap-nodejs
npm install ws


npm install debug
...

接下來最重要的是要安裝 eve  來編輯 HomeKit database。打開 eve 後,就會有設定介面,並且可以找到 myopenhab-bridge 這個裝置,加進去之後,就可以看到下面所有的設備啦(Curtain, Projector, Screen...)

接下來就跟操作一般 HomeKit 的設備一樣了,設定房間、設備名稱等,然後就可以用 SIRI 來控制他們了 :)


示範影片:





在做自動化 UAT 時,最常做的事便是拿 HANDLE,這在以前傳統的 GUI Framework 只要用 Spy++ 或其它開發工具都很容易做到。

但現在 QML 不一樣了,QML 裡頭已經沒有所謂的 window handle,比較接近的是 objectName,你可以用 objectName 來對該元件進行操作(get property, call method…),問題是要怎麼樣拿到 objectName 呢?最直覺的作法就是直接看 QML source code,有錢一點的可能是用 Squish 之類的工具去做。但是直接看 QML source code 其實是比較花時間的,而 Squish 則是價格比較高,因此我實作了一個 JavaScript Library 可以讓你在 UI 上顯示每個 QML component 的 objectName。

例如你的 GUI Application 原本看起來是這樣:



在呼叫了 LabelQML.addObjectNameFlag(this); 之後,它便會在所有有 objectName 的元件上顯示一個小紅點:



當你滑鼠移至小紅點上方時,便會在畫面中央顯示它的 objectName:

完整程式碼及範例:

https://github.com/diro/LabelQMLComponent

其實作法很簡單,基本上就是 recursive 去列舉所有的 component,並檢查是否有 objectName,若有則建立一個 dynamic QML component(小紅點),當滑鼠移至小紅點時,便會在預先建立的 displayBoard 元件中顯示 objectName。

 

 


一直都是使用 Robot Framework 來進行自動化的 UAT,但因為完整的 UAT 還包括了手動測試的部份,因此在 UAT 中 Test Case 的管理上就比較麻煩一點,可能完整的 test case 是存在 excel 裡頭,再由開發人員手動填入 Robot Framework 的測試結果。

這樣真的太低級了,這不但浪費時間、易出錯,而且很難管理啊,所以必需有一個更好的管理方式。

為了解決這個問題,我們導入了 TestRail。TestRail 是一套相當好用的 Test Case / Test Plan 管理系統,而且 API 相當完整,因此拿來跟 Robot Framework 整合真是再適合不過了。使用的流程為:

  • 在 TestRail 中建立Test Case
  • 如果該 Test Case 有對應的 Robot Framework 自動化測試 test case,記得在 test case 中的 Tags 欄位加上 CID:n,這個 n 便是在 TestRail 中的 CID(Case ID)

  • 當產品要進行完整測試時,便建立一個 Test Run,然後由 CI Server 呼叫 Robot Framework 開始進行自動化測試,接著再自動把測試結果更新到 TestRail 中對應的 Test Run Result 中(passed/failed)。接著團隊便可以知道還有那些 Test Case 未經測試(untested),只要針對這些 test case 去補足手動測試即可。

其中比較麻煩的便是 Robot Framework 的結果要如何傳入 TestRail,因此我們做了一個小工具來進行分析 Robot Framework 執行結果,並搭配 TestRail API 來進行更新,完整的程式碼已放在 github 上:https://github.com/diro/robot-testrail





我的AP都是可以刷非官方韌體的 XD


前一陣子新聞又在吵電磁波會致癌(「14國研究電磁波 世衛首承認 手機恐致癌」),雖然官方總是說無法百分之百證實,但我想能減少一些家中電磁波一定是會比較好的!


現在家裡電磁波會持續發射的應該屬無線基地台最普遍吧,雖然WIFI號稱低功率,但隔了牆還收的到訊號,我還是覺得....這功率應該不低吧!?減少無線基地台的工作時間,概念很簡單,但我連進 TP-LINK 的 AP 設定頁面後,卻找不到 schedule 設定(記得以前EDIMAX那台有),因此,只好使出大絕招,幫它刷成 DD-WRT 的 firmware 了!


STEP 1. 下載 dd-wrt firmeware


先到 dd-wrt 官網 http://www.dd-wrt.com/site/index 下載 F/W,進入 DOWNLOADS 頁面後,輸入 AP 名稱,我 這台是 TP-LINK WR1043ND,只要輸入 1043 就可以找到了。接著點下連結把 factory-to-ddwrt.bin 下載回來。


STEP 2. 更新


進到 TP-LINK 設定頁面,就像往常更新F/W 的方式,選擇 factory-to-ddwrt.bin 即可,在幾分鐘後,就可以看到 dd-wrt 刷機成功的畫面了


STEP 3. 設定 schedule


這才是最麻煩的部份,因為網路上也沒有資料,試了一會才研究出來:


1.先到 Cron 的編輯頁面,在 [系統管理] -> [基本管理] 中第五個 pane,就會看到 Cron


2.啟動及關閉無線訊號的指令是 ifconfig ath0 down/up,因此我們只要把 Cron Jobs 改成下面這樣:


00 00 * * * root ifconfig ath0 down


00 01 * * * root ifconfig ath0 down


00 02 * * * root ifconfig ath0 down


00 03 * * * root ifconfig ath0 down


00 04 * * * root ifconfig ath0 down


00 05 * * * root ifconfig ath0 down


30 06 * * * root ifconfig ath0 up


這樣每天 00:00 時就會切斷無線網路,直到早上 06:30 才會再度啟動。不過中間我讓它每個小時會再切斷一次,因為有時候超過 00:00 有可能會手動打開無線網路用一下,但可能會忘記關,因此半夜時就每隔一小時會再切斷一次。


如果你白天也不大會用到無線網路,可以再調整上面的 schedule


3.設定完畢,按下 [儲存重啟] 就可以生效啦!


設定完無線AP,我把NAS也設定了 schedule,桌機也不再 always open,除了減少一些些電磁波,也順便節能減碳一下囉 :)



rEFIt is a boot menu and maintenance toolkit for EFI-based machines like the Intel Macs. You can use it to boot multiple operating systems easily, including triple-boot setups with Boot Camp. It also provides an easy way to enter and explore the EFI pre-boot environment.

之前買了一台 Mac Mini Server 後,一直沒有幫它灌 Windows 7 上去,最大的原因就是它沒有光碟機,又無法直接用隨身碟安裝,在網路上找了很久都找不到好方法,直到我發現了rEFIT 這個好東西,它不 但可以讓 Mac 多重開機,更支援 USB 開機,也就是說..可以利用 rEFIT來用 USB 安裝 Windows 7~

下載、安裝很簡單,裝完後插入Windows 7 USB,重開機時就會進入一個選單(或著要按 option 鍵才會進入) ,此時選擇 USB Device 即可 XD 終於,我終於用隨身碟就完成了MAC及Win7的安裝。

http://refit.sourceforge.net/

國外也有不少人在討論:http://forums.macrumors.com/archive/index.php/t-667330.html

原本真的都 google 不到任何資訊,但只要 keyword 下對就一切都對了~rEFIT!現在 MAC Mini Server 開心的跑著 Win7 + MacOS


我希望有一個裝置可以讓我控制家中所有有紅外線的設備(冷氣、電視、MOD...),已經有一些商品化的產品,但是還是想自己做看看。


目前最流行的是用LIRC或Winlirc,不過看起來都是用RS-232的 solution,在現在這個年代用RS-232實在是不大中,我想要研究一下比較現代化的做法。



  1. USB IR 接收/發射器

    1. Tira (USB IR transmitter / receiver)

      1. http://www.home-electro.com/tira2.php



    2. USB-UIRT

      1. http://www.usbuirt.com/



    3. Implementation USB into microcontroller: IgorPlug-USB (AVR) 這個看起來很累人 Orz

      1. http://www.cesko.host.sk/IgorPlugUSB/IgorPlug-USB%20%28AVR%29_eng.htm



    4. 另一個看起來比較平易近人而且還有在maintain的 USB IR transmitter/receiver

      1. http://dangerousprototypes.com/2010/01/29/prototype-usb-infrared-remote-control-receivertransmitter/





  2. Project / Resource

    1. Linux Home Automation

      1. http://www.linuxha.com/athome/



    2. OpenRemote

      1. http://openremote.org/display/HOME/OpenRemote







花了一點點時間,終於把 FON 裝好了,不過身在14F的FON,我想應該是沒有人連的到吧。不過它Travel的功能還蠻吸引我的,也許以後比較普及之後,真的可以為自己留下一些回憶哦 :)

http://tw.fon.com/ 

http://www.dearhoney.idv.tw/?p=1005

還沒加入 FON 的朋友,也一起來支持這個計畫吧!

http://virt-dimension.sourceforge.net/

Virtual Dimension是一套虛擬桌面軟體,如果你常要開啟一堆應用程式,覺得工作列雜亂無章,也許可以考慮一下,你可以將應用程式分類,分別在不同的虛擬桌面執行。且Virtual Dimension支援熱鍵切換以及每個虛擬桌面使用不同的桌布,試用了一陣子,覺得很棒,而且不大佔資源,推薦大家 :)

Zoundry是一套相當方便的Blog發佈工具,我個人夢想要這種軟體很久了 XD,不然每次都要登入網頁,覺得有點麻煩,用AP來管理,感覺比較直覺 :)

http://www.zoundry.com/

Whether you're a beginner or active blogger, Zoundry helps you do more with your weblog: Recommend products. Drop in pictures. Tag your posts. Earn cash rewards for yourself or charities when readers buy from your recommendations.


http://www.foxitsoftware.com/pdf/rd_intro.php

Foxit Reader is a free reader for PDF (eBook) documents. You can view and print PDF documents with it.


Foxit Reader is small (the download size less than 1MB), so you can download it quickly. It doesn't need any lengthy installation, so you can start to run it as soon as you can download it.

And it starts up immediately, so you don't need to wait the annoying "Welcome" screen to disappear.

Foxit Reader is extremely easy to use, just double click it to start and then click open button to open your PDF document. If you want to print, click on "Print" button. If you want to setup the page layout for printing, select "Print Setup" from "File" menu.

Foxit Reader runs on Windows 95/98/NT/2000/XP/2003. It is provided by Foxit Software Company for free non-commercial use. This product is provided AS IS without any explicit or implicit warranty.

http://www.scitools.com/ucpp.html

身為一名程式設計師,常常要看別人寫的程式也是很合乎邏輯的,不過此時鈑手派不上用場,一套好的Source Browser才能助你一臂之力。在用了Source Insight及Unserstand for C++後,個人比較喜歡 Unserstand for C++,建議大家也可以試試。

Understand for C++ is a reverse engineering, documentation and metrics tool for C and C++ source code. It offers code navigation using a detailed cross reference, a syntax colorizing "smart" editor, and a variety of graphical reverse engineering views. Understand for C++ is an interactive development environment (IDE) designed to help maintain and understand large amounts of legacy or newly created C and C++ source code.
在一開始發展程式的時候,也許思考的不夠周詳,在事後需要去做重構的動作,在VS.NET 2005上,C#及VB.NET都已有內建的工具,但C++卻沒有,因此只好尋找3rd Party的產品,試用了幾套工具後,覺得Ref++相當不錯,簡潔有力!

http://www.refpp.com/

Ref++ is an add-in for Visual Studio that provides a powerful set of refactorings for the C++ language.

A refactoring being a transformation to your source code that does not change your program behavior.

The more obvious refactoring is rename. Let's assume that you want to change a class name. You'll have to replace the class name with the new name wherever it appears: the class definition, references to the class, forward declarations, name of constructors, name of destructor but without modifying other code elements that happen to have the same name. That is exactly what Ref++ takes care of. Furthermore it lets you view and validate the modifications before they are applied to your source code and even then you may use the Visual Studio Undo command to return the source code to its original state.

Other refactorings work pretty much in the same way, only that they are more complex and may involve more interactions with the user.
WebDrive 是一套將 FTP 掛載至磁碟機的軟體,對於常使用 FTP 的人來說相當方便。我在使用 Hamachi 時,使用網芳有時會出現沒有回應的情況,因此透過 WebDrive + FTP Server 後,就改善很多囉,還蠻方便的。此外,也可以將自己 Linux Server 上的 FTP 這樣掛載起來,超方便的!

http://www.webdrive.com/index.php?pg=./products/webdrive/index
http://www.reiji.net/iris/

IrisFilter 是一套 Photoshop 的濾鏡外掛,可以輕易讓你做出很完美的淺景深效果,還可以利用灰階來表達遠近,以呈現不同的遠近感覺。鏡頭也有多種可以選擇,如方形,圓形,星形等,效果相當不錯~

別人的範例:
http://edu.thu.edu.tw/phpbb/viewtopic.php?t=804
http://www.hamachi.cc/

What it is
With Hamachi you can organize two or more computers with an Internet connection into their own virtual network for direct secure communication.

Hamachi is fast, secure and simple. It is also free.

What's in it for me
Think - LAN over the Internet.

Think - Zero-configuration VPN.

Think - Secure peer-to-peer.

Access computers remotely. Use Windows File Sharing. Play LAN games. Run private Web or FTP servers. Communicate directly. Stay connected.
Volumouse provides you a quick and easy way to control the sound volume on your system - simply by rolling the wheel of your wheel mouse.
It allows you to define a set of rules for determining when the wheel will be used for changing the sound volume. For example: You can configure Volumouse to use your mouse wheel for volume control when the Alt key is hold down, when the left mouse button is down, when the mouse cursor is over the taskbar, and so on...
When the conditions that you define are not satisfied, your mouse wheel will be used for the regular scrolling tasks, exactly as before.

http://www.nirsoft.net/utils/volumouse.html
TaskSwitchXP is an advanced task management utility that picks up where the standard Windows Alt+Tab switcher leaves off. It provides the same functionality, and adds visual styles to the dialog and also enhances it by displaying thumbnail preview of the application that will be switched to. TaskSwitchXP also has a powerful process and window management capability that allows you quickly to close/minimize applications and their groups. The unique capabilities of TaskSwitchXP make it useful for tracking down multitudinous windows, and provide insight into the way Windows and applications work.

http://www.ntwind.com/taskswitchxp/
Home

ABOUT AUTHOR

Follow us

POPULAR POSTS

  • 先找對人,再決定要做什麼
  • 羅胖其實是在推廣敏捷 - 罗辑思维 147 激战中途岛
  • 八德。生態埤塘公園
  • [DECO 3] 裝修日誌 - 浴室磁磚#1
  • 最容易升級智慧家庭的配件 - Shelly 1PM 安裝說明

Categories

  • 2016 5
  • agile 3
  • Bike 4
  • Book 4
  • Cooking 1
  • DECO3 4
  • House 8
  • Interior Design 4
  • IoT 1
  • IT 7
  • Life 13
  • Photography 1
  • Programming 22
  • QML 8
  • Qt 9
  • Scrum 3
  • Software 19
  • Travel 9
  • UAT 1
  • Uncategoried 3
  • 喇叭 1
  • 裝潢 6

FOLLOW US @ INSTAGRAM

About Me

Popular Posts

  • 單車路線#5 - 大坑缺溪-秀才窩自行車道-梅崗
    沿大坑 缺 溪騎到鎮南橋後,直走接往中庸路,經過一小段爬坡即接往福羚路,再往接瑞溪路即可抵達楊梅愛買後方,接著往裕成路(五楊高架下方)是我騎到楊梅最喜歡的路線。裕成路到底後,便到達楊梅校前路,是熱門的自行車路線,校前路前行便會抵達這條路線的重點-秀才窩自行車道,這個路線會穿過小茶...
  • 八德。生態埤塘公園
    最近八德的這個生態埤塘公園很紅,不過我一直不知道他在紅什麼,因為我二年多前來時,明明就覺得很無趣,太陽大,沒草沒樹沒有人,今天再訪,才發現它已經整個脫胎換骨了~   今天是來騎腳踏車的,後車廂放了台小折真的還挺不錯的,開到那裡都可以騎   不過…..因為只有二台,所以Abby載威...

Advertisement

Copyright © 2016 Diro's Journey. Created by OddThemes