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

2013年5月21日星期二

SlateKit Shell - 內建中文手寫輸入法的 WebKit 瀏覽器

就像去年「以自由軟體實作的 Linux 中文手寫輸入法」一文中所證明的,完全用自由軟體可以做出足堪使用的手寫輸入法。經過一年來的沈澱、將查詢程式拆解成 Zinnia 模組,並將輸入判斷程式移植到 Qt5/QtQuick2,目前最新的成果:

內建中文手寫輸入法的 WebKit 瀏覽器

SlateKit Shell 是一個完全由 QML/JavaScript 寫成、專為觸控介面最佳化的行動瀏覽器。有「側邊展開」的分頁功能、自定的「彈出式選單」以及「開啟新分頁」事件等等;歡迎至 Github 下載來測試使用。

客製化你自己的 QML 虛擬鍵盤

若你有在 QML 中使用螢幕鍵盤的需求 (無論中英)、執行環境又沒有輸入法框架的話,可參考 SlateKit 實作的一系列 IME 模組,更多資訊請參照專案的「Customize QML Virtual Keyboard」頁面。

敬請指教!
penk

2013年5月18日星期六

SlateKit Shell - A Qt5/QML WebKit Browser with Sliding-Drawer UI

This is a project I dream to have for almost two and half years, now I finally have the time and right tools to make it.

Why does it look like a drawer? Can't you make something new?

Even though Navigation Drawer pattern is quite trendy nowadays, but this was extremely influenced by the three-year-old Chromium OS tablet conceptual mockups. When I started this browser project, I set up a few goals to follow:

  • Explore layout and user interface design possibility
  • Make a Touch-First control, then add desktop support if needed
  • Write it entirely in QML and JavaScript, to see how far it goes

QtQuick looks like a perfect tool for UI prototyping, and I wanted to learn how it holds up without C++ glue code, custom Model or any other plugins. It turns out pretty okay.

What kind of features does it have?

Apart from the side-tab support, we have some basic features:

  • Custom Popover for select elements and inputs
  • Historical search suggestion and highlight using QtQuick.LocalStorage

Wait a second, is that a virtual keyboard?

You're reading it right! Shell comes with a modularized keyboard (using the Fakekey plugin), this makes it possible to be running as a self-host standalone kiosk-mode application, without using any input method engine or window system, on any touchscreen device comes with a Qt environment.

What's next? Conquer the world? Put it back to shelf and move on?

I think porting it to Ubuntu Touch (and platforms like Mer/Sailfish OS or Hawaii Desktop) with their SDK/Components seems to be a reasonable target. And I will work on small form factor for sure.

Please get it from Github, play with it, feedback/bug report/patch are more than welcomed! :-)

Best,
penk <penkia@gmail.com>

2013年5月8日星期三

Minimal QtWebKit Kiosk and more

Here are some of my WebKit weekend projects..

31MB QtWebKit Kiosk distro

A minimalism distro built on uvesafb and Qt 4.8.4 QWS, Ubuntu Raring based: kiosk-060513.iso. Qt 5.0.2 with DirectFB QPA is on the way.

QtWebKit browser with Sliding-Drawer Tab UI

Written in pure QML and latest QtQuick2 API, check it out on github.

Virtual Keyboard with QML WebView

My SlateKit IME plugins (with English/Chinese handwriting input) is now fully integrated into QML WebView, without using any im server nor im-module.

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. :-)