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

Post on 28-Nov-2014

11.398 Views

Category:

Technology

6 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

top related