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

14,199 views

Published on

JavaScript 儼然就是下一代的主流程式語言,更是一個重新思考作業系統開發的新方向。誰說,開發系統程式是慣 C 的專利?就讓我們嘗試用 JavaScript 來打造自己的桌面環境吧!

Node.js 的出現和 V8 的發展,讓 JavaScript 已經不再是網頁瀏覽器下的玩具,近年來的效能遽烈提升,加上多方高手的投入,除了能勝任伺服器應用,更能開發各式系統程式和桌面應用程式。而對於『慣 C』的開發者來說,其方便的模組擴充機制,也能讓自己的成果輕易地與 JavaScript 結合,讓 JavaScript 無所不能!

Published in: Technology

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

  1. 1. JavaScript 全面逆襲! 使用 Node.js 打造桌面環境! Fred Chien
  2. 2. 我是誰?Who Am I
  3. 3. Fred Chien 錢逢祥
  4. 4. 首先要來發表消息 Announce
  5. 5. 不再是 永遠的大四生 大學不只讀七年,最終,我被退學了。
  6. 6. 最重要的是The Most Important Thing
  7. 7. 第一個First
  8. 8. 於國際舞台發表 退學宣言 中央研究院國際會議廳
  9. 9. 感謝 COSCUP 鼎力相挺! Thanks COSCUP!
  10. 10. So ... 改行
  11. 11. Businessman 奸商
  12. 12. BUT但是
  13. 13. Open Source Developer Im A GEEK!
  14. 14. cfsghost At gmail.com
  15. 15. Blogfred-zone.blogspot.com
  16. 16. Startup in Taiwan Mandice Software. MANDICE.COM
  17. 17. CEO, Mandice
  18. 18. StartupMandice Software.
  19. 19. 慣C C Language Fanatic救火Mission Startup 惡搞Impossible Hacking Mandice Software. 創新 Innovation
  20. 20. 慣C救火 Startup 惡搞 Mandice Software. 創新
  21. 21. 慣C救火 JavaScript 惡搞 創新
  22. 22. 回到主題 Focus
  23. 23. JavaScript
  24. 24. Why?
  25. 25. Why Not?
  26. 26. 過去我們看到很多大神
  27. 27. 很強
  28. 28. 真的很強
  29. 29. OS
  30. 30. OS系統程式
  31. 31. OS系統程式桌面環境
  32. 32. OS系統程式桌面環境原生應用程式
  33. 33. 還有 A ~ Z 開頭 的各類技術 可能超過 60+
  34. 34. 無所不會Know Everything
  35. 35. 變態Freak
  36. 36. 超級變態根本是 X 魔等級的
  37. 37. 像我這種 慣C哥 都只能靠邊站 淪落於追隨者
  38. 38. 但你可能不知道You DONT Know It
  39. 39. 這些大神光鮮亮麗外表之下
  40. 40. 螢幕上常常也是
  41. 41. 你已經死了YOU HAVE DIED.
  42. 42. 大神和我們之間的差別 ...
  43. 43. 我們
  44. 44. 聖光啊 !!!
  45. 45. !@#$%^&*( orz
  46. 46. 大神...
  47. 47. 我傷得很重。
  48. 48. !@#$%^&*( Orz
  49. 49. 同樣是躺
  50. 50. 開發程式本來就不簡單
  51. 51. 用低階語言更難難以想像的好奇號機器人
  52. 52. 開發所需時間更久
  53. 53. 想想看Think About It
  54. 54. 所有鬼東西UI、系統、底層、驅動.... blah
  55. 55. 只用 JavaScript
  56. 56. 有多麼舒服?當然 JavaScript 有很多為人詬病之處...
  57. 57. 所以So
  58. 58. JUICEDesktop Environment
  59. 59. 果汁桌面環境
  60. 60. 盡可能用 JavaScript
  61. 61. 使用 Node.jsV8 JavaScript Engine
  62. 62. 如何打造桌面環境? How to do?
  63. 63. 桌面環境最起碼有視窗管理器 (Window Manager)應用程式啟動途徑系統資訊顯示 (Battery, Network, Clock...)網路連線設定工具 (Network Manager)檔案管理員 (File Manager)● 可以放美女圖當背景的桌面
  64. 64. 身為一個宅宅 Geek
  65. 65. 桌面環境應該要有● 視窗管理器 (Window Manager)● 應用程式啟動途徑● 系統資訊顯示 (Battery, Network, Clock...)● 網路連線設定工具 (Network Manager)● 檔案管理員 (File Manager)● 可以放美女圖當背景的桌面
  66. 66. 桌面環境應該要有● 視窗管理器 (Window Manager)● 應用程式啟動途徑● 系統資訊顯示 (Battery, Network, Clock...)● 網路連線設定工具 (Network Manager)● 檔案管理員 (File Manager)● 可以放 美女圖當背景 的桌面
  67. 67. Desktop
  68. 68. PrettyGirl.
  69. 69. Panel.
  70. 70. Dock.
  71. 71. Live Demo 最緊張
  72. 72. 主要元件Components
  73. 73. 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)
  74. 74. Components● Juice Session (juice-session)● Juice Daemon (judaemon) Sleep/Suspend Time Theme settings Hotplug manager Display Manager
  75. 75. 因為Because
  76. 76. 沒有原生的系統 APIsJavaScript has no APIs to control system
  77. 77. 為 JavaScript開發了一些 APIs 當然是用 C/C++
  78. 78. 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
  79. 79. 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...
  80. 80. 其中有一個 API
  81. 81. 沒用處的功能 對於傳統桌面環境
  82. 82. Voice Call今年 OSDC Hackaton 一日活動 與食物的美麗懈逅 在趨勢科技的場地撒野
  83. 83. 用 JavaScript 打電話
  84. 84. 使用這些 API 會不會很難? Is it difficult to use?
  85. 85. 示範使用 APIHow to use these APIs
  86. 86. Example for jsdx-soundmanvar Soundman = require(jsdx-soundman);var soundman = new Soundman;soundman.init(function(err) { soundman.setVolume(80);});
  87. 87. 所有 API 用法都差不多
  88. 88. 會 JavaScript 就不難
  89. 89. All In GithubOpen Source 是當然的
  90. 90. Something is Available npm install <module name>
  91. 91. 只要你會 JavaScript
  92. 92. 就可以開發系統程式
  93. 93. 不用再看著大神乾瞪眼不用再喊『你看到了那個強大的敵人嗎?』
  94. 94. 歡迎加入桌面環境開發! Welcome
  95. 95. JUICEDesktop Environment
  96. 96. Q&A歡迎打臉或提問
  97. 97. Thanks

×