Stark Wong 的個人開發網站
 


 此頁面:更新於 2016 年 3 月 12 日 14 時 26 分 14 秒,頁面處理需時 0.0025 秒
 網站內容版權所有(C)Stark Wong。頁面(不包括檔案)可自由連結。網站系統版本 1.90-AngularJSBase (2015/9/27)
 
網站地圖

流動巴士版圖的新巴/城巴資料

請注意:目前流動巴士版圖的新巴/城巴資料仍然是有問題的,資料庫修正仍在進行中。


撰寫於:2017/5/25 20:33:07 / 回應已關閉
正在讀取回響內容...
流動巴士版圖 - 新巴/城巴資料庫

由於之前所說的情況終於發生了,導致目前新巴/城巴資料庫無法正常更新,現在正嘗試解決問題,不便之處請見諒。


撰寫於:2017/5/19 19:59:50 / 回應已關閉
正在讀取回響內容...
小熊條碼書籍資料程式更新

小熊條碼書籍資料程式本來做出來不打算會有什麼更新,不過由於有網友覺得有用並提供功能建議,所以我會有最近的時間對這個程式進行更新。這次更新由於比較耗時,所以會分為3個階段:

  1. 將程式改為可編輯並增加支援的欄位
  2. 增加香港書籍資料來源
  3. 增加備份及匯出功能

先說第一點,由於程式最初設計時並不打算可以修改,所以並沒有在收藏時儲存書籍資料,而且由於本來資料量少,所以儲存在只能存放大約 1MB 的儲存區中,進行修改時會將儲存方式改為資料庫,但由於本來缺少書籍資料,所以資料會在重新掃描 / 在歷史中選擇時編輯儲存才會更新進去。至於增補的資料欄有購買地點、價錢、借書予及備註。此項修改已於今天更新的程式中實現。

至於第二點,有網友回報程式無法找到香港書籍的資料,經一些測試後發現一些只在香港售賣的書籍在目前的資料來源中無法找到,我會在後台的資料來源中加入一個香港來源,大約需要一至兩星期。資料來源更新後不需要更新程式,只需要重新掃描/收集之前沒有資料的書籍即可。

最後一點是備份及匯出,如無以外備份功能應該會存放於使用者的 Google Drive 中,這樣的好處是即使手機損壞也可以取回備份,也可以在多個手機中使用備份的資料庫。而匯出則目前傾向使用 TSV (Tab 分隔) 格式匯出,這種格式應該可在 Excel 中正常匯入,至於直接匯出成 XLS / XLSX 則要視乎第三方程式庫的可用性而定。


撰寫於:2017/5/14 00:33:19 / 回應已關閉
正在讀取回響內容...
AR Madness 1.3.0.2 釋出

由於有網友回報 AR Madness 1.3.0.1 有影響使用的問題,所以今天釋出了修正版本。

這次的修正版本包括了以下項目:

  1. 修正所有記憶體回收的問題 (在 Visual Studio 用 Debug 模式執行會看到)
  2. 修正自動報下一行的項目會亂掉 (感謝 Tim Yuen 回報)
  3. 修正報站完成後在捲動中文時無法進行按鍵操作
  4. 在 BM2013 模式時捲動兩行中文時不應該顯示第一行字
  5. 優化:顯示報站文字時由使用費時的 GetPixel() 改為 GetBitmapBits(),可能改善某些系統捲動速度慢的問題

下載已編譯版本請到 GitHub:
https://github.com/starkwong/arm/releases/tag/v1.3.0.2


撰寫於:2017/4/17 00:35:02 / 回應已關閉
正在讀取回響內容...
有關流動巴士版圖目前的狀態

流動巴士版圖的資料庫向來都是從多個來源所合成的,然後最近有些來源的變化影響資料庫的可維護性,故需要先說明一下。
首先先列出目前各資料庫的情況:

九巴/龍運巴士:穩定 (準確度90%+)
新巴/城巴:不穩定 (準確度目前90%+,但只能有限度自動維護)
新嶼巴:全手動 (準確度不高於90%,預計以內)
地鐵巴士:全手動 (準確度不高於90%,預計以內)
愉景灣巴士:已停止提供 (因準確度已低於50%)

關於九巴/龍運巴士資料,以前是用全網頁方法取得所需資料,但自從最近的大更新後再無法提供足夠資料。幸運的是找到了另一個穩定性非常高的方法可取得所有需要的資料,至於準確度不足100%是因為時間表目前使用香港巴士大典的資料,但當巴士大典在路線資料生效當天晚上仍然是舊資料時就無可避免地會一直保留著舊資料直至有人回報為止。

關於新嶼巴及地鐵巴士資料:由於沒有提供足夠資料的來源,故目前的資料庫是以純人手輸入及修改,並未有改變這個做法的計劃。

關於愉景灣巴士:本來跟新嶼巴及地鐵巴士一樣手動維護,但因為路線重覆度太高且主要因為禁區關於無 Google 街景服務,以致基本無法確實知道巴士站的實際位置,故停止提供。

關於新/城巴:這個是現時問題的主要成因,本來此資料庫是透過網頁版+純文字版的方法取得足夠資料,然後最近的網站更新引致無法取得足夠資料
- 文字版網頁用來取得街道和分區資料,但目前更新成 nwp3 版本後不再顯示分區及街道,而舊版本的文字版網站已經停用
- 街道目前可用 nwp3 版本的車站資料 API 取得,但既不能批次處理而每次只能取得一個語言版本,以目前2184個車站來計算,若需要重新取得所有車站的街道資料是需要呼叫4368次API,這明顯是一個問題。
- 至於分區,目前已沒有任何方法可知道某個車站所在的分區,而分區搜尋無法直接列出車站,只能列出分區附近的建築物,而建築物本身與車站沒有直接關係,最多只能嘗試用坐標去估算一個車站的所有分區,然而若車站處理分區邊界是誤判機會應該很大。
- 一般路線資料目前使用 mobile api5 取得,但最新的 api6 版本的資料結構與 api5 版本完全不兼容。目前 api5 尚能使用,但當某天終於被停用時,將出現無法避免的變更
- Mobile api6 如同網頁 nwp3 版本一樣,所有路線不再直接提供變化資料,若要取得變化資料則需要每條路線再呼叫一次 API
- 網頁 nwp3 / Mobile api6 版本的路線變化不再以英文代號區分類型,只用變化序號,所以以後很可能會改成跟九巴資料庫一樣不再顯示路線變化 (但時間表仍會顯變化的資料)

但對於分區的問題,最近嘗試了用最近地標的座標估算車站所在的分區,可惜在測試的 2184 個車站裡有約 120 個估算錯誤,所以又是不可能的了。

至於離站時間查詢功能,由於該功能是用第三方的資料來源,而該來源也並非官方認可(正確來說不可能有官方認可),所以每隔一段時間是會有暫時失效導致不準時的情況,這個亦在我可控制範圍以外。但如果失效時間太長,我會考慮將功能停用。

長遠來說,流動巴士版圖應該繼續維護還是該完成歷史任務,這個是需要考慮的問題,畢竟以現在的科技來說,這個軟件的實用程度已大不如前,但維護成本(這裡指時間)卻越來越高。社群維護也可能是其中一個出路,但這個說起來容易,要實行考慮也很多...


撰寫於:2017/4/9 22:42:03 / 回應已關閉
正在讀取回響內容...
開源程式更新:AR Madness 1.3.0.1

由於有些網友希望 AR Madness 能支援新式報站機的顯示方式,故本月的程式更新就是 AR Madness 這個開源程式的功能增強及修正。

新版本的 AR Madness 主要支援可設定的中英文顯示字數,另外就是模仿新報站機的不停捲動模式。在修正方面,新版本修正了控制台在 Windows 7(?) 或以上系統無法顯示電源按鈕(但位置按下去有反應)及當顯示屏更新速度過快時會導致顯示線數重疊的問題。

還有就是新版本加入 Standalone.exe,這是一個簡化了的 AR Madness 只供報站機使用,這樣即使沒有安裝 MM2 的用戶也可以直接執行報站機插件。

新版本執行檔下載:
https://github.com/starkwong/arm/releases

專案頁面:
https://github.com/starkwong/arm


撰寫於:2017/2/26 23:56:45 / 回應已關閉
正在讀取回響內容...
新遊戲開源工具釋出

這個月放出的開源程式是一個新的工具,用來提取「大進撃RPG!シスタークエスト」手機遊戲的資源。這個遊戲是 SNK Playmore 於 2015-2016 年期間營遊的手機遊戲,現已關服。遊戲所用的引擎為 Unity 4,資源檔案亦是普通的 Asset Bundle,但試過幾個網上找到的工具都無法將資源檔中的個別檔案完全分離,於是就動手寫了這個小工具。

此工具可以提取外部資源(即下載的資源)的所有格式檔案(例如 wav, mp3, png, json 等),也可提取部份內部資源(即 apk 中 asset 目錄下的資源檔案,目前支援 wav, mp3 及 png)。

有關更多資料,可參閱以下連結:
專案頁面:https://www.studiokuma.com/home.php?page=tools/sisterquest
GitHub 頁面:https://github.com/starkwong/gameprojects-SQUnpacker


撰寫於:2017/1/30 00:41:40 / 回應已關閉
正在讀取回響內容...
本站舊程式將逐步開放源碼

隨著時間的過去,本站也有不少已不再維護的程式。有見及此,站長將逐步把舊程式的源碼上傳至 GitHub 供有興趣的人作為參考之用。首先上傳的是之前放在 Google Code 中的已開源程式,但這次上傳時會在 README.md 中加入程式的說明,目標是可理解程式的用法及編譯條件/注意事項。

目前已上傳的是 AR Madness,下次則預定是 MirandaQQ 系列的插件。以後上傳的除了是已發佈過的程式外,也會包含一些沒發佈過的工具,惟有些程式則不會公開源碼:
1. 目前在手機市場中還有更新的程式(例如流動巴士版圖 Android/iOS 版本)
2. 版權已轉移的程式(即小熊來電通知)
3. 可能有版權問題的程式 (例如 MagicTV 系軟件)

有關開源的程式清單及 GitHub 入口,請參閱開源頁面


撰寫於:2016/12/25 00:51:27 / 回應已關閉
正在讀取回響內容...
關於我現在的 LGL24

自從上次分享過用把舊版 Modem 韌體用在 LGL2410K 來突破網路鎖的方法後,我就再沒有寫過有關 LGL24 的資料,現在就來一個(應該是)最後的更新。

雖然我目前還在用 LGL24,但是直到現在我還是找不到能在官方 5.0 系統下可穩定使用的無網路鎖版 Modem 韌過。不過這並不代表 LGL24 沒辦法使用 Android 5.0,我的 LGL24 目前正使用 Android 5.1 且手機訊號穩定,只不過用的不是官方 Android 5.0 而是 CM12.1 (Android 5.1)。

手上還有 LGL24 而又想使用 Android 5.1 的朋友,可以在 http://pan.baidu.com/s/1sl0B81v 找到所需的檔案。

LGL24 要刷 CM12.1 主要有 3 個步驟:
1. 先在目前的官方系統下成功 ROOT 化 (Android 4.4/5.0 均可)
2. 刷上 TWRP 2.8.7
3. 刷上 CM12.1、LGL24補丁及 OpenGApps (請自行下載)

1. 將目前系統 ROOT 化
要將系統 ROOT 掉是因為第二步是要刷 TWRP,這個步驟需要從目前的系統進行。Android 5.0 用戶可以使用 Newest root method V03 來 Root,4.4.2 可以用 PurpleDrake-Lite (沒記錯的話)。不想先 ROOT 的話其實可以用 V03 裡附的 Send_Command.exe 來讓 bootloader 進入 Shell,在那裡也可以刷 TWRP (不過那個 Shell 不能顯示輸出,所以無法知道指定是否成功)

2. 刷上 TWRP 2.8.7
我網盤上附的 TWRP 2.8.7 是從網上下載的某個 APK 裡摘取出來的,我不直接提供該 APK 是有兩個原因,第一是那個 APK 最低安裝要求是 Android 5.0,故用 4.4.2 的用戶無法安裝,第二是那個 APK 不知道基於什麼原因除了 TWRP 外還會刷上不知來源的 boot 分區,經測試後發現會令 LGL24 的 Power 鍵及 Recovery 按鍵組合不正常。而多數人用的越南網站提供的 TWRP 由於版本過舊不支援 Android 5.0 的那種以 Block 來寫入分區的方法,所以不能使用。
要刷上 TWRP,首先將 recovery.img 複製到內建 SD 卡,然後輸入以下4個指令即可:
su
dd if=/dev/block/platform/msm_sdcc.1/by-name/recovery /storage/sdcard0/recovery.bak
dd if=/dev/zero /dev/block/platform/msm_sdcc.1/by-name/recovery
dd if=/storage/sdcard0/recovery.img /dev/block/platform/msm_sdcc.1/by-name/recovery

這4個指令,第一句是進入 root 用戶,第二句是備份原來的 recovery,第三句是將 recovery 分區清零,第四句是將 recovery.img 刷進 recovery 分區。

3. 刷上系統及補丁
刷好 Recovery 後,現在可以先將 CM12.1、LGL24 補丁及 OpenGApps (先自行下載) 複製到內建 SD 卡根目錄,完成後關機。關機完成後同時按著 Power 及音量-鍵,待 isai 標誌出現後同時放開兩個鍵後再立即再按著不放,直至顥示 Reset Factory Setting 的畫面,選擇 Yes 並確認後訧能進入 TWRP。在 TWRP 中先把 Data Wipe 一次(新安裝 CM12 必須),然後順序加入 CM12.1, LGL24 Patch 及 OpenGApps 後開刷即可。完成後重新開機即可。

用了超過9個月 CM12.1,整體來說算是穩定,已知小問題是有幾個:
1. Sony NFC 控制器無法驅動,所以無法使用 NFC 功能
2. Knock On 保持開啟,無法關閉
3. 耳機 / 藍牙音量限制失靈,大部份情況下會直接跳過限制,但偶爾限制會突然作用
4. 藍牙不是太穩定,在使用數天至數星期後 AVRCP 可能會失去作用,亦有可能會無法連接到藍牙裝置,需要重新開機

不過對比這些小問題,官方系統會在腄眠時把 WiFi 和流動收據同時關掉的問題實在比不上什麼,簡直要好多了....


撰寫於:2016/10/16 01:12:11 / 回應已關閉
正在讀取回響內容...
流動巴士版圖更新 + Android 7.0 多語言分析

iOS 與 Android 版本的流動巴士版圖 NG 最近幾天都迎來更新。

首先是 iOS 版本,這次是重大更新,主要是將介面及功能提升至接近 Android 版本,也就是刪除原有主畫面並回到以路線搜尋為主畫面,並將其他功能放在程式的右拉式選單中,同時亦增加附近路線、附近車站及預估離站時間功能。

至於 Android 版本,這次更新是要修正在 Android 7.0 介面無論選擇哪種語言均以英文顯示的問題,關於此問題的資料會在下面詳細說明,希望能幫助有同樣問題的網友。


技術說明:

問題背景:
由於 Android 系統最初的繁體中文語言只有「中文(台灣)」,但其後則續漸出現含有「中文(香港)」語言的機種,以致在資源使用 zh-rTW 這個慣常使用的語言時會在「中文(香港)」下顯示英文介面。於是,當時慣常的做法是將 zh-rTW 改成直接用 zh,令系統在任何中文語言(若程式要支援簡體中文時仍可使用 zh-rCN) 都會使用後備的 zh 資源來顥示,這就能讓「中文(台灣)」與「中文(香港)」語言使用同一套資源,不用分開維護。

問題成因:
Google 在 Android 7.0 首次加入語言順序及相依性的功能,有了這個功能,使用者可以選擇多於一種顯示語言,Android 系統會依照使用者的偏好順序選擇程式用來顯示的語言而不再局限於「國家->語言->預設」的順序。在這種修改下,「中文(香港)」會基於「中文(台灣)」,也就是說當程式沒有手動多語言支援時,只需要有 zh-rTW 的資源時,「中文(香港)」同樣適用。但是,從測試所得,當資源含有 zh 時 (即使同時含 zh-rCN 也一樣) 則無論是哪一種中文語系 (無論是台灣、香港還是中國) 都不會去使用,也就造成在 Android 7.0 下系統把程式當成沒有中文資源而永遠只用英文來顯示,即使系統語言設定裡只加入一項中文語言也一樣。我相信這是一個 bug 而不是內定行為,但礙於這個問題的局限性,我不覺得 Google 會修復這個問題。

解決方法:
要解決這個問題,需要兩個步驟:
1. 將 zh 的資源改回 zh-rTW,以讓 Android 7.0 能再識別中文資源,但這樣會令 Android 6.x 或以下無法識別香港語言
2. 以程式碼檢查 Locale.getDefault() 所得的 Locale 物件,當 language 是 zh 時,若 country 不是 TW 或 CN 時,以 Locale.setDefault() 將程式預設語系設成 Locale.TRADITIONAL_CHINESE,並透過 context.getResources().updateConfiguration() 修改 Configuration 的 locale 為 Locale.TRADITIONAL_CHINESE (Configuration.setLocale() 在 Android 7.0 已被標示過時,但還能使用)。至於 Android 7.0 建議改用的 LocaleList 對於這個問題則似乎沒有任何效果。這樣就能讓 Android 6.x 或以下系統改用 zh-rTW 的資源。


另外還有兩件小事,第一是本站(本人)的 Twitter 已重開,由於最近比較不想在網站貼文,所以比較無關重要或小事應會貼在 Twitter 上,第二時本站 Android 軟件「MagicTV 易錄寶」因某些突發原因被下架且無法修復,所以程式會暫時停止在 Play Store 發佈 (已安裝的使用者則仍可使用),待程式修改妥當後會以新的程式重新上架。


撰寫於:2016/9/18 23:17:51 / 回應已關閉
正在讀取回響內容...
其他較舊內容請移步至舊部落格版面