JavaScript - Like a Box of Chocolates - jsDayRobert Nyman
This presentation aims to give you information about the JavaScript language itself; pros, cons and pitfalls. It will cover the basics and then go into objects, scope, closure and some performance bits.
Front-end Javascript testing is a thing since 3/4 years now, but it’s still a ghost in the dev community: someone believes in it while someone else is not convinced at all.
This talk will tackle the misconceptions about testing, how and what to test, dependencies mocking and strategies to write tests in a profitable way without being afraid.
JavaScript is a versatile programming language that can be used to add interactivity to web pages. The document provides examples of common JavaScript concepts like variables, functions, objects, loops, and DOM manipulation. It also discusses best practices like minimizing DOM access, controlling scope, and using closures and modules to organize code. Overall, the document serves as a high-level introduction to JavaScript syntax and programming concepts.
HTML5 APIs - Where no man has gone before! - AltranRobert Nyman
This document summarizes several HTML5 APIs including classList, web storage, web SQL, IndexedDB, offline web applications, history API, web sockets, file API, drag and drop, web workers, fullscreen API, camera API, WebRTC, pointer lock API, and battery status API. It provides code examples and descriptions for how to use each API to add interactivity and offline capabilities to web applications.
The document discusses jQuery, a JavaScript library. It provides an introduction to jQuery, explaining that it simplifies HTML document traversal and manipulation, event handling, animation, and Ajax interactions for rapid web development. It also allows developers to write less code and do more. The core jQuery function and chaining methods are described. Finally, it covers jQuery selectors, traversing, manipulation, and other basic APIs.
JavaScript APIs - The Web is the Platform - MDN Hack Day, MontevideoRobert Nyman
The document discusses several JavaScript APIs available in the browser including fullscreen API, camera API, WebRTC, Pointer Lock API, IndexedDB, battery status API, Boot to Gecko, telephony and SMS APIs, vibration API, and developer tools. It provides code examples for how to use these APIs to enable fullscreen mode, access camera and files, capture video streams, track pointer movement, store data in IndexedDB, get battery status, make phone calls and send SMS, trigger vibration, and debug web applications.
JavaScript APIs - The Web is the Platform - MozCamp, Buenos AiresRobert Nyman
This document provides summaries of various JavaScript APIs available in the browser, including APIs for fullscreen mode, cameras, WebRTC, pointer lock, IndexedDB, battery status, B2G/Gaia, telephony/SMS, vibration, and developer tools. It encourages trying new things with these Web APIs.
JavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, ChileRobert Nyman
This document summarizes several JavaScript APIs available in the browser, including APIs for fullscreen mode, cameras, WebRTC, pointer lock, IndexedDB, battery status, and vibration. It also discusses Boot to Gecko, telephony/SMS, and developer tools.
JavaScript APIs - The Web is the Platform - .toster conference, MoscowRobert Nyman
This document summarizes various JavaScript APIs available for building web applications. It discusses APIs for files, images, video, fullscreen, camera, WebRTC, pointer lock, web storage, IndexedDB, battery status, telephony, SMS, vibration, and more. The goal is to provide developers capabilities for building rich applications that interact with the user's device.
JavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos AiresRobert Nyman
This document discusses several JavaScript APIs available in modern browsers including fullscreen API, camera API, pointer lock API, IndexedDB, battery status API, vibration API, and developer tools. It provides code examples for how to use these APIs to enable fullscreen mode, access camera and files, track mouse movement, store data in IndexedDB, get battery information, trigger vibrations, and open developer tools.
Stack Overflow Austin - jQuery for DevelopersJonathan Sharp
Jonathan Sharp is a freelance developer and member of the jQuery team. He gave an introduction to jQuery covering the following key points:
1. jQuery is a JavaScript library that simplifies DOM manipulation, event handling, animations and Ajax interactions. It uses CSS selectors to find elements and chaining to perform multiple operations in one line of code.
2. The core concepts of jQuery include finding elements and performing actions on them, creating new elements and appending them, chaining and implicit iteration, and understanding the different parameter types like selectors, HTML and DOM elements.
3. An overview of the jQuery API was provided covering core functionality, selectors, attributes, traversing, manipulation, CSS, events
The jQuery community has provided thousands of useful plugins which can be stitched together to create exceptional websites. However, organizing those plugins, tracking their upstream changes and managing dependencies can become a nightmare with a system to help you manage. JavascriptMVC, and specifically its new version 3 release, provides a framework for organizing outside code, integrating it into your workflow and compressing down to a single output javascript file. This talk will focus on taking external plugins such as jQuery Tools, jQuery UI and other popular plugins and creating a workflow for building larger applications from these components. I will show how to use the JavascriptMVC “getter” and “pluginify” scripts to pull external resources. With JavascriptMVC 3, css and javascript can be packaged together creating truly convenient widgets. I will also demonstrate how often-used pieces of functionality can be abstracted into plugins and shared with the general community via Github.
This document provides an overview of JavaScript and HTML5 capabilities including:
- Canvas element for drawing
- Video element for playing video files
- Geolocation API to detect user location
- Local and session storage for browser data
- PostMessage API for cross-window communication
It discusses JavaScript language features like variables, functions, and scope and shows examples of working with the DOM, events, and extending native objects. The document is an introduction to modern web technologies enabled by JavaScript and HTML5.
Exploring the Sweet Spot: Geolocation, Health, and Gov-data Lance Roggendorff
Location based services are increasingly important, especially when it comes to accessing health information and services. Over the past year and a half, AIDS.gov, a program of the U.S. Department of Health and Human Services, Office of HIV/AIDS Policy, has been collaborating with other Federal agencies (CDC, HUD, SAMHSA, among others) to develop an HIV/AIDS prevention and service locator. This new tool combines key Federal HIV/AIDS programs such as HIV testing, mental health services, health centers, substance abuse clinics, and housing services. Each of these programs is run by a separate agency and pulls information from a wide range of sources. Beyond addressing what it took to get each agency to collaborate and push their data in a consumable format, this presentation will focus on the steps AIDS.gov took to create this locator service. We take a technical approach to discuss the GeoRSS standard, how we built the service using mostly JavaScript, and how we pushed this service to mobile, standard web, and native application platforms. We will also talk about the iterative design and development process, and we tie it all together with the big ticket: the sweet spot of location, mobile, and health. We cover it all, location, Health IT, and Gov 2.0.
The document discusses using promises to write asynchronous code in a synchronous style. It provides examples of testing a blog API using callbacks, async/await, and promises. With callbacks, the code is nested and difficult to follow. Using async/await and promises helps linearize the code and make the asynchronous logic clearer and easier to read. Promises transform asynchronous code into a series of synchronous-looking steps chained together with .then() calls. This improves readability and maintainability compared to deeply nested callbacks.
An introduction to jQuery. How to access elements, what you can then do with them, how to create elements, a bit of AJAX and some JSON. Given as a lecture in the fh ooe in Hagenberg, Austria in December 2011.
Mozilla is a nonprofit dedicated to empowering users and promoting open web standards. The document discusses Mozilla's Browser ID system for user authentication, tools for developing web applications including manifest files, installing apps, accessing device capabilities like the camera and battery, and using technologies like IndexedDB, HTML5, and CSS3. It also covers Mozilla's Boot to Gecko project and APIs for telephony, SMS, and vibration in mobile browsers.
Drupal 8 leverages Assetic for managing Javascript and CSS assets. This library abstracts the headaches of integrating with the burgeoning universe of asset pre-processors and optimization tools available to the modern developer.
The lead developer of Assetic will give a tour of the library and discuss the current state of the project, its strengths, and its weaknesses, and also touch on the future: Assetic 2.0.
JavaScript APIs you’ve never heard of (and some you have)Nicholas Zakas
The document discusses several JavaScript APIs related to manipulating the DOM and CSS, including some newer APIs that the reader may be unfamiliar with. It describes APIs such as insertAdjacentHTML() and outerHTML for inserting and retrieving HTML, children and firstElementChild/lastElementChild for traversing element nodes, and matches() and getBoundingClientRect() for working with CSS selectors and elements' positions. The document provides examples and explanations of many DOM and CSS-related JavaScript APIs beyond the traditional ones.
This presentation covers some jQuery basics, as well as some general concepts you should understand about jQuery. You will find other tips and tricks sprinkled throughout before the live coding session starts.
The code from the live coding session is available here: https://github.com/dcneiner/jQuery-Bling and covers far more advanced topics than the slide portion of this presentation.
This document summarizes a presentation on unobtrusive JavaScript with jQuery. The presentation introduces JavaScript frameworks like jQuery and the concept of unobtrusive JavaScript. It discusses jQuery's core philosophy of simplifying interactions between HTML and JavaScript. The document outlines jQuery's API and popular plugins. It also covers lessons learned, including placing CSS at the top, JavaScript at the bottom, and assessing pages with Yslow. The presentation concludes with working examples and acknowledgments.
This document summarizes Nicholas C. Zakas's presentation on maintainable JavaScript. The presentation discusses why maintainability is important, as most time is spent maintaining code. It defines maintainable code as code that works for five years without major changes and is intuitive, understandable, adaptable, extendable, debuggable and testable. The presentation covers code style guidelines, programming practices, code organization techniques and automation tools to help write maintainable JavaScript.
Lightning talk I did at the second #JSMeetup in Paris. #Parisjs
It kickstarted the project http://github.com/sylvinus/node-crawler
Firefox OS learnings & visions, WebAPIs - budapest.mobileRobert Nyman
This document summarizes the Firefox OS platform and its APIs. It discusses how Firefox OS uses HTML5, CSS and JavaScript to build apps, and describes various Web APIs for features like notifications, vibration, screen orientation, battery status and more. It also covers app packaging and security levels, and looks at future APIs for areas like NFC, WebRTC and others. Instructions are provided for getting started with Firefox OS development using tools like the simulator and inspector.
jQuery Anti-Patterns for Performance & CompressionPaul Irish
The document discusses various jQuery anti-patterns that can negatively impact performance and compression. It describes caching selections, using document fragments to append content outside of loops, avoiding unnecessary re-querying of elements, and leveraging event delegation with delegate() instead of binding individual handlers. The document emphasizes optimizing selector syntax from right to left, avoiding universal selectors, and detaching elements from the DOM when manipulating them to improve speed.
HTML5 is upon us and it offers a wide range of exciting possibilities when it comes to developing rich web interfaces. This talk will introduce you to a number of them and hopefully inspire you to create amazing things!
JavaScript APIs - The Web is the Platform - MDN Hack Day, Santiago, ChileRobert Nyman
This document summarizes several JavaScript APIs available in the browser, including APIs for fullscreen mode, cameras, WebRTC, pointer lock, IndexedDB, battery status, and vibration. It also discusses Boot to Gecko, telephony/SMS, and developer tools.
JavaScript APIs - The Web is the Platform - .toster conference, MoscowRobert Nyman
This document summarizes various JavaScript APIs available for building web applications. It discusses APIs for files, images, video, fullscreen, camera, WebRTC, pointer lock, web storage, IndexedDB, battery status, telephony, SMS, vibration, and more. The goal is to provide developers capabilities for building rich applications that interact with the user's device.
JavaScript APIs - The Web is the Platform - MDN Hack Day - Buenos AiresRobert Nyman
This document discusses several JavaScript APIs available in modern browsers including fullscreen API, camera API, pointer lock API, IndexedDB, battery status API, vibration API, and developer tools. It provides code examples for how to use these APIs to enable fullscreen mode, access camera and files, track mouse movement, store data in IndexedDB, get battery information, trigger vibrations, and open developer tools.
Stack Overflow Austin - jQuery for DevelopersJonathan Sharp
Jonathan Sharp is a freelance developer and member of the jQuery team. He gave an introduction to jQuery covering the following key points:
1. jQuery is a JavaScript library that simplifies DOM manipulation, event handling, animations and Ajax interactions. It uses CSS selectors to find elements and chaining to perform multiple operations in one line of code.
2. The core concepts of jQuery include finding elements and performing actions on them, creating new elements and appending them, chaining and implicit iteration, and understanding the different parameter types like selectors, HTML and DOM elements.
3. An overview of the jQuery API was provided covering core functionality, selectors, attributes, traversing, manipulation, CSS, events
The jQuery community has provided thousands of useful plugins which can be stitched together to create exceptional websites. However, organizing those plugins, tracking their upstream changes and managing dependencies can become a nightmare with a system to help you manage. JavascriptMVC, and specifically its new version 3 release, provides a framework for organizing outside code, integrating it into your workflow and compressing down to a single output javascript file. This talk will focus on taking external plugins such as jQuery Tools, jQuery UI and other popular plugins and creating a workflow for building larger applications from these components. I will show how to use the JavascriptMVC “getter” and “pluginify” scripts to pull external resources. With JavascriptMVC 3, css and javascript can be packaged together creating truly convenient widgets. I will also demonstrate how often-used pieces of functionality can be abstracted into plugins and shared with the general community via Github.
This document provides an overview of JavaScript and HTML5 capabilities including:
- Canvas element for drawing
- Video element for playing video files
- Geolocation API to detect user location
- Local and session storage for browser data
- PostMessage API for cross-window communication
It discusses JavaScript language features like variables, functions, and scope and shows examples of working with the DOM, events, and extending native objects. The document is an introduction to modern web technologies enabled by JavaScript and HTML5.
Exploring the Sweet Spot: Geolocation, Health, and Gov-data Lance Roggendorff
Location based services are increasingly important, especially when it comes to accessing health information and services. Over the past year and a half, AIDS.gov, a program of the U.S. Department of Health and Human Services, Office of HIV/AIDS Policy, has been collaborating with other Federal agencies (CDC, HUD, SAMHSA, among others) to develop an HIV/AIDS prevention and service locator. This new tool combines key Federal HIV/AIDS programs such as HIV testing, mental health services, health centers, substance abuse clinics, and housing services. Each of these programs is run by a separate agency and pulls information from a wide range of sources. Beyond addressing what it took to get each agency to collaborate and push their data in a consumable format, this presentation will focus on the steps AIDS.gov took to create this locator service. We take a technical approach to discuss the GeoRSS standard, how we built the service using mostly JavaScript, and how we pushed this service to mobile, standard web, and native application platforms. We will also talk about the iterative design and development process, and we tie it all together with the big ticket: the sweet spot of location, mobile, and health. We cover it all, location, Health IT, and Gov 2.0.
The document discusses using promises to write asynchronous code in a synchronous style. It provides examples of testing a blog API using callbacks, async/await, and promises. With callbacks, the code is nested and difficult to follow. Using async/await and promises helps linearize the code and make the asynchronous logic clearer and easier to read. Promises transform asynchronous code into a series of synchronous-looking steps chained together with .then() calls. This improves readability and maintainability compared to deeply nested callbacks.
An introduction to jQuery. How to access elements, what you can then do with them, how to create elements, a bit of AJAX and some JSON. Given as a lecture in the fh ooe in Hagenberg, Austria in December 2011.
Mozilla is a nonprofit dedicated to empowering users and promoting open web standards. The document discusses Mozilla's Browser ID system for user authentication, tools for developing web applications including manifest files, installing apps, accessing device capabilities like the camera and battery, and using technologies like IndexedDB, HTML5, and CSS3. It also covers Mozilla's Boot to Gecko project and APIs for telephony, SMS, and vibration in mobile browsers.
Drupal 8 leverages Assetic for managing Javascript and CSS assets. This library abstracts the headaches of integrating with the burgeoning universe of asset pre-processors and optimization tools available to the modern developer.
The lead developer of Assetic will give a tour of the library and discuss the current state of the project, its strengths, and its weaknesses, and also touch on the future: Assetic 2.0.
JavaScript APIs you’ve never heard of (and some you have)Nicholas Zakas
The document discusses several JavaScript APIs related to manipulating the DOM and CSS, including some newer APIs that the reader may be unfamiliar with. It describes APIs such as insertAdjacentHTML() and outerHTML for inserting and retrieving HTML, children and firstElementChild/lastElementChild for traversing element nodes, and matches() and getBoundingClientRect() for working with CSS selectors and elements' positions. The document provides examples and explanations of many DOM and CSS-related JavaScript APIs beyond the traditional ones.
This presentation covers some jQuery basics, as well as some general concepts you should understand about jQuery. You will find other tips and tricks sprinkled throughout before the live coding session starts.
The code from the live coding session is available here: https://github.com/dcneiner/jQuery-Bling and covers far more advanced topics than the slide portion of this presentation.
This document summarizes a presentation on unobtrusive JavaScript with jQuery. The presentation introduces JavaScript frameworks like jQuery and the concept of unobtrusive JavaScript. It discusses jQuery's core philosophy of simplifying interactions between HTML and JavaScript. The document outlines jQuery's API and popular plugins. It also covers lessons learned, including placing CSS at the top, JavaScript at the bottom, and assessing pages with Yslow. The presentation concludes with working examples and acknowledgments.
This document summarizes Nicholas C. Zakas's presentation on maintainable JavaScript. The presentation discusses why maintainability is important, as most time is spent maintaining code. It defines maintainable code as code that works for five years without major changes and is intuitive, understandable, adaptable, extendable, debuggable and testable. The presentation covers code style guidelines, programming practices, code organization techniques and automation tools to help write maintainable JavaScript.
Lightning talk I did at the second #JSMeetup in Paris. #Parisjs
It kickstarted the project http://github.com/sylvinus/node-crawler
Firefox OS learnings & visions, WebAPIs - budapest.mobileRobert Nyman
This document summarizes the Firefox OS platform and its APIs. It discusses how Firefox OS uses HTML5, CSS and JavaScript to build apps, and describes various Web APIs for features like notifications, vibration, screen orientation, battery status and more. It also covers app packaging and security levels, and looks at future APIs for areas like NFC, WebRTC and others. Instructions are provided for getting started with Firefox OS development using tools like the simulator and inspector.
jQuery Anti-Patterns for Performance & CompressionPaul Irish
The document discusses various jQuery anti-patterns that can negatively impact performance and compression. It describes caching selections, using document fragments to append content outside of loops, avoiding unnecessary re-querying of elements, and leveraging event delegation with delegate() instead of binding individual handlers. The document emphasizes optimizing selector syntax from right to left, avoiding universal selectors, and detaching elements from the DOM when manipulating them to improve speed.
HTML5 is upon us and it offers a wide range of exciting possibilities when it comes to developing rich web interfaces. This talk will introduce you to a number of them and hopefully inspire you to create amazing things!
Leathers & Associates Penny Park Design Day Presentation cityofevanston
This document provides information about L&A, a company that has been designing and building playgrounds for 40 years using recycled plastics. It discusses their materials and design process, which involves gathering community input, creating schematic designs, and getting feedback. Their process is managed by L&A project managers who guide committees through planning and construction.
We all create content.
But most of it is simply awful.
No one wants to call someone's (content) baby ugly...
This is not just about marketing. This is relevant for all business professionals who write emails, create PowerPoint slides and leave voice mails (And that's all of us).
Inspired by Hubspot's Inbound Marketing training, Joe Pulizzi's CMI presentations and my own views, this training seeks to create a world where no babies are ugly - where all our content is interesting...
Inventos que cambiaron a la humanidad victor calidoso01
El documento resume varios inventos importantes a lo largo de la historia y sus inventores. Algunos de los inventos mencionados son la grúa (antigua Grecia), los tubos de neón (1902, Georges Claude), el avión (1903, hermanos Wright), el celular (1982, Martin Cooper), el cine (1895, hermanos Lumière), el horno microondas (1952, Percy Spencer), la computadora (1815, Charles Babbage) y los rayos X (1895, Wilhelm Röntgen). Cada entrada incluye breves detalles sobre el inventor
Flash presentation given by Xavier Dubuisson, XD Sustainable Energy Consulting Ltd, at the 2015 Horizon 2020 SC5 Information Day, 21/10/2015, Herbert Park Hotel, Dublin
This document summarizes the historical background and challenges of regulating solid fuel use in Dublin to improve air quality. It outlines how areas were progressively designated where the marketing, sale, and burning of bituminous coal and other solid fuels with high sulfur content were prohibited starting in 1990. While initial successes were had, public perception of improved air quality did not always match reality. Ongoing challenges include the need to reconsider how areas are designated given population density; addressing the all-island trade of solid fuels; taking a multi-agency regulatory approach; and increasing public information campaigns given growing knowledge of health impacts of air pollution.
This presentation provides an overview of the major provisions proposed by the EPA in the new hazardous waste generator improvements rule. It outlines the four primary issues that exist with today's regulations and how some of the more significant proposals seeks to address those issues. Find out about the rule process and schedule and what this means for hazardous waste generators.
The document discusses the pros and cons of eBook readers like the Sony Reader. It notes complaints about eBooks like being heavy, having limited storage and battery life. It then lists the Sony Reader's features like its size, display and controls. The document also discusses desired improvements such as increasing page turn speed and contrast. It raises concerns about not truly owning eBooks and questions why people pay for titles they can get from the library.
This document provides suggestions from a Group of Experts on establishing a systemic approach to eco-innovation and achieving a circular economy in the EU. It outlines current challenges facing Europe, including rising resource prices, climate change risks, and reliance on imports. To address these challenges, the EU needs to shift towards a more sustainable, non-linear economic model. The document then provides a roadmap for EU research and innovation policies to foster this transition through five pillars: mapping resource use; creating open spaces for innovation; financing innovations; fostering a single market for resources; and ensuring consistent, coordinated policymaking.
Participating in the Creative Commons (NLA/NEMA 2008)Michael Sauers
The document discusses Creative Commons licenses and how they can be used by libraries and individuals. It provides information on choosing an appropriate Creative Commons license for one's work, how libraries can catalog and provide access to Creative Commons licensed works as part of their collections, and some questions that arise when considering Creative Commons licenses, including issues around competition, collection policies, cataloging, and unintended uses of licensed works. The document contains links to additional Creative Commons resources and poses questions about issues like defining "non-commercial" and right of publicity related to Creative Commons licenses.
Macruby& Hotcocoa presentation by Rich KilmerMatt Aimonetti
The document discusses the history of Ruby on Mac OS X and Apple's goals to make Ruby a first-class language for Cocoa development. It introduces MacRuby as a solution to issues with RubyCocoa, and describes how HotCocoa builds on MacRuby to provide an idiomatic Ruby API for Cocoa. It concludes with an overview of the current state of MacRuby development.
The document summarizes plans for renovations to Penny Park, including a scheduled design process with opportunities for public input. It notes $500,000 in capital funding for 2015 and potential additions of a restroom or pavilion. Schematic designs will be discussed at the December 11th public works meeting, with establishment of a steering committee and additional public meetings to gather feedback on design development in 2015.
Flash presentation given by Aoife Braiden, Geological Survey of Ireland, at the 2015 Horizon 2020 SC5 Information Day, 21/10/2015, Herbert Park Hotel, Dublin
Presentation given by Maria Magdalena Holmgren, EIT Raw Materials Northern Co-Location Centre, at the 2015 Horizon 2020 SC5 Information Day, 21/10/2015, Herbert Park Hotel, Dublin
This document provides an introduction to advanced JavaScript concepts by Ryan Stout, including an overview of his background and experience, a history of JavaScript, explanations of core JavaScript concepts like types, objects, functions, closures, and prototypes, as well as discussions of tools for debugging, testing frameworks like Jasmine, and frameworks like jQuery, Underscore.js, and CoffeeScript.
The document discusses the beauty of JavaScript and its many features. It covers how JavaScript offers classless object-oriented programming and functional programming. It also discusses how JavaScript can run on both the client-side and server-side. The document provides examples of JavaScript syntax like variables, functions, objects, inheritance through prototypes, and AJAX requests. It emphasizes how libraries help create abstractions and beautiful patterns in JavaScript code.
The document discusses the beauty of JavaScript and its many features. It covers how JavaScript offers classless object-oriented programming and functional programming. It also discusses how JavaScript can run on both the client-side and server-side. The document provides examples of JavaScript syntax like variables, functions, objects, prototypes and more to demonstrate JavaScript's capabilities. It emphasizes that libraries help create abstractions and beautiful patterns in JavaScript code.
jQuery Data Manipulate API - A source code dissecting journeyHuiyi Yan
Represent major data manipulate API in jQuery 1.6; such as .data(), removeData(), index(), globalEval() and so no. Also, HTML5 data-* attributes. I will walk you through with diving into jQuery source code and find out the killing techniques used in jQuery.
TDC 2014 - JavaScript de qualidade: hoje, amanhã e sempre!Guilherme Carreiro
The document discusses JavaScript quality, past, present and future. It covers topics like variable declarations, prototypes, inheritance, design patterns like Factory and Strategy. It discusses good practices like separating concerns between HTML, CSS and JavaScript code. It also discusses code smells like duplicated code, long methods and lists common JavaScript patterns.
The document contains code snippets that demonstrate various JavaScript patterns and anti-patterns including: defining functions, object prototypes, loops, type coercion, constructors, closures, exceptions, callbacks, and more. It aims to show both proper and improper ways to write JavaScript code.
JavaScript APIs - The Web is the Platform - MDN Hack Day, Sao PauloRobert Nyman
The document provides an overview of various JavaScript APIs available for building web applications, including Browser ID for authentication, drag and drop, fullscreen mode, camera access, WebRTC, pointer lock, IndexedDB, battery status, and vibration. It also briefly mentions Boot to Gecko and the telephony and SMS APIs available in B2G.
jQuery: Tips, tricks and hints for better development and PerformanceJonas De Smet
This document provides an overview of a presentation on jQuery tips, tricks, and hints for better development and performance. The presentation covers:
1. What is jQuery and how it simplifies document traversing, event handling, and rapid web development.
2. Ten useful tips for better development, including avoiding flashing content, using Firebug's console, loading jQuery from Google Code, and writing custom filter selectors.
3. Ten performance tips such as using .find() instead of new selectors, giving selectors context, caching jQuery objects, and using event delegation.
The presentation concludes with contact information for the presenter.
Web developers constantly look for the latest and greatest ways to hone their craft, but changes come fast. From jQuery to Angular to Ember to React, CoffeeScript to TypeScript, it seems there is always something new. But ES6 is something different. With ES6 we are seeing the evolution of core JavaScript. It includes syntactic improvements and great new features never before seen in client-side code. Linters and transpilers for ES6 are readily available and easy to use. There is no need to wait; learn how to leverage the power of "the new JavaScript" in your applications, today!
This document discusses JavaScript promises as an abstraction pattern for handling asynchronous code. It explains why promises are useful by describing some of the issues with callback-based asynchronous code, such as callback hell and lack of readability. The document then provides examples of how to create and use promises to handle sequential and parallel asynchronous tasks in a more maintainable way using chaining and batching. It also discusses how promises are supported in browsers, Node.js, and common promise libraries like Q, RSVP, when.js, and Bluebird.
This document discusses best practices for JavaScript and CSS coding. It recommends putting JavaScript at the bottom of pages, avoiding inline scripts, combining and minifying scripts, and using unobtrusive event handlers. For CSS, it suggests starting with a base stylesheet and using CSS3 selectors. It also covers JavaScript patterns like namespaces and closures, and font embedding with @font-face.
This document provides an overview of JavaScript basics including:
- The history and creation of JavaScript in 2 weeks by Brendan Eich.
- Language basics like syntax, variables, objects, functions, and inheritance.
- Tools for JavaScript development like Firebug and jsLint for debugging and linting.
- Best practices like unobtrusive JavaScript, namespaces, and automated testing.
- Resources for further learning JavaScript like books and websites.
Introduction à CoffeeScript pour ParisRB jhchabran
This document provides an overview of CoffeeScript, highlighting some of its key features and benefits compared to JavaScript. It discusses CoffeeScript's lighter syntax, object literals, list comprehensions, and implicit returns. It also addresses some criticisms of CoffeeScript, such as concerns about it being "just JavaScript" or a "toy language." Overall, the document promotes CoffeeScript as a cleaner syntax for writing JavaScript code.
This document contains code snippets and discussions around various JavaScript technologies including Node.js, CoffeeScript, testing frameworks like Vows and Nodeunit, package management with npm, and more. It discusses using Node.js for non-blocking I/O, creating HTTP servers, making HTTP requests, and reading/writing files. It also briefly introduces CoffeeScript syntax and mentions composition patterns, reactive programming, and the growing Node.js module ecosystem.
Writing JavaScript as a hobby and writing JavaScript as a job are two very different things. Learn some common practices for making your JavaScript friendly to a team environment.
The document contains PHP code for a website that displays and searches product information from a database. It includes:
1. Code to connect to a MySQL database and select the "banhang" database.
2. Index code that includes header, sidebar, content, and footer files. Content displays products and handles search/detail page links.
3. Product display code that queries the database and loops through results to show images, prices and links.
4. Category, search, and detail inclusion files that query the database to populate dropdowns, search results, and detailed product pages.
This document discusses JavaScript and the Dojo toolkit. It emphasizes that JavaScript is very flexible and powerful on its own, beyond just manipulating the DOM. Dojo takes advantage of JavaScript's capabilities by providing utilities like pub/sub, object-oriented programming, function binding, and extending native prototypes. Overall, the key message is that JavaScript can do a lot more than people realize and libraries like Dojo help unlock its full potential.
Websockets talk at Rubyconf Uruguay 2010Ismael Celis
This document discusses using WebSockets for real-time applications in Ruby. It begins with an overview of WebSockets and use cases. It then covers the WebSocket DOM API, handshake process, and implementing a WebSocket server in Ruby with EventMachine and EM-WebSocket. It provides an example of building a multicast channel application with JSON messages. It also discusses scaling options like Pusher and shows code samples for a Pusher implementation.
The document discusses Robert Nyman's career in developer relations, including the different personas in the field, common activities like speaking at events and using social media, and challenges around measuring the impact of the work. It provides tips for those in developer relations such as figuring out your strengths, getting feedback, acknowledging people, and having passion for the work of connecting with developers.
Building for Your Next Billion - Google I/O 2017Robert Nyman
New internet users are coming online around the world and are facing very different constraints to accessing the internet. In this talk, we'll cover what we've learned from building experiences for new internet users and walk through how you can build great experiences that work well for billions of users around the world.
This is a presentation from Google I/O 2017, the video is available at https://www.youtube.com/watch?v=wD3rpdiLMyY
Speakers: Tal Oppenheimer, Mariya Moeva, Robert Nyman
https://twitter.com/taloppenheimer
https://twitter.com/marrrr
https://twitter.com/robertnyman
Daydream is a VR platform from Google that aims to make VR experiences more accessible and approachable through mobile. The document discusses how VR challenges traditional design expectations around visuals, presence, immersion, interfaces, attention, and timing. It emphasizes experimenting with bite-sized VR experiences that tempt user curiosity on mobile through Daydream.
This document discusses improving predictability for web developers. It describes challenges like cross-browser inconsistencies that make development difficult. The authors outline efforts by Chrome to address these issues, such as collaborating with other browsers, listening to developers, and minimizing breaking changes. Developers are encouraged to test new browser features, file bugs, and provide feedback to help continue enhancing predictability.
The Future of Progressive Web Apps - View Source conference, Berlin 2016Robert Nyman
The document discusses the future of the web, covering topics like user identification, payments, connecting with hardware, virtual reality, and more. It notes that user identification will improve with autofill and smart lock passwords. Payments will be simplified through the Payment Request API. Connecting with hardware like Bluetooth devices and NFC will allow interaction with physical objects. Virtual reality on the web is progressing with the WebVR API landing in browsers. Overall, the web continues advancing in powerful ways.
This document discusses trends in web and mobile usage and Google announcements from Google I/O. It notes that while native mobile apps saw more usage time than browsers in the past, the web has grown significantly with over 1 billion users on browsers. Google announced several new products at I/O including Instant Apps for Android, apps on Chromebooks, Google Home, Google Assistant improvements, Allo with smart replies and Google Assistant integration, Duo video calling with a Knock Knock feature, Daydream VR platform, and projects from ATAP like Jacquard and Soli.
Introduction to Progressive Web Apps, Google Developer Summit, Seoul - South ...Robert Nyman
This document provides an introduction to progressive web apps (PWAs). It discusses the history of web technologies from HTML and HTTP in the early 1990s to more recent developments like service workers, push notifications, and web app manifests that enable PWAs. Features of PWAs are described like reliability, performance, engagement, and integration with the operating system. Case studies are presented showing the benefits some companies have seen from implementing PWAs.
Progressive Web Apps keynote, Google Developer Summit, Tokyo, JapanRobert Nyman
This document provides a history of the development of the web from 1991 to the present. It discusses technologies like HTML, HTTP, XMLHttpRequest, AJAX, and mobile web development. It then introduces progressive web apps, which are web applications that are reliable, fast and engaging like native apps through the use of technologies like service workers, web app manifests and push notifications. Examples are given of companies like Flipkart that have seen success adopting progressive web apps.
The web - What it has, what it lacks and where it must go - keynote at Riga D...Robert Nyman
The document discusses the current state and future of the web. It notes that while native apps have gained popularity, especially on mobile, the web still accounts for a large portion of usage. It outlines tools from Google like service workers, push notifications, and app install banners that aim to close capabilities gaps between the web and native apps. The document advocates for progressive web apps that are accessible like websites but also feel like native apps to users. The future of the web, it argues, depends on continuing to match and surpass native platforms while keeping the web open, accessible, and long-lasting.
The web - What it has, what it lacks and where it must go - Bulgaria Web Summ...Robert Nyman
The document discusses the current state and future of the web. It notes that while native apps have gained popularity, especially on mobile, the web remains strong with over 1 billion active users. It outlines tools from Google like Service Workers that help the web compete with capabilities previously only available to native apps like push notifications, offline access, and background processing. The document advocates for continued progress to simplify the web development process and ensure the longevity of technologies, arguing this will help the web remain diverse and accessible across all platforms.
The web - What it has, what it lacks and where it must go - IstanbulRobert Nyman
The document discusses the current state and future of the web. It describes how the web currently lacks capabilities that native mobile apps have like push notifications, background processing, and offline access. However, new web features being developed like Service Workers, Push Notifications, and Background Sync aim to address these gaps. The document argues that with these new features, the divide between native and web is diminishing and the web can provide an app-like experience without requiring users to download an app. The future of the web depends on further developing these capabilities and ensuring the web remains accessible, simple to use, and continues to work across all platforms.
The web - What it has, what it lacks and where it must goRobert Nyman
The document discusses the current state and future of the web. It notes that while native apps currently dominate mobile usage, the web is working to address its limitations through new features like service workers for offline access, background sync for periodic processing, and push notifications. It highlights tools from Google like Mobile-Friendly Test, Chrome DevTools, and Web Fundamentals. It argues the web needs to simplify onboarding and spread awareness of its capabilities to ensure its long-term viability against native platforms. The future of the web depends on matching and surpassing native capabilities while keeping content universally accessible across different platforms.
The document discusses various Google projects focused on the future including Google Now on Tap, Google Photos, virtual reality initiatives like Cardboard and Expeditions, self-driving cars, Project Loon for internet access, Google Lens, Project Soli, and advice to talk to everyone, listen, and show respect. It also mentions the author Robert Nyman working at Google Stockholm and projects like TEKLA, Jacquard, and Spotlight Stories.
Developer relations works to champion developers in different regions by removing obstacles, being responsive to their needs, and networking and lobbying on their behalf. They aim to acquire and engage users for developers' apps and games through Google services like Google Play, which has paid $7 billion to developers so far and reaches over 1 billion Android users worldwide. Developer relations representatives like Robert Nyman are available to help developers and can be contacted for additional support.
Android TV Introduction - Stockholm Android TV meetupRobert Nyman
Android TV is determined to be a significant player in the connected TV market as old TV devices are being replaced by new connected TVs at a rate of 100-200 million per year. Android TV powers televisions, media players, and gaming consoles like the Nexus Player. Content and apps are delivered through Android TV, and the Cast feature allows other platforms to connect to Android TV devices. Developers are encouraged to get involved early to acquire and engage users through games and services.
New improvements for web developers - frontend.fi, HelsinkiRobert Nyman
New improvements for web developers - Promises, fetch, Service Workers, Push notifications, Add to Homescreen.
Slides from a talk I gave at #frontendfi in Helsinki yesterday
UiPath Agentic Automation: Community Developer OpportunitiesDianaGray10
Please join our UiPath Agentic: Community Developer session where we will review some of the opportunities that will be available this year for developers wanting to learn more about Agentic Automation.
This is the keynote of the Into the Box conference, highlighting the release of the BoxLang JVM language, its key enhancements, and its vision for the future.
Noah Loul Shares 5 Steps to Implement AI Agents for Maximum Business Efficien...Noah Loul
Artificial intelligence is changing how businesses operate. Companies are using AI agents to automate tasks, reduce time spent on repetitive work, and focus more on high-value activities. Noah Loul, an AI strategist and entrepreneur, has helped dozens of companies streamline their operations using smart automation. He believes AI agents aren't just tools—they're workers that take on repeatable tasks so your human team can focus on what matters. If you want to reduce time waste and increase output, AI agents are the next move.
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
Role of Data Annotation Services in AI-Powered ManufacturingAndrew Leo
From predictive maintenance to robotic automation, AI is driving the future of manufacturing. But without high-quality annotated data, even the smartest models fall short.
Discover how data annotation services are powering accuracy, safety, and efficiency in AI-driven manufacturing systems.
Precision in data labeling = Precision on the production floor.
Transcript: Canadian book publishing: Insights from the latest salary survey ...BookNet Canada
Join us for a presentation in partnership with the Association of Canadian Publishers (ACP) as they share results from the recently conducted Canadian Book Publishing Industry Salary Survey. This comprehensive survey provides key insights into average salaries across departments, roles, and demographic metrics. Members of ACP’s Diversity and Inclusion Committee will join us to unpack what the findings mean in the context of justice, equity, diversity, and inclusion in the industry.
Results of the 2024 Canadian Book Publishing Industry Salary Survey: https://publishers.ca/wp-content/uploads/2025/04/ACP_Salary_Survey_FINAL-2.pdf
Link to presentation slides and transcript: https://bnctechforum.ca/sessions/canadian-book-publishing-insights-from-the-latest-salary-survey/
Presented by BookNet Canada and the Association of Canadian Publishers on May 1, 2025 with support from the Department of Canadian Heritage.
HCL Nomad Web – Best Practices und Verwaltung von Multiuser-Umgebungenpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-und-verwaltung-von-multiuser-umgebungen/
HCL Nomad Web wird als die nächste Generation des HCL Notes-Clients gefeiert und bietet zahlreiche Vorteile, wie die Beseitigung des Bedarfs an Paketierung, Verteilung und Installation. Nomad Web-Client-Updates werden “automatisch” im Hintergrund installiert, was den administrativen Aufwand im Vergleich zu traditionellen HCL Notes-Clients erheblich reduziert. Allerdings stellt die Fehlerbehebung in Nomad Web im Vergleich zum Notes-Client einzigartige Herausforderungen dar.
Begleiten Sie Christoph und Marc, während sie demonstrieren, wie der Fehlerbehebungsprozess in HCL Nomad Web vereinfacht werden kann, um eine reibungslose und effiziente Benutzererfahrung zu gewährleisten.
In diesem Webinar werden wir effektive Strategien zur Diagnose und Lösung häufiger Probleme in HCL Nomad Web untersuchen, einschließlich
- Zugriff auf die Konsole
- Auffinden und Interpretieren von Protokolldateien
- Zugriff auf den Datenordner im Cache des Browsers (unter Verwendung von OPFS)
- Verständnis der Unterschiede zwischen Einzel- und Mehrbenutzerszenarien
- Nutzung der Client Clocking-Funktion
Spark is a powerhouse for large datasets, but when it comes to smaller data workloads, its overhead can sometimes slow things down. What if you could achieve high performance and efficiency without the need for Spark?
At S&P Global Commodity Insights, having a complete view of global energy and commodities markets enables customers to make data-driven decisions with confidence and create long-term, sustainable value. 🌍
Explore delta-rs + CDC and how these open-source innovations power lightweight, high-performance data applications beyond Spark! 🚀
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
With the cost of electricity increasing and ecological concerns becoming increasingly difficult to dismiss, numerous Indian homes and businesses are looking for improved means of meeting their energy requirements. That's where solar enters the picture not as a substitute, but as a trustworthy, long-term option. Among all the alternatives today, the 5kW solar system is a balanced option. It's strong enough for the majority of homes and small business installations, but small and inexpensive enough to bring about solar adoption at ease and efficiency.
Explore the complete guide to 5kW solar system installation in India. Learn about cost, daily output, subsidy in 2025, benefits for homes & businesses, and how to apply in Gujarat.
UiPath Community Berlin: Orchestrator API, Swagger, and Test Manager APIUiPathCommunity
Join this UiPath Community Berlin meetup to explore the Orchestrator API, Swagger interface, and the Test Manager API. Learn how to leverage these tools to streamline automation, enhance testing, and integrate more efficiently with UiPath. Perfect for developers, testers, and automation enthusiasts!
📕 Agenda
Welcome & Introductions
Orchestrator API Overview
Exploring the Swagger Interface
Test Manager API Highlights
Streamlining Automation & Testing with APIs (Demo)
Q&A and Open Discussion
Perfect for developers, testers, and automation enthusiasts!
👉 Join our UiPath Community Berlin chapter: https://community.uipath.com/berlin/
This session streamed live on April 29, 2025, 18:00 CET.
Check out all our upcoming UiPath Community sessions at https://community.uipath.com/events/.
Technology Trends in 2025: AI and Big Data AnalyticsInData Labs
At InData Labs, we have been keeping an ear to the ground, looking out for AI-enabled digital transformation trends coming our way in 2025. Our report will provide a look into the technology landscape of the future, including:
-Artificial Intelligence Market Overview
-Strategies for AI Adoption in 2025
-Anticipated drivers of AI adoption and transformative technologies
-Benefits of AI and Big data for your business
-Tips on how to prepare your business for innovation
-AI and data privacy: Strategies for securing data privacy in AI models, etc.
Download your free copy nowand implement the key findings to improve your business.
2. “O wonder!
How many goodly creatures are there here! How
beauteous mankind is! O brave new world! That
has such people in't!”
- Shakespeare’s The Tempest
35. // Prevent type coercion
var sum = parseInt("5", 10) + 6 + 7; // 18
37. // Various "false" values
var nullVal = null;
var undefinedVal = undefined;
var zeroVal = 0;
var falseVal = false;
var emptyString = "";
// All would equal false in an if-clause
if (emptyString) {
// Would never go in here
}
41. // Using arguments
function friends (friend1, friend2) {
return friend1 + " & " + friend2;
}
// Lieutenant Dan & Bubba
friends("Lieutenant Dan", "Bubba");
// Lieutenant Dan & undefined
friends("Lieutenant Dan");
42. // Using the arguments collection
function friends () {
var allFriends = [];
for (var i=0, il=arguments.length; i<il; i++) {
allFriends.push(arguments[i]);
};
return allFriends.join(" & ");
}
// Lieutenant Dan & Bubba
friends("Lieutenant Dan", "Bubba");
// Lieutenant Dan
friends("Lieutenant Dan");
44. // Scope - global or local
// Global
var quote = "I had run for 3 years, 2 months,
14 days, and 16 hours."
function () {
// Local
var pantherParty = "I'm sorry I had to
fight in the middle of your Black Panther
party.";
// Global
question = "And so, you just ran?";
}
45. // Global
function meetingJFK () {
var JFKQuestion = "Congratulations, how do
you feel?";
// Local
function forrestReply () {
return "I gotta pee.";
}
return forrestReply();
}
meetingJFK(); // I gotta pee
forrestReply(); // Error: not accessible
64. <video controls>
<source src="swedish-flag.mp4">
<source src="swedish-flag.ogv">
<p>
Sorry, your web browser doesn't
support the video element.
</p>
</video>
89. // Using JSON
var info = {
"language" : "Polish",
"location" : "Warsaw"
};
// Save as string
localStorage.setItem("info", JSON.stringify(info));
// Load as JSON object
alert(JSON.parse(localStorage.info));
92. <!--
The multiple attribute allows for
uploading of multiple files
-->
<input id="files-upload" type="file" multiple>
93. var filesUpload = document.getElementById("files-upload");
filesUpload.onchange = function () {
// Access to data about all files
var files = this.files;
for (var i=0, il=files.length; i<il; i++) {
file.name; // Get the name of the file
file.size; // Get the size of the file, in bytes
file.type; // Get the type of the file
};
};
95. // Supported in Firefox and Google Chrome
if (typeof FileReader !== "undefined") {
var img = document.createElement("img"),
reader = new FileReader();
reader.onload = function (evt) {
img.src = evt.target.result;
};
reader.readAsDataURL(file);
}
97. var url = "http://robertnyman.com",
title = "My blog",
state = {
address : url
};
window.history.pushState(state.address, title, url);
103. var ws = new WebSocket("ws://robertnyman.com/wsmagic");
// Send data
ws.send("Some data");
// Close the connection
ws.close();
104. var ws = new WebSocket("ws://robertnyman.com/wsmagic");
// When connection is opened
ws.onopen = function () {
console.log("Connection opened!")
};
// When you receive a message
ws.onmessage = function (evt) {
console.log(evt.data);
};
// When you close the connection
ws.onclose = function () {
console.log("Connection closed");
};
// When an error occurred
ws.onerror = function () {
console.log("An error occurred")
};