HTML5 Word Cloud to lost access to Facebook News Feed on April 30th, 2015

Since v2.x SDK, Facebook require apps to go through Login Review process if the app need to access to News Feed. I tried to submit HTML5 Word Cloud two times but repetitively I got the same response:

read_stream – Unapproved

The read_stream permission is only approved for apps that let people use Facebook on platforms where Facebook is not already available.
If you’re building an app on Android and iOS, for example, you won’t be approved for this permission. Web, Desktop and TV apps will also not be granted this permission.

With v1.0 SDK to be turn off on April 30th, 2015, that means the app will lost it’s ability to access people’s News Feed on that date.

HTML5 Word Cloud is a Web technology demonstration, it uses JavaScript/DOM to render user input in a tag cloud, all within the browser. No user data is collected because user data never leaves the browser. It’s all written in the privacy statement, and the code base is open sourced.

If you think this app deserves access to News Feed and you happen to know someone who could help, please point them to this post. Thank you.

Facebook 將於 2015 年 4 月 30 日停止提供動態時報內容給 HTML5 文字雲

v2.x SDK 要求 Facebook 應用程式經過登入權限審核才能使用動態時報內容。我試著升級 HTML5 文字雲從 v1.0 SDK 到 v2.x 並申請審核兩次,但是兩次的審核都被拒絕。因 v1.0 SDK 將於 2015 年 4 月 30 日關閉,屆時文字雲將無法再提供產生 Facebook 動態時報的服務。

HTML5 文字雲是一個 Web 技術示範,它使用瀏覽器處理內容,提供另一種不同的呈現。使用者的資料不會離開他的電腦。這些都完整的解釋在隱私權保護聲明,程式碼也可供檢視

若您認為 HTML5 文字雲值得繼續取得動態時報內容,且您知道有人可以幫忙的話,請將這篇文章傳給他們。感謝。

Grunt with QUnit setup on Travis-CI, with SlimerJS

QUnit running on Travis-CI, with SlimerJS

Due to performance considerations, I’ve removed IndexedDB dependency completely from JSZhuyin, the Chinese IME implementation entirely in JavaScript. The program now do searches entirely in the memory with pre-built binary data (the data is built with node with JavaScript too). In order to future-proof the development I’ve enabled Travis CI to run tests with SlimerJS too. For those of you who is not familiar, SlimerJS is the Gecko (Firefox) equivalent of PhantomJS, which allow you to control a browser instance (e.g. to run a QUnit test page in this case) with JavaScript API.

Why not PhantomJS?

For starter, I don’t hate PhantomJS because it’s not Gecko. I love the tool and it’s pioneering idea, but the shipping version lacks of a lot of browser APIs needed for my project to run. It does not come with Function.prototype.bind (reason given here); nor I have no idea the version of WebKit it is shipping with, given the fact it comes with ArrayBuffer interface but without other basics like Uint16Array. Since JSZhuyin rely on these interfaces to work on binary data, I would have to set up the CI with anything other than PhantomJS.

The setup

If you are looking to run PhantomJS and QUnit, the grunt-contrib-qunit task is so easy to set up and it’s probably not warrant a post here. For testing on SlimerJS, I’ve turned to the grunt-shell task instead and run it with a shell script. Without messing up the format of the post here, please refer to the actual setup:

The first problem I hit was that SlimerJS does not return exit code due to Gecko constant. tee the output to a file and grep it solve the problem. The last small glitch I encountered when I push everything to Travis CI was the fact $TMPDIR directary is not actually writable in their VMs; so I moved the temporary file to the working directory instead.


I hope this post will help you get everything running. Web testing and automation is a gigantic topic in which I’ve just starting scratching it’s surface; sometimes I wish there should be a simple tool where you could set it up and forget it, but I still enjoy the alternative process before that show up.





  • 驗算統一編號
  • 使用 @ronnywang 的台灣公司資料網站提供的 API,自動查詢並帶入公司全名。
  • 輸入公司名稱如果可以查到唯一的結果的話,自動帶入統編。
  • 輸入未稅價自動計算總價,輸入總價自動計算未稅價與稅額。
  • 顯示總價中文大寫。

預想的使用流程是把資料打進去,檢查正確之後把螢幕上的資料抄到發票上,避免錯誤。雖然說互動很簡單(連「送出檢查」按鈕都沒有),但沒有做過使用測試也說不上來這樣設計好不好用。至少,因為是 Twitter Bootstrap 版面所以可以說算畫面乾淨而且 mobile ready。

最後,做這個工具研究了一下才發現市面根本就有幾萬塊就可以打死的電子計算機統一發票的套裝解決方案 … 常開發票的話去辦那個還是比較方便吧。當然最好的情況是發票可以全部電子化,用手機上網就能開發票之類的。