Lecture 2 Callbacks, Events, and Asynchronous Programming
|
|
- Beatrice Ethel Scott
- 5 years ago
- Views:
Transcription
1 Lecture 2 Callbacks, Events, and Asynchronous Programming 1 / 13
2 What is asynchronous programming? So far, most (if not all) of the programs you've written are synchronous programs. You write code, and each line is executed one after another. However, this isn't a good model for situations where you need to wait for soemething to happen, or when you want two things to happen at once. In that case, you need asynchronous programming. This is surprisingly common: User clicking on a button Making an HTTP request to a website Fetching data from a database 2 / 13
3 Real World Example Let's say you and a friend want to go to WaWa. The synchronous way - You leave the dorm, then walk to WaWa. You order your sandwich. You wait till it's ready, pay at the register, then walk home. Now your friend leaves your dorm and walks to WaWa... The asynchronous way - You meet your friend outside of WaWa. You both order your sandwich at the same time, and pay at different registers. Once you've both picked up your sandwiches you walk back to the dorm. 3 / 13
4 JavaScript is built for async Thanks to its functional nature, JavaScript makes asynchronous programming pretty easy. We can bind functions to asynchronous calls, then handle the data we get back. The simplest unit of async control flow is a callback. 4 / 13
5 What is a callback? A callback is a function that's bound to a single asynchronous call. It is passed as an argument to another function, with the expectation that it will be executed once some async task is finished. Here's a very simple example using the built-in settimeout function. It runs its callback after waiting a specified amount of time. var cb = function () { console.log('callback ran!'); }; // wait 500ms, then run the callback settimeout(cb, 500); // --> 'callback ran!' 5 / 13
6 Node-Style Callbacks Since so many operations rely on callbacks, a standard callback style has emerged in NodeJS: var cb = function (err, results...) {...} err contains an error, if one occurred; otherwise it should be null After err, there can be any number of results arguments containing data for the callback to consume. This standardization makes it possible to transform callbacks into more expressive formats. 6 / 13
7 The Async Library: Motivations Let's say I have several asynchronous functions that need to execute in series (i.e., one after the other). This would be necessary if, say, I'm writing logs to a file and I want them in order. We could do it by chaining callbacks, but this quickly gets messy: writelogline('this is the first line', function () { writelogline('this is the second line', function () { writelogline('this is the third line', function () { console.log('done writing the logs.'); }); }); }); And I'm not even handling errors here. That would make this even messier. 7 / 13
8 The Async Solution We can do better than this by taking advantage of the standard callback format. Rather than those 'marching callbacks', we'll pass an array of functions into async.series. async.series([ function (callback) { writelogline('this is the first line', callback); }, function (callback) { writelogline('this is the second line', callback); }, function (callback) { writelogline('this is the third line', callback); } ], function () { console.log('done writing the logs'); }); * A higher-order function that generates callbacks could save us some work here - do you see how? 8 / 13
9 Wait, how does that work? The idea behind async.series is actually quite simple. The trick is to call the asynchronous functions recursively. Here's a simple implementation that doesn't handle errors: var series = function (arr, finalcb) { var serieshelper = function (index) { if (index === arr.length) { finalcb(null); } else { arr[index](function () { serieshelper(index + 1); }); } }; serieshelper(0); }; 9 / 13
10 Live Coding, Anyone? Let's write another useful function, async.map. 10 / 13
11 Event-Driven Programming Event-driven programming is another type of asynchronous programming. Unlike the examples we've seen, the callback functions (called event listeners) can be called many times. Events are registered on an object called the event bus which implements the event interface. Here's how to create a simple event bus in Node: var events = require('events'); var bus = new events.eventemitter(); This doesn't work on the frontend, however. You need to import a library like Backbone with event support. 11 / 13
12 The Event Interface The core event interface is simple. You use bus.on(eventname, listener) to register an event with a certain name. Then, calling bus.emit(args) or, in some frameworks, bus.trigger(args) will run listener with the given arguments. var bus = new require('events').eventemitter(); bus.on('foo', function () { console.log('event emitted!'); }); bus.emit('foo'); // --> 'Event emitted!' There some other, self-explanatory methods as well - for example, removealllisteners(eventname). Check the API for a full list. 12 / 13
13 Next time 1. Object-Oriented JavaScript 13 / 13
NODE.JS MOCK TEST NODE.JS MOCK TEST I
http://www.tutorialspoint.com NODE.JS MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Node.js Framework. You can download these sample mock tests at
More informationNode.js. Mendel Rosenblum. CS142 Lecture Notes - Node.js
Node.js Mendel Rosenblum Threads versus Events request = readrequest(socket); reply = processrequest(request); sendreply(socket, reply); Implementation: Thread switching (i.e. blocking) and a scheduler
More informationDon't Call Us, We'll Call You:
Don't Call Us, We'll Call You: Characterizing Callbacks in JavaScript Keheliya Gallaba, Ali Mesbah, Ivan Beschastnikh University of British Columbia 1 Why JavaScript? On the client 2 Why JavaScript? On
More informationAsynchronous Programming in Javascript, Part 2. CSCI 5828: Foundations of Software Engineering Lecture 19 10/25/2016
Asynchronous Programming in Javascript, Part 2 CSCI 5828: Foundations of Software Engineering Lecture 19 10/25/2016 1 Goals Discussed asynchronous programming in Javascript in Lecture 18 The gap between
More informationCS193X: Web Programming Fundamentals
CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) CS193X schedule Today - MongoDB - Servers and MongoDB Friday - Web application architecture - Authentication MongoDB installation
More informationGetting Started with IBM Bluemix Hands-On Workshop. Module 6a: Services
Hands-On Workshop Module 6a: Services Workshop overview In this workshop, you will: Create a Cloudant service that extends the Fizzbuzz application Create a user-defined service that is local to your
More informationNODE.JS MOCK TEST NODE.JS MOCK TEST II
http://www.tutorialspoint.com NODE.JS MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Node.js Framework. You can download these sample mock tests at
More informationAnnouncements. The current topic: Scheme. Review: BST functions. Review: Representing trees in Scheme. Reminder: Lab 2 is due on Monday at 10:30 am.
The current topic: Scheme! Introduction! Object-oriented programming: Python Functional programming: Scheme! Introduction! Numeric operators, REPL, quotes, functions, conditionals! Function examples, helper
More informationCS 142 Final Examination
CS 142 Final Examination Fall Quarter 2017 You have 3 hours (180 minutes) for this examination; the number of points for each question indicates roughly how many minutes you should spend on that question.
More informationComet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios
Comet and WebSocket Web Applications How to Scale Server-Side Event-Driven Scenarios Simone Bordet sbordet@intalio.com 1 Agenda What are Comet web applications? Impacts of Comet web applications WebSocket
More informationCS 498RK FALL RESTFUL APIs
CS 498RK FALL 2017 RESTFUL APIs Designing Restful Apis blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api Resources
More informationJavaScript. The Bad Parts. Patrick Behr
JavaScript The Bad Parts Patrick Behr History Created in 1995 by Netscape Originally called Mocha, then LiveScript, then JavaScript It s not related to Java ECMAScript is the official name Many implementations
More informationCatbook Workshop 1: Client Side JS. Danny Tang
Catbook Workshop 1: Client Side JS Danny Tang Previously... Some frontend - Profile page - Nav bar - Stories feed page Techniques - DOM manipulation with JS In this workshop... More frontend - Stories
More informationWeb Application Development
Web Application Development Produced by David Drohan (ddrohan@wit.ie) Department of Computing & Mathematics Waterford Institute of Technology http://www.wit.ie SERVER SIDE JAVASCRIPT PART 1 Outline 1.
More informationHello everyone. My name is Kundan Singh and today I will describe a project we did at Avaya Labs.
Hello everyone. My name is Kundan Singh and today I will describe a project we did at Avaya Labs. 1 Let me start by saying that people often forget the importance of separating data from the application
More informationLecture 8. ReactJS 1 / 24
Lecture 8 ReactJS 1 / 24 Agenda 1. JSX 2. React 3. Redux 2 / 24 JSX 3 / 24 JavaScript + HTML = JSX JSX is a language extension that allows you to write HTML directly into your JavaScript files. Behind
More informationAsema IoT Central Integration and migration. English
Asema IoT Central English Table of Contents 1. Introduction... 1 2. alternatives... 2 2.1. Simply move and run... 2 2.2. Asema IoT Central as a proxy for other systems... 5 2.2.1. Proxied HTTP requests...
More informationSlide 1 CS 170 Java Programming 1 Testing Karel
CS 170 Java Programming 1 Testing Karel Introducing Unit Tests to Karel's World Slide 1 CS 170 Java Programming 1 Testing Karel Hi Everybody. This is the CS 170, Java Programming 1 lecture, Testing Karel.
More informationRequireJS 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 informationServerless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016
Serverless Single Page Web Apps, Part Four CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 1 Goals Cover Chapter 4 of Serverless Single Page Web Apps by Ben Rady Present the issues
More informationNODE.JS SERVER SIDE JAVASCRIPT. Introduc)on Node.js
NODE.JS SERVER SIDE JAVASCRIPT Introduc)on Node.js Node.js was created by Ryan Dahl starting in 2009. For more information visit: http://www.nodejs.org 1 What about Node.js? 1. JavaScript used in client-side
More informationECMAScript 2015 and beyond The Future of JavaScript is Now!
ECMAScript 2015 and beyond The Future of JavaScript is Now! Tom Van Cutsem JS.BE Meetup @tvcutsem Talk Outline Part I: 20 years of JavaScript (or, the long road to ECMAScript 6) Part II: a brief tour of
More informationFront End Nanodegree Syllabus
Front End Nanodegree Syllabus Build Stunning User Experiences Before You Start You've taken the first step toward becoming a web developer by choosing the Front End Nanodegree program. In order to succeed,
More informationAsynchronous JS. SWE 432, Fall Web Application Development
Asynchronous JS SWE 432, Fall 2018 Web Application Development Review: Asynchronous Synchronous: Make a function call When function call returns, the work is done Asynchronous: Make a function call Function
More informationa 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 informationThursday, July 19, 12. [Introduction to] Writing nonblocking code... in Node.js and Perl
[Introduction to] Writing nonblocking code... in Node.js and Perl Problems solved Standard programming = sequential execution Long running statements block Non-blocking programming = do more stuff in the
More informationINF5750. Introduction to JavaScript and Node.js
INF5750 Introduction to JavaScript and Node.js Outline Introduction to JavaScript Language basics Introduction to Node.js Tips and tools for working with JS and Node.js What is JavaScript? Built as scripting
More informationManual. Note: This software has only been tested with VF-1 firmware Compatibility with other firmware versions cannot be guaranteed!
Manual Note: This software has only been tested with VF-1 firmware 1.12. Compatibility with other firmware versions cannot be guaranteed! Configuration Click on the MIDI text on the "LCD" to bring up the
More information[Introduction to] Writing non-blocking code... in Node.js and Perl
[Introduction to] Writing non-blocking code... in Node.js and Perl Jay Janssen Percona, Inc. Problems solved Standard programs assume sequential execution of statements Long running statements block the
More informationmoxie-js-client documentation
moxie-js-client documentation Release 1.0 Mobile Oxford team, IT Services, University of Oxford December 16, 2016 Contents 1 Developer 1 1.1 Overview................................................. 1
More informationNode.js Training JavaScript. Richard richardrodger.com
Node.js Training JavaScript Richard Rodger @rjrodger richardrodger.com richard.rodger@nearform.com A New Look at JavaScript Embracing JavaScript JavaScript Data Structures JavaScript Functions Functional
More informationNode.js: Asynchronous I/O for Fun and Profit. Stefan QCon London 2011
Node.js: Asynchronous I/O for Fun and Profit Stefan Tilkov @ QCon London 2011 Stefan Tilkov @stilkov stefan.tilkov@innoq.com http://www.innoq.com Concurrent Request Processing read request read request
More informationIntro To Javascript. Intro to Web Development
Intro To Javascript Intro to Web Development Preamble I don't like JavaScript But with JS your feelings don't matter. Browsers don't work well with any other language so you have to write code that either:
More informationNoSQL & Firebase. SWE 432, Fall Web Application Development
NoSQL & Firebase SWE 432, Fall 2018 Web Application Development Review: Nouns vs. Verbs URIs should hierarchically identify nouns describing resources that exist Verbs describing actions that can be taken
More informationA T O O L K I T T O B U I L D D I S T R I B U T E D R E A C T I V E S Y S T E M S
VERT.X A T O O L K I T T O B U I L D D I S T R I B U T E D R E A C T I V E S Y S T E M S CLEMENT ESCOFFIER Vert.x Core Developer, Red Hat V E R T. X I S A T O O L K I T T O B U I L D D I S T R I B U T
More informationActive Learning of Life-state Automata
Active Learning of Life-state Automata Krishna Chaitanya Sripada April 29, 2016 Contents 1 Introduction 2 2 Motivation 2 3 Problem and Related Work 3 4 Active Learning for Standard Automata 3 5 Contributions
More informationWhat's the Slope of a Line?
What's the Slope of a Line? These lines look pretty different, don't they? Lines are used to keep track of lots of info -- like how much money a company makes. Just off the top of your head, which of the
More informationSERVERLESS SINGLE PAGE APPS: FAST, SCALABLE, AND AVAILABLE BY BEN RADY
Read Online and Download Ebook SERVERLESS SINGLE PAGE APPS: FAST, SCALABLE, AND AVAILABLE BY BEN RADY DOWNLOAD EBOOK : SERVERLESS SINGLE PAGE APPS: FAST, SCALABLE, AND AVAILABLE BY BEN RADY PDF Click link
More informationPTN-202: Advanced Python Programming Course Description. Course Outline
PTN-202: Advanced Python Programming Course Description This 4-day course picks up where Python I leaves off, covering some topics in more detail, and adding many new ones, with a focus on enterprise development.
More informationChris Bailey Bailey. Emerging Web Application Architectures With Java and Node.js
Chris Bailey IBM Emerging Web Application Architectures With Java and Node.js STSM, IBM Runtime Development 2 @seabaylea 2015 IBM Corporation 1 The Annual Death of Java Developer trend No. 2: Java s decline
More informationWe 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 informationDistributed Systems Project 4 Assigned: Friday March 20 Due: Friday April 3, 11:59pm
95-702 Distributed Systems Project 4 Assigned: Friday March 20 Due: Friday April 3, 11:59pm Project Topics: Java RMI and a distributed, Mobile to Cloud application This project has 2 tasks. Task 1 is a
More informationInput and Validation. Mendel Rosenblum. CS142 Lecture Notes - Input
Input and Validation Mendel Rosenblum Early web app input: HTTP form tag Product: Deluxe:
More information1 of 5 5/11/2006 12:10 AM CS 61A Spring 2006 Midterm 2 solutions 1. Box and pointer. Note: Please draw actual boxes, as in the book and the lectures, not XX and X/ as in these ASCII-art solutions. Also,
More informationMITOCW watch?v=zm5mw5nkzjg
MITOCW watch?v=zm5mw5nkzjg The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high quality educational resources for free. To
More informationEventRacer: Finding Concurrency Errors in Event-Driven Applications. Pavol Bielik
Eventr: Finding Concurrency Errors in Event-Driven Applications Pavol Bielik Android Errors Caused by Concurrency Display article twice 1 Display wrong directory Display wrong order Web Page Errors Caused
More informationAt the Forge Dojo Events and Ajax Reuven M. Lerner Abstract The quality of your Dojo depends upon your connections. Last month, we began looking at Dojo, one of the most popular open-source JavaScript
More informationMITOCW watch?v=w_-sx4vr53m
MITOCW watch?v=w_-sx4vr53m The following content is provided under a Creative Commons license. Your support will help MIT OpenCourseWare continue to offer high-quality educational resources for free. To
More informationController/server communication
Controller/server communication Mendel Rosenblum Controller's role in Model, View, Controller Controller's job to fetch model for the view May have other server communication needs as well (e.g. authentication
More informationEnterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions
Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges
More informationjquery UI Widget Factory
jquery UI Widget Factory Scott González jquery UI development lead http://nemikor.com @scott_gonzalez $(λ); The widget factory - What is it? - Why do we need it? - How do we use it? $.widget(); Why we
More informationmk-convert Contents 1 Converting to minikanren, quasimatically. 08 July 2014
mk-convert 08 July 2014 Contents 1 Converting to minikanren, quasimatically. 1 1.1 Variations on a Scheme..................... 2 1.2 Racket to minikanren, nally.................. 8 1.3 Back to the beginning......................
More informationAsynchronous I/O: A Case Study in Python
Asynchronous I/O: A Case Study in Python SALEIL BHAT A library for performing await -style asynchronous socket I/O was written in Python. It provides an event loop, as well as a set of asynchronous functions
More informationBasic DOF Security. Programmer s Guide. Version 7.0
Basic DOF Security Programmer s Guide Version 7.0 Table of Contents Chapter 1: Introduction 1 How to Read This Guide 1 Security Concepts Overview 1 Roles 2 Chapter 2: Authentication Server Access 3 Installing
More informationWhy Discuss JavaScript? CS312: Programming Languages. Lecture 21: JavaScript. JavaScript Target. What s a Scripting Language?
Why Discuss JavaScript? CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig JavaScript is very widely used and growing Any AJAX application heavily relies on JavaScript JavaScript also has
More information20480C: 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 informationBest Practices: Testing Node.js for Stability and Project Success. Walter Scarborough SEA 2014
Best Practices: Testing Node.js for Stability and Project Success Walter Scarborough SEA 2014 Congratulations! You've decided to build a node.js webservice/webapp! OR Congratulations! Your latest and greatest
More informationFull Stack Web Framework with BBG
Full Stack Web Framework with BBG *** This guide will be for mac/linux (All commands will be UNIX). Try Windows at your own risk. Intro to Meteor 1 Why Meteor 1 Installation 1 Mac 1 Creating Your First
More informationJava with Node.js Powering the Next Generation of Web Applications
Java with Node.js Powering the Next Generation of Web Applications Oracle Code One, Oct 23rd 2018 Chris Bailey Chief Architect, Cloud Native Runtimes @IBM baileyc@uk.ibm.com @Chris Bailey CloudNativeJS.io
More informationCS312: Programming Languages. Lecture 21: JavaScript
CS312: Programming Languages Lecture 21: JavaScript Thomas Dillig Thomas Dillig, CS312: Programming Languages Lecture 21: JavaScript 1/25 Why Discuss JavaScript? JavaScript is very widely used and growing
More informationUsing the SQL CI TeamCity plugin in SQL Automation Pack
Using the SQL CI TeamCity plugin in SQL Automation Pack We recommend upgrading to the DLM Automation Suite so you can take advantage of the latest features and fixes. For more information, see Upgrading.
More informationThrottling WebSphere Liberty Batch Jobs
WebSphere Application Server Throttling WebSphere Liberty Batch Jobs This document can be found on the web at: www.ibm.com/support/techdocs Search for document number WP102600 under the category of "White
More informationMITOCW watch?v=4dj1oguwtem
MITOCW watch?v=4dj1oguwtem PROFESSOR: So it's time to examine uncountable sets. And that's what we're going to do in this segment. So Cantor's question was, are all sets the same size? And he gives a definitive
More informationWho am I? I m a python developer who has been working on OpenStack since I currently work for Aptira, who do OpenStack, SDN, and orchestration
Who am I? I m a python developer who has been working on OpenStack since 2011. I currently work for Aptira, who do OpenStack, SDN, and orchestration consulting. I m here today to help you learn from my
More informationFaults, Errors, Failures
Faults, Errors, Failures CS 4501 / 6501 Software Testing [Ammann and Offutt, Introduction to Software Testing ] 1 Software Testing Review Testing = process of finding input values to check against a software
More informationWhy I still develop synchronous web in the asyncio era. April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy
Why I still develop synchronous web in the asyncio era April 7th, 2017 Giovanni Barillari - pycon otto - Firenze, Italy Who am I? I m Gio! pronounced as Joe trust me, I m a physicist :) code principally
More informationINF 102 CONCEPTS OF PROG. LANGS FUNCTIONAL COMPOSITION. Instructors: James Jones Copyright Instructors.
INF 102 CONCEPTS OF PROG. LANGS FUNCTIONAL COMPOSITION Instructors: James Jones Copyright Instructors. Topics Recursion Higher-order functions Continuation-Passing Style Monads (take 1) Identity Monad
More informationCS193X: Web Programming Fundamentals
CS193X: Web Programming Fundamentals Spring 2017 Victoria Kirst (vrk@stanford.edu) Schedule Today: - Fetch - JSON - Fetch in an class - Querying REST APIs - Form submission - HW4 out! GitHub repo for today's
More informationDeferred operations. Continuations Structure and Interpretation of Computer Programs. Tail recursion in action.
Deferred operations Continuations 6.037 - Structure and Interpretation of Computer Programs Mike Phillips (define the-cons (cons 1 #f)) (set-cdr! the-cons the-cons) (define (run-in-circles l) (+
More informationJavaScript: the language of browser interactions. Claudia Hauff TI1506: Web and Database Technology
JavaScript: the language of browser interactions Claudia Hauff TI1506: Web and Database Technology ti1506-ewi@tudelft.nl Densest Web lecture of this course. Coding takes time. Be friendly with Codecademy
More informationBelow is the overall grade distribution for the second CS106A midterm exam:
CS106A Handout 25S Winter 2015 March 9, 2015 Second CS106A Midterm Exam Solutions Below is the overall grade distribution for the second CS106A midterm exam: 160 140 120 100 80 60 40 20 0 0-10 11-15 16-20
More informationCS193X: 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 informationFundamentals of Web Programming
Fundamentals of Web Programming Lecture 6: web applications Devin Balkcom devin@cs.dartmouth.edu office: Sudikoff 206 http://www.cs.dartmouth.edu/~fwp http://www.cs.dartmouth.edu/~fwp/slides06/slides06db.html?m=all&s=0&f=0
More informationJava vs JavaScript. For Enterprise Web Applications. Chris Bailey IBM Runtime Technologies IBM Corporation
Java vs JavaScript For Enterprise Web Applications Chris Bailey IBM Runtime Technologies 1 What Languages do you use? 120 Percentage of Audience 100 80 60 40 20 0 Java 2 JavaScript Both What Runtimes do
More information6.001 Notes: Section 8.1
6.001 Notes: Section 8.1 Slide 8.1.1 In this lecture we are going to introduce a new data type, specifically to deal with symbols. This may sound a bit odd, but if you step back, you may realize that everything
More informationNodeJS and JavaScripteverywhere
NodeJS and JavaScripteverywhere Matthew Eernisse YOW Conference: December 2011 Who am I? Matthew Eernisse Work at Yammer @mde on Twitter What is JavaScript- everywhere? A list of stuff Ruby JavaScript
More informationJS Event Loop, Promises, Async Await etc. Slava Kim
JS Event Loop, Promises, Async Await etc Slava Kim Synchronous Happens consecutively, one after another Asynchronous Happens later at some point in time Parallelism vs Concurrency What are those????
More informationLate Binding; OOP as a Racket Pattern
Late Binding; OOP as a Racket Pattern Today Dynamic dispatch aka late binding aka virtual method calls Call to self.m2() in method m1 defined in class C can resolve to a method m2 defined in a subclass
More informationCSc 337 LECTURE 16: WRITING YOUR OWN WEB SERVICE
CSc 337 LECTURE 16: WRITING YOUR OWN WEB SERVICE Basic web service // CSC 337 hello world server const express = require("express"); const app = express(); app.use(express.static('public')); app.get('/',
More informationWeb standards and IE8
Hell is other browsers - Sartre Web standards and IE8 Peter-Paul Koch (ppk) http://twitter.com/ppk http://quirksmode.org MS Dev Days, 29 mei 2009 http://quirksmode.org Web standards W3C specifications
More informationComputer Science 21b (Spring Term, 2015) Structure and Interpretation of Computer Programs. Lexical addressing
Computer Science 21b (Spring Term, 2015) Structure and Interpretation of Computer Programs Lexical addressing The difference between a interpreter and a compiler is really two points on a spectrum of possible
More informationSoftware Architecture and Engineering: Part II
Software Architecture and Engineering: Part II ETH Zurich, Spring 2016 Prof. http://www.srl.inf.ethz.ch/ Framework SMT solver Alias Analysis Relational Analysis Assertions Second Project Static Analysis
More informationAWS SDK for Node.js. Getting Started Guide Version pre.1 (developer preview)
AWS SDK for Node.js Getting Started Guide Amazon Web Services AWS SDK for Node.js: Getting Started Guide Amazon Web Services Copyright 2012 Amazon Web Services LLC or its affiliates. All rights reserved.
More informationCaptainCasa Enterprise Client. CaptainCasa Enterprise Client. CaptainCasa & Java Server Faces
CaptainCasa & Java Server Faces 1 Table of Contents Overview...3 Why some own XML definition and not HTML?...3 A Browser for Enterprise Applications...4...Java Server Faces joins the Scenario!...4 Java
More informationUI-Testing, Reactive Programming and some Kotlin.
UI-Testing, Reactive Programming and some Kotlin anders.froberg@liu.se Load up your guns, and bring your friends This is the end, My only Friend, the end Äntligen stod prästen i predikstolen I ll be back
More informationA Sense of Time for JavaScript and Node.js
A Sense of Time for JavaScript and Node.js First-Class Timeouts as a Cure for Event Handler Poisoning James C. Davis Eric R. Williamson Dongyoon Lee COMPUTER SCIENCE - 1 - Contributions Attack: Event Handler
More informationmismatch between what is maybe possible today and what is going on in many of today's IDEs.
What will happen if we do very, very small and lightweight tools instead of heavyweight, integrated big IDEs? Lecturer: Martin Lippert, VMware and Eclispe tooling expert LIPPERT: Welcome, everybody, to
More informationAlgorithm 23 works. Instead of a spanning tree, one can use routing.
Chapter 5 Shared Objects 5.1 Introduction Assume that there is a common resource (e.g. a common variable or data structure), which different nodes in a network need to access from time to time. If the
More informationParallel scan. Here's an interesting alternative implementation that avoids the second loop.
Parallel scan Summing the elements of an n-element array takes O(n) time on a single processor. Thus, we'd hope to find an algorithm for a p-processor system that takes O(n / p) time. In this section,
More informationLecture 24: Java Threads,Java synchronized statement
COMP 322: Fundamentals of Parallel Programming Lecture 24: Java Threads,Java synchronized statement Zoran Budimlić and Mack Joyner {zoran, mjoyner@rice.edu http://comp322.rice.edu COMP 322 Lecture 24 9
More informationCSCE 120: Learning To Code
CSCE 120: Learning To Code Module 11.0: Consuming Data I Introduction to Ajax This module is designed to familiarize you with web services and web APIs and how to connect to such services and consume and
More informationSwift 5, ABI Stability and
Swift 5, ABI Stability and Concurrency @phillfarrugia Important Documents Concurrency Manifesto by Chris Lattner https: /gist.github.com/lattner/ 31ed37682ef1576b16bca1432ea9f782 Kicking off Concurrency
More informationCallbacks & Promises
Callbacks & Promises Agenda Task: read a JSON file A Callback Based Library (fs) A Promise based Libdary (fs-readfile-promise) Function Styles: Anonymous function Named function Function Object Named Arrow
More informationFrom the Beginning: Your First Node.js Web Service
From the Beginning: Your First Node.js Web Service P. Venkatramen Data Access Development Oracle Database 10 April 2018 Copyright 2017, Oracle and/or its affiliates. All rights reserved. Safe Harbor Statement
More informationWhat is Node.js? Tim Davis Director, The Turtle Partnership Ltd
What is Node.js? Tim Davis Director, The Turtle Partnership Ltd About me Co-founder of The Turtle Partnership Working with Notes and Domino for over 20 years Working with JavaScript technologies and frameworks
More informationData Classes & Objects and CSV Processing. Lecture 8 - Spring COMP110
Data Classes & Objects and CSV Processing Lecture 8 - Spring 2018 - COMP110 Announcements WS02 Due Friday at 11:59pm Review Session Tomorrow (Wednesday) at 5pm in SN014 Uncertain with topics from the last
More information416 Distributed Systems. RPC Day 2 Jan 12, 2018
416 Distributed Systems RPC Day 2 Jan 12, 2018 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network
More informationA synchronous J avascript A nd X ml
A synchronous J avascript A nd X ml The problem AJAX solves: How to put data from the server onto a web page, without loading a new page or reloading the existing page. Ajax is the concept of combining
More informationAJAX: The Basics CISC 282 March 25, 2014
AJAX: The Basics CISC 282 March 25, 2014 Synchronous Communication User and server take turns waiting User requests pages while browsing Waits for server to respond Waits for the page to load in the browser
More informationAbstract. 1. Introduction. 2. AJAX overview
Asynchronous JavaScript Technology and XML (AJAX) Chrisina Draganova Department of Computing, Communication Technology and Mathematics London Metropolitan University 100 Minories, London EC3 1JY c.draganova@londonmet.ac.uk
More information