2017年2月6日星期一

Privacy Policy of "WifiDuck"

This Privacy Policy is meant to help you understand what data this app collects, why this app collects it and what this app does with it.

Information this app collects
"WifDuck" does NOT process or store any data on our servers.

Privacy Policy of "ContactSyncDuck for Facebook"

This Privacy Policy is meant to help you understand what data this app collects, why this app collects it and what this app does with it.

Information this app collects

"ContactSyncDuck for Facebook" DO NOT store any data on our servers.  NO data is processed and stored on our servers. NO device-specific information is collected and we DO NOT associate your device identifiers with the facebook id.

Why it is collected and how we use it

The facebook id is stored only on your device. This app use the facebook id to download the profile picture when this app runs on your device.

How the data is transmitted

The facebook id is transmitted to Facebook servers (not our servers) using encrypted https traffic. 

How to request data deletion

 Since we do not store any data on our servers. You need not request data deletion. You can delete the facebook id you entered in the note filed on your contacts whenever you want.

2017年1月9日星期一

Java Program存取使用 Let's encrypt證書的 SSL網站

為推動全網使用https,一群大機構贊助成立了 Let's encrypt為網站發出免費SSL證書。因為免費、安全、申請及更新全自動化等因素,可以預期越來越多網站會使用 Let's encrypt證書。

現時 Let's encrypt所發出的證書由 IdenTrust的DST Root CA X3作為根憑證,一般的較近代的系統及瀏覽器都已預設信任,認受性已很高。

不過,如果所使用的JDK版本較舊(Java 7 < 7u111, Java 8 < 8u101),而又有種種原因未能即時升級的話,在其運行的程式遇上 Let's encrypt的證書時便會發生錯誤:javax.net.ssl.SSLHandshakeException。

要解決的話,只需於 IdenTrust網站上下載 DST Root CA X3證書,匯入至有關 JDK的 cacerts檔案內便可:

1. 下載DST Root CA X3證書,儲存為檔案 DSTRootCAX3.pem,內容像這樣:
-----BEGIN CERTIFICATE-----
上述連結的下載內若
-----END CERTIFICATE-----

2. 以JDK內的 keytool程式匯入該證書至 cacerts內,例如:
/jrockit64_160_28/jre/bin/keytool -trustcacerts -keystore /jrockit64_160_28/jre/lib/security/cacerts -storepass changeit -noprompt -importcert -alias dstrootcax3 -file DSTRootCAX3.pem

當中:cacerts的檔案位置一般在以下地方,密碼為: changeit
{jdkroot}/jre/lib/security/cacerts

完成後,便不會發生 javax.net.ssl.SSLHandshakeException 錯誤了。

2015年6月17日星期三

同步Facebook頭像相片至電話聯絡人

電話嘅聯絡人可以存相片這個功能歷史攸久 ,即使以往嘅feature phone都已經有呢個功能。但相信一般人唔會逐個逐個為朋友影相再放入聯絡人,所以直至智能電話+Facebook的有機結合,電話聯絡人才會有較多機會有相片出現。

最初用HTC Sense嘅電話,入面我認為做得最好嘅就係聯絡人同Facebook嘅連結,因為一般聯絡人嘅名稱同Facebook friend嘅名稱唔相同,HTC Sense俾人可以手動連結,不單止咁,HTC Sense係會將有關的連結記錄(主要係facebook id)存儲喺相關聯絡人入面嘅備註欄位內。咁樣做嘅優點,就係即使你有日清除資料(如回復出廠設定)或換機(但只限同樣係HTC機),只要再同步,所有連結返晒嚟,唔洗再設定過!

後來轉了用非HTC Sense嘅電話,無咗呢個功能,但好在找到UberSync,識得認HTC Sense的記錄,非常好,一直用到今日。

但由於Facebook於1/5/2015開始強制使用新Graph API,而新的API限制程式取得Friend List,因此令市面上大部份使用Graph API同步Facebook頭像相片至電話聯絡人的Apps(如一直用開很好用的 UberSync)基本上變成無用,整個phonebook變回無相狀態。

後來發現,原來用facebook id下載用戶Facebook頭像相片係唔洗任何權限的,所以花咗啲時間,寫了ContactSyncDuck for Facebook 呢個App會讀取聯絡人內備註欄有facebook id的資料,再下載Facebook頭像相片至聯絡人。呢個App除了識讀HTC Sense所記下的連結記錄外,你亦可手動新增,格式為:<Facebook>id:facebookid</Facebook>

呢個App還有個好處,即使該人不是你的Facebook Friend,你照樣可以在備註欄新增該facebook id,一樣可以下載頭像相片。

至於點樣可以知道某Facebook朋友的facebook id呢?你可以開啟該人的Facebook page,然後用browser的檢視原始碼功能,搜尋profile id就可以搵到。但係簡單啲,可以用呢個網頁嘅功能去搵。

另外,如果該人更新了頭像相片,呢個App都會識得在下次同步時下載最新相片。

用咗之後,我個電話聯絡人終於回復番有相片嘅狀態啦!

2014年8月28日星期四

一個在Windows下處理非Unicode程式文字亂碼的茶包

最近遇到一部英文Windows 7要使用老舊Visual Foxpro程式處理中文字的個案。老問題,在Windows 2000年代已有答案,可以設定”非Unicode程式的語言“中,更改為中文(繁體,台灣)便可。個案中相關人員已作了上述設定,使用的程式亦可以正常顯示中文,但就是在處理copy & paste至其他程式時(即在Visual Foxpro程式內copy中文,再於其他程式內paste),會出現亂碼。

可能由於很少處理這類個案,一時也想不出辦法。最後得同事指點,原來在copy的時候,需要輸入法置於相應的模式,例如個案中,需要為電腦增加CH 中文(繁體,台灣)下任一輸入法,可以是中文(繁體)-美式鍵盤,再選用該輸入法後才copy & paste。

茶包射了,簡單記錄於此,以免日後再浪費時間。

p.s. 茶包 - trouble, 射茶包當然就係troubleshoot啦,咁troubleshooter咪就係茶包射手囉!

2014年5月26日星期一

使用Windows檔案系統加密 (Encrypting File System, EFS)必須注意的事項

話說自Windows 2000(更耐之前不肯定)開始,便為NTFS檔案系統提供加密功能(Encrypting File System, EFS),供用戶把硬碟內某目錄或檔案加密(檔案或目錄內容>進階>加密內容),由於使用方法實在太簡單,用戶不用為個別加密另設密碼,所以很多時都會令用戶忽略了一些重要事情,引致悲劇的發生....

簡單來說,當用戶第一次用EFS時,系統會為用戶產生一RSA證書。EFS會為每個要加密的檔案產生一條獨立加密鑰,使用該加密鑰進行對稱加密(因為對稱加密速度快很多),再以之前為用戶產生的RSA證書內的公鑰將檔案加密鑰進行非對稱加密,加密後的密鑰會與加密後的檔案內容一同儲存。每當用戶要存取加了密的檔案,便以RSA證書內的私鑰為加密鑰進行解密,再以解密後的加密鑰對檔案解密。


問題係,因為使用太方便,用戶很多時會忘記特別為上述的RSA證書進行備份。最後,當用戶為該電腦進行系統重裝(如Windows損壞重裝、以新安裝方式進行升級等等),重裝回來後便會發現一個不可逆轉的悲劇發生了:重要檔案(已加密)開啟不了!

呢個悲劇我見過很多次,亦發生過自己身上(好在那次數日後發現是之前無意中轉移過有關RSA證書至另一PC上),所以,如有使用Windows EFS,第一件事便是備份有關的RSA證書,方法也不複雜,可參考這兒這兒

希望有關悲劇不會發生在你身上!

2014年5月2日星期五

Android App - WifiDuck > 自動登入無線網絡熱點

我的第一個放上架的App,取名WifiDuck(duck在粵語發音與“得”相同,意即“掂”,鴨在粵語發音與"App"亦相近),可令Android機在支援的熱點自動進行web login,免卻人手開browser做登入。

主要功能

  1. 自動登入WiFi熱點
  2. 設定無線熱點至系統
  3. 通知鈴聲(可設)
  4. 探測互聯網方式(可設)
  5. 自動更新
  6. 多語言(繁,簡,英) 
期望未來陸續加入更多支援的熱點。