RoboVM:用 Java 開發 iOS 程式...

這一樣是在 OSnews 上看到的,RoboVM 釋出第一版 0.0.1:「RoboVM 0.0.1 released」,官方的新聞稿在:「RoboVM 0.0.1 released — iOS && Java == true」。

RoboVM 能夠將 Java bytecode 轉成 x86 或 ARM 的 native code,目前以 Android runtime class 為主。這葫蘆裡想要賣什麼藥應該很清楚...

我覺得這是個「有趣」的專案... 但不覺得會發展起來,畢竟兩個平台不是只有 code 的差異而已 :o

sitespeed.io 網站測速

sitespeed.io 是一個 open source 軟體,讓開發者可以測試網站的效能,然後輸出 html 報表:「Do you sitespeed?」。

執行需要 Java 1.7+ 以及 PhantomJS,我是在 FreeBSD 上跑 (Java 的部份是用 java/openjdk7),另外根據文章裡第三個 comment,在 Windows 上用 Cygwin 也可以跑。

./sitespeed.io -u http://ptt.cc/ -d 1 -o img 跑出來後會有一整個目錄的報告,包括了 summary 以及所有頁面的清單 (後面這兩個連結是跑完後用 s3cmd sync 丟上 S3 的):「ptt.cc - Summary of the sitespeed.io result」、「ptt.cc - All pages information」。

每一頁都有細項說明,像是首頁 /index.html:「Page data, collected by sitespeed.io for page - http://www.ptt.cc/index.html」。

不過我更感興趣的是 PhantomJS,不知道可以做多少事情...

Perl 版本的 YUICompressor (CSS 的部份)

看到 Booking.comYUICompressor 移植到 Perl 上:「Efficient CSS Compression in Perl」。模組在 CSS::Compressor 這裡,看日期其實放出來蠻久的了?

開發的起因是因為 Java 啟動速度太慢,所以用 Perl 改寫... 雖然只能處理 CSS 的部份,但因為現在 JS 的主力應該是 UglifyJS2 或是 UglifyJS,理論上是可以把 Java 版本的 YUICompressor 了放到旁邊了?

據開發者自己的說法,因為 Java 啟動的 overhead 實在太重,就算是處理很大的 CSS 檔案,也可以省 40% 的時間,如果是小一點的檔案甚至可以省一半...

Ubuntu 下用 MegaRAC 界面管理機器...

這個週末把之前在 Ubuntu 下不順的地方搞定... (之前是透過 VirtualBox 開 Windows 管理)

首先遇到的問題是 Ubuntu 下 Chromium 沒辦法開 jnlp 檔案 (永遠都是 Save as 視窗),所以用 Firefox 開流程會比較順。

再來是 Ubuntu 提供的 OpenJDK 無法讀取 MegaRAC 給的 jnlp 檔案,需要裝 Oracle 的版本,這部份可以透過「Oracle Java (JDK) 7 Installer」處理。

http://imgur.com/Wf8Ql

AWS EC2 全面支援 64bits,並補上產品線...

之前用 AWS EC2 的人常遇到的狀況是,t1.micro 記憶體太小會常常 out of memory (用 EBS 硬撐當 swap 效能不好),但 m1.small 只能跑 32bits,為他做完整的 32bits image 維護成本實在不划算,因為等到之後變大後又得改做一份 64bits 的 image,如果從 t1.micro 改用 m1.large 又嫌太大台...

現在這個問題總算是解決了:「Announcing three new Amazon EC2 features」,EC2 這次提供新功能包括:

  • 推出新的 instance 種類 m1.medium,收費是 m1.small 的兩倍,所以規格大致上也是 m1.small 的兩倍,其中記憶體是 3.5GB RAM。
  • m1.small 與 m1.medium 除了可以跑 32bits 以外,也可以跑 64bits。

於是本來的問題可以用不同方向解決:

  • 本來做的 32bits image 當 m1.small 不夠用時也可以先拿 m1.medium 擋著。
  • 既然所有 EC2 instances 都可以跑 64bits,以後只要做 64bits image 就好了。
  • 同樣的,現在用 m1.large 嫌太大台的可以降到 m1.medium 或是 m1.small。

另外這次提供 Java SSH client,可以讓你直接在 Web Console 上面一貫作業,這個就比較用不到了...

最近出新版的 Java 7 的 bug...

在「Java 7 Ships With Severe Bug」這邊提到最近出新版的 Java 7 有 bug,在 Solr 的警告文案裡面有提到這三個 bug:

由於有幾個 bug 是在 Java 7 正式釋出的最後階段被找出來,再加上制式流程的關係,即使會爛掉 (產生 SIGSEGV),Oracle 還是無法承諾下個 Update (也就是 u1) 會更新,只能保證在 u2 會更新:「sigsegv on porter stemmer (Lucene, but also otherwise)」。

在「Don’t Use Java 7, For Anything」這篇就更直接了,直接說 Java 7 目前是個不能用的 GA Product:

Don’t use Java 7 for anything (unless maybe you know you don’t have any loops in your java code)

先繼續觀望,目前跑 Cassandra 的機器還是先不要亂動...

Oracle 與 Google 的 Java 專利官司:先教法官 Java 是什麼...

Oracle 認為 Google 侵犯 Oracle 在 Java 使用的專利,而 Google 認為 Oracle 的專利不成立,所以兩邊現在在打官司...

但這牽扯太多專業問題,要了解專利本身的內容才有辦法判斷,所以兩邊的律師決定讓法官先知道 Java 是什麼東西,開兩個禮拜的課程讓 William Alsup 法官了解 Java 的背景與細節:「Judge In Oracle-Google Case Given Crash Course in Java」、「Judge in Oracle-Google case gets a lesson in Java」,引用其中一段:

Judge William Alsup of the U.S. District Court in San Francisco was given an overview of Java and why it was invented, and an explanation of terms such as bytecode, compiler, class library and machine-readable code.

成人速成班 XDDD