Download - Java script 全面逆襲!使用 node.js 打造桌面環境!
JavaScript 全面逆襲!
使用 Node.js 打造桌面環境!
Fred Chien
我是誰?
Who Am I
Fred Chien錢逢祥
首先要來發表消息
Announce
不再是 永遠的大四生大學不只讀七年,最終,我被退學了。
最重要的是
The Most Important Thing
第一個
First
於國際舞台發表 退學宣言
中央研究院國際會議廳
感謝 COSCUP 鼎力相挺!
Thanks COSCUP!
So ...改行
Businessman奸商
BUT但是
Open Source DeveloperI'm A GEEK!
cfsghost At gmail.com
Blogfred-zone.blogspot.com
Startup in TaiwanMandice Software.
MANDICE.COM
CEO, Mandice
StartupMandice Software.
StartupMandice Software.
慣 CC Language
Fanatic
救火Mission
Impossible惡搞
Hacking
創新Innovation
慣 C
救火 惡搞
創新
StartupMandice Software.
慣 C
救火 惡搞
創新
JavaScript
回到主題
Focus
JavaScript
Why?
Why Not?
過去我們看到很多大神
很強
真的很強
OS
OS系統程式
OS系統程式
桌面環境
OS系統程式
桌面環境
原生應用程式
還有 A ~ Z 開頭 的各類技術
可能超過 60+
無所不會
Know Everything
變態
Freak
超級變態
根本是 X 魔等級的
像我這種 慣 C 哥
都只能靠邊站
淪落於追隨者
但你可能不知道
You DON'T Know It
這些大神光鮮亮麗外表之下
螢幕上常常也是
你已經死了
YOU HAVE DIED.
大神和我們之間的差別
...
我們
聖光啊
!!!
!@#$%^&*(orz
大神
...
我傷得很重。
!@#$%^&*(Orz
同樣是躺
開發程式本來就不簡單
用低階語言更難
難以想像的好奇號機器人
開發所需時間更久
想想看
Think About It
所有鬼東西
UI、系統、底層、驅動.... blah
只用 JavaScript
有多麼舒服?
當然 JavaScript 有很多為人詬病之處...
所以
So
JUICEDesktop Environment
果汁
桌面環境
盡可能用 JavaScript
使用 Node.js
V8 JavaScript Engine
如何打造桌面環境?
How to do?
桌面環境最起碼有
視窗管理器 (Window Manager)
應用程式啟動途徑
系統資訊顯示 (Battery, Network, Clock...)
網路連線設定工具 (Network Manager)
檔案管理員 (File Manager)
● 可以放美女圖當背景的桌面
身為一個宅宅 Geek
桌面環境應該要有
● 視窗管理器 (Window Manager)
● 應用程式啟動途徑
● 系統資訊顯示 (Battery, Network, Clock...)
● 網路連線設定工具 (Network Manager)
● 檔案管理員 (File Manager)
● 可以放美女圖當背景的桌面
桌面環境應該要有
● 視窗管理器 (Window Manager)
● 應用程式啟動途徑
● 系統資訊顯示 (Battery, Network, Clock...)
● 網路連線設定工具 (Network Manager)
● 檔案管理員 (File Manager)
● 可以放 美女圖當背景 的桌面
Desktop
PrettyGirl.
Panel.
Dock.
Live Demo 最緊張
主要元件
Components
Components
● Compiz/Metacity Window Manager
● Juice Panel and Plugins (juice-panel)Systray PluginClock PluginNetwork Manager PluginVolume PluginImage Plugin
● Juice Dock (jushelf)Written in C (Need to rework in JavaScript)
Components
● Juice Session (juice-session)
● Juice Daemon (judaemon)Sleep/Suspend TimeTheme settingsHotplug managerDisplay Manager
因為
Because
沒有原生的系統 APIs
JavaScript has no APIs to control system
為 JavaScript
開發了一些 APIs
當然是用 C/C++
APIs
jsdx-toolkit - 3D GUI (Support X11)
jsdx-connman - Network manager API
jsdx-power - Power manager API
jsdx-display - Display API
node-dbus - DBus API
More APIs
jsdx-soundman - Sound Manager API
jsdx-disk - Disk Manager API (still working)
jsdx-systray - Systray API (Support X11, EWMH)
jsdx-ofono - Modem/Voice call API
- To be continue...
其中有一個 API
沒用處的功能
對於傳統桌面環境
Voice Call
今年 OSDC Hackaton 一日活動與食物的美麗懈逅
在趨勢科技的場地撒野
用 JavaScript 打電話
使用這些 API 會不會很難?
Is it difficult to use?
示範使用 API
How to use these APIs
Example for jsdx-soundman
var Soundman = require('jsdx-soundman');
var soundman = new Soundman;
soundman.init(function(err) {
soundman.setVolume(80);
});
所有 API 用法都差不多
會 JavaScript 就不難
All In GithubOpen Source 是當然的
Something is Availablenpm install <module name>
只要你會 JavaScript
就可以開發系統程式
不用再看著大神乾瞪眼
不用再喊『你看到了那個強大的敵人嗎?』
歡迎加入桌面環境開發!
Welcome
JUICEDesktop Environment
Q & A歡迎打臉或提問
Thanks