Evolution of the "Web

Size: px
Start display at page:

Download "Evolution of the "Web"

Transcription

1 Evolution of the "Web

2 @Hoarse_JS

3 THIS USED TO BE SIMPLE!

4 1. WRITE SOME HTML 2. LAY IT OUT WITH FRAMES OR TABLES 3. FTP IT TO A SERVER! 4. BAM!

5 CONGRATULATIONS, YOU RE A WEB DEVELOPER!

6 THEN IT GOT HARDER

7 WHO S WRITTEN THEIR OWN BLOG SOFTWARE?

8 OVER ENGINEERING A BLOG WAS A RITE OF PASSAGE

9 1. WRITE SOME PHP/PYTHON/ASP/COLDFUSION 2. SET UP RELATIONAL DATABASE 3. WRITE SOME BAD SQL 4. SHOVE DYNAMIC DATA INTO OUR HTML 5. LAY IT OUT WITH CSS (NO TABLES THIS TIME) 6. RUN IT ON SHARED HOSTING SOMEWHERE

10 CONGRATULATIONS, YOU RE A WEB DEVELOPER!

11 PHEW!!

12 THEN WE GOT "SMART"

13 USE A FRAMEWORK!!

14 1. RAILS 2. ALL THEM PHP FRAMEWORKS 3. DJANGO 4. ETC.

15 OUR EXCESSIVLELY DYNAMIC BLOG IS NOW BETTER ORGANIZED AND HAS MORE DEPENDENCIES

16 CONGRATULATIONS, YOU RE A WEB DEVELOPER!

17 WHAT ABOUT TODAY?

18 BACK-END FRONT-END ISOMORPHIC RESPONSIVE ES6(2015) BABEL TRACEUR AMD COMMONJS MVC MVVM FLUX RELAY GULP GRUNT API-GATEWAY CORS JSON-WEB-TOKENS NODE.JS HTTP 2.0 OFFLINE-FIRST MOBILE-FIRST WEBGL WEBRTC WEBSOCKET GRAPHQL AMPERSAND EMBER REALTIME REDIS RIAK LEVELDB RABBITMQ PUSH-NOTIFICATION ENABLED BACKBONE APP WITH POLYFILLED POLYMER WEB COMPONENTS

19 CONGRATULATIONS YOU MIGHT BE A "WEB DEVELOPER"

20 WHAT DOES "WEB DEVELOPER" EVEN MEAN?

21 WHAT DOES "WEB APP" EVEN MEAN?

22 THE BROWSER ISN T OUR RENDERER

23 THE BROWSER IS OUR RUNTIME

24 THE WEBVIEW IS OUR RUNTIME

25 MORE LOGIC MOVING TO FRONT-END JS

26 DEVS WITH DIFFERENT BACKGROUNDS CONVERGING ON JS

27 BRINGING THEIR PATTERNS AND PREFERENCES

28 BACK-END FRONT-END ISOMORPHIC RESPONSIVE ES6(2015) BABEL TRACEUR AMD COMMONJS MVC MVVM FLUX RELAY GULP GRUNT API-GATEWAY CORS JSON-WEB-TOKENS NODE.JS HTTP 2.0 OFFLINE-FIRST MOBILE-FIRST WEBGL WEBRTC WEBSOCKET GRAPHQL AMPERSAND EMBER REALTIME REDIS RIAK LEVELDB RABBITMQ PUSH-NOTIFICATION ENABLED BACKBONE APP WITH POLYFILLED POLYMER WEB COMPONENTS

29 SINGLE PAGE APPS

30 HUH?

31 SINGLE PAGE APPS

32 "NATIVE"

33 I M A WEB DEVELOPER

34 NATIVE WEB APP

35 1. JAVASCRIPT 2. HTML 3. CSS 4. BROWSER APIS

36 FUNDAMENTAL DISTINCTION

37 THE BROWSER IS YOUR RUNTIME

38 SEND THE APP ITSELF TO THE BROWSER INSTEAD OF THE RESULT OF RUNNING IT

39 <!doctype> <script src="app js"></script>

40 SHOULD WE EVEN BE DOING THIS?

41 SHOULD WE BUILD APPS THAT REQUIRE JAVASCRIPT?

42

43 SHOULD WE BUILD APPS THAT REQUIRE JAVASCRIPT?

44 {{ RAISE YOUR HAND }}

45 YES!

46 WHAT SERVICE ARE WE PROVIDING?

47 CONTENT?

48 CONTENT SHOULD JUST WORK

49 NO REASON TO COMPLICATE THINGS THAT CAN BE SIMPLE

50 BUT THE WEB IS NO LONGER JUST ABOUT LINKED CONTENT!

51 THERE ARE CASES WHERE CLIENTSIDE FUNCTIONALITY IS THE CORE VALUE PROVIDED BY SERVICE

52

53

54

55

56 HIGH PERFORMANCE 1. RENDERING 2. NETWORKING 3. FILE READ/WRITE 4. STORAGE 5. WEB AUDIO APIS 6. WEBGL 7. VOICE/VIDEO

57 BROWSERS ARE NOT DUMB DOCUMENT VIEWERS

58 MOST CAPABLE UBIQUITOUS RUNTIMES ON THE PLANET

59 I M JUST GOING TO SAY IT:

60 THERE ARE TWO TYPES OF APPLICATIONS ON THE WEB

61 1. NATIVE WEB APPS

62 2. SERVER-SIDE WEB APPS

63 THEY ARE FUNDAMENTALLY DIFFERENT

64 AND THAT S O.K.

65 ANYTHING WE CAN BUILD WITH WEB TECH I THINK WE SHOULD

66 EVEN IF WE CAN T SUPPORT OLDER BROWSERS

67 THE WEB IS INFINITELY MORE OPEN THAN NATIVE PLATFORMS

68 USER EXPECTATIONS HAVE EVOLVED

69 THE WEB IS DOING PRETTY WELL ON DESKTOPS

70 THE WEB IS LOSING ON MOBILE

71 THE WEB IS LOSING ON EXPERIENCE

72 WE OFTEN PREFER NATIVE APPS TO THE WEB

73 QUALITY AND POLISH OF USER EXPERIENCE IS OFTEN MUCH BETTER

74 LET S FIX THIS!

75 WE RE TOO FOCUSED ON THE PAST INSTEAD OF COMPETING ON EXPERIENCE

76 SAYING THERE S A DISTINCTION MAKES SOME PEOPLE MAD

77 "Everything should be an enhancement!"

78 WE RE ON THE SAME TEAM!

79 WE WANT THE OPEN WEB TO WIN!

80 HOW COULD WE EVEN BUILD A PROGRESSIVELY ENHANCED VERSION OF TALKY?

81 SHOULD WE NOT HAVE BUILT IT?

82 WHERE S THE DOWNSIDE?

83 LET S LOOK A BIT CLOSER AT TWITTER

84 WHAT IS TWITTER?

85 IS IT A WEB APP?

86 NO.

87 IT S A SERVICE

88 APP!= SERVICE

89 twitter.com tweet deck tweetbot TWITTER ad dashboard android app ios app

90 I DIDN T REALLY CARE HOW THEY BUILT THEIR WEBAPP

91 BECAUSE I DIDN T USE IT ANYWAY!

92 I WAS USING AN ios APP!

93 THEIR WEB APP HAD ALREADY FAILED ME!

94 LET S THINK ABOUT THIS

95 WHEN I FOLLOW A LINK TO A RANDOM TWEET ON MY PHONE

96 JUST LET ME READ IT!

97 I DON T MIND IF IT S plain text

98 DON T MAKE ME DOWNLOAD 2MB OF JS TO READ 140 CHARACTERS OF TEXT!

99 THIS IS THE PROBLEM THEY FIXED WITH NEW NEW TWITTER

100 BUT

101 CATCHING UP WITH ALL THINGS TWITTER IS A FUNDAMENTALLY DIFFERENT USE CASE

102 FAILING TO RECOGNIZE DISTINCTION MAKES US FLOUNDER

103 A SERVICE CAN PROVIDE BOTH!

104 TWITTER.COM & TWEETDECK.COM

105 THERE S STILL SOME GAPS BETWEEN WEB AND NATIVE

106 REAL OFFLINE SUPPORT

107 PLATFORMS THAT TREAT NATIVE WEB APPS AS FIRST CLASS CITIZENS

108 THOSE THINGS ARE CHANGING

109 1. SERVICE WORKER

110 1. SERVICE WORKER PROGRAMMABLE CACHE LAYER CAN INTERCEPTS ALL NETWORK REQUESTS

111 THIS IS HUGE!

112 2. INSTALLABLE WEB APPS

113 JSON-BASED WEB MANIFEST CHROME M39+ FIREFOX

114 1. SIGNAL INTENT 2. UNINSTALL 3. DEEPER DEVICE APIS

115 "What about performance?"

116 WHITE PAGE OF DEATH

117 TIME TO FIRST PAINT

118 A PRIMED CACHE LARGELY INVALIDATES THIS ARGUMENT

119 1. GIVE IT A UNIQUE NAME <!doctype> <script src="app js"></script> 2. CACHE IT FOREVER HTTP/ OK Cache-Control: max-age=really BIG NUMBER! Content-Encoding: gzip

120 MOST OF THESE TYPES OF APPS REQUIRE YOU TO BE LOGGED IN

121 PRE-FETCH APP ON PUBLIC PAGES OR LOGIN PAGE

122 NATIVE WEB APPS CAN STILL HAVE SMALL JS PAYLOADS!

123 ALL JS IN THE AMPERSAND.JS APP ON TODOMVC.COM COMBINED 28kb min + gzip

124 SMALLER THAN JQUERY 2.0

125 THE OTHER ASPECT OF PERFORMANCE

126 ONCE LOADED, PERFORMANCE IS WAY BETTER!

127 IF I M GOING TO LEAVE APP OPEN ON MY DESKTOP I CARE WAY LESS ABOUT LOAD TIME

128 "What about dual rendered a.k.a. isomorphic apps?"

129 JUST A CLIENTSIDE APP WITH AN OPTIMIZED INITIAL RENDER

130 GOING FULL-ISOMORPHIC RENDERING, WITH USER DATA AND ALL

131 OFTEN REQUIRES DRAMATICALLY MORE COMPLEX CODE

132 THERE ARE SOME CASES WHERE IT MAKES SENSE

133 WITH STATE OF TOOLING TODAY OFTEN NOT WORTH THE COMPLEXITY

134 HOWEVER

135 DOESN T HAVE TO BE ALL OR NOTHING

136 WE CAN PRE-RENDER EVERYTHING THAT S NOT USER-SPECIFIC DATA

137 WE CAN DO THIS AS A FULLY STATIC SITE

138 Route: Asset: site.com/pic.png -> pic.png site.com site.com/page site.com/asdf -> index.html -> page.html -> 404.html or 200.html

139 WOAH!

140 APPS USUALLY HAVE: 1. public/marketing pages 2. all the stuff behind the login

141 WRITE "PUBLIC" PAGES AND APP LAYOUT HTML AS ISOMORPHIC COMPONENTS

142 PRE-RENDER THEM TO STATIC PAGES AT BUILD TIME!

143 SLIP IN THE BUILT JS BEFORE: </body>

144 index.html: public home page 200.html: application layout

145 COULD POTENTIALLY EVEN DO THIS FOR DYNAMIC/PUBLIC DATA

146 THINK ABOUT WHAT WE GET

147 pixels on the screen immediately

148 TOTALLY CRAWLABLE (SEO)

149 JS TAKES OVER ROUTING WHEN LOADED

150 DEPLOYMENT AND OPS BECOME AS SIMPLE AS FTP

151 WRITE 1 VERSION OF YOUR APP GET 90% OF BENEFIT FROM ISOMORPHIC RENDERING

152 USERS WILL END UP WITH A PRIMED CACHE JUST BY VISITING YOUR MARKETING PAGES

153 READY FOR: PHONEGAP/CORDOVA DESKTOP APP

154 NOW WE HAVE AN APP WITH A SINGULAR CONCERN: PRESENTATION

155 I VE STARTING BUILDING ALL MY APPS AS STATIC NATIVE WEB APPS

156 TOTALLY <3 IT!

157 FOR SO LONG THE TREND HAS BEEN TOWARD COMPLEXITY

158

159 WHAT S THE NEXT STEP IN THE EVOLUTION OF THE "WEB APP"?

160 GOING BACK TO SIMPLE

161 GOING BACK TO THE STATIC WEB

162 STATIC NATIVE WEB APPS

163 POWERED BY SERVICES SOME WHICH WE BUILD MANY OF WHICH WE RENT

164 surge.sh hood.ie firebase.com auth0.com divshot.com

165 SIMPLE OPEN SOURCE EXAMPLE: HubTags.com

166 React Ampersand.js Webpack (hjs-webpack) GitHub API Surge.sh

167 andyet.com

168 HOW CAN WE BE SURE WE RE BUILDING WITH THE RIGHT TOOLS?!

169 WE CAN T!

170 WHAT DO WE KNOW?

171 THINGS WILL CHANGE

172 BUILD MODULAR SYSTEMS THAT STRIVE TO BE AS SIMPLE AS THEY CAN BE

173 OFFLOADING PRESENTATION STATIC NATIVE WEB APPS

174 BUILDING MICROSERVICES TO ENABLE THAT TYPE OF APP

175 OPTIMIZE FOR CHANGE. IT IS THE ONLY CONSTANT.

176 LET S KEEP PUSHING FOR SIMPLICITY

177 LET S BUILD FOR THE FUTURE OF THE WEB, NOT ITS PAST

178 andyet.com

Arjen de Blok. Senior Technical Consultant bij ICT Groep ( sinds 1995 Programmeren sinds 1990 Technologiën. Links

Arjen de Blok. Senior Technical Consultant bij ICT Groep (  sinds 1995 Programmeren sinds 1990 Technologiën. Links Arjen de Blok Senior Technical Consultant bij ICT Groep (www.ict.eu) sinds 1995 Programmeren sinds 1990 Technologiën Links Visual C++ met Microsoft Foundation Classes.NET WinForms & WPF Silverlight ASP.NET

More information

welcome to BOILERCAMP HOW TO WEB DEV

welcome to BOILERCAMP HOW TO WEB DEV welcome to BOILERCAMP HOW TO WEB DEV Introduction / Project Overview The Plan Personal Website/Blog Schedule Introduction / Project Overview HTML / CSS Client-side JavaScript Lunch Node.js / Express.js

More information

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager

HTML5 Evolution and Development. Matt Spencer UI & Browser Marketing Manager HTML5 Evolution and Development Matt Spencer UI & Browser Marketing Manager 1 HTML5 Ratified. finally! After 7 years of development, the HTML5 specification was ratified on 28 th October 14 urce>

More information

JavaScript and MVC Frameworks FRONT-END ENGINEERING

JavaScript and MVC Frameworks FRONT-END ENGINEERING FRONT-END ENGINEERING Introduction & History Introduction JavaScript is an incredible language to learn for anyone interested in getting into programming. It is the only programing language that can run

More information

Ten interesting features of Google s Angular Project

Ten interesting features of Google s Angular Project Ten interesting features of Google s Angular Project - 1 Ten interesting features of Google s Angular Project Copyright Clipcode Ltd 2018 All rights reserved Ten interesting features of Google s Angular

More information

Web Development for Dinosaurs An Introduction to Modern Web Development

Web Development for Dinosaurs An Introduction to Modern Web Development Web Development for Dinosaurs An Introduction to Modern Web Development 1 / 53 Who Am I? John Cleaver Development Team Lead at Factivity, Inc. An Introduction to Modern Web Development - PUG Challenge

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

Cisco Spark Widgets Technical drill down

Cisco Spark Widgets Technical drill down DEVNET-1891 Cisco Spark Widgets Technical drill down Adam Weeks, Engineer @CiscoSparkDev Stève Sfartz, API Evangelist @CiscoDevNet Cisco Spark How Questions? Use Cisco Spark to communicate with the speaker

More information

Invest in the future, build for the web!

Invest in the future, build for the web! Invest in the future: build for the web! Soledad Penadés @supersole 1 of 61 20/06/2014 12:56 Apps Engineer, Mozilla 2 of 61 20/06/2014 12:56 Some time before... Android 3 of 61 20/06/2014 12:56 You can

More information

React(.js) the Domino Way High-Performance Client for Domino. Knut Herrmann

React(.js) the Domino Way High-Performance Client for Domino. Knut Herrmann React(.js) the Domino Way High-Performance Client for Domino Knut Herrmann CollabSphere 2018 Sponsors Knut Herrmann Senior Software Architect Leonso GmbH Notes Domino developer since version 2 Web application

More information

Finally JavaScript Is Easy, with Oracle JET! Geertjan Wielenga Product Manager Oracle Developer Tools

Finally JavaScript Is Easy, with Oracle JET! Geertjan Wielenga Product Manager Oracle Developer Tools Finally JavaScript Is Easy, with Oracle JET! Geertjan Wielenga Product Manager Oracle Developer Tools Oracle JET Customers Across Oracle Include... Internet of Things Mobile Cloud Service Developer

More information

Simple AngularJS thanks to Best Practices

Simple AngularJS thanks to Best Practices Simple AngularJS thanks to Best Practices Learn AngularJS the easy way Level 100-300 What s this session about? 1. AngularJS can be easy when you understand basic concepts and best practices 2. But it

More information

AngularJS Fundamentals

AngularJS Fundamentals AngularJS Fundamentals by Jeremy Zerr Blog: http://www.jeremyzerr.com LinkedIn: http://www.linkedin.com/in/jrzerr Twitter: http://www.twitter.com/jrzerr What is AngularJS Open Source Javascript MVC/MVVM

More information

Unifer Documentation. Release V1.0. Matthew S

Unifer Documentation. Release V1.0. Matthew S Unifer Documentation Release V1.0 Matthew S July 28, 2014 Contents 1 Unifer Tutorial - Notes Web App 3 1.1 Setting up................................................. 3 1.2 Getting the Template...........................................

More information

Surrogate Dependencies (in

Surrogate Dependencies (in Surrogate Dependencies (in NodeJS) @DinisCruz London, 29th Sep 2016 Me Developer for 25 years AppSec for 13 years Day jobs: Leader OWASP O2 Platform project Application Security Training JBI Training,

More information

The Road to the Native Mobile Web. Kenneth Rohde Christiansen

The Road to the Native Mobile Web. Kenneth Rohde Christiansen The Road to the Native Mobile Web Kenneth Rohde Christiansen Kenneth Rohde Christiansen Web Platform Architect at Intel Europe Blink core owner and former active WebKit reviewer Works on Chromium, Crosswalk

More information

Modern Web Application Development. Sam Hogarth

Modern Web Application Development. Sam Hogarth Modern Web Application Development Sam Hogarth Some History Early Web Applications Server-side scripting only e.g. PHP/ASP Basic client-side scripts JavaScript/JScript/VBScript Major differences in browser

More information

Webpack. What is Webpack? APPENDIX A. n n n

Webpack. What is Webpack? APPENDIX A. n n n APPENDIX A n n n Webpack Although Webpack is used throughout the book, the primary focus of the book is on React, so Webpack didn t get a comprehensive treatment. In this Appendix, you will have the chance

More information

GraphQL. Concepts & Challenges. - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub

GraphQL. Concepts & Challenges. - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub GraphQL Concepts & Challenges - I m Robert Mosolgo - Work from home Ruby developer - From Charlottesville VA - For GitHub Rails API WHY - You have your Rails app, why bother with an API? - You have clients.

More information

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh

The Future of the Realtime Web BETTER APIS WITH GRAPHQL. Josh The Future of the Realtime Web BETTER APIS WITH GRAPHQL Josh Price @joshprice STEPPING STONES TO FP Language (Elixir) Strongly-Typed APIs (GraphQL) GRAPHQL WAS HERE? http://whiteafrican.com/2008/05/12/crossing-the-mapping-chasm/

More information

EmberJS A Fitting Face for a D8 Backend. Taylor Solomon

EmberJS A Fitting Face for a D8 Backend. Taylor Solomon EmberJS A Fitting Face for a D8 Backend Taylor Solomon taylor.solomon @jtsolomon http://interactivestrategies.com 2 Years Ago 2 Years Ago URL Ember Data assumes a few things. - Your API format is JSON

More information

November 2017 WebRTC for Live Media and Broadcast Second screen and CDN traffic optimization. Author: Jesús Oliva Founder & Media Lead Architect

November 2017 WebRTC for Live Media and Broadcast Second screen and CDN traffic optimization. Author: Jesús Oliva Founder & Media Lead Architect November 2017 WebRTC for Live Media and Broadcast Second screen and CDN traffic optimization Author: Jesús Oliva Founder & Media Lead Architect Introduction It is not a surprise if we say browsers are

More information

Webpack 2 The last bundler you would need in Vijay Dharap, Principal Architect, Infosys

Webpack 2 The last bundler you would need in Vijay Dharap, Principal Architect, Infosys Webpack 2 The last bundler you would need in 2017 Vijay Dharap, Principal Architect, Infosys Speaker Bio 14+ Years of experience Principal Architect in Infosys Passionate about delightful UX Open Source

More information

Choosing the web s future. Peter-Paul Koch Van Lanschot, 9 February 2017

Choosing the web s future. Peter-Paul Koch   Van Lanschot, 9 February 2017 Choosing the web s future Peter-Paul Koch http://quirksmode.org http://twitter.com/ppk Van Lanschot, 9 February 2017 Four problems 1. Web developers want to emulate native apps, which I think is not possible

More information

Pick A Winner! In What Tool Should I Develop My Next App?

Pick A Winner! In What Tool Should I Develop My Next App? Pick A Winner! In What Tool Should I Develop My Next App? Mia Urman, CEO, AuraPlayer Inc. @miaurman @auraplayer Who is Mia Urman? miaurman@auraplayer.com Oracle ACE Director & Development Geek for over

More information

The goal of this book is to teach you how to use Adobe Integrated

The goal of this book is to teach you how to use Adobe Integrated Clearing the AIR The goal of this book is to teach you how to use Adobe Integrated Runtime (AIR) to create desktop applications. You can use JavaScript or ActionScript to develop AIR applications, and

More information

Anatomy of a SPA: Client-side MVC

Anatomy of a SPA: Client-side MVC 11/12/11 10:35 AM Anatomy of a SPA: Client-side MVC SPA: Single Page Application MVC: Model-View-Controller file:///users/baguirre/downloads/rubyconf-slides/index.html#1 11/12/11 10:36 AM My name is Alvaro

More information

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin,

To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry. Tony Erwin, To Kill a Monolith: Slaying the Demons of a Monolith with Node.js Microservices on CloudFoundry Tony Erwin, aerwin@us.ibm.com Agenda Origins of the Bluemix UI Demons of the Monolith Slaying Demons with

More information

Front End Programming

Front End Programming Front End Programming Mendel Rosenblum Brief history of Web Applications Initially: static HTML files only. Common Gateway Interface (CGI) Certain URLs map to executable programs that generate web page

More information

FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE

FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE Table of Contents Introduction... 2 Architecture Overview... 2 Supported Browser Versions and Technologies... 3 Firewalls and Login Sessions...

More information

MAKING WAVES TECHNOLOGY RADAR 2018

MAKING WAVES TECHNOLOGY RADAR 2018 MAKING WAVES TECHNOLOGY RADAR 2018 MAKING WAVES TECHNOLOGY RADAR 2018 USE Episerver CMS Umbraco Contentful Episerver Find Elasticsearch (ELK) InRiver PIM Episerver Commerce Virto Commerce SQL Server Office

More information

Chapter 1 - Development Setup of Angular

Chapter 1 - Development Setup of Angular Chapter 1 - Development Setup of Angular Objectives Key objectives of this chapter Angular Files and Dependencies Node.js Node package manager (npm) package.json Semantic version numbers Installing Angular

More information

We are assuming you have node installed!

We are assuming you have node installed! Node.js Hosting We are assuming you have node installed! This lesson assumes you've installed and are a bit familiar with JavaScript and node.js. If you do not have node, you can download and install it

More information

Web Application Architectures

Web Application Architectures Web Application Architectures Internet Engineering Spring 2018 Bahador Bakhshi CE & IT Department, Amirkabir University of Technology Outline MVC Design Pattern Multilayer Design Microservices Architecture

More information

How to get a perfect 100 in Google PageSpeed Insights

How to get a perfect 100 in Google PageSpeed Insights How to get a perfect 100 in Google PageSpeed Insights And what might happen if you don't Follow Along http://goo.gl/fqfwyj @mcarper @NickWilde1990 Your site just went live after being under construction

More information

Data Management CS 4720 Mobile Application Development

Data Management CS 4720 Mobile Application Development Data Management Mobile Application Development Desktop Applications What are some common applications you use day-to-day? Browser (Chrome, Firefox, Safari, etc.) Music Player (Spotify, itunes, etc.) Office

More information

Module 6 Node.js and Socket.IO

Module 6 Node.js and Socket.IO Module 6 Node.js and Socket.IO Module 6 Contains 2 components Individual Assignment and Group Assignment Both are due on Wednesday November 15 th Read the WIKI before starting Portions of today s slides

More information

Tools. SWE 432, Fall Design and Implementation of Software for the Web

Tools. SWE 432, Fall Design and Implementation of Software for the Web Tools SWE 432, Fall 2016 Design and Implementation of Software for the Web Today Before we can really make anything, there s a bunch of technical stuff to get out of the way Tools make our lives so much

More information

JavaScript Fundamentals_

JavaScript Fundamentals_ JavaScript Fundamentals_ HackerYou Course Syllabus CLASS 1 Intro to JavaScript Welcome to JavaScript Fundamentals! Today we ll go over what programming languages are, JavaScript syntax, variables, and

More information

EPHP a tool for learning the basics of PHP development. Nick Whitelegg School of Media Arts and Technology Southampton Solent University

EPHP a tool for learning the basics of PHP development. Nick Whitelegg School of Media Arts and Technology Southampton Solent University EPHP a tool for learning the basics of PHP development Nick Whitelegg School of Media Arts and Technology Southampton Solent University My background Lecturer at Southampton Solent University since 2003

More information

Advertising specifications. Version 1.1

Advertising specifications. Version 1.1 Advertising specifications Version 1.1 Please read this document before producing creatives for campaigns on The Economist - Digital Editions This is a living document that will evolve as we are presented

More information

Think like an Elm developer

Think like an Elm developer Think like an Elm developer Piper Niehaus Denver, CO, USA Backpacker / skier Nonprofit board chair Software Engineer at Pivotal Pivotal Tracker team Elm in Production since 2016 Internal Products and Services

More information

Delivering Large Scale WebRTC. Richard Tworek Principal WebRTC Strategies Twitter: rmtworek. WebRTC STRATEGIES 11/25/2013

Delivering Large Scale WebRTC. Richard Tworek Principal WebRTC Strategies Twitter: rmtworek. WebRTC STRATEGIES 11/25/2013 11/25/2013 1 Delivering Large Scale WebRTC Richard Tworek Principal WebRTC Strategies rtworek@webrtcstrategies.com Twitter: rmtworek 11/25/2013 WebRTC STRATEGIES 2 Panelists Michal Raz Vice President,

More information

Security. SWE 432, Fall 2017 Design and Implementation of Software for the Web

Security. SWE 432, Fall 2017 Design and Implementation of Software for the Web Security SWE 432, Fall 2017 Design and Implementation of Software for the Web Today Security What is it? Most important types of attacks Authorization oauth 2 Security Why is it important? Users data is

More information

CS193X: Web Programming Fundamentals

CS193X: Web Programming Fundamentals CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) CS193X schedule Today - Middleware and Routes - Single-page web app - More MongoDB examples - Authentication - Victoria

More information

Future Web App Technologies

Future Web App Technologies Future Web App Technologies Mendel Rosenblum MEAN software stack Stack works but not the final say in web app technologies Angular.js Browser-side JavaScript framework HTML Templates with two-way binding

More information

Hi! My name is Peter Rushforth. I work for Natural Resources Canada, in the Canada Centre for Mapping and Earth Observation.

Hi! My name is Peter Rushforth. I work for Natural Resources Canada, in the Canada Centre for Mapping and Earth Observation. Hi! My name is Peter Rushforth. I work for Natural Resources Canada, in the Canada Centre for Mapping and Earth Observation. We are the group historically responsible for, among other things, creating

More information

Building Backbone Plugins

Building Backbone Plugins Building Backbone Plugins Eliminate The Boilerplate In Backbone.js Apps Derick Bailey and Jerome Gravel-Niquet 2013-2014 Muted Solutions, LLC. All Rights Reserved. Backbone.js and the Backbone.js logo

More information

Our Ba'le Against Technical Debt GeekCamp 2017

Our Ba'le Against Technical Debt GeekCamp 2017 Our Ba'le Against Technical Debt GeekCamp 2017 Ifnu, July, 15th 2017 Who am I? Ifnu Bima Computer Science IPB & MBA School of Bussiness Management ITB Join Blibli.com in 2012 Java & JavaScript Developer

More information

Integrating Mobile Applications - Contrasting the Browser with Native OS Apps. Cary FitzGerald

Integrating Mobile Applications - Contrasting the Browser with Native OS Apps. Cary FitzGerald Integrating Mobile Applications - Contrasting the Browser with Native OS Apps Cary FitzGerald caryfitz@employees.org Workshop Leaders Peter Dunkley Acision Adam van den Hoven Frozen Mountain Integrating

More information

P a g e 1. Danish Technological Institute. Scripting and Web Languages Online Course k Scripting and Web Languages

P a g e 1. Danish Technological Institute. Scripting and Web Languages   Online Course k Scripting and Web Languages P a g e 1 Online Course k72853 Scripting and Web Languages P a g e 2 Title Estimated Duration (hrs) JsRender Fundamentals 2 Advanced JsRender Features 3 JavaScript SPA: Getting Started with SPA in Visual

More information

Nodes Tech Slides - Progressive Web Apps, 2018

Nodes Tech Slides - Progressive Web Apps, 2018 Nodes Tech Slides - Progressive Web Apps, 2018 Our belief Gone are the days where companies spend fortunes on building digital products that users don t want. Or at least they should be. And by now many

More information

AWS Lambda + nodejs Hands-On Training

AWS Lambda + nodejs Hands-On Training AWS Lambda + nodejs Hands-On Training (4 Days) Course Description & High Level Contents AWS Lambda is changing the way that we build systems in the cloud. This new compute service in the cloud runs your

More information

RKN 2015 Application Layer Short Summary

RKN 2015 Application Layer Short Summary RKN 2015 Application Layer Short Summary HTTP standard version now: 1.1 (former 1.0 HTTP /2.0 in draft form, already used HTTP Requests Headers and body counterpart: answer Safe methods (requests): GET,

More information

<layer> or the ingrained habits of web development. Peter-Paul Koch HTML Special, 16 June 2016

<layer> or the ingrained habits of web development. Peter-Paul Koch   HTML Special, 16 June 2016 or the ingrained habits of web development Peter-Paul Koch http://quirksmode.org http://twitter.com/ppk HTML Special, 16 June 2016 Who here remembers the tag? Essentially what we

More information

RequireJS Javascript Modules for the Browser. By Ben Keith Quoin, Inc.

RequireJS Javascript Modules for the Browser. By Ben Keith Quoin, Inc. RequireJS Javascript Modules for the Browser By Ben Keith Quoin, Inc. Traditional Browser JS One global namespace Often inline JS code embedded directly in HTML Many tags with hidden ordering

More information

Technology Expertise STUDIO GRAPHENE

Technology Expertise STUDIO GRAPHENE Technology Expertise STUDIO GRAPHENE ios Development ios development The 01. Devices iphone, ipad, Apple Watch Video and audio Live streaming Video playback and capture OS versions ios 8, ios 9, ios 10,

More information

"Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary

Charting the Course... MOC A: Developing with the SharePoint Framework. Course Summary Course Summary Description This five-day instructor-led course is intended for developers who want to be able to create client-side applications with SharePoint Framework. In this course, students will

More information

How To Present Progressive Web Apps To Your Clients

How To Present Progressive Web Apps To Your Clients How To Present Progressive Web Apps To Your Clients AND HELP THEM WIN THE MOBILE WEB TABLE OF CONTENTS 01 And Then There Were Three PAGE 03 05 The Major Benefits of PWAs PAGE 07 02 Introducing PWAs PAGE

More information

Treating Framework Fatigue With JavaScript

Treating Framework Fatigue With JavaScript Treating Framework Fatigue With JavaScript Tim Doherty Software Architect /in/timdoherty timdoherty.net ??? Hey, this one looks cool! You May Suffer From Framework Fatigue Symptoms Confusion One-way reactive

More information

Introduction to Sencha Ext JS

Introduction to Sencha Ext JS Introduction to Sencha Ext JS Olga Petrova olga@sencha.com Sales Engineer EMEA Agenda Use Case How It Works Advantages Demo Use case Ext JS a Javascript framework for building enterprise data-intensive

More information

Mobile Web Applications. Gary Dubuque IT Research Architect Department of Revenue

Mobile Web Applications. Gary Dubuque IT Research Architect Department of Revenue Mobile Web Applications Gary Dubuque IT Research Architect Department of Revenue Summary Times are approximate 10:15am 10:25am 10:35am 10:45am Evolution of Web Applications How they got replaced by native

More information

Review of Mobile Web Application Frameworks

Review of Mobile Web Application Frameworks Review of Mobile Web Application Frameworks Article Number: 909 Rating: Unrated Last Updated: Mon, May 9, 2011 at 10:57 AM If you are serious about getting your website or web application mobile-friendly,

More information

HTML5 in Action ROB CROWTHER JOE LENNON ASH BLUE GREG WANISH MANNING SHELTER ISLAND

HTML5 in Action ROB CROWTHER JOE LENNON ASH BLUE GREG WANISH MANNING SHELTER ISLAND HTML5 in Action ROB CROWTHER JOE LENNON ASH BLUE GREG WANISH MANNING SHELTER ISLAND brief contents PART 1 INTRODUCTION...1 1 HTML5: from documents to applications 3 PART 2 BROWSER-BASED APPS...35 2 Form

More information

Developing ASP.NET MVC Web Applications (486)

Developing ASP.NET MVC Web Applications (486) Developing ASP.NET MVC Web Applications (486) Design the application architecture Plan the application layers Plan data access; plan for separation of concerns, appropriate use of models, views, controllers,

More information

Compatibility via Modernizr

Compatibility via Modernizr Compatibility via Modernizr Making web things fit their medium Stu Cox by / @stucoxmedia #McrFRED 27th June 2013 Manchester, UK com pat i bil i ty kәmˌpatɪˈbɪlɪti (abbr.: compat.) noun (pl. -i ties) a

More information

Security and Privacy. SWE 432, Fall 2016 Design and Implementation of Software for the Web

Security and Privacy. SWE 432, Fall 2016 Design and Implementation of Software for the Web Security and Privacy SWE 432, Fall 2016 Design and Implementation of Software for the Web Today Security What is it? Most important types of attacks Privacy For further reading: https://www.owasp.org/index.php/

More information

Qiufeng Zhu Advanced User Interface Spring 2017

Qiufeng Zhu Advanced User Interface Spring 2017 Qiufeng Zhu Advanced User Interface Spring 2017 Brief history of the Web Topics: HTML 5 JavaScript Libraries and frameworks 3D Web Application: WebGL Brief History Phase 1 Pages, formstructured documents

More information

Index. Elad Elrom 2016 E. Elrom, Pro MEAN Stack Development, DOI /

Index. Elad Elrom 2016 E. Elrom, Pro MEAN Stack Development, DOI / Index A Accessible Rich Internet Applications (ARIA), 101 Amazon AWS, 44 Amazon EC2, 28 Amazon s Relational Database Service (RDS), 28 Amazon Web Services (AWS) cloud, 28 Android SDK Manager, 272 Android

More information

Sweet Themes Are Made of This: The Magento PWA Studio

Sweet Themes Are Made of This: The Magento PWA Studio Sweet Themes Are Made of This: The Magento PWA Studio James Zetlen Frontend Architect Magento Commerce @JamesZetlen A suite of tools, standards, and top-quality ingredients for building and sharing Progressive

More information

Full Stack boot camp

Full Stack boot camp Name Full Stack boot camp Duration (Hours) JavaScript Programming 56 Git 8 Front End Development Basics 24 Typescript 8 React Basics 40 E2E Testing 8 Build & Setup 8 Advanced JavaScript 48 NodeJS 24 Building

More information

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code.

20480C: Programming in HTML5 with JavaScript and CSS3. Course Code: 20480C; Duration: 5 days; Instructor-led. JavaScript code. 20480C: Programming in HTML5 with JavaScript and CSS3 Course Code: 20480C; Duration: 5 days; Instructor-led WHAT YOU WILL LEARN This course provides an introduction to HTML5, CSS3, and JavaScript. This

More information

CSC 443: Web Programming

CSC 443: Web Programming 1 CSC 443: Web Programming Haidar Harmanani Department of Computer Science and Mathematics Lebanese American University Byblos, 1401 2010 Lebanon Today 2 Course information Course Objectives A Tiny assignment

More information

Introduction to HTML5

Introduction to HTML5 Introduction to HTML5 Michael(tm) Smith mike@w3.org http://people.w3.org/mike sideshowbarker on Twitter, etc. I work for the W3C in Japan, based at Keio University near Tokyo My official W3C title is:

More information

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3

COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 COURSE OUTLINE MOC 20480: PROGRAMMING IN HTML5 WITH JAVASCRIPT AND CSS3 MODULE 1: OVERVIEW OF HTML AND CSS This module provides an overview of HTML and CSS, and describes how to use Visual Studio 2012

More information

Makbul Khan. Nikhil Sukul

Makbul Khan. Nikhil Sukul Makbul Khan Acquia Certified Developer Senior Software Engineer makbul_khan8 makbul_khan08 Nikhil Sukul Senior Drupal Architect nikhilsukul nikhilsukul Topics 1. What is Isomorphic JavaScript 2. Why Isomorphic

More information

CS637 Midterm Review

CS637 Midterm Review CS637 Midterm Review Coverage: Duckett Chapter 1-2: Basics: Can skip pp. 53-56 Chapter 3: Lists: all important Chapter 4:Links: all important Chapter 5:Images: can skip old code Chapter 6: Tables: all

More information

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems

Distributed Architectures & Microservices. CS 475, Spring 2018 Concurrent & Distributed Systems Distributed Architectures & Microservices CS 475, Spring 2018 Concurrent & Distributed Systems GFS Architecture GFS Summary Limitations: Master is a huge bottleneck Recovery of master is slow Lots of success

More information

Jquery.ajax Call Returns Status Code Of 200 But Fires Jquery Error

Jquery.ajax Call Returns Status Code Of 200 But Fires Jquery Error Jquery.ajax Call Returns Status Code Of 200 But Fires Jquery Error The request returns http 200 OK, but the xhr status is 0, error. jquery Ajax Request to get JSON data fires error event to make an ajax

More information

Developer Internship Opportunity at I-CC

Developer Internship Opportunity at I-CC Developer Internship Opportunity at I-CC Who We Are: Technology company building next generation publishing and e-commerce solutions Aiming to become a leading European Internet technology company by 2015

More information

Is your JavaScript ready for the Enterprise? What does that even mean?

Is your JavaScript ready for the Enterprise? What does that even mean? Is your JavaScript ready for the Enterprise? What does that even mean? John JB Brock Senior Principal Product Manager Oracle Tools and Frameworks June 29, 2017 Safe Harbor Statement The following is intended

More information

Django Dynamic Fields Documentation

Django Dynamic Fields Documentation Django Dynamic Fields Documentation Release 0.1.0 James Pic Mar 24, 2017 Contents 1 Toc 1 1.1 Design documentation for django-dynamic-field............................ 1 2 Readme 3 3 Example 5 4 Dual-license

More information

a Very Short Introduction to AngularJS

a Very Short Introduction to AngularJS a Very Short Introduction to AngularJS Lecture 11 CGS 3066 Fall 2016 November 8, 2016 Frameworks Advanced JavaScript programming (especially the complex handling of browser differences), can often be very

More information

MongoDB Web Architecture

MongoDB Web Architecture MongoDB Web Architecture MongoDB MongoDB is an open-source, NoSQL database that uses a JSON-like (BSON) document-oriented model. Data is stored in collections (rather than tables). - Uses dynamic schemas

More information

Building a Django Twilio Programmable Chat Application

Building a Django Twilio Programmable Chat Application Building a Django Twilio Programmable Chat Application twilio.com/blog/08/0/python-django-twilio-programmable-chat-application.html March 7, 08 As a developer, I ve always wanted to include chat capabilities

More information

State of jquery Fall John Resig

State of jquery Fall John Resig State of jquery Fall 2010 John Resig State of the Project New Releases jquery 1.4.3 / jquery 1.4.4 Official Plugins: jquery Templating jquery Data Linking jquery Mobile jquery 1.4.3 JSLint Modularity

More information

How to approach the web platforms. Peter-Paul Koch Nordic Competence Conference, 12 September 2015

How to approach the web platforms. Peter-Paul Koch   Nordic Competence Conference, 12 September 2015 How to approach the web platforms Peter-Paul Koch http://quirksmode.org http://twitter.com/ppk Nordic Competence Conference, 12 September 2015 1The problem Web platforms I feel back-end developers underestimate

More information

Security Best Practices. For DNN Websites

Security Best Practices. For DNN Websites Security Best Practices For DNN Websites Mitchel Sellers Who am I? Microsoft MVP, ASPInsider, DNN MVP Microsoft Certified Professional CEO IowaComputerGurus, Inc. Contact Information msellers@iowacomputergurus.com

More information

STANISLAV NEKRASOV SENIOR FRONT END DEVELOPER

STANISLAV NEKRASOV SENIOR FRONT END DEVELOPER STANISLAV NEKRASOV SENIOR FRONT END DEVELOPER Melbourne, Australia stas@nekrasov.id.au SKILLS HTML/CSS Deep understanding of HTML and CSS specification Modern layout techniques (Flexbox, CSS Grids) Mobile-first

More information

Case study on PhoneGap / Apache Cordova

Case study on PhoneGap / Apache Cordova Chapter 1 Case study on PhoneGap / Apache Cordova 1.1 Introduction to PhoneGap / Apache Cordova PhoneGap is a free and open source framework that allows you to create mobile applications in a cross platform

More information

today what is this course about? what is this course about? Welcome to CSC309! Programming on the Web APRIL 05

today what is this course about? what is this course about? Welcome to CSC309! Programming on the Web APRIL 05 Welcome to CSC309! Programming on the Web Amir H. Chinaei, Spring 2017 ahchinaei@cs.toronto.edu http://www.cs.toronto.edu/~ahchinaei/ Office hours: M 3:45-5:45 BA4222 today course outline (bird s-eye view)

More information

Modern and Responsive Mobile-enabled Web Applications

Modern and Responsive Mobile-enabled Web Applications Available online at www.sciencedirect.com ScienceDirect Procedia Computer Science 110 (2017) 410 415 The 12th International Conference on Future Networks and Communications (FNC-2017) Modern and Responsive

More information

Real Web Development. yeah, for real.

Real Web Development. yeah, for real. Real Web Development yeah, for real. 1 who am i? i m still cyle i m a systems developer and architect every day i m developin i like this kind of stuff 2 real? kind of ranty, sorry web development is more

More information

Stanko Tadić

Stanko Tadić State of modern JavaScript development 04.02.2017. Stanko Tadić HELLO, MY NAME IS STANKO TADIĆ and I m a Principal Developer at Work & Co. I love development, music and cartoons. You might say I m a geek.

More information

MOdern Java(Script) Server Stack

MOdern Java(Script) Server Stack MOdern Java(Script) Server Stack Pratik Patel Pratik Patel CTO Triplingo JAVA CHAMPION PRESIDENT ATLANTA JUG POLYGLOT apple mac vintage 5" screen TURTLE MY FIRST PROGRAM TURING MY FIRST REAL PROGRAM JAVASCRIPT

More information

Software Development & Education Center ANDROID. Application Development

Software Development & Education Center ANDROID. Application Development Software Development & Education Center ANDROID Application Development Android Overview and History ANDROID CURRICULUM How it all got started Why Android is different (and important) Android Stack Overview

More information

Software. Full Stack Web Development Intensive, Fall Lecture Topics. Class Sessions. Grading

Software. Full Stack Web Development Intensive, Fall Lecture Topics. Class Sessions. Grading Full Stack Web Development Intensive, Fall 2017 There are two main objectives to this course. The first is learning how to build websites / web applications and the assets that compose them. The second

More information

Web Performance in

Web Performance in Web Performance in 2017 with @bighappyface Big thanks to DrupalCon Team Big thanks to you (it s almost a wrap) Please note This session assumes familiarity. I am speaking as if folks are already into this

More information

Microservices with Node.js

Microservices with Node.js Microservices with Node.js Objectives In this module we will discuss: Core Node.js concepts Node Package Manager (NPM) The Express Node.js package The MEAN stack 1.1 What is Node.js? Node.js [ https://nodejs.org/

More information

Wakanda Architecture. Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework

Wakanda Architecture. Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework Wakanda Architecture Wakanda is made up of three main components: Wakanda Server Wakanda Studio Wakanda Client Framework Note: For a more general overview of Wakanda, please see What is Wakanda?) Wakanda

More information