java script 全面逆襲!使用 node.js 打造桌面環境!

100
JavaScript 全面逆襲! 使用 Node.js 打造桌面環境! Fred Chien

Upload: fred-chien

Post on 28-Nov-2014

11.406 views

Category:

Technology


6 download

DESCRIPTION

JavaScript 儼然就是下一代的主流程式語言,更是一個重新思考作業系統開發的新方向。誰說,開發系統程式是慣 C 的專利?就讓我們嘗試用 JavaScript 來打造自己的桌面環境吧! Node.js 的出現和 V8 的發展,讓 JavaScript 已經不再是網頁瀏覽器下的玩具,近年來的效能遽烈提升,加上多方高手的投入,除了能勝任伺服器應用,更能開發各式系統程式和桌面應用程式。而對於『慣 C』的開發者來說,其方便的模組擴充機制,也能讓自己的成果輕易地與 JavaScript 結合,讓 JavaScript 無所不能!

TRANSCRIPT

Page 1: Java script 全面逆襲!使用 node.js 打造桌面環境!

JavaScript 全面逆襲!

使用 Node.js 打造桌面環境!

Fred Chien

Page 2: Java script 全面逆襲!使用 node.js 打造桌面環境!

我是誰?

Who Am I

Page 3: Java script 全面逆襲!使用 node.js 打造桌面環境!

Fred Chien錢逢祥

Page 4: Java script 全面逆襲!使用 node.js 打造桌面環境!

首先要來發表消息

Announce

Page 5: Java script 全面逆襲!使用 node.js 打造桌面環境!

不再是 永遠的大四生大學不只讀七年,最終,我被退學了。

Page 6: Java script 全面逆襲!使用 node.js 打造桌面環境!

最重要的是

The Most Important Thing

Page 7: Java script 全面逆襲!使用 node.js 打造桌面環境!

第一個

First

Page 8: Java script 全面逆襲!使用 node.js 打造桌面環境!

於國際舞台發表 退學宣言

中央研究院國際會議廳

Page 9: Java script 全面逆襲!使用 node.js 打造桌面環境!

感謝 COSCUP 鼎力相挺!

Thanks COSCUP!

Page 10: Java script 全面逆襲!使用 node.js 打造桌面環境!

So ...改行

Page 11: Java script 全面逆襲!使用 node.js 打造桌面環境!

Businessman奸商

Page 12: Java script 全面逆襲!使用 node.js 打造桌面環境!

BUT但是

Page 13: Java script 全面逆襲!使用 node.js 打造桌面環境!

Open Source DeveloperI'm A GEEK!

Page 14: Java script 全面逆襲!使用 node.js 打造桌面環境!

cfsghost At gmail.com

Page 15: Java script 全面逆襲!使用 node.js 打造桌面環境!

Blogfred-zone.blogspot.com

Page 16: Java script 全面逆襲!使用 node.js 打造桌面環境!

Startup in TaiwanMandice Software.

MANDICE.COM

Page 17: Java script 全面逆襲!使用 node.js 打造桌面環境!

CEO, Mandice

Page 18: Java script 全面逆襲!使用 node.js 打造桌面環境!

StartupMandice Software.

Page 19: Java script 全面逆襲!使用 node.js 打造桌面環境!

StartupMandice Software.

慣 CC Language

Fanatic

救火Mission

Impossible惡搞

Hacking

創新Innovation

Page 20: Java script 全面逆襲!使用 node.js 打造桌面環境!

慣 C

救火 惡搞

創新

StartupMandice Software.

Page 21: Java script 全面逆襲!使用 node.js 打造桌面環境!

慣 C

救火 惡搞

創新

JavaScript

Page 22: Java script 全面逆襲!使用 node.js 打造桌面環境!

回到主題

Focus

Page 23: Java script 全面逆襲!使用 node.js 打造桌面環境!

JavaScript

Page 24: Java script 全面逆襲!使用 node.js 打造桌面環境!

Why?

Page 25: Java script 全面逆襲!使用 node.js 打造桌面環境!

Why Not?

Page 26: Java script 全面逆襲!使用 node.js 打造桌面環境!

過去我們看到很多大神

Page 27: Java script 全面逆襲!使用 node.js 打造桌面環境!

很強

Page 28: Java script 全面逆襲!使用 node.js 打造桌面環境!

真的很強

Page 29: Java script 全面逆襲!使用 node.js 打造桌面環境!

OS

Page 30: Java script 全面逆襲!使用 node.js 打造桌面環境!

OS系統程式

Page 31: Java script 全面逆襲!使用 node.js 打造桌面環境!

OS系統程式

桌面環境

Page 32: Java script 全面逆襲!使用 node.js 打造桌面環境!

OS系統程式

桌面環境

原生應用程式

Page 33: Java script 全面逆襲!使用 node.js 打造桌面環境!

還有 A ~ Z 開頭 的各類技術

可能超過 60+

Page 34: Java script 全面逆襲!使用 node.js 打造桌面環境!

無所不會

Know Everything

Page 35: Java script 全面逆襲!使用 node.js 打造桌面環境!

變態

Freak

Page 36: Java script 全面逆襲!使用 node.js 打造桌面環境!

超級變態

根本是 X 魔等級的

Page 37: Java script 全面逆襲!使用 node.js 打造桌面環境!

像我這種 慣 C 哥

都只能靠邊站

淪落於追隨者

Page 38: Java script 全面逆襲!使用 node.js 打造桌面環境!

但你可能不知道

You DON'T Know It

Page 39: Java script 全面逆襲!使用 node.js 打造桌面環境!

這些大神光鮮亮麗外表之下

Page 40: Java script 全面逆襲!使用 node.js 打造桌面環境!
Page 41: Java script 全面逆襲!使用 node.js 打造桌面環境!

螢幕上常常也是

Page 42: Java script 全面逆襲!使用 node.js 打造桌面環境!
Page 43: Java script 全面逆襲!使用 node.js 打造桌面環境!

你已經死了

YOU HAVE DIED.

Page 44: Java script 全面逆襲!使用 node.js 打造桌面環境!

大神和我們之間的差別

...

Page 45: Java script 全面逆襲!使用 node.js 打造桌面環境!

我們

Page 46: Java script 全面逆襲!使用 node.js 打造桌面環境!

聖光啊

!!!

Page 47: Java script 全面逆襲!使用 node.js 打造桌面環境!

!@#$%^&*(orz

Page 48: Java script 全面逆襲!使用 node.js 打造桌面環境!

大神

...

Page 49: Java script 全面逆襲!使用 node.js 打造桌面環境!

我傷得很重。

Page 50: Java script 全面逆襲!使用 node.js 打造桌面環境!

!@#$%^&*(Orz

Page 51: Java script 全面逆襲!使用 node.js 打造桌面環境!

同樣是躺

Page 52: Java script 全面逆襲!使用 node.js 打造桌面環境!

開發程式本來就不簡單

Page 53: Java script 全面逆襲!使用 node.js 打造桌面環境!

用低階語言更難

難以想像的好奇號機器人

Page 54: Java script 全面逆襲!使用 node.js 打造桌面環境!

開發所需時間更久

Page 55: Java script 全面逆襲!使用 node.js 打造桌面環境!

想想看

Think About It

Page 56: Java script 全面逆襲!使用 node.js 打造桌面環境!

所有鬼東西

UI、系統、底層、驅動.... blah

Page 57: Java script 全面逆襲!使用 node.js 打造桌面環境!

只用 JavaScript

Page 58: Java script 全面逆襲!使用 node.js 打造桌面環境!

有多麼舒服?

當然 JavaScript 有很多為人詬病之處...

Page 59: Java script 全面逆襲!使用 node.js 打造桌面環境!

所以

So

Page 60: Java script 全面逆襲!使用 node.js 打造桌面環境!

JUICEDesktop Environment

Page 61: Java script 全面逆襲!使用 node.js 打造桌面環境!

果汁

桌面環境

Page 62: Java script 全面逆襲!使用 node.js 打造桌面環境!

盡可能用 JavaScript

Page 63: Java script 全面逆襲!使用 node.js 打造桌面環境!

使用 Node.js

V8 JavaScript Engine

Page 64: Java script 全面逆襲!使用 node.js 打造桌面環境!

如何打造桌面環境?

How to do?

Page 65: Java script 全面逆襲!使用 node.js 打造桌面環境!

桌面環境最起碼有

視窗管理器 (Window Manager)

應用程式啟動途徑

系統資訊顯示 (Battery, Network, Clock...)

網路連線設定工具 (Network Manager)

檔案管理員 (File Manager)

● 可以放美女圖當背景的桌面

Page 66: Java script 全面逆襲!使用 node.js 打造桌面環境!

身為一個宅宅 Geek

Page 67: Java script 全面逆襲!使用 node.js 打造桌面環境!

桌面環境應該要有

● 視窗管理器 (Window Manager)

● 應用程式啟動途徑

● 系統資訊顯示 (Battery, Network, Clock...)

● 網路連線設定工具 (Network Manager)

● 檔案管理員 (File Manager)

● 可以放美女圖當背景的桌面

Page 68: Java script 全面逆襲!使用 node.js 打造桌面環境!

桌面環境應該要有

● 視窗管理器 (Window Manager)

● 應用程式啟動途徑

● 系統資訊顯示 (Battery, Network, Clock...)

● 網路連線設定工具 (Network Manager)

● 檔案管理員 (File Manager)

● 可以放 美女圖當背景 的桌面

Page 69: Java script 全面逆襲!使用 node.js 打造桌面環境!

Desktop

Page 70: Java script 全面逆襲!使用 node.js 打造桌面環境!

PrettyGirl.

Page 71: Java script 全面逆襲!使用 node.js 打造桌面環境!

Panel.

Page 72: Java script 全面逆襲!使用 node.js 打造桌面環境!

Dock.

Page 73: Java script 全面逆襲!使用 node.js 打造桌面環境!

Live Demo 最緊張

Page 74: Java script 全面逆襲!使用 node.js 打造桌面環境!

主要元件

Components

Page 75: Java script 全面逆襲!使用 node.js 打造桌面環境!

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)

Page 76: Java script 全面逆襲!使用 node.js 打造桌面環境!

Components

● Juice Session (juice-session)

● Juice Daemon (judaemon)Sleep/Suspend TimeTheme settingsHotplug managerDisplay Manager

Page 77: Java script 全面逆襲!使用 node.js 打造桌面環境!

因為

Because

Page 78: Java script 全面逆襲!使用 node.js 打造桌面環境!

沒有原生的系統 APIs

JavaScript has no APIs to control system

Page 79: Java script 全面逆襲!使用 node.js 打造桌面環境!

為 JavaScript

開發了一些 APIs

當然是用 C/C++

Page 80: Java script 全面逆襲!使用 node.js 打造桌面環境!

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

Page 81: Java script 全面逆襲!使用 node.js 打造桌面環境!

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

Page 82: Java script 全面逆襲!使用 node.js 打造桌面環境!

其中有一個 API

Page 83: Java script 全面逆襲!使用 node.js 打造桌面環境!

沒用處的功能

對於傳統桌面環境

Page 84: Java script 全面逆襲!使用 node.js 打造桌面環境!

Voice Call

今年 OSDC Hackaton 一日活動與食物的美麗懈逅

在趨勢科技的場地撒野

Page 85: Java script 全面逆襲!使用 node.js 打造桌面環境!

用 JavaScript 打電話

Page 86: Java script 全面逆襲!使用 node.js 打造桌面環境!
Page 87: Java script 全面逆襲!使用 node.js 打造桌面環境!

使用這些 API 會不會很難?

Is it difficult to use?

Page 88: Java script 全面逆襲!使用 node.js 打造桌面環境!

示範使用 API

How to use these APIs

Page 89: Java script 全面逆襲!使用 node.js 打造桌面環境!

Example for jsdx-soundman

var Soundman = require('jsdx-soundman');

var soundman = new Soundman;

soundman.init(function(err) {

soundman.setVolume(80);

});

Page 90: Java script 全面逆襲!使用 node.js 打造桌面環境!

所有 API 用法都差不多

Page 91: Java script 全面逆襲!使用 node.js 打造桌面環境!

會 JavaScript 就不難

Page 92: Java script 全面逆襲!使用 node.js 打造桌面環境!

All In GithubOpen Source 是當然的

Page 93: Java script 全面逆襲!使用 node.js 打造桌面環境!

Something is Availablenpm install <module name>

Page 94: Java script 全面逆襲!使用 node.js 打造桌面環境!

只要你會 JavaScript

Page 95: Java script 全面逆襲!使用 node.js 打造桌面環境!

就可以開發系統程式

Page 96: Java script 全面逆襲!使用 node.js 打造桌面環境!

不用再看著大神乾瞪眼

不用再喊『你看到了那個強大的敵人嗎?』

Page 97: Java script 全面逆襲!使用 node.js 打造桌面環境!

歡迎加入桌面環境開發!

Welcome

Page 98: Java script 全面逆襲!使用 node.js 打造桌面環境!

JUICEDesktop Environment

Page 99: Java script 全面逆襲!使用 node.js 打造桌面環境!

Q & A歡迎打臉或提問

Page 100: Java script 全面逆襲!使用 node.js 打造桌面環境!

Thanks