About me

我的相片
I'm a web and software developer from Kaohsiung, Taiwan.
I design and implement user interfaces, also contribute to open source projects.
http://penkia.net/portfolio

2012年10月19日 星期五

GPU acceleration!

I've got the GPU working on NOOK Color, and the port of Open webOS is now built with OpenGL ES 2.0, here's the video:

Technical details:

  • Built pvrsrvkm kernel module and took binaries from libgles2-sgx-omap3 package
  • Recompiled Qt with -opengl es2 and link QtWebKit against it
  • Configured LunaSysMgr with CONFIG_BUILD += opengl and some ifdef in file Src/base/windowdata/HostWindowDataOpenGL.cpp

What does this mean? Well, maybe not much, since the platform (TI OMAP3621) and GPU (PowerVR SGX530) is quite old, but I'm looking forward to hack more recent device like Nexus 7!

2012年10月14日 星期日

Open webOS on NOOK Color

I've built Open webOS (desktop) for ARM, and it's running on NOOK Color.

Downloads

Here's the binaries (142MB, the desktop version) and the whole rootfs (262MB, based on Ubuntu Precise armel), feel free to use if you want to bring Open webOS to other tablets with Ubuntu ported.

You'll need a simple start script like this:

mkdir -p /var/run/dbus   
dbus-daemon --system 

xorg &
export DISPLAY=:0 

cd /opt/build-desktop
./install-webos-desktop.sh
./service-bus.sh start 
./service-bus.sh services 
./run-luna-sysmgr.sh

Screenshots

2012年10月5日 星期五

Unofficial Open webOS liveCD/USB

UPDATED: added new download link

Download: openwebos-desktop-1005.iso (112MB)
MD5: 396dbd28dd08d337262821fec68be16c

I created an unofficial Open webOS Live distro, based on the desktop build and mkxpud for Ubuntu 12.04. It has bugs and only tested on Virtualbox, but you get the idea.

What's next

I'll work on following things

  • compile new kernel and add extra kernel drivers (targeting 3.2.0-23 for 12.04 LTS)
  • set boot parameter to /etc/palm/luna-platform.conf so you can configure gesture area, keyboard and resolution from boot loader
  • add new cookbook & recipe to mkxpud, and try switching to OE build to further strip down image size
  • Preware / Homebrew / quick install / developer mode in Open webOS?
If you find anything interesting and want to help, please do. Contact me @penk or #webos-port channel.

Notes on xPUD

I no longer maintain the old plate UI, but underlying system of xPUD is still actively developing. You can check out recent commits of added Google Chrome / Chromium support; SlateKit our reference UX for tablets, and right now we're working on Open webOS and maybe porting to Firefox Webian/Gaia.

2012年3月27日 星期二

s/Firefox/Browser/g;

Hey, we got on PCWorld, check it out.

Since Mozilla is working on its super cool B2G project, we don't want people get confused because of the brand/name, so starting today, we're replacing all the term 'Firefox OS' with just 'Browser OS' on xpud.org website and all future release notes.

I'm aware that the stable xPUD release hasn't been updated for a while (and yes, I'm fully aware of the stupid and retarded project name, but I was 17 when naming it). In past two years, the market and customers' focus are moving rapidly from netbook/desktop onto touchscreen and remote controller based devices, which is very difficult for project like xPUD to make a general format image and let our users to play with.

So what to expect next in the following month?

  • We'll make a v0.9.9 xPUD development release,
  • with brand new window manager and compositor
  • more touch friendly components
  • two gorgeous icon set: iconSweets2 and Entypo
  • and, a re-designed plate interface:

When we first started xPUD project back in 2008, there's no such OS-built-on-top-of-browser thing, and the major audiences are only netbooks. Now we have xPUD/xPad running on phone/tablet, handy Web API, and Open webOS team is going to release their authoring tool Ares next month! I'll say it's the best of times. :-)

2012年2月7日 星期二

以自由軟體實作的 Linux 中文手寫輸入法

移動裝置與觸控螢幕盛行多年, Linux 上的觸控鍵盤 (以前叫螢幕小鍵盤, on-screen keyboard 或稱 virtual keyboard) 千百種, 我自己也用 QML 寫了一個 qVKB, 可以在 Ubuntu 和 MeeGo 上使用. 但是講到 Linux 上面的 "中文手寫" 輸入法就不太常見, 大概跟開放原始碼的引擎商業化程度/辨識度不高有關係.

這兩天花了點時間蒐集資料, Nokia N9/N950 (MeeGo Harmattan 系統) 預載的中文手寫辨識引擎沒記錯的話來自於漢王, 搜尋了一下發現 OXPad 有很像 Tegaki 的展示影片, 沒看到原始碼 (大概辨識引擎也是商業授權?). 基於輸入法的實作還有 ibus-handwrite, 以及一系列用 Tegaki 改的輸入法面板 (panel), 包括 ibus-tekagi, scim-tekagi, oxim-tekagi..等等, 不過那是用 Python-Gtk 兜出來的, 兩欄式的介面也不好用.

研究了一下, 要達成初步功能似乎不會很難, 乾脆自己刻一個: qml-handwriting

  • 手寫區 (writing area) - 介面使用 QML 和 Canvas 完成 (Qt 4.7 以前要從 Qt Labs 安裝, 但 QtQuick 2.0 以後就內建了)
  • 筆劃偵測 (strokes detection) - 採用 Joshua Koo 以 JavaScript 實作的 ShortStraw 演算法
  • 辨識引擎 (handwriting recognition) - 使用 Tekagi 的 model 及 Zinnia 的 engine, 支援繁體中文、簡體中文及日文

速度及辨識度還可接受, 下一步大概會試著整合近輸入法面板, 在 xPad 裡預設安裝. 技術上可能可以把 Zinnia 的部份抽出來包成 QML plugin; 或進一步使用 WebKit Canvas, 配上 @timdream 超強的 ime.js. 總之原始碼以 LGPL 授權, 歡迎修改使用, 敬請不吝指教.

Update #1: 小帥提表示 ime.js 不再維護, 日後會整併到 B2G 專案的 Gaia 界面中.

Update #2: 來自 Nokia 的 @yinyunqiao 很迅速地將 qml-handwriting 移植到 Qt5 了, 有需要的話可以參考.