Javascript in Linux Desktop Yuren Ju ● Use Linux: 10 years ● For Desktop: 7-8 years Red Hat Debian Gentoo Debian Ubuntu Arch Linux Debian.

Slides:



Advertisements
Similar presentations
JChem Web Services Server Jonathan Lee Solutions for Cheminformatics Technical Product Presentation.
Advertisements

4. Internet Programming ENG224 INFORMATION TECHNOLOGY – Part I
Microsoft Confidential. An incubation effort to: Support client -> server communication in native code with a modern C++ API design Support writing Azure-based.
1 CGICGI Common Gateway Interface Server-side Programming Lecture.
Using Evernote and Google Docs in your web or mobile application (and potentially Dropbox and Skydrive) By Peter Messenger Senior Developer – Triple Point.
Introduction to Model-View-Controller (MVC) Web Programming with TurboGears Leif Oppermann,
Cloud Computing Lecture #7 Introduction to Ajax Jimmy Lin The iSchool University of Maryland Wednesday, October 15, 2008 This work is licensed under a.
WHAT IS PHP PHP is an HTML-embedded scripting language primarily used for dynamic Web applications.
Overview of HTML. Three Different Approaches  Text editor like Notepad  HTML editor such as: –KompoZer –DreamWeaver –Microsoft Expression Web –iWeb.
Computer science Languages, etc.. Overview For web-applications (HTML, JS) – Designing languages (HMTL, CSS) – Server Languages (PHP, ASP) – Extensions.
1. 2 What’s New in NetBeans IDE What is NetBeans IDE?  Ready to use out of the box  Support for latest Java specifications & standards  Other.
GRITS Working with AVM Data Astronomy Visualization Metadata June 11th, 2010 Casey Rosenthal
Scripting Languages Intro Jan Stelovsky, ICS 215.
Lecture 19 Web Application Frameworks Boriana Koleva Room: C54
Open Source Software Bangladesh University of Business and Technology Nizar Saadi Dahir M.Sc. Computer Engineering Computer Center- Kufa University
HTML. Principle of Programming  Interface with PC 2 English Japanese Chinese Machine Code Compiler / Interpreter C++ Perl Assembler Machine Code.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Session I Chapter 1 - Introduction to Web Development
CS 4720 Dynamic Web Applications CS 4720 – Web & Mobile Systems.
SE-2840 Dr. Mark L. Hornick1 NodeJS Server-side JavaScript.
JavaScript Syntax, how to use it in a HTML document
Session 1 Chapter 1 - Introduction to Web Development ITI 133: HTML5 Desktop and Mobile Level I
Tallahassee, Florida, 2015 COP4710 Database Systems Project Overview Fall 2015.
. The ideas behind Qt and a live demo Qt in Education.
Overview GUI Programming with GTK+ and GLADE 장정철.
Web Development Technologies Advanced Web-based Systems Advanced Web-based Systems | Misbhauddin.
Plug-in Architectures Presented by Truc Nguyen. What’s a plug-in? “a type of program that tightly integrates with a larger application to add a special.
Asstt. Prof Sonia Sharma Computer Dept 1 HTML ( Hypertext MarkUP Language ) HTML is the lingua franca for publishing hypertext on the World Wide Web.
Modern Programming Language. Web Container & Web Applications Web applications are server side applications The most essential requirement.
Web Programming Introduction to Web Technology HTML & Dynamic web content.
 Before you continue you should have a basic understanding of the following:  HTML  CSS  JavaScript.
Basics Components of Web Design & Development Basics, Components, Design and Development.
Ext JS - Direct Bridging The Gap A DMSBT Presentation By Timothy Chandler.
CS320 Web and Internet Programming Introduction to Web Application Development Chengyu Sun California State University, Los Angeles.
Two Steps Forward, One Step Back: The Return of the Browser Wars? September 24th, 2007 John Eckman, Practice Director, Next Generation Internet.
QML and JavaScript for Native App Development Michael Tims Jen Trieu.
Introduction CMSC 202 Fall Instructors Mr. Ryan Bergeron – Lecture Section 01 Tues/Thu 1:00 – 2:15 am, Sondheim 111 – Lecture Section 04 Tues/Thu.
Gtk2 GTK+ (the GIMP ToolKit) Bratislava, Gtk2 - Overview Graphical toolkit native to X11 (Linux, Unix) Ported to Windows and OS X Written in C,
Cross-Platform .NET: Mono and MySQL
Writing Really Rad GTK+ & GNOME Applications in C, Python or Java
Chapter 13 Web Application Infrastructure
Applications Active Web Documents Active Web Documents.
Web Programming Language
Chengyu Sun California State University, Los Angeles
Angular 4 + TypeScript Getting Started
COP4710 Database Systems Project Overview.
Radare >1.0 &&
Platform as a Service.
Angular JS Training | Angular JS online Training at GoLogica
JavaScript !?.
ASP.NET 3.5 Mike Ormond Developer & Platform Group Microsoft Ltd
ossbarcamp – September 19th – Dublin, Ireland
PHP / MySQL Introduction
Mozilla Firefox Toll free number. Want to take user reviews and genuine feedback on mozilla firefox then check out the link- Mozilla Firefox Phone NumberMozilla.
JDK 1.6 change summary D. MANIKANDAN.
Web App vs Mobile App.
Developing applications using Chromium
Building Native Mobile Apps with Angular 2.0 and NativeScript
HTML5 Level I Session I Chapter 1 - Introduction to Web Development
EXTENSION AND INTEGRATION
GTK + Programming.
Overview of HTML.
Unit 6 part 3 Test Javascript Test.
The Basic Usage and The Event Handling in Glade.
WPS - your story so far Seems incredible complicated, already
CS4433 Database Systems Project.
ENIAC – the first computer
ASP.NET Imran Rashid CTO at ManiWeber Technologies.
Client-Server Model: Requesting a Web Page
WebAssembly: The Browser is your OS
Presentation transcript:

Javascript in Linux Desktop Yuren Ju

● Use Linux: 10 years ● For Desktop: 7-8 years Red Hat Debian Gentoo Debian Ubuntu Arch Linux Debian

Yuren Ju ● Blog: Yuren's Info AreaYuren's Info Area ● ● 社群 ● Hacking Thursday, KaLUG ● 工作: ASUSTek ● 興趣: Python, 咖啡, Linux

Javascript always use in Web Applications.

Javascript in Linux Desktop ● Web Application/Platform ● Desktop Platform ● Desktop Application

Internet Application Platform

Performance

Opportunity! Javascript for Web ApplicationDesktop Application

? Javascript in desktop ● Integration ● Layout ● Style/theme

Application Platform Web Desktop

Web Application JS HTM L +CSS CS S LayoutStyleProgramming Server side

Platform/Browser JS HTM L +CSS CS S LayoutStyleProgramming Layout engineJavascript engine

Platform/Browser (2)

To Desktop Application

Desktop - Platform ● XULRunner (Mozilla platform) ● GNOME Javascript runtime ● GJS/Seed

XULRunner Programming in Web Browser!

Mozilla applications

XULRunner JS CS S LayoutStyleProgramming Gecko layout engineSpiderMonkey XU L DO M Demo:

Mozilla Platform - integration Mozilla Application System XPCOM/NPAPI C++/Javascript

Mozilla Platform - integration D- BUS VT E notify Glade GT K

Javascript in GNOME ● Seed ● based on WebKit's JavaScriptCore ● GJS ● based on Mozilla's Spidermonkey engine

XULRunner JS CS S LayoutStyleProgramming Gecko layout engineSpiderMonkey XU L

Javascript in GNOME JS LayoutStyle Programming GObject introspectionSeed/GJS System library

Javascript in GNOME Javascript engine Javascript desktop runtime Javascript application System library C API: GTK, Gstreamer, Clutter, Glib, etc. GObject introspection JavascriptCore/SpiderMonkey Seed/GJS

Traditional arch. Native C API GStreamer Python/Perl/Ruby..., etc. VTEnotifyGTK Clutte r

GObject Introspection Native C API GI JS Java Pytho n Perl Ruby ? PHP? GStreamerVTEnotifyGTKClutter

Metadata using annotations in the comments

GObject Introspection ● Sharing binding infrastructure work, and making the platform even more binding friendly

g-ir-scanner 40 B B g-ir-compiler typelib Gir xml file Annotations

GObject Introspection foo.c foo.h Library source, with type annotations Foo.gir XML file Foo.typelib Binary file libgirepository.so Specific language bindings libfoo.so libffi.so

GObject Introspection Native C API GI JS Java Pytho n Perl Ruby ? PHP? GStreamerVTEnotifyGTKClutter

Seed/GJS D- BUS VT E notify Glade GT K $ aptitude search gir

Javascript 已經準備好了!

Hello world

Hello world (2)

Applications based on Seed ● Seed ● Swell-foop ● lightsoff

Demo - js-gallery

gnome-shell ● Use javascript to control your desktop file:///usr/share/gnome-shell/js/ui

Demo – gnome-shell extension

END Thank you!

e.g. use native GTK API gtk_label_set_text In java runtime

JNI GI If Java Runtime support GI... GtkLabel label = new GtkLabel (); label.setText ("hello"); JGIR Create a class that declares The native method Compile C code and generate native library Use javac to compile Use javah to generate header Write the C implementation of the native method

But I have..., why GI? ● Python-gtk ● Ruby-gnome2 ● java-gnome ● e.g. nautilus ● No python, ruby, java binding...

Layout/Theme ● GTK – gtk-theme-engine ● Gnome-shell (shell toolkit) – libcroco (CSS) ● MX toolkit – CSS

GJS vs seed ● EMCAScript support ● GJS support javascript extensions ● Seed support javascript 1.5 ● for each, let, etc. ● [item * 2 for each (item in list)]

Return values ● GJS ● print (texture.get_base_size()); ● Seed ● var height = {}, width = {}; ● texture.get_base_size (width, height); ● print (“width: ” + width.value + “, height: “ + height.value)

Clutter fine tune ● GJS ● No Actor.animate function ● Seed ● workaround for Actor.animate ● But seed-2.28/2.30 use different event mapping

Signal ● GJS ● actor.connect ("signal-name", callback) ● Seed ● actor.signal["signal-name"].connect (callback) ● actor.signal.destroy.connect (callback)

Presentation License CC Attribution 3.0 Unported

Images License Creative Commons (Attribution-Share Alike 3.0 Unported)