Profile cover photo
Profile photo
Charley Yao
56 followers
56 followers
About
Charley's posts

Post has attachment
Spark tutorial
要使用 Spark 之前,一般會先遇到 scala 這個語言的熟悉度的問題,當有了一定的語言程度後,再來就是 scala IDE 的選擇,目前的狀況,還是IDEA 會比 scala IDE for Eclipse 好用。接下來就是下載跟安裝 spark,然後進行 WordCount 的範例練習,以下記錄怎麼安裝與設定 stand alone 的 spark 開發環境。 要下載哪一個 spark 套件 當我們連結到 Download Apache Spark 時,首先遇到的問題,就是要下載哪一個 spark r...

Post has attachment
scopt: command line parsing library in Scala
在 Java 要製作一個 command line 工具可以使用 Apache Commons cli ,不過在 scala,有另一個更簡潔的 library: scopt,可以幫助我們製作 cli 程式。 libraryDependencies 根據 scopt github 的說明,我們應該在 build.sbt 中加上這樣的 libraryDependencies 宣告設定 libraryDependencies += "com.github.scopt" %% "scopt" % "3.5.0" 但我...

Post has attachment
OpenJDK
Oracle JDK 長久以來並沒有被追討授權費用的問題,但因為 JDK 本來就是以 BCL 授權,並不是整個 JDK 都是免費使用的,再加上 Oracle 開始追討 Java 授權費,企業客戶頭痛 ,所以要開始注意這個問題。 Oracle 取締未經適當授權的 Java 用戶 提供了如何安全地使用 Oracle JDK 的一些 hint,不過最根本的方法就是換成 OpenJDK。 OpenJDK 是以 GPL with Classpath Exception 授權,classpath exception 就是...

Post has attachment
D3.js 基本的使用方式 part 3
layout D3 的 layout: Bundle: 把霍爾頓的分層捆綁算法應用到連線 Chord: 根據矩陣關係生成弦形圖 Cluster: 聚集實體生成系統樹圖 Force: 根據物理模擬定位鏈接的節點 Hierarchy: 派生自定義的系統佈局實現 Histogram: 基於量化的分組計算數據分佈 Pack: 基於遞歸原型填充產生分層佈局 Partition: 遞歸細分節點數,呈射線或冰掛狀 Pie: 計算一系列堆疊的條形或面積圖的基線 Stack: 計算一系列堆疊的條形或面積圖的基線 Tree: 計...

Post has attachment
D3.js 基本的使用方式 part 2
update, transition 當資料會隨著時間變化,就需要動態更新這些資料,視覺處理以 transition 動畫展現。 d3.select("p")
.on("click", function() {

//New values for dataset 更新資料
dataset = [ 11, 12, 15, 20, 18, 17, 16, 18, 23, 25,
...

Post has attachment
D3.js 基本的使用方式 part 1
D3.js 在 2016/7/28 釋出 v4.0.0 版,現在已經更新到 v4.4.1,大部分的書本還是以 v3 為主,因此我們嘗試測試將書本的範例調整為 v4 版本。 D3.js 可以生成及處理資料,處理過程經歷以下的步驟: 把資料載入到瀏覽器的 memory 把資料綁定到 DOM 的元素,根據需要建立新元素 解析每個元素的範圍資料 (bound datum),並為其設置相應的可視化屬性,實現元素的轉換 (transforming) 套用使用者輸入的,實現元素狀態的動態過渡 (transitioning)...

Post has attachment
Scala Play Application for Production
開發時 activator run 啟動的是 DEV mode,會一直檢查程式有沒有修改過,如果有修改,就會自動編譯並 reload,但這個功能會增加 overhead,在 PROD mode 就不需要了。另外 PROD 環境產生的 error page,也不需要像 DEV mode 一樣有太多錯誤的細節。 Production 相關設定 Play 需要一個 secret key 用來對 session cookie 簽章,還有內建的加密 utilities。 application.conf play.cr...

Post has attachment
Websocket in Scala Play
Websocket 就是在網頁 http protocol 之下,再增加的一層封裝協定,目的是讓 client 建立長時間的 socket 連線,在不重新建立連線的狀況下,我們可以傳送更多即時的資訊。 根據 WebSockets 的官方文件說明,scala play 2.5版已經調整為使用 Akka Streams 及 actors 來處理 WebSockets。 以最基本的 String 資料格式為例,跟一般的 http Action 一樣,websocket 也是以 Controller 為入口點。 We...

Post has attachment
How to use XML in scala
scala 內建了 scala.xml 可以處理 XML,以下我們簡單測試了一下 xml 的功能,目前看起來,標準函式庫的功能就足夠應用的需求了。 產生及使用 scala.xml scala 可以直接偵測 < 這個符號,並以 xml 的方式處理,在程式中,直接把 xml指定給變數,就會直接產生 xml 物件。 scala> val xml = <store><item type="book">Novel</item><item type="pen">pencil</item></store>
xml: sca...

Post has attachment
Play JSON library
Scala Play 支援自己實作的 play.api.libs.json JSON Lirary 類別 JsValue: trait 代表任意一種 JSON value,以下這些是 extend JsValue 的 case classes JsString JsNumber JsBoolean JsObject JsArray JsNull Json 提供 utilties,轉換 JsValue JsPath 代表 JsValue 資料結構中的 path,類似 XML 的 XPath,可使用 patter...
Wait while more posts are being loaded