Dart and Web Components - Scalable, Structured Web Apps
|
|
|
- Roger Griffin
- 10 years ago
- Views:
Transcription
1 Dart and Web Components - Scalable, Structured Web Apps Seth Ladd, Developer Advocate, Dart JavaZone 2013
2 Language and libraries Tools VM Compiler to JavaScript
3 Jasmine Docs PhantomJS Docs dest templates Docs moment.js Docs "I"Hi, just I want wantto to build writeaweb web apps!" app" Modernizr Docs jquery Docs Backbone Marionette Docs Backbone Docs require.js Docs
4 Packages "Things are consistent and clear." Intl Web UI Unit test Dart SDK
5 Inside Google Big and Complex Dozens to Hundreds of Engineers Millions of Lines of Code Lots of Layers GWT Closure Soy Low Productivity No edit/refresh 24 min to see a change!! Surely we can do better!
6 Improve all the things! Structure Vanilla JS ---- Syntax ---- Semantics ---- Tools ---- Core Libs ---- Dart No Performance ---- No Closure ---- CoffeeScript ---- TypeScript ---- GWT Requires Compilation for Development Yes ---- Yes ---- Yes ---- Yes ----
7 Lightning Tour Syntax Semantics Structure
8 Simple syntax, ceremony free class Hug { Familiar
9 Simple syntax, ceremony free class Hug { final num strength; Hug(this.strength); Terse
10 Simple syntax, ceremony free class Hug { final num strength; Hug(this.strength); Hug.bear() : strength = 100; Named constructor
11 Simple syntax, ceremony free class Hug { final num strength; Hug(this.strength); Hug.bear() : strength = 100; Hug operator +(Hug other) { Operator overriding return new Hug(strength + other.strength); }
12 Simple syntax, ceremony free class Hug { final num strength; Hug(this.strength); Hug.bear() : strength = 100; Hug operator +(Hug other) { return new Hug(strength + other.strength); } Named, optional params w/ default value void patback({int hands: 1}) { //... }
13 Simple syntax, ceremony free class Hug { final num strength; Hug(this.strength); Hug.bear() : strength = 100; Hug operator +(Hug other) { return new Hug(strength + other.strength); } void patback({int hands: 1}) { //... One-line function } String tostring() => "Embraceometer reads $strength"; }
14 Simple syntax, ceremony free class Hug { final num strength; Hug(this.strength); Hug.bear() : strength = 100; Hug operator +(Hug other) { return new Hug(strength + other.strength); } void patback({int hands: 1}) { //... String Interpolation } String tostring() => "Embraceometer reads $strength"; }
15 Clean semantics and behavior
16 Clean semantics and behavior Examples: Only true is truthy There is no undefined, only null No type coercion with ==, +
17 Missing getter? "hello".missing //?? Logical Class 'String' has no instance getter 'missing'. NoSuchMethodError : method not found: 'missing' Receiver: "hello" Arguments: [] More on this soon.
18 Index out of range? [][99] //?? Logical RangeError: 99
19 Variable scope? var foo = 'top-level'; void bar() { if (!true) { var foo = 'inside'; } No hoisting print(foo); } main() { bar(); } //?? What will this print? top-level Logical
20 Scope of `this`? class AwesomeButton { AwesomeButton(button) { button.onclick.listen((event e) => this.atomicdinosaurrock()); } atomicdinosaurrock() { /*... */ } Lexical this }
21 Scalable structure library games; import 'dart:math'; import 'players.dart'; Packages class Darts { Libraries Functions Classes //... } class Bowling { //... } Mixins Interfaces Player findopponent(int skilllevel) { //... }
22 s ' t a h W ish! w Ne Language
23 Too many buttons var button = new ButtonElement(); button.id = 'fancy'; button.text = 'Click Point'; button.classes.add('important'); button.onclick.listen((e) => addtophat()); parentelement.children.add(button); Yikes! Button is repeated 6 times!
24 Method cascades var button = new ButtonElement()..id = 'fancy'..text = 'Click Point'..classes.add('important')..onClick.listen((e) => addtophat()); parentelement.children.add(button);
25 Inline initialization parentelement.children.add(new ButtonElement()..id = 'fancy'..text = 'Click Point'..classes.add('important')..onClick.listen((e) => addtophat()));
26 One of these things is not like the other Object Persistable Hug Hug is not is-a Persistable Don't pollute your inheritance tree!
27 Don't inherit, mixin! Object Hug Mixin Persistable
28 Mixins abstract class Persistable { } Extend object & no constructors? You can be a mixin! class Hug extends Object with Persistable { Apply the mixin. save() {... } load() {... } tojson(); Map tojson() => {'strength':10}; } main() { var embrace = new Hug(); embrace.save(); } Use methods from mixin.
29 Metadata
30 In progress Lazy-load libraries const lazy = const import 'my_lib.dart'; void main() { lazy.load().then((_) { print('library loaded'); Declare the library is deferred. Mark the import as lazy. Use a Future to wait for library to load. // use functions from my_lib }); } Dart app Dart lib dart2js JS file JS file
31 s ' t a h W ish! w Ne Libraries
32 JS-Interop YES!
33 Proxies: the abstraction var chart; // proxy chart object callback() {...} callback proxy
34 JS-Interop example var api = js.context.chartsapi; var data = js.array([1,3,3,7]); var chart = new js.proxy(api.bubblechart, query('#chart')); chart.draw(data); var api = chartsapi; var data = [1,3,3,7]; var chart = new api.bubblechart(queryselector('#chart')); chart.draw(data);
35 Dart and Sencha Touch Demo
36 Async with callbacks The web is an async world, but too many callbacks leads to
37 Async with Futures
38 Scary catservice.getcatdata("cute", (cat) { catservice.getcatpic(cat.imageid, (pic) { imageworker.rotate(pic, 30, (rotated) { draw(rotated); }); }); 4 levels }); deep!
39 More scary catservice.getcatdata("cute", (cat) { catservice.getcatpic(cat.imageid, (pic) { imageworker.rotate(pic, 30, (rotated) { draw(rotated, onerror:(e) { draw(ohnoeimage); }); }, onerror: (e) { draw(ohnoeimage); }); }, onerror: (e) { draw(ohnoeimage); }); }, onerror: (e) { draw(ohnoeimage); }); Duplicate error handling!
40 The Future looks bright catservice.getcat("cute") // returns a Future.then((cat) => catservice.getcatpic(cat.imageid)).then((pic) => imageworker.rotate(pic, 30)).then((rotated) => draw(rotated)).catcherror((e) => print("oh noes!"));
41 Composing futures Future cute = catservice.getpic("cute"); Future nyan = catservice.getpic("nyan"); Future.wait([cute, nyan]).then((pics) => imageworker.blend(pics[0], pics[1])).then((cutenyan) => draw(cutenyan)).catcherror((e) => print("oh noes!")); Request two pics. Wait for both to arrive. Work with both pics.
42 Streams - series of async events Bytes from a file Messages from a web socket Clicks from a button Events from the DOM Incoming connections from a web server stream.listen((event) => dosomething());
43 api.dartlang.org HTML Element abstract class... final Stream<KeyboardEvent> onkeypress query('textarea').onkeypress.where((e) => e.keycode >= 32 && e.keycode <= 122).map((e) => new String.fromCharCode(e.charCode)).first // returns a Future.then((char) => print('first char=$char'));
44 s ' t a h W ish! w Ne HTML
45 Web programming with Dart window.navigator.getusermedia(audio:true, video: true).then((mediastream) { var video = new VideoElement()..autoplay = true..src = Url.createObjectUrl(mediaStream)..onLoadedMetadata.listen((e) => /*... */); document.body.append(video); }).catcherror(reportissue);
46 XHR with Dart HttpRequest.request('/cats', method: 'POST', senddata: json.stringify({'name':'mr. Jingles'}), requestheaders: {'Content-Type': 'application/json'}).then((req) { catnames.add(json.parse(req.responsetext)); }).catcherror((e) => print(e));
47 Event source mapping document.body.onclick.matches('.thread').listen((event) { print('super cool!'); }); <body> <p class="thread">hello world from Dart!</p> </body>
48 Automatic Sanitization String userinput = "<script>i CAN HAZ XSS</script>" + "<p>i am safe</p>"; DANGER! query('#contents').innerhtml = userinput; Safer with Dart // Result: <div id="contents"> <p>i am safe</p> </div> <!-- No <script> tag -->
49 s ' t a h W! w Ne Web Components with Polymer.dart
50 Old 'n busted New hotness <messages> <message> <subject> Please fill out the TPS report </subject> <sent> </sent> <summary> I'm going to have to ask you to come in... </summary> </message> <message> <subject> Reminder: fill out that TPS report! </subject> <sent> </sent> <summary> It's been 24 hours... </summary> </message>... </messages>
51 Encapsulation <custom-element> Structure <div> <input> <p> <span></span> </p> </div> Behavior tag.verifyaccount(); Styles <style> p { color: red; } </style>
52 Reusability Custom Element import HTML Page import HTML Page import HTML Page
53 Data binding Data model DOM Nodes Data model DOM Nodes
54 Future-proof ShadowDOM HTML Imports New web specifications Custom Elements <template>
55 <template> - inert DOM trees <template id="screenshot-tmpl"> <img src=""> <div id="comment"></div> </template> TemplateElement t = query('#screenshot-tmpl'); DocumentFragment tree = t.content.clone(true); (tree.query('img') as ImageElement).src = 'sunrise.png'; tree.query('#comment').text = 'Beautiful'; query('#container').nodes.add(tree);
56 Shadow DOM
57
58 Polymer - use web components today Polymer.dart (today)
59 Custom Elements <polymer-element name="click-counter"> </polymer-element>
60 Templates <polymer-element name="click-counter"> <template> </template> </polymer-element>
61 Declarative event handling <polymer-element name="click-counter"> <template> <button on-click="increment">click Me</button> </template> </polymer-element>
62 Data binding <polymer-element name="click-counter"> <template> <button on-click="increment">click Me</button> <p>you clicked the button {{count}} times.</p> </template> </polymer-element>
63 Custom Elements HTML <polymer-element name="click-counter"> <template> <button on-click="increment">click Me</button> <p>you clicked the button {{count}} times.</p> </template> <script src="click_counter.dart" type="application/dart"></script> </polymer-element> class ClickCounterElement extends PolymerElement with ObservableMixin int count = 0; void increment(event e, var detail, Node target) { count += 1; } }
64 Custom Elements Import the custom element code. <link rel="import" href="clickcounter.html">... <click-counter></click-counter> Use the custom element.
65 Conditionals <polymer-element name="click-counter"> <template> <button on-click="increment">click Me</button> <template if="{{count <= 0}}"> <p>click the button. It's fun!</p> </template> <template if="{{count > 0}}"> <p>you clicked the button {{count}} times.</p> </template> </template> <script type="application/dart" src="click_counter.dart"></script> </polymer-element>
66 Loops <polymer-element name="fav-fruits"> <template> <ul> <template repeat="{{fruit in fruits}}"> <li> I like {{ fruit }}. </li> </template> </ul> </template> <script type="application/dart" src="fav_fruits.dart"></script> class FavFruitsElement extends PolymerElement with ObservableMixin { final List fruits = toobservable(['apples', 'pears', 'bananas']); }
67 TODO Demo
68 Polymer.dart Bringing web components to Dart developers Encapsulation, reusability Built on emerging web standards Learn more at dartlang.org/polymer-dart/
69 s ' t a h W ish! w Ne Size & Speed
70 More complex apps #perfmatters
71 Better performance == Better battery #perfmatters
72 Generating smaller JavaScript Libraries Libraries Tree shaking app.dart dart2js Minification Type inferencing Packages Packages app.js Source Map
73 Generated JS with dart:html import 'dart:html'; class Person { String firstname; String lastname; Person(this.firstName, this.lastname); } $$.Person = {"": "Object;firstName,lastName"}; main() { var bob = new Person('Bob', 'Smith'); var msg = query('#msg'); msg.text = bob.firstname; } $.main = function() { var bob = $.Person$("Bob", "Smith"); document.queryselector("#msg").textcontent = bob.firstname; }; $.Person$ = function(firstname, lastname) { return new $.Person(firstName, lastname); };
74 Generated JS, minified! $$.Person = {"": "Object;firstName,lastName"}; $.Person$ = function(firstname, lastname) { return new $.Person(firstName, lastname); }; $.main = function() { var bob = $.Person$("Bob", "Smith"); document.queryselector("#msg").textcontent = bob.firstname; }; $$.mm={"":"a;sz,dq"} $.PH=function(a,b){return new $.mm(a,b)} $.E2=function(){var z=$.ph("bob","smith") document.queryselector("#msg").textcontent=z.sz} Minified
75 imports main() func1 Library calls func2 funcx funcy Tree-shaking compiler (dart2js) main() func2 funcx
76 Dart VM
77 More structure, less baggage Explicit and static structure Real arrays Real classes Direct calls, no prototype chains to check Globally track field types
78 Unlock more of your CPU SIMD SIMD
79 2X dartlang.org/performance Higher is better, as of 2013/05/12
80 2.42X 1.48X x86, Chrome for Android Higher is better, as of 2013/05/12
81 There's more new stuff! Reflection Server-side Pub package manager Editor support Testing Isolates for concurrency Lots more...
82 Try Dart! Download from dartlang.org Join +Dartisans Send pull requests at Github Ask on Stack Overflow
83 Stable language Stable core libs Compiles to JavaScript Evolved platform Commitment
84 Thank You! Find us at dartlang.org
85 Mirror-based reflection Source code and run-time Reflect on classes and instances Introspect and invoke
86 Using mirrors to build a logging proxy Client Proxy print() Delegate x.hello() log() d.hello()
87 Reflection and metaprogramming import 'dart:mirrors'; class LoggingProxy { Import the mirrors library. InstanceMirror mirror; LoggingProxy(delegate) : mirror = reflect(delegate); nosuchmethod(invocation invocation) { var name = invocation.membername; print('${name} was called'); return mirror.delegate(invocation); } }
88 Reflection and metaprogramming import 'dart:mirrors'; class LoggingProxy { InstanceMirror mirror; LoggingProxy(delegate) : mirror = reflect(delegate); Get a mirror of an object. nosuchmethod(invocation invocation) { var name = invocation.membername; print('${name} was called'); return mirror.delegate(invocation); } }
89 Reflection and metaprogramming import 'dart:mirrors'; class LoggingProxy { InstanceMirror mirror; LoggingProxy(delegate) : mirror = reflect(delegate); nosuchmethod(invocation invocation) { var name = invocation.membername; Capture all calls to this proxy. print('${name} was called'); return mirror.delegate(invocation); } }
90 Reflection and metaprogramming import 'dart:mirrors'; class LoggingProxy { InstanceMirror mirror; LoggingProxy(delegate) : mirror = reflect(delegate); nosuchmethod(invocation invocation) { var name = invocation.membername; print('${name} was called'); Log the call. return mirror.delegate(invocation); } }
91 Reflection and metaprogramming import 'dart:mirrors'; class LoggingProxy { InstanceMirror mirror; LoggingProxy(delegate) : mirror = reflect(delegate); nosuchmethod(invocation invocation) { var name = invocation.membername; print('${name} was called'); return mirror.delegate(invocation); } } Delegate the call through the mirror.
92 Reflection and metaprogramming class Greeter { hello() => print("hello!"); } void main() { var greeter = new LoggingProxy(new Greeter()); greeter.hello(); } From LoggingProxy // Symbol("hello") was called // hello! From Greeter
Modern Web Development with Dart. Alan Knight Google
Modern Web Development with Dart Alan Knight Google Smalltalk Industry Conference 2013 The Web As an application platform We want... Large, extensible widget set Simple, clean APIs Model/View separation
Mobile development with Apache OFBiz. Ean Schuessler, co-founder @ Brainfood
Mobile development with Apache OFBiz Ean Schuessler, co-founder @ Brainfood Mobile development For the purposes of this talk mobile development means mobile web development The languages and APIs for native
Dart a modern web language
Dart a modern web language or why web programmers need more structure Kasper Lund & Lars Bak Software engineers, Google Inc. Object-oriented language experience: 26 + 12 years The Web Is Fantastic The
Modern Web Development:
: HTML5, JavaScript, LESS and jquery Shawn Wildermuth One of the Minds, Wilder Minds LLC Microsoft MVP @shawnwildermuth http://wilderminds.com What it was like
AngularJS for the enterprise
Jan- Kees van Andel So0ware Architect, JPoint, @jankeesvanandel 1 1 What I always liked about programming 2 2 And it keeps getting better... 3 3 Also for the web 4 4 Not only games 5 5 And not only WebGL
JavaScript Patterns. Stoyan Stefanov. O'REILLY' Beijing Cambridge Farnham Koln Sebastopol Tokyo
JavaScript Patterns Stoyan Stefanov O'REILLY' Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Preface xi 1. Introduction 1 Patterns 1 JavaScript: Concepts 3 Object-Oriented 3 No Classes
QML and JavaScript for Native App Development
Esri Developer Summit March 8 11, 2016 Palm Springs, CA QML and JavaScript for Native App Development Michael Tims Lucas Danzinger Agenda Native apps. Why? Overview of Qt and QML How to use JavaScript
MASTERTAG DEVELOPER GUIDE
MASTERTAG DEVELOPER GUIDE TABLE OF CONTENTS 1 Introduction... 4 1.1 What is the zanox MasterTag?... 4 1.2 What is the zanox page type?... 4 2 Create a MasterTag application in the zanox Application Store...
Progressive Enhancement With GQuery and GWT. Ray Cromwell [email protected]
Progressive Enhancement With GQuery and GWT Ray Cromwell [email protected] Web Application Models Web 1.0, 1 Interaction = 1 Page Refresh Pure JS, No Navigation Away from Page Mixed Model, Page Reloads
Web Components What s the Catch? TJ VanToll @tjvantoll
Web Components What s the Catch? TJ VanToll @tjvantoll Kendo UI jquery UI UI libraries are seen as the ideal use case for web components Proof- of- concept rewrite of a few jquery UI widgets to use web
Coding for Desktop and Mobile with HTML5 and Java EE 7
Coding for Desktop and Mobile with HTML5 and Java EE 7 Coding for Desktop and Mobile with HTML5 and Java EE 7 Geertjan Wielenga - NetBeans - DukeScript - VisualVM - Jfugue Music Notepad - Java - JavaScript
JavaScript as a compilation target Making it fast
JavaScript as a compilation target Making it fast Florian Loitsch, Google Who am I? Florian Loitsch, software engineer at Google Projects Scheme2Js - Scheme-to-JavaScript compiler Js2scheme - JavaScript-to-Scheme
Responsive Web Design Creative License
Responsive Web Design Creative License Level: Introduction - Advanced Duration: 16 Days Time: 9:30 AM - 4:30 PM Cost: 2197 Overview Web design today is no longer just about cross-browser compatibility.
Art of Code Front-end Web Development Training Program
Art of Code Front-end Web Development Training Program Pre-work (5 weeks) Codecademy HTML5/CSS3 and JavaScript tracks HTML/CSS (7 hours): http://www.codecademy.com/en/tracks/web JavaScript (10 hours):
TypeScript for C# developers. Making JavaScript manageable
TypeScript for C# developers Making JavaScript manageable Agenda What is TypeScript OO in TypeScript Closure Generics Iterators Asynchronous programming Modularisation Debugging TypeScript 2 What is TypeScript
GUI and Web Programming
GUI and Web Programming CSE 403 (based on a lecture by James Fogarty) Event-based programming Sequential Programs Interacting with the user 1. Program takes control 2. Program does something 3. Program
JavaScript Programming
JavaScript Programming Pushing the Limits ADVANCED APPLICATION DEVELOPMENT WITH JAVASCRIPT & HTML5 Jon Raasch WILEY Contents About the Author vi Dedication vii About the Contributor ix Acknowledgments
How To Use Titanium Studio
Crossplatform Programming Lecture 3 Introduction to Titanium http://dsg.ce.unipr.it/ http://dsg.ce.unipr.it/?q=node/37 [email protected] 2015 Parma Outline Introduction Installation and Configuration
Drupal CMS for marketing sites
Drupal CMS for marketing sites Intro Sample sites: End to End flow Folder Structure Project setup Content Folder Data Store (Drupal CMS) Importing/Exporting Content Database Migrations Backend Config Unit
ICON UK 2015 node.js for Domino developers. Presenter: Matt White Company: LDC Via
ICON UK 2015 node.js for Domino developers Presenter: Matt White Company: LDC Via September 2012 Agenda What is node.js? Why am I interested? Getting started NPM Express Domino Integration Deployment A
GTask Developing asynchronous applications for multi-core efficiency
GTask Developing asynchronous applications for multi-core efficiency February 2009 SCALE 7x Los Angeles Christian Hergert What Is It? GTask is a mini framework to help you write asynchronous code. Dependencies
Advanced Web Development SCOPE OF WEB DEVELOPMENT INDUSTRY
Advanced Web Development Duration: 6 Months SCOPE OF WEB DEVELOPMENT INDUSTRY Web development jobs have taken thе hot seat when it comes to career opportunities and positions as a Web developer, as every
Learning HTML5 Game Programming
Learning HTML5 Game Programming A Hands-on Guide to Building Online Games Using Canvas, SVG, and WebGL James L. Williams AAddison-Wesley Upper Saddle River, NJ Boston Indianapolis San Francisco New York
Citrix StoreFront. Customizing the Receiver for Web User Interface. 2012 Citrix. All rights reserved.
Citrix StoreFront Customizing the Receiver for Web User Interface 2012 Citrix. All rights reserved. Customizing the Receiver for Web User Interface Introduction Receiver for Web provides a simple mechanism
Official Android Coding Style Conventions
2012 Marty Hall Official Android Coding Style Conventions Originals of Slides and Source Code for Examples: http://www.coreservlets.com/android-tutorial/ Customized Java EE Training: http://courses.coreservlets.com/
JavaScript Basics & HTML DOM. Sang Shin Java Technology Architect Sun Microsystems, Inc. [email protected] www.javapassion.com
JavaScript Basics & HTML DOM Sang Shin Java Technology Architect Sun Microsystems, Inc. [email protected] www.javapassion.com 2 Disclaimer & Acknowledgments Even though Sang Shin is a full-time employee
Visualizing MongoDB Objects in Concept and Practice
Washington DC 2013 Visualizing MongoDB Objects in Concept and Practice https://github.com/cvitter/ikanow.mongodc2013.presentation Introduction Do you have a MongoDB database full of BSON documents crying
Lecture 9 Chrome Extensions
Lecture 9 Chrome Extensions 1 / 22 Agenda 1. Chrome Extensions 1. Manifest files 2. Content Scripts 3. Background Pages 4. Page Actions 5. Browser Actions 2 / 22 Chrome Extensions 3 / 22 What are browser
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months
Specialized Android APP Development Program with Java (SAADPJ) Duration 2 months Our program is a practical knowledge oriented program aimed at making innovative and attractive applications for mobile
JQUERY SANS JQUERY Raphaël Rougeron / @goldoraf
JQUERY SANS JQUERY Raphaël Rougeron / @goldoraf JAVASCRIPT IL Y A 10 ANS 2006 JQUERY AUJOURD'HUI 92,2% POLYFILLING if ('queryselector' in document && 'localstorage' in window && 'addeventlistener'
Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00
Course Page - Page 1 of 12 Mobile Web Design with HTML5, CSS3, JavaScript and JQuery Mobile Training BSP-2256 Length: 5 days Price: $ 2,895.00 Course Description Responsive Mobile Web Development is more
JavaScript Client Guide
JavaScript Client Guide Target API: Lightstreamer JavaScript Client v. 6.2 Last updated: 28/01/2015 Table of contents 1 INTRODUCTION...3 2 JAVASCRIPT CLIENT DEVELOPMENT...4 2.1 Deployment Architecture...4
Development Techniques for Native/Hybrid Tizen Apps. Presented by Kirill Kruchinkin
Development Techniques for Native/Hybrid Tizen Apps Presented by Kirill Kruchinkin Agenda Introduction and Definitions Practices Case Studies 2 Introduction & Definitions 2 App Types Browser Apps Installable
Frameworks & Android. Programmeertechnieken, Tim Cocx
Frameworks & Android Programmeertechnieken, Tim Cocx Discover thediscover world atthe Leiden world University at Leiden University Software maken is hergebruiken The majority of programming activities
Cross Site Scripting (XSS) and PHP Security. Anthony Ferrara NYPHP and OWASP Security Series June 30, 2011
Cross Site Scripting (XSS) and PHP Security Anthony Ferrara NYPHP and OWASP Security Series June 30, 2011 What Is Cross Site Scripting? Injecting Scripts Into Otherwise Benign and Trusted Browser Rendered
10CS73:Web Programming
10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server
Android Application Development Course Program
Android Application Development Course Program Part I Introduction to Programming 1. Introduction to programming. Compilers, interpreters, virtual machines. Primitive data types, variables, basic operators,
IBM Digital Experience. Using Modern Web Development Tools and Technology with IBM Digital Experience
IBM Digital Experience Using Modern Web Development Tools and Technology with IBM Digital Experience Agenda The 2015 web development landscape and IBM Digital Experience Modern web applications and frameworks
Getting Started Developing JavaScript Web Apps. this = that. VT Geospatial Forum 2015
Getting Started Developing JavaScript Web Apps this = that VT Geospatial Forum 2015 GCS = Geographic Communication Systems GCS specializes in location technology development, working with GIS and other
NoSQL web apps. w/ MongoDB, Node.js, AngularJS. Dr. Gerd Jungbluth, NoSQL UG Cologne, 4.9.2013
NoSQL web apps w/ MongoDB, Node.js, AngularJS Dr. Gerd Jungbluth, NoSQL UG Cologne, 4.9.2013 About us Passionate (web) dev. since fallen in love with Sinclair ZX Spectrum Academic background in natural
Android Developer Fundamental 1
Android Developer Fundamental 1 I. Why Learn Android? Technology for life. Deep interaction with our daily life. Mobile, Simple & Practical. Biggest user base (see statistics) Open Source, Control & Flexibility
... Introduction... 17. ... Acknowledgments... 19
... Introduction... 17... Acknowledgments... 19 PART I... Getting Started... 21 1... Introduction to Mobile App Development... 23 1.1... The Mobile Market and SAP... 23 1.1.1... Growth of Smart Devices...
Lecture 1 Introduction to Android
These slides are by Dr. Jaerock Kwon at. The original URL is http://kettering.jrkwon.com/sites/default/files/2011-2/ce-491/lecture/alecture-01.pdf so please use that instead of pointing to this local copy
Web Programming Step by Step
Web Programming Step by Step Lecture 13 Introduction to JavaScript Reading: 7.1-7.4 Except where otherwise noted, the contents of this presentation are Copyright 2009 Marty Stepp and Jessica Miller. Client-side
Modern Web Development From Angle Brackets to Web Sockets
Modern Web Development From Angle Brackets to Web Sockets Pete Snyder Outline (or, what am i going to be going on about ) 1.What is the Web? 2.Why the web matters 3.What s unique about
Developer Tutorial Version 1. 0 February 2015
Developer Tutorial Version 1. 0 Contents Introduction... 3 What is the Mapzania SDK?... 3 Features of Mapzania SDK... 4 Mapzania Applications... 5 Architecture... 6 Front-end application components...
Part I: The Road to Single Page Application Development... 1
www.allitebooks.com For your convenience Apress has placed some of the front matter material after the index. Please use the Bookmarks and Contents at a Glance links to access them. www.allitebooks.com
INFORMATION TECHNOLOGY STANDARD
COMMONWEALTH OF PENNSYLVANIA DEPARTMENT OF Human Services INFORMATION TECHNOLOGY STANDARD Name Of Standard: Mobile Development Domain: Application Number: Category: STD-EASS010 Date Issued: Issued By Direction
Dave Haseman, Ross. Hightower. Mobile Development for SAP* ^>. Galileo Press. Bonn. Boston
Dave Haseman, Ross Hightower Mobile Development for SAP* -a ^>. Galileo Press # Bonn Boston Introduction 17 Acknowledgments 19 PART I Getting Started 1.1 The Mobile Market and SAP 23 1.1.1 Growth of Smart
AngularJS in 60 Minutes
AngularJS in 60 Minutes by Dan Wahlin Transcription and Arrangement by Ian Smith 2013, 2014 Wahlin Consulting 1 P a g e Video Length: 01:10:49 So you ve heard about AngularJS, but you re not exactly sure
Skills for Employment Investment Project (SEIP)
Skills for Employment Investment Project (SEIP) Standards/ Curriculum Format For Web Design Course Duration: Three Months 1 Course Structure and Requirements Course Title: Web Design Course Objectives:
Intro to Web Programming. using PHP, HTTP, CSS, and Javascript Layton Smith CSE 4000
Intro to Web Programming using PHP, HTTP, CSS, and Javascript Layton Smith CSE 4000 Intro Types in PHP Advanced String Manipulation The foreach construct $_REQUEST environmental variable Correction on
The V8 JavaScript Engine
The V8 JavaScript Engine Design, Implementation, Testing and Benchmarking Mads Ager, Software Engineer Agenda Part 1: What is JavaScript? Part 2: V8 internals Part 3: V8 testing and benchmarking What is
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator
Tutorial: Building a Dojo Application using IBM Rational Application Developer Loan Payment Calculator Written by: Chris Jaun ([email protected]) Sudha Piddaparti ([email protected]) Objective In this
Apex Code: The World s First On-Demand Programming Language
WHIT EP AP ER Apex Code: The World s First On-Demand Programming Language Contents Extending the Power of the Apex Platform... 1 Multi-tenancy and Programming Languages... 1 Apex Code Design and Syntax...
Java 7 Recipes. Freddy Guime. vk» (,\['«** g!p#« Carl Dea. Josh Juneau. John O'Conner
1 vk» Java 7 Recipes (,\['«** - < g!p#«josh Juneau Carl Dea Freddy Guime John O'Conner Contents J Contents at a Glance About the Authors About the Technical Reviewers Acknowledgments Introduction iv xvi
PROFESSIONAL. Node.js BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE. Pedro Teixeira WILEY. John Wiley & Sons, Inc.
PROFESSIONAL Node.js BUILDING JAVASCRIPT-BASED SCALABLE SOFTWARE Pedro Teixeira WILEY John Wiley & Sons, Inc. INTRODUCTION xxvii CHAPTER 1: INSTALLING NODE 3 Installing Node on Windows 4 Installing on
The Learn-Verified Full Stack Web Development Program
The Learn-Verified Full Stack Web Development Program Overview This online program will prepare you for a career in web development by providing you with the baseline skills and experience necessary to
WEB DESIGN COURSE CONTENT
WEB DESIGN COURSE CONTENT INTRODUCTION OF WEB TECHNOLOGIES Careers in Web Technologies How Websites are working Domain Types and Server About Static and Dynamic Websites Web 2.0 Standards PLANNING A BASIC
Software Development Interactief Centrum voor gerichte Training en Studie Edisonweg 14c, 1821 BN Alkmaar T: 072 511 12 23
Microsoft SharePoint year SharePoint 2013: Search, Design and 2031 Publishing New SharePoint 2013: Solutions, Applications 2013 and Security New SharePoint 2013: Features, Delivery and 2010 Development
Java Application Developer Certificate Program Competencies
Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle
IBM Script Portlet for WebSphere Portal Release 1.1
IBM Script Portlet for WebSphere Portal Release 1.1 Topics Why script applications for WebSphere Portal The Script Portlet approach and its benefits Using Script Portlet Accessing data and services Downloadable
Dashboard Skin Tutorial. For ETS2 HTML5 Mobile Dashboard v3.0.2
Dashboard Skin Tutorial For ETS2 HTML5 Mobile Dashboard v3.0.2 Dashboard engine overview Dashboard menu Skin file structure config.json Available telemetry properties dashboard.html dashboard.css Telemetry
Sizmek Formats. IAB Mobile Pull. Build Guide
Sizmek Formats IAB Mobile Pull Build Guide Table of Contents Overview...3 Supported Platforms... 6 Demos/Downloads... 6 Known Issues... 6 Implementing a IAB Mobile Pull Format...6 Included Template Files...
Java (12 Weeks) Introduction to Java Programming Language
Java (12 Weeks) Topic Lecture No. Introduction to Java Programming Language 1 An Introduction to Java o Java as a Programming Platform, The Java "White Paper" Buzzwords, Java and the Internet, A Short
Glossary of Object Oriented Terms
Appendix E Glossary of Object Oriented Terms abstract class: A class primarily intended to define an instance, but can not be instantiated without additional methods. abstract data type: An abstraction
Finding XSS in Real World
Finding XSS in Real World by Alexander Korznikov [email protected] 1 April 2015 Hi there, in this tutorial, I will try to explain how to find XSS in real world, using some interesting techniques. All
Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation
Course Information Course Number: IWT 1229 Course Name: Web Development and Design Foundation Credit-By-Assessment (CBA) Competency List Written Assessment Competency List Introduction to the Internet
CS193j, Stanford Handout #10 OOP 3
CS193j, Stanford Handout #10 Summer, 2003 Manu Kumar OOP 3 Abstract Superclass Factor Common Code Up Several related classes with overlapping code Factor common code up into a common superclass Examples
JavaScript. JavaScript: fundamentals, concepts, object model. Document Object Model. The Web Page. The window object (1/2) The document object
JavaScript: fundamentals, concepts, object model Prof. Ing. Andrea Omicini II Facoltà di Ingegneria, Cesena Alma Mater Studiorum, Università di Bologna [email protected] JavaScript A scripting language:
MarkLogic Server. Node.js Application Developer s Guide. MarkLogic 8 February, 2015. Copyright 2016 MarkLogic Corporation. All rights reserved.
Node.js Application Developer s Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-5, March, 2016 Copyright 2016 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents Node.js
Spring Design ScreenShare Service SDK Instructions
Spring Design ScreenShare Service SDK Instructions V1.0.8 Change logs Date Version Changes 2013/2/28 1.0.0 First draft 2013/3/5 1.0.1 Redefined some interfaces according to issues raised by Richard Li
Table of Contents. Adding Build Targets to the SDK 8 The Android Developer Tools (ADT) Plug-in for Eclipse 9
SECOND EDITION Programming Android kjj *J} Zigurd Mednieks, Laird Dornin, G. Blake Meike, and Masumi Nakamura O'REILLY Beijing Cambridge Farnham Koln Sebastopol Tokyo Table of Contents Preface xiii Parti.
Front-End Performance Testing and Optimization
Front-End Performance Testing and Optimization Abstract Today, web user turnaround starts from more than 3 seconds of response time. This demands performance optimization on all application levels. Client
This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications.
20486B: Developing ASP.NET MVC 4 Web Applications Course Overview This course provides students with the knowledge and skills to develop ASP.NET MVC 4 web applications. Course Introduction Course Introduction
INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011
INTRODUCTION TO ANDROID CSCI 4448/5448: OBJECT-ORIENTED ANALYSIS & DESIGN LECTURE 11 02/15/2011 1 Goals of the Lecture Present an introduction to the Android Framework Coverage of the framework will be
The full setup includes the server itself, the server control panel, Firebird Database Server, and three sample applications with source code.
Content Introduction... 2 Data Access Server Control Panel... 2 Running the Sample Client Applications... 4 Sample Applications Code... 7 Server Side Objects... 8 Sample Usage of Server Side Objects...
Sitecore Dashboard User Guide
Sitecore Dashboard User Guide Contents Overview... 2 Installation... 2 Getting Started... 3 Sample Widgets... 3 Logged In... 3 Job Viewer... 3 Workflow State... 3 Publish Queue Viewer... 4 Quick Links...
ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY
ANDROID BASED MOBILE APPLICATION DEVELOPMENT and its SECURITY Suhas Holla #1, Mahima M Katti #2 # Department of Information Science & Engg, R V College of Engineering Bangalore, India Abstract In the advancing
Paul Boisvert. Director Product Management, Magento
Magento 2 Overview Paul Boisvert Director Product Management, Magento Platform Goals Release Approach 2014 2015 2016 2017 2.0 Dev Beta 2.0 Merchant Beta 2.x Ongoing Releases 2.0 Dev RC 2.0 Merchant GA
Skills for Employment Investment Project (SEIP)
Skills for Employment Investment Project (SEIP) Standards/ Curriculum Format for Web Application Development Using DOT Net Course Duration: Three Months 1 Course Structure and Requirements Course Title:
Web Designing with UI Designing
Dear Student, Based upon your enquiry we are pleased to send you the course curriculum for Web Designing Given below is the brief description for the course you are looking for: Web Designing with UI Designing
CLASSROOM WEB DESIGNING COURSE
About Web Trainings Academy CLASSROOM WEB DESIGNING COURSE Web Trainings Academy is the Top institutes in Hyderabad for Web Technologies established in 2007 and managed by ITinfo Group (Our Registered
Interactive Data Visualization for the Web Scott Murray
Interactive Data Visualization for the Web Scott Murray Technology Foundations Web technologies HTML CSS SVG Javascript HTML (Hypertext Markup Language) Used to mark up the content of a web page by adding
Fundamentals of Java Programming
Fundamentals of Java Programming This document is exclusive property of Cisco Systems, Inc. Permission is granted to print and copy this document for non-commercial distribution and exclusive use by instructors
Example. Represent this as XML
Example INF 221 program class INF 133 quiz Assignment Represent this as XML JSON There is not an absolutely correct answer to how to interpret this tree in the respective languages. There are multiple
Working with Indicee Elements
Working with Indicee Elements How to Embed Indicee in Your Product 2012 Indicee, Inc. All rights reserved. 1 Embed Indicee Elements into your Web Content 3 Single Sign-On (SSO) using SAML 3 Configure an
HybriDroid: Analysis Framework for Android Hybrid Applications
HybriDroid: Analysis Framework for Android Hybrid Applications Sungho Lee, Julian Dolby, Sukyoung Ryu Programming Language Research Group KAIST June 13, 2015 Sungho Lee, Julian Dolby, Sukyoung Ryu HybriDroid:
Rapid Game Development Using Cocos2D-JS
Rapid Game Development Using Cocos2D-JS An End-To-End Guide to 2D Game Development using Javascript Hemanthkumar and Abdul Rahman This book is for sale at http://leanpub.com/cocos2d This version was published
Java with Eclipse: Setup & Getting Started
Java with Eclipse: Setup & Getting Started Originals of slides and source code for examples: http://courses.coreservlets.com/course-materials/java.html Also see Java 8 tutorial: http://www.coreservlets.com/java-8-tutorial/
