SlideShare a Scribd company logo
JavaScript 全面逆襲!
 使用 Node.js 打造桌面環境!



       Fred Chien
我是誰?
Who Am I
Fred Chien
   錢逢祥
首先要來發表消息
  Announce
不再是   永遠的大四生
  大學不只讀七年,最終,我被退學了。
最重要的是
The Most Important Thing
第一個
First
於國際舞台發表   退學宣言
   中央研究院國際會議廳
感謝 COSCUP 鼎力相挺!
    Thanks COSCUP!
So ...
  改行
Businessman
    奸商
BUT
但是
Open Source Developer
       I'm A GEEK!
cfsghost At gmail.com
Blog
fred-zone.blogspot.com
Startup in Taiwan
    Mandice Software.
       MANDICE.COM
CEO, Mandice
Startup
Mandice Software.
慣C
                 C Language
                   Fanatic




救火Mission
              Startup            惡搞
Impossible                       Hacking
             Mandice Software.



                 創新
                  Innovation
慣C

救火    Startup            惡搞
     Mandice 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
這些大神光鮮亮麗外表之下
Java script 全面逆襲!使用 node.js 打造桌面環境!
螢幕上常常也是
Java script 全面逆襲!使用 node.js 打造桌面環境!
你已經死了
YOU HAVE DIED.
大神和我們之間的差別
    ...
我們
聖光啊
 !!!
!@#$%^&*(
   orz
大神
...
我傷得很重。
!@#$%^&*(
   Orz
同樣是躺
開發程式本來就不簡單
用低階語言更難
難以想像的好奇號機器人
開發所需時間更久
想想看
Think About It
所有鬼東西
UI、系統、底層、驅動.... blah
只用 JavaScript
有多麼舒服?
當然 JavaScript 有很多為人詬病之處...
所以
So
JUICE
Desktop 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
Pretty
Girl.
Panel.
Dock.
Live Demo 最緊張
主要元件
Components
Components
●   Compiz/Metacity Window Manager

●   Juice Panel and Plugins (juice-panel)
      Systray Plugin
      Clock Plugin
      Network Manager Plugin
      Volume Plugin
      Image Plugin




●   Juice Dock (jushelf)
      Written in C (Need to rework in JavaScript)
Components
●   Juice Session (juice-session)

●   Juice Daemon (judaemon)
      Sleep/Suspend Time
      Theme settings
      Hotplug manager
      Display 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 打電話
Java script 全面逆襲!使用 node.js 打造桌面環境!
使用這些 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 Github
Open Source 是當然的
Something is Available
   npm install <module name>
只要你會 JavaScript
就可以開發系統程式
不用再看著大神乾瞪眼
不用再喊『你看到了那個強大的敵人嗎?』
歡迎加入桌面環境開發!
    Welcome
JUICE
Desktop Environment
Q&A
歡迎打臉或提問
Thanks

More Related Content

What's hot (20)

NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
GO LL
 
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人
Fred Chien
 
Node.js 淺談socket.io
Node.js   淺談socket.ioNode.js   淺談socket.io
Node.js 淺談socket.io
Simon Su
 
猴子也能懂的Node.js
猴子也能懂的Node.js猴子也能懂的Node.js
猴子也能懂的Node.js
HopenglishRD
 
五行完成網頁多國語系
五行完成網頁多國語系五行完成網頁多國語系
五行完成網頁多國語系
amostsai
 
2010 08-14 web-sitei18n
2010 08-14 web-sitei18n2010 08-14 web-sitei18n
2010 08-14 web-sitei18n
tsunghaolee
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程
Simon Su
 
Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出
Eric Xiao
 
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
 
Getting started with test automation
Getting started with test automationGetting started with test automation
Getting started with test automation
Ivan Wei
 
不一樣的Web server... coServ
不一樣的Web server... coServ不一樣的Web server... coServ
不一樣的Web server... coServ
Ben Lue
 
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
鍾誠 陳鍾誠
 
北護樂學程式冬令營 2017
北護樂學程式冬令營 2017北護樂學程式冬令營 2017
北護樂學程式冬令營 2017
Hamilton Wong
 
Nodejs introduce - using Socket.io
Nodejs introduce - using Socket.ioNodejs introduce - using Socket.io
Nodejs introduce - using Socket.io
Caesar Chi
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践
longhao
 
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
洧杰 廖
 
用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端
鍾誠 陳鍾誠
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
 
CP 值很高的 Gulp
CP 值很高的 GulpCP 值很高的 Gulp
CP 值很高的 Gulp
Yvonne Yu
 
twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解
twMVC
 
NodeJS基礎教學&簡介
NodeJS基礎教學&簡介NodeJS基礎教學&簡介
NodeJS基礎教學&簡介
GO LL
 
Koa 正在等一個人
Koa 正在等一個人Koa 正在等一個人
Koa 正在等一個人
Fred Chien
 
Node.js 淺談socket.io
Node.js   淺談socket.ioNode.js   淺談socket.io
Node.js 淺談socket.io
Simon Su
 
猴子也能懂的Node.js
猴子也能懂的Node.js猴子也能懂的Node.js
猴子也能懂的Node.js
HopenglishRD
 
五行完成網頁多國語系
五行完成網頁多國語系五行完成網頁多國語系
五行完成網頁多國語系
amostsai
 
2010 08-14 web-sitei18n
2010 08-14 web-sitei18n2010 08-14 web-sitei18n
2010 08-14 web-sitei18n
tsunghaolee
 
Node.js從無到有 基本課程
Node.js從無到有 基本課程Node.js從無到有 基本課程
Node.js從無到有 基本課程
Simon Su
 
Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出Node.js中间件 connect模块深入浅出
Node.js中间件 connect模块深入浅出
Eric Xiao
 
Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹Npm 套件管理 & 常用開發工具介紹
Npm 套件管理 & 常用開發工具介紹
wantingj
 
Getting started with test automation
Getting started with test automationGetting started with test automation
Getting started with test automation
Ivan Wei
 
不一樣的Web server... coServ
不一樣的Web server... coServ不一樣的Web server... coServ
不一樣的Web server... coServ
Ben Lue
 
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
用十分鐘瞭解JavaScript的模組 -- 《還有關於npm套件管理的那些事情》
鍾誠 陳鍾誠
 
北護樂學程式冬令營 2017
北護樂學程式冬令營 2017北護樂學程式冬令營 2017
北護樂學程式冬令營 2017
Hamilton Wong
 
Nodejs introduce - using Socket.io
Nodejs introduce - using Socket.ioNodejs introduce - using Socket.io
Nodejs introduce - using Socket.io
Caesar Chi
 
Node.js长连接开发实践
Node.js长连接开发实践Node.js长连接开发实践
Node.js长连接开发实践
longhao
 
Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程Gulp.js 自動化前端任務流程
Gulp.js 自動化前端任務流程
洧杰 廖
 
用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端用十分鐘將你的網站送上雲端
用十分鐘將你的網站送上雲端
鍾誠 陳鍾誠
 
使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式使用 Visual Studio Code 建構 JavaScript 應用程式
使用 Visual Studio Code 建構 JavaScript 應用程式
Will Huang
 
CP 值很高的 Gulp
CP 值很高的 GulpCP 值很高的 Gulp
CP 值很高的 Gulp
Yvonne Yu
 
twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解twMVC#43 Visual Studio 2022 新功能拆解
twMVC#43 Visual Studio 2022 新功能拆解
twMVC
 

Similar to Java script 全面逆襲!使用 node.js 打造桌面環境! (14)

程式人雜誌 -- 2013年2月號
程式人雜誌 -- 2013年2月號程式人雜誌 -- 2013年2月號
程式人雜誌 -- 2013年2月號
鍾誠 陳鍾誠
 
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
My own sweet home!
 
Nodejs介绍
Nodejs介绍Nodejs介绍
Nodejs介绍
myzykj
 
Python&GUI
Python&GUIPython&GUI
Python&GUI
Leo Zhou
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
My own sweet home!
 
程式人雜誌 -- 2013年7月號
程式人雜誌 -- 2013年7月號程式人雜誌 -- 2013年7月號
程式人雜誌 -- 2013年7月號
鍾誠 陳鍾誠
 
程式人雜誌 -- 2013年8月號
程式人雜誌 -- 2013年8月號程式人雜誌 -- 2013年8月號
程式人雜誌 -- 2013年8月號
鍾誠 陳鍾誠
 
Introduction to open source platform
Introduction to open source  platformIntroduction to open source  platform
Introduction to open source platform
Hsien-Tang Lin
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
My own sweet home!
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
Tun-Yu Chang
 
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
National Cheng Kung University
 
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維 軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
National Cheng Kung University
 
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解  《JavaScript的程式世界》用十分鐘瞭解  《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》
鍾誠 陳鍾誠
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
Will Huang
 
程式人雜誌 -- 2013年2月號
程式人雜誌 -- 2013年2月號程式人雜誌 -- 2013年2月號
程式人雜誌 -- 2013年2月號
鍾誠 陳鍾誠
 
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)開放原始碼 Ch1.3   intro - oss - google codes (ver 2.0)
開放原始碼 Ch1.3 intro - oss - google codes (ver 2.0)
My own sweet home!
 
Nodejs介绍
Nodejs介绍Nodejs介绍
Nodejs介绍
myzykj
 
Python&GUI
Python&GUIPython&GUI
Python&GUI
Leo Zhou
 
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0) 開放原始碼 Ch3.1  mobile - oss - oss行動領域-1 (ver1.0)
開放原始碼 Ch3.1 mobile - oss - oss行動領域-1 (ver1.0)
My own sweet home!
 
程式人雜誌 -- 2013年7月號
程式人雜誌 -- 2013年7月號程式人雜誌 -- 2013年7月號
程式人雜誌 -- 2013年7月號
鍾誠 陳鍾誠
 
程式人雜誌 -- 2013年8月號
程式人雜誌 -- 2013年8月號程式人雜誌 -- 2013年8月號
程式人雜誌 -- 2013年8月號
鍾誠 陳鍾誠
 
Introduction to open source platform
Introduction to open source  platformIntroduction to open source  platform
Introduction to open source platform
Hsien-Tang Lin
 
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)開放原始碼 Ch2.3   app - oss - ui framewoks (ver 1.0)
開放原始碼 Ch2.3 app - oss - ui framewoks (ver 1.0)
My own sweet home!
 
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
哥寫的不是程式,是軟體 - 從嵌入式系統看軟體工程全貌
Tun-Yu Chang
 
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
開放原始碼作為新事業: 台灣本土經驗談 (COSCUP 2011)
National Cheng Kung University
 
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維 軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
軟體又熱又平又擠:淺談開放原始碼軟體衝擊下的新思維
National Cheng Kung University
 
用十分鐘瞭解 《JavaScript的程式世界》
用十分鐘瞭解  《JavaScript的程式世界》用十分鐘瞭解  《JavaScript的程式世界》
用十分鐘瞭解 《JavaScript的程式世界》
鍾誠 陳鍾誠
 
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境從頭打造 C#、.NET 與 ASP.NET Core 開發環境
從頭打造 C#、.NET 與 ASP.NET Core 開發環境
Will Huang
 
Ad

More from Fred Chien (10)

Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險
Fred Chien
 
超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門
Fred Chien
 
OwaNEXT
OwaNEXTOwaNEXT
OwaNEXT
Fred Chien
 
QML + Node.js
QML + Node.jsQML + Node.js
QML + Node.js
Fred Chien
 
Stem OS Proposal
Stem OS ProposalStem OS Proposal
Stem OS Proposal
Fred Chien
 
Stem is JavaScript OS
Stem is JavaScript OSStem is JavaScript OS
Stem is JavaScript OS
Fred Chien
 
我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binary我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binary
Fred Chien
 
Enjoy Writing Modern Desktop Application in JavaScript
Enjoy Writing Modern Desktop Application in JavaScriptEnjoy Writing Modern Desktop Application in JavaScript
Enjoy Writing Modern Desktop Application in JavaScript
Fred Chien
 
Let s Enjoy Node.js
Let s Enjoy Node.jsLet s Enjoy Node.js
Let s Enjoy Node.js
Fred Chien
 
How to Write Node.js Module
How to Write Node.js ModuleHow to Write Node.js Module
How to Write Node.js Module
Fred Chien
 
Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險Brig:Node.js + QML 華麗大冒險
Brig:Node.js + QML 華麗大冒險
Fred Chien
 
超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門超酷炫科幻 UI:QML 入門
超酷炫科幻 UI:QML 入門
Fred Chien
 
Stem OS Proposal
Stem OS ProposalStem OS Proposal
Stem OS Proposal
Fred Chien
 
Stem is JavaScript OS
Stem is JavaScript OSStem is JavaScript OS
Stem is JavaScript OS
Fred Chien
 
我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binary我編譯故我在:誰說 Node.js 程式不能編成 binary
我編譯故我在:誰說 Node.js 程式不能編成 binary
Fred Chien
 
Enjoy Writing Modern Desktop Application in JavaScript
Enjoy Writing Modern Desktop Application in JavaScriptEnjoy Writing Modern Desktop Application in JavaScript
Enjoy Writing Modern Desktop Application in JavaScript
Fred Chien
 
Let s Enjoy Node.js
Let s Enjoy Node.jsLet s Enjoy Node.js
Let s Enjoy Node.js
Fred Chien
 
How to Write Node.js Module
How to Write Node.js ModuleHow to Write Node.js Module
How to Write Node.js Module
Fred Chien
 
Ad

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