分類
Javascript

雙北Youbike租借站即時資訊地圖

因為介紹 open data 與 google maps javascript sdk 的使用與實作 , 利用了台北市的 open data 與 新北市 的 open data 來進行雙北 Youbike 租借站即時資訊.

台北市的 Youbike 資料:
http://data.taipei/opendata/datalist/datasetMeta?oid=8ef1626a-892a-4218-8344-f7ac46e1aa48

新北市的 Youbike 資料:
http://data.ntpc.gov.tw/od/detail?oid=71CD1490-A2DF-4198-BEF1-318479775E8A

資料來源分別為(JSON type):
http://data.taipei/youbike
http://data.ntpc.gov.tw/od/data/api/54DDDC93-589C-4858-9C95-18B2046CC1FC?$format=json

其中台北市的資料 SERVER還有支援 CORS .

接下來就利用這些資料與 Google Maps Javascript SDK 來實作這個地圖了. 資料欄位都很容易理解, 其中使用不同顏色來表示租借站的狀態, 區分為可借可還 / 可借不可還 / 不可借可還 / 暫無營運, 而為能更容易借還, 目前可借為超過 2台, 可還也以超過 2個空位為基礎, 實際數字可點擊站點得知.

可以參考看看:
http://sample.diary.tw/youbike/

[2020/12/13 13:44]

由於原本的 data source 有問題, 已無法正常取得內容, 查找一下更新後的 data source, 調整如下:

台北市的由: http://data.taipei/youbike 改為 https://tcgbusfs.blob.core.windows.net/blobyoubike/YouBikeTP.gz , 而新北市的由: http://data.ntpc.gov.tw/od/data/api/54DDDC93-589C-4858-9C95-18B2046CC1FC?$format=json 改為 https://data.ntpc.gov.tw/api/datasets/71CD1490-A2DF-4198-BEF1-318479775E8A/json/?size=10000

調整 data source 後, 原範例頁的資料就能正常呈現囉:

https://sample.diary.tw/youbike/

分類
系統技術

在 Azure 上 Media Service的服務功能與應用介紹

剛在 Channel 9 上看到的, 很棒的內容分享介紹, 給大家參考:

互聯網流媒體架構設計模式與實踐 – 如何使用 Azure Media Service 構建端到端的流媒體服務平臺

https://channel9.msdn.com/Events/DevOps-TW/DeveloperDay/A02

微軟的媒體雲端服務, 基本上包含了完整的媒體應用時所需要的所有功能, 包含了 VOD, Live Streaming, DRM, Player 等, 而且也與原來的 Azure Storage 結合, 可以存放大量內容與上傳轉檔等功能, 另外播放器也十分完整, 可以在各不同平台上提供播放功能, 而傳輸的協議上也同時提供了 MPEG-DASH, HLS, Smooth Streaming (影片中提到的 Azure Media Player 連結: https://ampdemo.azureedge.net/).

這篇影音很清楚地介紹許多在開發人員面對要實作 Media service 時的應用情境, 可以讓大家在開發這類的應用服務時, 有更快速方便的工具.

另外開發的程式語言支援了 .NET, JAVA, PHP, NODEJS 等, 基本上在 Azure 的服務上, 就算是不支援的程式語言也可以透過 Restful API 來操作, 更容易讓開發者使用自己熟悉的語言來進行開發.

分類
系統技術

為Azure上的主機或雲端服務設定保留IP

在雲端的主機, 通常IP不一定是一直固定的, 尤其是在重新開機或關機後再打開, 其 IP 位罝會因為資源重新分派而變動 IP.

當然, 變動 IP 在一般的狀況下, 沒有太大的影響, 因為大多數的服務都是以名稱來連接, 走 DNS 的解析來連接到對應的主機, 所以即使變動也沒有太大問題.

不過有時需要固定的 IP, 尤其像是一些限制 IP 存取的服務時, 若是 IP 異動, 對於連接到這些限制 IP 存取的服務時, 就需要提供服務的廠商來進行調整, 若是因此造成一定時間的服務中斷, 就不是太理想了.

Azure 有提供保留 IP 的服務, 一共有兩種, 一種是 VIP, 也就是走 cloud service 出去的 IP, 另一種是直接對主機設定 IP, 稱為 ILPIP, 通常使用上以 VIP 的彈性較大, 也比較容易進行資源部署, 而直接對主機設定公用 IP 時, 有時會少了一些彈性, 不過也相對單純.

先來看一下價格: https://azure.microsoft.com/zh-tw/pricing/details/ip-addresses/, 正常狀況下, 提供了 5個免費的固定 IP, 若超過 5 個, 每個月會收約 92元(台幣, 也就是美金3元). 最多可以保留 20個 IP, 不過也是可以透過聯絡 Azure 服務來提高這個限制. (限制參考這裡: https://azure.microsoft.com/en-us/documentation/articles/azure-subscription-service-limits/#_subscription-limits)

這篇則說明了 ILPIP 與 VIP 的不同: https://azure.microsoft.com/zh-tw/documentation/articles/virtual-networks-instance-level-public-ip/

設定方式可以使用 azure powershell 或 restful api (https://msdn.microsoft.com/library/azure/dn722420.aspx), 若非常在異動, 或只是幾組設定, 可以使用 azure powershell 即可.

安裝 Azure powershell 可以參考這篇: https://azure.microsoft.com/zh-tw/documentation/articles/powershell-install-configure/

接下來就可以開始操作了:

分類
程式技術

Yahoo天氣RSS API需要驗證

之前的一個使用天氣 API 的專案, 因為 Yahoo RSS API 需要驗證, 變成非公開性的 API, 例如:

http://weather.yahooapis.com/forecastrss?u=c&w=2306179

目前會回覆:
Please provide valid credentials. OAuth oauth_problem=”OST_OAUTH_PARAMETER_ABSENT_ERROR”, realm=”yahooapis.com”

而無法順利取得內容, 經查找相關資料, 應該是 3/15 起, yahoo 這組 API 需要做驗證才能使用, 於是找了資料, 可以改用 YQL 的方式來查詢, 相容的查詢指令如下:

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20%20u=%22c%22%20and%20woeid%20=2306179

其中的 YQL 為:

select * from weather.forecast where u=”c” and woeid=2306179

即可獲得相容的天氣 API 回傳結果.

參考之前文章:
https://diary.tw/archives/1215

分類
懶得分類

Yahoo大聯盟服務是要停止了嗎?!

今天發現所有的 Yahoo大聯盟推薦購物都破圖了, 檢查一下, 原來是 SSL 憑證到期了, 不過 Yahoo 怎麼會沒有更新這個憑證呢, 真是奇怪. 到期日為 2016/5/4 7:59:59, 如下圖:

所以大聯盟網站也就進不去了, 把訊息貼出來:

親愛的會員朋友您好:

 

Yahoo!奇摩購物中心的大聯盟計畫服務因應Yahoo全球政策,在維運系統軟硬體無法符合現行系統規範考量下,將於2016/5/25起進行服務調整,將停止挑選廣告/挑選商品/推薦清單功能,影響範圍>及說明詳情請參閱大聯盟計畫 服務調整暨帳戶請款說明。

 

若您的推薦方式不受限於商品挑選/廣告挑選/推薦清單功能,相關推薦訂單記錄及成效查詢與線上請款功能仍可持續使用。也歡迎您利用相關功能繼續推薦購物中心商品給更多的使用者。

其中的”大聯盟計畫服務調整暨帳戶請款說明” 連結為: http://ypp-blog.tumblr.com/post/143204425299/大聯盟計畫-服務調整暨帳戶請款說明

看起來也不是會停掉, 不過不知公司內部的狀況如何, 只是沒有 SSL 要怎麼服務就不知道了, 真是奇妙.

帳戶還有餘額的朋友們也快去請款吧(只是請款還是需要透過那個 SSL 到期的網站進行, 也是很難處理), 不知之後還會不會繼續提供服務. 奇怪的處理方式, 真不像 Yahoo 這樣大公司的作法, 只能說一個怪.

另外因為全部破圖(因為SSL到期的關係), 所以在下方的Yahoo大聯盟推薦購物的部分, 也只好全部都下架了, 唉….

[2016/5/5 9:25]
今天早上來檢查一下, 憑證更新了:
當然網站也就可以正常使用了. 快來把推薦購物商品再放回去吧.

[2016/6/1 15:19]從上週四開始, 又破圖了, 而且後台介面中選商品的功能也都全部拿掉了, 看起來離停止這個服務的時間可能就不遠了. 只好再把下面的推薦商品整理一下.

分類
程式技術

如何取消Chrome瀏覽器會出現藍色邊框的狀況

同事問到, 在 Chrome 瀏覽器中, 一些特定的連結(應該是某些已自訂的 class 狀況下), 在點擊時, 會有藍色邊框(就是 focus時), 要如何取消這個功能, 這個部分在 Firefox 與 IE 都不會發生.

模擬的狀況如下:
上圖的左邊是都還沒有 focus 時, 右邊則是 pink button 在 chrome 瀏覽器下的 focus 狀態, 會出現藍框. 範例連結: http://sample.diary.tw/39/index.htm

如何取消這個藍框, 可以使用以下語法:

.b2:focus{
  outline: 0;
}

也就是在 focus 時, 把 outline 設為 0即可. 上面的範例連結, 其中 pink 為 b1 class, lightblue 為 b2 class, 所以 pink 會有藍框, 而 lightblue 在 focus 時, 不會出現藍框.

參考資料: http://stackoverflow.com/questions/20340138/remove-blue-border-from-css-custom-styled-button-in-chrome

分類
FreeBSD/Linux

使用wget進行網站用戶驗證方式

今天在設定一個排程作業, 要起動一支程式, 不過該 url 有限定使用 www 驗證的方式, 所以在排程中, 就要給定對應的帳號密碼.

查了一下資料, 可以使用以下語法:

wget [ur] --user=[user] --password=[password]

這樣就可以了, 其實還蠻容易理解與設定.

參考資料:
http://stackoverflow.com/questions/4272770/wget-with-authentication
http://www.ewdna.com/2012/04/wget.html

PS. 若是不要下載檔案, 可以使用 -O (大寫)用來指定輸出檔案至 /dev/null 即可.

分類
好用軟體

好用的Android APP-Llama定位與自動化程式

這個應用程式除了自動化外, 最厲害的地方是利用了基地台定位的方式來進行使用者所在環境的偵測, 為什麼這麼說呢, 相信用過許多自動化程式的朋友們應該知道, 若是要更省手機的用電, 於特定時間或特定地點的特定事件下, 可以關閉藍芽, WIFI 或 Data 與 GPS 等連線, 若要在這樣的條件下偵測地點進而變成 Profile 時, 這個 Llama 就很厲害了.

它是利用了基地台定位方式來判定使用者所在位置, 再來決定地點, 例如工作, 或家中, 就有不同的使用情境, 外出, 或咖啡館, 或圖書館等, 又是不同的情境, 再加上時間條件判斷, 就有組合出許多有用的功能了.

Android 手機下載: https://play.google.com/store/apps/details?id=com.kebab.Llama&hl=zh_TW

這麼強大的功能, 又能強化手機自動化的作業, 真是厲害的設計, 看他的評價就可以知道是很棒的一個軟體.

話說這款軟體好用歸好用, 不過介面可是十分 Geeker 的呢, 深入操作學習, 可以參考以下幾篇教學文:

[Android] 好用的 Android Llama – Location Profiles
http://ephrain.pixnet.net/blog/post/46812060

功能強大的位置設定軟體 – Android Llama
http://darkstorageroom.blogspot.tw/2012/01/llama.html

[教學] Llama – 讓草泥馬幫你完成手機自動化
http://apk.tw/thread-286109-1-1.html

分類
程式技術

Google Static Maps地圖實作

Google Static Maps地圖是用在取得地圖資訊時, 最輕量的使用方式, 之前文章: https://diary.tw/archives/1503 使用的 Google Maps Javascript API 需要引入 javascript library 進行程式操作, 在 Google Static Maps 則僅需要用到 img src 的方式取得圖片即可.

雖然只有圖片, 但是功能還是很強大, 而且應用在低階或網路環境不好的地方特別有用, 尤其是和地圖不互動的狀況下, 只是呈現結果的應用情境, 使用 Google Static Maps 是非常方便好用的.

Google Static Maps 資料可以參考官方網站:
https://developers.google.com/maps/documentation/static-maps/intro

記得一樣要先申請 Google API Key 來使用, 這裡用的就是 Google Static Maps API:

取得 API Key 之後, 就可以來應用了. 基本型如下:

https://maps.googleapis.com/maps/api/staticmap?parameters

其中 parameters 就是要繪製地圖的參數了, 以在地圖上某一地點畫一個座標為例,

https://maps.googleapis.com/maps/api/staticmap?center=25.052019,121.513987&zoom=15&size=320×240&language=zh-TW&maptype=roadmap&markers=color:red|label:A|25.052019,121.513987&key=[your api key]

其中 center 為地圖中心點, zoom 為放大層級, 以台北市為例, 15級或16級都OK, 看應用的狀況, size 為產出的圖片尺寸, 而 language 為地圖的語系, maptype 為地圖的格式, roadmap 為街道地圖(另有 satellite, terrain, hybrid), markers 為要標註的位置, 其中 color 為顏色, 用 | (pipe符號)區隔 marker 的參數, label 為單英數字標籤, 最後則是位置, 再來是最重要的 key 就是要輸入你的 api key, 效果如下:

這個地圖不能互動, 不過可以呈現所需要的資訊, 十分方便, 另外若是希望自訂 marker 的 icon, 可以將 markers 參數改為 icon:[url]|[position]的方式即可, 如下:

markers=icon:http://maps.google.com/mapfiles/kml/shapes/schools_maps.png|25.052019,121.513987

以上圖放到地圖中的效果如下:

另外, 若是想要畫出區域圖, 也可以用這個 Google Static Maps, 以之前文章 (https://diary.tw/archives/1503)為例, 座標點如下:
{lat: 25.0416515, lng:121.5437222},
{lat: 25.0333111, lng:121.543529},
{lat: 25.033116700000004, lng:121.5526271},
{lat: 25.036052399999996, lng:121.55267000000002},
{lat: 25.0374716, lng:121.55146840000002},
{lat: 25.038016, lng:121.5513396},
{lat: 25.0415348, lng:121.5474987},
{lat: 25.0416515, lng:121.5437222}

使用的參數就是 path, 語法如下,

path=pathStyles|pathLocation1|pathLocation2|… etc.

其中 pathStyles 有 wight, color, fillcolor, geodesic 4種參數, 其中 color 與 fillcolor 都是用 0xRRGGBBAA 其中 AA 由 00(不透明)到 FF(全透明) 這樣設定即可.

可以參考: https://developers.google.com/maps/documentation/static-maps/intro#Paths

產生的結果如下:

程式碼如下:
https://maps.googleapis.com/maps/api/staticmap?center=25.037789,121.547375&zoom=15&size=360×360&language=zh-TW&maptype=roadmap&path=color:0xFF0000|fillcolor:0xFF000033|25.0416515,121.5437222|25.0333111,121.543529|25.033116700000004,121.5526271|25.036052399999996,121.55267000000002|25.0374716,121.55146840000002|25.038016,121.5513396|25.0415348,121.5474987|25.0416515,121.5437222&key=[your api key]

十分好用, 但要注意不要超過 url 網址的長度上限, 參考舊文: https://diary.tw/archives/455, 在文件內說明也有, 不要超過 2048bytes: https://developers.google.com/maps/documentation/static-maps/intro#url-size-restriction

另外, 這組 API 每日免費上限為 25,000, 若要更多可以付費方式使用.

[2016/4/20 10:15]
補充一下自訂 marker 的部分, 必須是用 http 而非 https 的方式, 否則將無法正常輸出該自訂 marker, 參考資料:
http://stackoverflow.com/questions/12324996/custom-marker-icon-not-showing-google-static-maps-v2

分類
好用軟體

使用Google Spreadsheets進行自動翻譯

在開發軟體時, 若有多國語系的需求時, 可以請人翻譯, 當然也可以請 Google 翻譯, 不過一則一則翻譯太慢以外, 也不夠系統化, 有沒有更快速的方式呢? 有的, 可以使用 Google spreadsheets進行自動翻譯.

熟悉 excel 的朋友們, 應該不難理解使用公式來計算小計, 加總, 統計等功能, 在 Google spreadsheets 中, 有個 GOOGLETRANSLATE 函數, 可以用來做”計算”翻譯的結果, 使用方式如下:

GoogleTranslate(文字, 來源語言,目標語言)

所以若是要做自動翻譯也就容易了, 如以下畫面的設計:

其中的B2翻譯內容公式為:

=GOOGLETRANSLATE($A3,”zh-tw”,B$2)

其他B2:E9就只是複製這個公式就可以得到結果了. 範例檔案可以參考這個線上連結:

https://goo.gl/bejxJP

如何發揮更多功能, 看你的巧思了.

其中支援語言與代碼參考這裡:

https://cloud.google.com/translate/v2/using_rest#language-params

繼續閱讀:
http://www.playpcesor.com/2015/12/google-excel-translate.html