This talk was given on Oct 23 at HTML5DevConf in San Francisco. The topic was Continuous Delivery as it relates to JavaScript applications, using tools like grunt and jenkins.
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.
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.
Ž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.
Simple demo on setting up continuous integration with GruntJS and PhantomJS of your front-end JavaScript code and Jasmine tests running on Jenkins
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.
Slides from my talk "Going Node at Netflix" talk where I talk a bit about how we built a Node.js application at Netflix.
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/
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.
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.
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.
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
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.
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.
Reasoning behind automated testing with a WordPress plugin as an example. Very mild exposure to bears.
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.
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.
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.
"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.
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.
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.
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.
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.
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.
"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.
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.
Presentation for Drupalcon PDX on how to keep your swagger as a developer with continuous intergration.
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.
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.
#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/
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
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 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.
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.
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.
Chris Spence delivers the "State of Puppet" at Puppet Camp Barcelona 2013. Learn about upcoming Puppet Camps at http://puppetlabs.com/community/puppet-camp/
This All Things Open 2022 talk shows how to use current-gen WebAssembly to build complex applications out of components.
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.
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.
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.
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.
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.
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.
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
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.
QCon SF 2016 security talk about who uses data from massive breaches (like Yahoo, Target), what tools they use, and what damage they inflict.