SlideShare a Scribd company logo
Continuous Delivery
for the Web Platform

Jarrod Overson
jarrodoverson.com
Consultant @ gossamer.io

Wednesday, October 23, 13

1
1. What is Continuous Delivery ?
2. Why Continuously Deliver ?
3. How do you deliver JS ?

Wednesday, October 23, 13

2
Continuous Delivery is
the automated path from
development to production.
Wednesday, October 23, 13

3
The Main Goal
Deliver working software
as early as possible
and
as quickly as possible.

Wednesday, October 23, 13

4

Recommended for you

Config managament for development environments iii
Config managament for development environments iiiConfig managament for development environments iii
Config managament for development environments iii

The document discusses using configuration management tools like Puppet and Vagrant to create consistent development environments across different platforms. It describes problems that can arise from differences in developer environments. Vagrant is presented as a solution to create virtual development environments that are automatically configured through tools like Puppet and provisioned to be identical to production. Examples are given of using Vagrant and Puppet together to define environments through a Vagrantfile and Puppet manifests.

puppetpuppetconfpuppet camp
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scripts

This document discusses using npm scripts for front-end automation and builds. It argues that npm scripts provide a simple, cross-compatible way to automate tasks like bundling, transpiling, testing and deployment without additional build tools. Npm scripts take advantage of existing CLI tools and allow decomposing complex automation into simple, composable tasks through lifecycle scripts and npm-run-all. Some tradeoffs are less extensibility and ongoing challenges with cross-platform support, but the approach aims to provide simpler mental models than alternative build systems.

Infinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
Infinum Android Talks #17 - A quest for WebSockets by Zeljko PlesacInfinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
Infinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac

Željko will take a closer look into available WebSocket solutions for Android and demonstrate how switching between them using a decoupled architecture and Dagger 2 can be simple and intuitive.

websocketandroid programminggoogle android
5 keys of
Continuous Delivery
Automation
Tests

Automation

Automation
Monitoring

Automation

Automation
Wednesday, October 23, 13

5
AUTOMATE
 ALL
 THE

Recommended for you

Continuous Integration for front-end JavaScript
Continuous Integration for front-end JavaScriptContinuous Integration for front-end JavaScript
Continuous Integration for front-end JavaScript

Simple demo on setting up continuous integration with GruntJS and PhantomJS of your front-end JavaScript code and Jasmine tests running on Jenkins

unit testingphantomjsjenkins
Introduction to Express and Grunt
Introduction to Express and GruntIntroduction to Express and Grunt
Introduction to Express and Grunt

This document introduces Express, a web development framework for Node.js, and Grunt, a JavaScript task runner. It describes Express as fast, lightweight, and minimalist, noting that it includes only necessary features. Grunt is presented as a tool for automating tasks like minification, compilation, unit testing and linting. The document provides instructions on setting up projects with Express and Grunt, demonstrating how to define tasks in a Gruntfile and develop custom tasks.

npmnodejsexpressjs
Going Node At Netflix
Going Node At NetflixGoing Node At Netflix
Going Node At Netflix

Slides from my talk "Going Node at Netflix" talk where I talk a bit about how we built a Node.js application at Netflix.

nodejsnetflixjavascript
 
 
 THINGS

Wednesday, October 23, 13

6
Traditional Delivery

Feature

Wednesday, October 23, 13

QA

Deploy

7

Recommended for you

CI : the first_step: Auto Testing with CircleCI - (MOSG)
CI : the first_step: Auto Testing with CircleCI - (MOSG)CI : the first_step: Auto Testing with CircleCI - (MOSG)
CI : the first_step: Auto Testing with CircleCI - (MOSG)

Continuous Integration The First stop : Auto Testing ( w/ Circle CI) Mulodo Open Study Group (MOSG) @HCMC, Vietnam http://www.meetup.com/Open-Study-Group-Saigon/events/232272580/

phpunitcontinuous integrationcircleci
Npm scripts
Npm scriptsNpm scripts
Npm scripts

This document discusses using NPM scripts as a build tool. It covers setting up scripts in the package.json file to automate common tasks like linting, testing, building assets, and running dev servers. Examples are provided of setting up scripts for CSS preprocessing, bundling JavaScript, running tests, and more for both AngularJS and React projects. Chaining, piping, and running tasks concurrently with NPM scripts is also covered.

Vagrant. Halturin Artem
Vagrant. Halturin ArtemVagrant. Halturin Artem
Vagrant. Halturin Artem

This document provides an overview of using Vagrant and Phing for a cmartbooks project. It lists basic Vagrant commands like vagrant up, vagrant provision, and vagrant destroy. It then describes installing the cmartbooks-ci project with Vagrant and provisioning it. Next, it explains using Phing commands like phing cm-up within the vagrant ssh session to prepare the project. Benefits of this approach are an equal development environment for all, easy configuration sharing, and faster Drupal with Phing and Linux.

vagrantadci
Traditional Delivery
Feature
Feature

QA...

Deploy

Feature

Wednesday, October 23, 13

8
Traditional Delivery

eature
Feature

atureFeature

QA

Deploy

Feature

eature

Wednesday, October 23, 13

9
Traditional Delivery

eature
Feature

atureFeature

QA

Deploy

Feature

eature

Wednesday, October 23, 13

10
Wednesday, October 23, 13

11

Recommended for you

Get Gulping with Javascript Task Runners
Get Gulping with Javascript Task RunnersGet Gulping with Javascript Task Runners
Get Gulping with Javascript Task Runners

This document provides an overview of using JavaScript task runners like Grunt to manage front-end assets and automate common development tasks. It discusses setting up Grunt with NPM, configuring Grunt tasks for CSS concatenation, minification, caching, and JavaScript linting, minification. It also covers using Grunt to watch for file changes and reload a local server. The document demonstrates how Grunt can simplify and standardize front-end workflows.

task runnersjavascript
Automating web site deployment
Automating web site deploymentAutomating web site deployment
Automating web site deployment

You really should automate the deployment of your web site or application. Stop using your source control system for deployment, and definitely stop relying on FTP. This presentations talks about why, what you should be doing and importantly how to go about doing it. Presented at barcamp brighton 4

fabricbcb4deployment
Using Prometheus to monitor your build pipelines
Using Prometheus to monitor your build pipelinesUsing Prometheus to monitor your build pipelines
Using Prometheus to monitor your build pipelines

This document discusses using Prometheus to monitor Jenkins build pipelines. It describes problems with existing Jenkins exporters, proposes writing a custom exporter to parse Jenkins configuration directly, and demonstrates how this allows monitoring build durations, numbers, and triggering alerts when the production environment falls behind development. Custom metrics are introduced to track specific build versions and avoid promoting older code. Dashboards and alerts are configured to better track the pipeline status.

jenkinsprometheusmonitoring
Wednesday, October 23, 13

12
Code

“Sporadic” Delivery

Time

Wednesday, October 23, 13

13
Code

Risk

“Sporadic” Delivery

Time

Wednesday, October 23, 13

Cost
14
Code

Risk

Continuous Delivery

Time

Wednesday, October 23, 13

Cost
15

Recommended for you

Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflowBower & Grunt - A practical workflow
Bower & Grunt - A practical workflow

This document discusses using Bower and Grunt together to manage front-end dependencies and files in a workflow. Bower is used to declare and install dependencies, while Grunt plugins like grunt-bowercopy and grunt-contrib-clean are used to copy dependencies to consistent locations and clean files. Setting up this workflow with Bower, grunt-bowercopy, grunt-contrib-clean, and Git can help organize a project's dependencies, facilitate tracking without committing all files, and reduce build times.

bowergruntfront end
How Testing Changed My Life
How Testing Changed My LifeHow Testing Changed My Life
How Testing Changed My Life

Reasoning behind automated testing with a WordPress plugin as an example. Very mild exposure to bears.

unit testingpluginwordpress
Virtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAsVirtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAs

This document discusses best practices for virtual machines (VMs), storage area networks (SANs), and SQL Server. It provides three "nevers" for VMs: never overallocate virtual CPUs, never use automatic settings, and never assume VMs are alone. It also gives three "always" for SANs: always know your neighbors on the SAN, always test storage performance first with SQLIO before SQL Server, and always be checking performance metrics. Key metrics discussed include processor queue length, SQL Server memory page life expectancy, and physical disk read/write average time. The document emphasizes testing storage, understanding competition from other workloads, and monitoring for subtle performance changes.

sanvmwarehyper-v
Get value to the user
quickly and with little risk

Wednesday, October 23, 13

16
But no really...
Why Continuous Delivery?

Wednesday, October 23, 13

17
It makes your life better

Wednesday, October 23, 13

18
Continuous Delivery
Reduces process
Increases accountability
Exposes waste
Improves fertility
Cures baldness
Wednesday, October 23, 13

19

Recommended for you

Cd syd
Cd sydCd syd
Cd syd

The document discusses continuous delivery (CD) and continuous integration (CI). It defines CD as automatically deploying code changes to a staging environment after builds and tests pass, while CI involves continuous building and testing of code changes. The document outlines benefits of CD like quicker turnaround and less deployment risk. It also discusses requirements for CD like integration with source control management and automated deployments. Additionally, it proposes solutions for complex workflows, database changes, and monolithic applications in a CD pipeline.

Web security at Meteor (Pivotal Labs)
Web security at Meteor (Pivotal Labs)Web security at Meteor (Pivotal Labs)
Web security at Meteor (Pivotal Labs)

The document discusses security in modern JavaScript applications and frameworks like Meteor. It outlines several security tools in Meteor including: 1) Separating code that runs on the client vs server, 2) Locking down client access to databases, 3) Using remote procedure calls (RPCs), 4) Validating user input to prevent MongoDB injections, and 5) Configuring browser security policies using the browser-policy package. The talk concludes that Meteor provides tools to help secure modern JavaScript apps by locking down client code, preventing database attacks, and configuring new browser security features.

web securitymeteorjs
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013

"What Is This Continuous Delivery Thing Anyway?" by Eric Shamow, Product Owner, Continuous Delivery, Puppet Labs. Presentation Overview: An introduction to Continuous Delivery with a focus on Puppet and Operations teams - what is Continuous Delivery, why does my company or Development team want it, and what does it do for me? We'll focus on what you can do with Puppet now to enable an environment that encourages rapid iteration, how Operations can reach out to help Development get on this path (and what Development can ask for from Ops if they aren't helping out), and what Puppet is currently working on to make Continuous Delivery available to every organization. Speaker Bio: Eric Shamow is methodologies lead and a product owner at Puppet Labs. He has worked in IT for over 15 years in a diverse group of organizations from education to finance. Eric's passion is for culture change, and his work with Puppet has brought him to some of the most recognized companies in the industry, consulting on both technology and organizational process.

puppetpuppet labspuppetconf
“Agile” without Continuous Delivery
isn’t very agile.

Wednesday, October 23, 13

20
“ Ok.
Awesome.

Let’s do this.”
You ➙
Wednesday, October 23, 13

21
Schedule a
Meeting
Go over continuous
delivery in a perfect
world scenario
Then come
back to reality

Wednesday, October 23, 13

22
You don’t have unit tests
You can’t do CD without unit tests...

You don’t have monitoring in place
You need more monitoring first...

You’re not Etsy, you’re not Netflix
This is really for someone else...

Wednesday, October 23, 13

23

Recommended for you

Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013

The document discusses JavaScript concurrency and web workers. It begins by explaining that JavaScript is single-threaded by default, which can cause performance issues if long-running tasks block the UI thread. Web workers allow running scripts in parallel without blocking the UI thread by executing them in background threads. The document then covers how to create and communicate with web workers, what APIs are available to workers, differences between workers and threads, and examples of using workers for parallel processing and transferring large amounts of data efficiently.

concurrencythreadingweb workers
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconfContinuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf

Continuous delivery uses practices like Docker, Jenkins, and Mesos/Marathon to ensure code changes can be rapidly and safely deployed to production. Docker provides containerization which allows fast and robust deployment using images. Jenkins can be configured with plugins to build, test, and deploy Docker images to a Mesos/Marathon cluster for production. Mesos/Marathon provide scalability, fault tolerance, and resource sharing across frameworks and applications in a cluster.

Coscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoopCoscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoop

This document discusses implementing continuous integration (CI) for Hadoop projects. It describes problems with debugging and assessing performance of MapReduce jobs. The proposed solution is to set up a CI system for Hadoop that automates unit testing, performance testing, documentation generation and deployment. This allows developers to catch issues early before deploying to production and improves productivity. Demo examples are provided of the CI system failing and passing unit tests and assessing performance.

coscup2013 coscup
FUCK
THAT
Wednesday, October 23, 13

24
Start deploying every day.
Even if there are no changes.
Especially if there are no changes.
( just at the start )

Wednesday, October 23, 13

25
Fear and Risk
are the enemies
of continuous delivery

Wednesday, October 23, 13

26
Replace

Fear and Risk
with

Boredom
and

Annoyance
Wednesday, October 23, 13

27

Recommended for you

Chef - Configuration Management for the Cloud
Chef - Configuration Management for the CloudChef - Configuration Management for the Cloud
Chef - Configuration Management for the Cloud

This document discusses using Chef for configuration management in the cloud. Chef allows infrastructure to be defined as code and automatically deployed across cloud providers. It provides tools to build and manage complex, evolving infrastructures through recipes, templates, and reusable cookbooks. Chef handles provisioning, configuration, application deployment, and allows infrastructure to be easily migrated across cloud platforms.

chef
2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...
2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...
2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...

The document summarizes the 2nd Annual Startup Launches event hosted by Amazon.com on November 14, 2013. It includes presentations from several startup companies including KoalityCode, CardFlight, Runscope, SportXast, Nitrous.IO, and SPOT101. Each startup pitched their product or service and how it leverages AWS cloud services. Special offers for AWS re:Invent attendees were also announced.

cloud computingaws cloudamazon cto
Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013

"Managing Windows Systems with Puppet" by James Sweeny Professional Services Engineer, Puppet Labs. Presentation Overview: Since Puppet grew up in the *nix world, there is a common misconception that it can't be used to effectively manage Windows. This talk hopes to dispel confusion on the matter and demonstrate that Windows can be managed effectively and easily with Puppet. Along with basic how-tos and tips on working with Windows systems using Puppet, Windows specific issues and caveats will be discussed with effective mitigations. Speaker Bio: James is a recovering sysadmin currently working as a Professional Services Engineer at Puppet Labs. He performs training and advises on configuration and systems management best practices in his day job. Though his focus is primarily on Linux systems, he frequently is tasked to work on Solaris, OS/X, and Windows. He is unafraid to admit that he runs Windows 7 on his primary desktop.

puppetwindowspuppet labs
“Annoyance
is the mother of automation”

- Moses

Wednesday, October 23, 13

28
Automate your current flow.
Get it down to a button press.

This is the start of your pipeline.
Wednesday, October 23, 13

29
Dev
Complete

Wednesday, October 23, 13

Continuous
Delivery

Live!

30
Dev
Complete

Push

Wednesday, October 23, 13

Unit
Test

Continuous
Delivery

Build 
Artifact

Live!

Integration
Test

Deploy

31

Recommended for you

Enterprise workshops jira security and permissions management atlassian deck
Enterprise workshops jira security and permissions management atlassian deckEnterprise workshops jira security and permissions management atlassian deck
Enterprise workshops jira security and permissions management atlassian deck

This document discusses security and permissions management in JIRA. It provides best practices for server configuration including using strong passwords, firewalls, monitoring open ports, and SSL/HTTPS. It also covers JIRA security administration such as system administrator, project administrator, and workflow permissions. The document addresses issue security and hiding what users don't have permissions to see.

groupsproject rolespraecipio
Drupalcon PDX Swagger
Drupalcon PDX SwaggerDrupalcon PDX Swagger
Drupalcon PDX Swagger

Presentation for Drupalcon PDX on how to keep your swagger as a developer with continuous intergration.

drupalpantheondevops
[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design

This document summarizes Christopher Schmitt's presentation on adaptive images in responsive web design. It discusses using feature testing versus browser sniffing to determine the appropriate image to serve, including testing browser width, screen resolution, and bandwidth. It then covers various techniques for serving adaptive images, such as using .htaccess files, the <picture> element, srcset attributes, and JavaScript libraries. It emphasizes using a mobile-first approach and progressive enhancement to provide the best experience for all devices.

html5cssresponsive web design
Dev
Complete

Continuous
Delivery

Live!

Push

Unit
Test

Build 
Artifact

Integration
Test

Deploy

Preprocess

Compile

Minify

SASS

Tar

Wednesday, October 23, 13

32
Always move forward.
Mature past local automation quickly.

Wednesday, October 23, 13

33
Pros
Open Source
Large community
Very configurable
Loads of plugins

Wednesday, October 23, 13

Cons
Cumbersome UI
Plugin interaction flaky
You still need to solve a
lot

34
Easy git integration
including parametrized branches

At a glance overview
of job status, historical health

Configurable pipelines
cascading tasks started from an origin

Wednesday, October 23, 13

35

Recommended for you

Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...
Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...
Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...

Practice makes perfect. That works in every field. But in the frontend development domain it's crucial to choose and invest your time on the right techniques, tools, libraries, frameworks, as well as methodologies if you want to incur the least amount of overhead. In this talk the speaker takes you through a productive tooling, libraries, frameworks eco-system required to develop modern and robust Web applications easier.

html5marco casariofrontend development
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...

#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at #ATAGTR2023. #ATAGTR2023 was the 8th Edition of Global Testing Retreat. To know more about #ATAGTR2023, please visit: https://gtr.agiletestingalliance.org/

#atagtr2023
Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?

This document appears to be notes from a presentation or talk about Rubinius, an implementation of the Ruby programming language. Some key points summarized: - Rubinius aims to bring techniques from other languages like just-in-time compilation to Ruby to optimize performance. - It is compatible with Ruby 1.8.7 and later and works with Rails and C extensions. - The document discusses Rubinius' technology including using a bytecode virtual machine and optimized memory layout for ivars. - It encourages developers to build tools using Rubinius' APIs and provides examples like a bytecode compiler. - Debugging techniques like profiling and the query agent are demonstrated to solve problems like slow

rubiniusrubyconf2010ruby
Visualize Everything

Always move towards visualizing
your pipeline in as public a place as
possible
Wednesday, October 23, 13

36
You know, if you’re here
add a few VCS hooks and you’re delivering.

Wednesday, October 23, 13

37
Bundle what won’t change
Your artifact is gospel

Wednesday, October 23, 13

38
Environments

Dev

Artifact

Wednesday, October 23, 13

CI

Stage

Same
Artifact

Prod

Same
Artifact

39

Recommended for you

Building cloudy apps
Building cloudy appsBuilding cloudy apps
Building cloudy apps

The document is a presentation about building applications for the cloud on OpenStack. It discusses how applications used to be built with tight coupling between components on individual servers, but in the cloud applications need to be designed from the start to scale horizontally and handle failures. It provides guidance on componentizing applications into loosely coupled microservices, using stateless components, leveraging images to easily deploy identical instances, and implementing auto-scaling and auto-recovery features.

Vaadin 7
Vaadin 7Vaadin 7
Vaadin 7

Vaadin Framework provides a desktop-like programming model for creating modern web applications in plain Java – without the need for HTML, XML, plug-ins or JavaScript. This session explains the key concepts of the server-side and client-side RIA development with Java as well as summarizes what is new with Vaadin 7 and how it relates to GWT. To demonstrate the use of the framework, an example application is developed during the session step-by-step.

codemotionframeworkvaadin 7
Introduction to Vaadin 7
Introduction to Vaadin 7Introduction to Vaadin 7
Introduction to Vaadin 7

This document appears to be a slide presentation on the Vaadin framework. Some key points covered include: - Vaadin is a user interface framework that allows building rich web applications using Java on the server side and HTML/JavaScript on the client side. - It aims to provide a productive development experience by handling browser compatibility and communication between the client and server automatically. - Major topics covered include how Vaadin works, getting started, supported browsers and devices, customizing themes, data sources, and an overview of the framework's history and community.

How is CD different
for JavaScript Applications?

Wednesday, October 23, 13

40
It’s easier!
Except where it’s harder.

Wednesday, October 23, 13

41
First, formalize your JS development
Do you minify and bundle your JS?
You have the start of a build pipeline.

Do you use SASS or CoffeeScript?
You already require a developer flow.

You need a task manager.
Wednesday, October 23, 13

42
Wednesday, October 23, 13

43

Recommended for you

Continuous Deployment of Clojure Apps
Continuous Deployment of Clojure AppsContinuous Deployment of Clojure Apps
Continuous Deployment of Clojure Apps

This document discusses continuous deployment of Clojure applications. It describes the benefits of continuous delivery such as improved team attitude and flexibility. The key aspects of continuous delivery are continuous integration, creating a deployment pipeline, and automating testing, building and deploying software. The deployment pipeline should have stages for committing code, automated acceptance testing, manual testing and releasing software.

continuous deploymentclojurecontinuous delivery
State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013

Chris Spence delivers the "State of Puppet" at Puppet Camp Barcelona 2013. Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/

Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus

This All Things Open 2022 talk shows how to use current-gen WebAssembly to build complex applications out of components.

webassemblywasmapex
Grunt is a task runner
and task composer

Wednesday, October 23, 13

44
1500+
community tasks
requirejs - sass - compress - mocha - less
stylus - jshint - imagemin - connect
cssmin - jst - qunit - uglify - jasmine
phantomjs - concat - copy - coffee - jade

Wednesday, October 23, 13

45
Dev
Complete

CD

Live!

Push

Unit
Test

Build 
Artifact

Integration
Test

Deploy

Preprocess

Compile

Minify

SASS

Tar

Wednesday, October 23, 13

46
Sample grunt task chains
test
build
artifact
dev ➛ [ test, build, watch ]
dist-build ➛ [ test, build, artifact ]

Wednesday, October 23, 13

47

Recommended for you

AppSecCali - How Credential Stuffing is Evolving
AppSecCali - How Credential Stuffing is EvolvingAppSecCali - How Credential Stuffing is Evolving
AppSecCali - How Credential Stuffing is Evolving

This talk was given at AppSec California, January 2020. Credential stuffing and other automated attacks are evolving passed every defense thrown in their way. CAPTCHAs don't work, Fingerprints don't work, Magical AI-whatevers don't work. The value is just too great.

securityautomationcredential stuffing
How Credential Stuffing is Evolving - PasswordsCon 2019
How Credential Stuffing is Evolving - PasswordsCon 2019How Credential Stuffing is Evolving - PasswordsCon 2019
How Credential Stuffing is Evolving - PasswordsCon 2019

Slides for talk given at PasswordsCon Sweden 2019. Credentials Stuffing is an automated attack that exploits users who reuse passwords by taking breached credentials and replaying them across sites.

credential stuffingcredential spillsowasp
JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...
JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...
JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...

This document summarizes an analysis of an exploited NPM package called event-stream. It describes how an attacker gained control of the package and added malicious code that was downloaded by thousands of projects whenever their dependencies were updated. The malicious code stole cryptocurrency from wallets containing large amounts. It highlights the risks of supply chain attacks and emphasizes the importance of auditing dependencies, locking versions, and thinking carefully before adding new dependencies to avoid compromising entire projects and their users.

nodejsnpmsecurity
Testing is cake
grunt-contrib-jasmine
grunt-contrib-qunit
grunt-mocha
grunt-karma

Wednesday, October 23, 13

48
Wednesday, October 23, 13

49
grunt-preprocess
variables in HTML
html
head
script src=./conf/!-- @echo ENV --/.js/script
script src=!-- @echo CDN_URL --/library.js/script
/head
body
header
img src=!-- @echo ASSET_URL --/header.png
/header
/body
/html

Wednesday, October 23, 13

50
grunt-preprocess
conditional comments
html
head
!-- @if ENV=='dev' --
script src=js/main.js/script
!-- @endif --
!-- @if ENV=='dist' !
script src=js/main.build.js/script
!-- @endif --
/head
/html

Wednesday, October 23, 13

51

Recommended for you

Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...

Jarrod Overson presented on a supply chain attack that occurred in 2018 through the compromise of the event-stream Node.js package. An unauthorized developer gained commit access and introduced malicious code through new dependencies that was then installed by millions of users. The malware harvested cryptocurrency private keys from the Copay wallet app. While the community responded quickly, such attacks demonstrate vulnerabilities in open source software supply chains and dependency management that will continue to be exploited if not properly addressed through changes to practices and tooling.

nodejsnpmsecurity
Deepfakes - How they work and what it means for the future
Deepfakes - How they work and what it means for the futureDeepfakes - How they work and what it means for the future
Deepfakes - How they work and what it means for the future

Deepfakes originally started as cheap costing but believable video effects and have expanded into AI-generated content of every format. This session dove into the state of deepfakes and how the technology highlights an exciting but dangerous future.

deepfakesmachine learningartificial intelligence
The State of Credential Stuffing and the Future of Account Takeovers.
The State of Credential Stuffing and the Future of Account Takeovers.The State of Credential Stuffing and the Future of Account Takeovers.
The State of Credential Stuffing and the Future of Account Takeovers.

Jarrod Overson discusses the evolution of credential stuffing attacks and where they may go in the future. He summarizes that credential stuffing started as basic automated login attempts but has evolved through generations as defenses were put in place, such as CAPTCHAs and behavior analysis. The next generation involves more sophisticated imitation attacks that flawlessly emulate human behavior using real device fingerprints to blend in. Beyond credential stuffing, malware may start scraping user accounts and environments directly from infected machines. As defenses raise the cost of attacks, fraudsters will diversify methods to preserve the value of valid accounts and user data.

credential stuffingcredential spillsowasp
preprocess directives
@if VAR = 'value’ / @endif
@ifdef VAR / @endif
@ifndef VAR / @endif
@include FILE
@exclude / @endexclude
@echo VAR

Wednesday, October 23, 13

52
grunt-env
environment setup
env : {
dev : {
ENV : 'dev',
CDN_URL : 'http://127.0.0.1:8000/cdn',
ASSET_URL : 'http://127.0.0.1:8000/assets'
},
dist : {
ENV : 'dist',
CDN_URL : 'http://yourcdn.com/',
ASSET_URL : 'http://yoursite.com/assets'
}
}

Wednesday, October 23, 13

53
grunt.registerTask('dev', [
'env:dev',
'build'
]);
grunt.registerTask('dist-build', [
'env:dist',
'build',
'preprocess',
'artifact'
]);

Wednesday, October 23, 13

54
Example task chains
grunt.registerTask('test', [
'jshint',
'nodeunit'
]);
grunt.registerTask('build', [
'sass',
'montage',
'browserify'
]);
grunt.registerTask('artifact', [
'compress'
]);
https://github.com/Gruntfiles/gruntfiles.github.io/tree/master/gruntfiles/jsoverson/browserify-application
Wednesday, October 23, 13

55

Recommended for you

How to Reverse Engineer Web Applications
How to Reverse Engineer Web ApplicationsHow to Reverse Engineer Web Applications
How to Reverse Engineer Web Applications

Workshop slides originally given at the WOPR Summit in Atlantic City. Use JavaScript parsers and generators like Shift combined with Puppeteer and Chrome to reverse engineer web applications

javascriptsecurityreverse-engineering
The life of breached data and the attack lifecycle
The life of breached data and the attack lifecycleThe life of breached data and the attack lifecycle
The life of breached data and the attack lifecycle

OWASP RTP Presentation on Data breaches, credential spills, the lifespan of data, credential stuffing, the attack lifecycle, and what you can do to protect yourself or your users.

password securitycredential stuffingdata breaches
The Life of Breached Data & The Dark Side of Security
The Life of Breached Data & The Dark Side of SecurityThe Life of Breached Data & The Dark Side of Security
The Life of Breached Data & The Dark Side of Security

QCon SF 2016 security talk about who uses data from massive breaches (like Yahoo, Target), what tools they use, and what damage they inflict.

securitybreachqconsf

More Related Content

What's hot

Getting Started with Puppet on Windows PuppetConf 2014
Getting Started with Puppet on Windows PuppetConf 2014Getting Started with Puppet on Windows PuppetConf 2014
Getting Started with Puppet on Windows PuppetConf 2014
Josh Cooper
 
Coolblue - Behind the Scenes Continuous Integration & Deployment
Coolblue - Behind the Scenes Continuous Integration & DeploymentCoolblue - Behind the Scenes Continuous Integration & Deployment
Coolblue - Behind the Scenes Continuous Integration & Deployment
Matthew Hodgkins
 
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
Ricardo Castelhano
 
Config managament for development environments iii
Config managament for development environments iiiConfig managament for development environments iii
Config managament for development environments iii
Puppet
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
k88hudson
 
Infinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
Infinum Android Talks #17 - A quest for WebSockets by Zeljko PlesacInfinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
Infinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
Infinum
 
Continuous Integration for front-end JavaScript
Continuous Integration for front-end JavaScriptContinuous Integration for front-end JavaScript
Continuous Integration for front-end JavaScript
Lars Thorup
 
Introduction to Express and Grunt
Introduction to Express and GruntIntroduction to Express and Grunt
Introduction to Express and Grunt
Peter deHaan
 
Going Node At Netflix
Going Node At NetflixGoing Node At Netflix
Going Node At Netflix
Ryan Anklam
 
CI : the first_step: Auto Testing with CircleCI - (MOSG)
CI : the first_step: Auto Testing with CircleCI - (MOSG)CI : the first_step: Auto Testing with CircleCI - (MOSG)
CI : the first_step: Auto Testing with CircleCI - (MOSG)
Soshi Nemoto
 
Npm scripts
Npm scriptsNpm scripts
Npm scripts
정윤 김
 
Vagrant. Halturin Artem
Vagrant. Halturin ArtemVagrant. Halturin Artem
Vagrant. Halturin Artem
ADCI Solutions
 
Get Gulping with Javascript Task Runners
Get Gulping with Javascript Task RunnersGet Gulping with Javascript Task Runners
Get Gulping with Javascript Task Runners
ColdFusionConference
 
Automating web site deployment
Automating web site deploymentAutomating web site deployment
Automating web site deployment
Gareth Rushgrove
 
Using Prometheus to monitor your build pipelines
Using Prometheus to monitor your build pipelinesUsing Prometheus to monitor your build pipelines
Using Prometheus to monitor your build pipelines
Lander Van den Bulcke
 
Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflowBower & Grunt - A practical workflow
Bower & Grunt - A practical workflow
Riccardo Coppola
 
How Testing Changed My Life
How Testing Changed My LifeHow Testing Changed My Life
How Testing Changed My Life
Nikolay Bachiyski
 
Virtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAsVirtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAs
Quest Software
 

What's hot (18)

Getting Started with Puppet on Windows PuppetConf 2014
Getting Started with Puppet on Windows PuppetConf 2014Getting Started with Puppet on Windows PuppetConf 2014
Getting Started with Puppet on Windows PuppetConf 2014
 
Coolblue - Behind the Scenes Continuous Integration & Deployment
Coolblue - Behind the Scenes Continuous Integration & DeploymentCoolblue - Behind the Scenes Continuous Integration & Deployment
Coolblue - Behind the Scenes Continuous Integration & Deployment
 
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
When a Sassquatch and a Board get together (or how to use Grunt to chew Sass)
 
Config managament for development environments iii
Config managament for development environments iiiConfig managament for development environments iii
Config managament for development environments iii
 
Advanced front-end automation with npm scripts
Advanced front-end automation with npm scriptsAdvanced front-end automation with npm scripts
Advanced front-end automation with npm scripts
 
Infinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
Infinum Android Talks #17 - A quest for WebSockets by Zeljko PlesacInfinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
Infinum Android Talks #17 - A quest for WebSockets by Zeljko Plesac
 
Continuous Integration for front-end JavaScript
Continuous Integration for front-end JavaScriptContinuous Integration for front-end JavaScript
Continuous Integration for front-end JavaScript
 
Introduction to Express and Grunt
Introduction to Express and GruntIntroduction to Express and Grunt
Introduction to Express and Grunt
 
Going Node At Netflix
Going Node At NetflixGoing Node At Netflix
Going Node At Netflix
 
CI : the first_step: Auto Testing with CircleCI - (MOSG)
CI : the first_step: Auto Testing with CircleCI - (MOSG)CI : the first_step: Auto Testing with CircleCI - (MOSG)
CI : the first_step: Auto Testing with CircleCI - (MOSG)
 
Npm scripts
Npm scriptsNpm scripts
Npm scripts
 
Vagrant. Halturin Artem
Vagrant. Halturin ArtemVagrant. Halturin Artem
Vagrant. Halturin Artem
 
Get Gulping with Javascript Task Runners
Get Gulping with Javascript Task RunnersGet Gulping with Javascript Task Runners
Get Gulping with Javascript Task Runners
 
Automating web site deployment
Automating web site deploymentAutomating web site deployment
Automating web site deployment
 
Using Prometheus to monitor your build pipelines
Using Prometheus to monitor your build pipelinesUsing Prometheus to monitor your build pipelines
Using Prometheus to monitor your build pipelines
 
Bower & Grunt - A practical workflow
Bower & Grunt - A practical workflowBower & Grunt - A practical workflow
Bower & Grunt - A practical workflow
 
How Testing Changed My Life
How Testing Changed My LifeHow Testing Changed My Life
How Testing Changed My Life
 
Virtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAsVirtualization and SAN Basics for DBAs
Virtualization and SAN Basics for DBAs
 

Similar to Continuous Delivery for the Web Platform

Cd syd
Cd sydCd syd
Web security at Meteor (Pivotal Labs)
Web security at Meteor (Pivotal Labs)Web security at Meteor (Pivotal Labs)
Web security at Meteor (Pivotal Labs)
Emily Stark
 
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013
Puppet
 
Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013
Thibault Imbert
 
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconfContinuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Julia Mateo
 
Coscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoopCoscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoop
Wisely chen
 
Chef - Configuration Management for the Cloud
Chef - Configuration Management for the CloudChef - Configuration Management for the Cloud
Chef - Configuration Management for the Cloud
James Casey
 
2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...
2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...
2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...
Amazon Web Services
 
Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013
Puppet
 
Enterprise workshops jira security and permissions management atlassian deck
Enterprise workshops jira security and permissions management atlassian deckEnterprise workshops jira security and permissions management atlassian deck
Enterprise workshops jira security and permissions management atlassian deck
Atlassian
 
Drupalcon PDX Swagger
Drupalcon PDX SwaggerDrupalcon PDX Swagger
Drupalcon PDX Swagger
Josh Koenig
 
[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design
Christopher Schmitt
 
Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...
Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...
Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...
Codemotion
 
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
Agile Testing Alliance
 
Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?
evanphx
 
Building cloudy apps
Building cloudy appsBuilding cloudy apps
Building cloudy apps
tonytcampbell
 
Vaadin 7
Vaadin 7Vaadin 7
Vaadin 7
Codemotion
 
Introduction to Vaadin 7
Introduction to Vaadin 7Introduction to Vaadin 7
Introduction to Vaadin 7
lastrand
 
Continuous Deployment of Clojure Apps
Continuous Deployment of Clojure AppsContinuous Deployment of Clojure Apps
Continuous Deployment of Clojure Apps
Siva Jagadeesan
 
State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013
Puppet
 

Similar to Continuous Delivery for the Web Platform (20)

Cd syd
Cd sydCd syd
Cd syd
 
Web security at Meteor (Pivotal Labs)
Web security at Meteor (Pivotal Labs)Web security at Meteor (Pivotal Labs)
Web security at Meteor (Pivotal Labs)
 
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013
What Is This Continuous Delivery Thing Anyway? - PuppetConf 2013
 
Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013Workers of the web - BrazilJS 2013
Workers of the web - BrazilJS 2013
 
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconfContinuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
Continuous delivery with Jenkins, Docker and Mesos/Marathon - jbcnconf
 
Coscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoopCoscup 2013 : Continuous Integration on top of hadoop
Coscup 2013 : Continuous Integration on top of hadoop
 
Chef - Configuration Management for the Cloud
Chef - Configuration Management for the CloudChef - Configuration Management for the Cloud
Chef - Configuration Management for the Cloud
 
2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...
2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...
2nd Annual Start-up Launches with Dr. Werner Vogels (SPOT101) | AWS re:Invent...
 
Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013Managing Windows Systems with Puppet - PuppetConf 2013
Managing Windows Systems with Puppet - PuppetConf 2013
 
Enterprise workshops jira security and permissions management atlassian deck
Enterprise workshops jira security and permissions management atlassian deckEnterprise workshops jira security and permissions management atlassian deck
Enterprise workshops jira security and permissions management atlassian deck
 
Drupalcon PDX Swagger
Drupalcon PDX SwaggerDrupalcon PDX Swagger
Drupalcon PDX Swagger
 
[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design[jqconatx] Adaptive Images for Responsive Web Design
[jqconatx] Adaptive Images for Responsive Web Design
 
Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...
Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...
Become a Frontend Developer Ninja using HTML5, JavaScript and CSS3 - Marco Ca...
 
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
#Interactive Session by Ashwini Lalit, RRR of Test Automation Maintenance" at...
 
Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?Rubinius - What Have You Done For Me Lately?
Rubinius - What Have You Done For Me Lately?
 
Building cloudy apps
Building cloudy appsBuilding cloudy apps
Building cloudy apps
 
Vaadin 7
Vaadin 7Vaadin 7
Vaadin 7
 
Introduction to Vaadin 7
Introduction to Vaadin 7Introduction to Vaadin 7
Introduction to Vaadin 7
 
Continuous Deployment of Clojure Apps
Continuous Deployment of Clojure AppsContinuous Deployment of Clojure Apps
Continuous Deployment of Clojure Apps
 
State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013State of Puppet - Puppet Camp Barcelona 2013
State of Puppet - Puppet Camp Barcelona 2013
 

More from Jarrod Overson

Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus
Jarrod Overson
 
AppSecCali - How Credential Stuffing is Evolving
AppSecCali - How Credential Stuffing is EvolvingAppSecCali - How Credential Stuffing is Evolving
AppSecCali - How Credential Stuffing is Evolving
Jarrod Overson
 
How Credential Stuffing is Evolving - PasswordsCon 2019
How Credential Stuffing is Evolving - PasswordsCon 2019How Credential Stuffing is Evolving - PasswordsCon 2019
How Credential Stuffing is Evolving - PasswordsCon 2019
Jarrod Overson
 
JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...
JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...
JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...
Jarrod Overson
 
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Jarrod Overson
 
Deepfakes - How they work and what it means for the future
Deepfakes - How they work and what it means for the futureDeepfakes - How they work and what it means for the future
Deepfakes - How they work and what it means for the future
Jarrod Overson
 
The State of Credential Stuffing and the Future of Account Takeovers.
The State of Credential Stuffing and the Future of Account Takeovers.The State of Credential Stuffing and the Future of Account Takeovers.
The State of Credential Stuffing and the Future of Account Takeovers.
Jarrod Overson
 
How to Reverse Engineer Web Applications
How to Reverse Engineer Web ApplicationsHow to Reverse Engineer Web Applications
How to Reverse Engineer Web Applications
Jarrod Overson
 
The life of breached data and the attack lifecycle
The life of breached data and the attack lifecycleThe life of breached data and the attack lifecycle
The life of breached data and the attack lifecycle
Jarrod Overson
 
The Life of Breached Data & The Dark Side of Security
The Life of Breached Data & The Dark Side of SecurityThe Life of Breached Data & The Dark Side of Security
The Life of Breached Data & The Dark Side of Security
Jarrod Overson
 
Shape Security @ WaffleJS October 16
Shape Security @ WaffleJS October 16Shape Security @ WaffleJS October 16
Shape Security @ WaffleJS October 16
Jarrod Overson
 
Graphics Programming for Web Developers
Graphics Programming for Web DevelopersGraphics Programming for Web Developers
Graphics Programming for Web Developers
Jarrod Overson
 
The Dark Side of Security
The Dark Side of SecurityThe Dark Side of Security
The Dark Side of Security
Jarrod Overson
 
JavaScript and the AST
JavaScript and the ASTJavaScript and the AST
JavaScript and the AST
Jarrod Overson
 
ES2015 workflows
ES2015 workflowsES2015 workflows
ES2015 workflows
Jarrod Overson
 
Maintainability SFJS Sept 4 2014
Maintainability SFJS Sept 4 2014 Maintainability SFJS Sept 4 2014
Maintainability SFJS Sept 4 2014
Jarrod Overson
 
Idiot proofing your code
Idiot proofing your codeIdiot proofing your code
Idiot proofing your code
Jarrod Overson
 
Riot on the web - Kenote @ QCon Sao Paulo 2014
Riot on the web - Kenote @ QCon Sao Paulo 2014Riot on the web - Kenote @ QCon Sao Paulo 2014
Riot on the web - Kenote @ QCon Sao Paulo 2014
Jarrod Overson
 
Managing JavaScript Complexity in Teams - Fluent
Managing JavaScript Complexity in Teams - FluentManaging JavaScript Complexity in Teams - Fluent
Managing JavaScript Complexity in Teams - Fluent
Jarrod Overson
 
Real World Web components
Real World Web componentsReal World Web components
Real World Web components
Jarrod Overson
 

More from Jarrod Overson (20)

Practical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobusPractical WebAssembly with Apex, wasmRS, and nanobus
Practical WebAssembly with Apex, wasmRS, and nanobus
 
AppSecCali - How Credential Stuffing is Evolving
AppSecCali - How Credential Stuffing is EvolvingAppSecCali - How Credential Stuffing is Evolving
AppSecCali - How Credential Stuffing is Evolving
 
How Credential Stuffing is Evolving - PasswordsCon 2019
How Credential Stuffing is Evolving - PasswordsCon 2019How Credential Stuffing is Evolving - PasswordsCon 2019
How Credential Stuffing is Evolving - PasswordsCon 2019
 
JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...
JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...
JSconf JP - Analysis of an exploited npm package. Event-stream's role in a su...
 
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
Analysis of an OSS supply chain attack - How did 8 millions developers downlo...
 
Deepfakes - How they work and what it means for the future
Deepfakes - How they work and what it means for the futureDeepfakes - How they work and what it means for the future
Deepfakes - How they work and what it means for the future
 
The State of Credential Stuffing and the Future of Account Takeovers.
The State of Credential Stuffing and the Future of Account Takeovers.The State of Credential Stuffing and the Future of Account Takeovers.
The State of Credential Stuffing and the Future of Account Takeovers.
 
How to Reverse Engineer Web Applications
How to Reverse Engineer Web ApplicationsHow to Reverse Engineer Web Applications
How to Reverse Engineer Web Applications
 
The life of breached data and the attack lifecycle
The life of breached data and the attack lifecycleThe life of breached data and the attack lifecycle
The life of breached data and the attack lifecycle
 
The Life of Breached Data & The Dark Side of Security
The Life of Breached Data & The Dark Side of SecurityThe Life of Breached Data & The Dark Side of Security
The Life of Breached Data & The Dark Side of Security
 
Shape Security @ WaffleJS October 16
Shape Security @ WaffleJS October 16Shape Security @ WaffleJS October 16
Shape Security @ WaffleJS October 16
 
Graphics Programming for Web Developers
Graphics Programming for Web DevelopersGraphics Programming for Web Developers
Graphics Programming for Web Developers
 
The Dark Side of Security
The Dark Side of SecurityThe Dark Side of Security
The Dark Side of Security
 
JavaScript and the AST
JavaScript and the ASTJavaScript and the AST
JavaScript and the AST
 
ES2015 workflows
ES2015 workflowsES2015 workflows
ES2015 workflows
 
Maintainability SFJS Sept 4 2014
Maintainability SFJS Sept 4 2014 Maintainability SFJS Sept 4 2014
Maintainability SFJS Sept 4 2014
 
Idiot proofing your code
Idiot proofing your codeIdiot proofing your code
Idiot proofing your code
 
Riot on the web - Kenote @ QCon Sao Paulo 2014
Riot on the web - Kenote @ QCon Sao Paulo 2014Riot on the web - Kenote @ QCon Sao Paulo 2014
Riot on the web - Kenote @ QCon Sao Paulo 2014
 
Managing JavaScript Complexity in Teams - Fluent
Managing JavaScript Complexity in Teams - FluentManaging JavaScript Complexity in Teams - Fluent
Managing JavaScript Complexity in Teams - Fluent
 
Real World Web components
Real World Web componentsReal World Web components
Real World Web components
 

Recently uploaded

The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
Matthew Sinclair
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
ScyllaDB
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
Eric D. Schabell
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
jackson110191
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
RaminGhanbari2
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
Lidia A.
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Erasmo Purificato
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
Liveplex
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
Vijayananda Mohire
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
KAMAL CHOUDHARY
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
ArgaBisma
 

Recently uploaded (20)

The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 
20240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 202420240702 QFM021 Machine Intelligence Reading List June 2024
20240702 QFM021 Machine Intelligence Reading List June 2024
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
Mitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing SystemsMitigating the Impact of State Management in Cloud Stream Processing Systems
Mitigating the Impact of State Management in Cloud Stream Processing Systems
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
Observability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetryObservability For You and Me with OpenTelemetry
Observability For You and Me with OpenTelemetry
 
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdfINDIAN AIR FORCE FIGHTER PLANES LIST.pdf
INDIAN AIR FORCE FIGHTER PLANES LIST.pdf
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyyActive Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
Active Inference is a veryyyyyyyyyyyyyyyyyyyyyyyy
 
WPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide DeckWPRiders Company Presentation Slide Deck
WPRiders Company Presentation Slide Deck
 
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
Paradigm Shifts in User Modeling: A Journey from Historical Foundations to Em...
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALLBLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
BLOCKCHAIN FOR DUMMIES: GUIDEBOOK FOR ALL
 
Quantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLMQuantum Communications Q&A with Gemini LLM
Quantum Communications Q&A with Gemini LLM
 
Recent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS InfrastructureRecent Advancements in the NIST-JARVIS Infrastructure
Recent Advancements in the NIST-JARVIS Infrastructure
 
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdfWhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
WhatsApp Image 2024-03-27 at 08.19.52_bfd93109.pdf
 

Continuous Delivery for the Web Platform