The document describes refactoring a large web application with JavaScript from a messy state to using Backbone.js and a modular structure. It was refactored iteratively over several sprints. Key changes included breaking the JS into separate page-specific files, adding namespacing, using Backbone views to modularize code, moving to a model-view pattern, and finally implementing a module system using RequireJS and Browserify for dependency management and bundling. This resulted in code that was better organized, testable, and maintainable.
As a software consultant, I get to see a lot of interesting code. In this particular instance a client was in the process of transforming their web application to a rich, interactive interface with the help of another company.
The project kicked off using Backbone and things were great. Until they were not great. Pages starting getting more and more involved and blame started being thrown at the technology choice.
A move to Ember.js ensued and the app was rewritten. But architecturally bad decisions don't hide long, and soon the rewrite was preforming even worse. That's when I stepped in, with the help of another consultant, to solve the performance issues once and for all. Our solution used Backbone.js and it was fast. This is that journey.
Vue.js is an open-source progressive framework for building user interfaces that focuses on the view layer. It has a virtual DOM and reactive components. Its core is small and works well with companion libraries. Single file components allow importing of templates, logic, and styles. Popular companion libraries include Vuex for state management and Vue Router for routing. The Vue CLI makes it easy to scaffold Vue projects with features like routing, lazy loading, and preloading for improved performance.
Vue.js is a progressive JavaScript framework that focuses on building user interfaces and is used for single-page applications. It was created by Evan You and released in 2014. Vue.js uses declarative templates and reactive data binding to render the view layer for an application. Templates in Vue use HTML-based syntax with directives prefixed with v- to dynamically bind expression results. Common directives include v-bind, v-if, and v-for. Vue.js applications can be built with its core library or integrated with other libraries and frameworks.
Vue.js is described as a "boring" framework that helps developers get work done without unnecessary complexity. It borrows best practices from other frameworks like React but aims to have simpler dependencies and templates. Vue.js uses reactive templates that can be written with plain JavaScript or JSX, and allows separating component logic from presentation with single file components. It also avoids unnecessary re-renders through its reactive system. The document demonstrates how Vue.js can be preferable for teams with mix of experience levels due to its flexibility and lack of complexity compared to other frameworks like React.
The presentation slide for Vue.js meetup
http://abeja-innovation-meetup.connpass.com/event/38214/
That contains mainly about SSR (Server side rendering) + SPA with isomorphic fetch and client hydration
This document discusses JavaScript patterns and principles for building modular applications. It covers topics like modularity, communication patterns using callbacks, promises, event emitters and publish/subscribe. It also discusses patterns within MV* architectures like MVC, MVP and MVVM. The document emphasizes breaking applications into small independent and reusable modules that are loosely coupled through communication patterns.
Building Single Page Application (SPA) with Symfony2 and AngularJS
Forget about classic website where UX is not so important. We are living in time where usability is one of the important thing if you are building some business client oriented web service. How to connect Symfony2 as backend and AngularJS as frontend solution? What are best practices? What are disadvantageous? How to take best from both worlds? These are topics I will cover in my talk with real examples.
Vuex is a state management pattern for Vue.js applications that serves as a centralized store for component data. It consists of state, getters, mutations, and actions. State contains app data, getters help access state, mutations are the only way to modify state and must be synchronous, and actions allow asynchronous operations and commit mutations.
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...
This document outlines a presentation about building universal JavaScript web applications with React. It discusses:
1. The term "universal" in relation to JavaScript and some advantages it provides like maintainability and faster load times.
2. Building a frontend single page application with React and then making it universal by rendering on the server as well with React and Express.
3. Key aspects of universal apps like module sharing, routing, data retrieval and state management that work across client and server.
4. An example of building a universal JavaScript app with React called "Judo Heroes" that shows athlete data and profiles, using components, routing, data and building tools like Babel and Webpack.
Create Restful Web Application With Node.js Express Framework
Node.js uses JavaScript - a language known to millions of developers worldwide - thus giving it a much lower learning curve even for complete beginners. Using Node.js you can build simple Command Line programs or complex enterprise level web applications with equal ease. Node.js is an event-driven, server-side, asynchronous development platform with lightning speed execution. Node.js helps you to code the most complex functionalities in just a few lines of code.
125 고성능 web view-deview 2013 발표 자료_공유용
The document discusses ways to improve the performance of hybrid mobile applications that use WebView. It describes how WebView has less powerful capabilities and worse web standard compatibility compared to mobile browsers. This can cause issues like fragmentation across device versions.
The document proposes techniques for creating a high-performance WebView, including adding new capabilities like WebSockets, and replacing slower native elements like Canvas 2D with optimized custom implementations. It provides code examples for calling JavaScript from native and vice versa on Android and iOS. Lessons learned emphasize minimizing native/JavaScript communication and dealing with threading issues.
Presentation from Denver Open Source Users Group in February 2015. http://www.meetup.com/DOSUG1/events/219099019/
AngularJS is one of today's hottest JavaScript MVC Frameworks. In this session, we'll explore many concepts it brings to the world of client-side development: dependency injection, directives, filters, routing and two-way data binding. We'll also look at its recommended testing tools and build systems. Finally, you'll learn about my experience developing several real-world applications using AngularJS, HTML5 and Bootstrap.
This document provides an overview of the Ionic Framework, including:
- Ionic is an open source SDK for building hybrid mobile apps using web technologies like HTML, CSS, and JavaScript.
- It uses Cordova to access native device capabilities and wrap the app in a native shell.
- The document covers installing Ionic, using the Ionic CLI, CSS components, AngularJS directives, and integrating Sass for styling.
Presented at Web Unleashed 2017. More info at www.fitc.ca/webu
Presented by Ksenija Gogic, TWG
Overview
What are components? How can designers apply a component-minded approach to their workflow? How can we leverage components to improve the design handoff? Ultimately – how can designers and developers work together even better?
Using React as a framework, Ksenija will discuss how to design for a component-based web application to make for a more efficient workflow, an easier design handoff, and a better understanding between roles.
Objective
To create a common language and understanding when working with component-based web frameworks between designers and developers.
Target Audience
Designers and developers looking to make their collaborative workflow even better.
Five Things Audience Members Will Learn
How to take a component-minded approach to building a design system
How to design and create components using Sketch symbols
How to assemble (compose) collections of components using Sketch symbols
How to work with modifiers (props) to customize components
How to ensure everyone is speaking the same language
The document discusses JavaScript scoping and variable hoisting. It explains that JavaScript has function scoping rather than block scoping. Variables are scoped to the function they are declared in, rather than any surrounding blocks. It also discusses variable hoisting, where variable declarations are hoisted to the top of the function. This can cause confusion when a variable is declared within a block but then used outside that block. The key points are that variables live in the context of the function they are declared in, and variable declarations are effectively moved to the top of functions during hoisting.
Load Balancing, Failover and Scalability with ColdFusion
The document discusses load balancing, failover, and scalability with ColdFusion. It covers modeling applications for scalability, ColdFusion and web server configurations, ColdFusion clustering, load balancing with the Tomcat connector, session management strategies, and provides an agenda for a demo on load balancing and failover. The presentation will look at building environments to support business critical applications with high availability and uninterrupted service.
This document provides tips and tools for debugging APIs from both the consumer and author perspectives. It discusses techniques for consumer debugging like discovery, testing in isolation, and using tools like cURL, HTTPie, and mock APIs. For author debugging, it recommends approaches like logging, error reporting, monitoring, and load testing. It also stresses the importance of documentation and API design.
The document discusses JavaScript scoping and variable hoisting. It explains that JavaScript has function scoping, not block scoping like other languages. Variables are scoped to the function they are declared in. It also discusses variable hoisting, where variable declarations are hoisted to the top of the function. This can cause confusion, as demonstrated in an example where a variable takes on the value of a later declaration instead of an earlier one, due to hoisting and function scoping rules.
Setting up your multiengine environment Apache Railo ColdFusion
This document provides instructions for setting up a multi-engine environment with Apache, ColdFusion, and Railo. It explains how to install and configure Apache as the web server controller to pass requests to the appropriate engine. Key steps include extracting the connection configuration from ColdFusion installers, changing ports to avoid clashes, including modules and virtual hosts, and saving configuration snippets to external include files for reuse across websites.
This document provides an overview of building web applications with Ember.js. It discusses Ember's core concepts like templates, routes, controllers and components. It also covers using Ember Data to manage models and the store. Examples are given of setting up an application structure with routes and resources, passing data between routes, controllers and templates, and building reusable components. Support resources like the Ember Inspector and discussion forums are also mentioned. Finally, upcoming features like Ember CLI, HTMLBars and Ember Data 1.0 are highlighted.
This document provides an overview of Behavior Driven Development (BDD). It begins by introducing the speaker, Luis Majano, and his background. It then discusses the testing landscape, including the costs of fixing bugs at different stages of development. It provides an introduction to test-driven development (TDD) and how it differs from BDD. BDD combines TDD with domain-driven design and object-oriented principles to promote collaboration between developers, business analysts, and stakeholders. It focuses on user stories and scenarios rather than just functions. The remainder of the document discusses how to implement BDD using TestBox, a BDD testing framework for ColdFusion, including writing tests using describe(), it(), expectations, matchers, and
Shirak Avakian presented at the Adobe ColdFusion Summit 2015 on workflow in ColdFusion, PDF digital signatures, and the directory watcher. The presentation introduced the speaker and covered topics including how to create workflows in ColdFusion using the CFWorkflow component from GitHub, how digital signatures and public key infrastructure work with encrypting and validating PDFs in ColdFusion, and how to set up a directory watcher gateway to monitor a folder for changes. Demo code was provided to illustrate these ColdFusion features.
In The Trenches With Tomster, Upgrading Ember.js & Ember Data
A few months after I started working with Ember.js & Ember Data at my new job we began a project to upgrade both. There were parts that were a breeze and others that were quite tricky. I'll walk you through some of the challenges we faced and how we solved them as well as how we began to prepare for the Ember 2.x architectural shift. Hopefully this talk will help save you some time when you decide to upgrade your Ember web application.
ColdFusion is racecar fast according to the document. It discusses ColdFusion performance best practices and tuning based on the experience of Webapper, a company that co-founded in 2001 by former Allaire consultants. They share settings for optimizing ColdFusion performance including memory, thread settings, JVM configuration, and monitoring tools to identify bottlenecks. Live load testing is demonstrated on AWS to show how tuning ColdFusion can achieve high request per second throughput without slowdowns.
This document discusses test-driven development (TDD) and behavior-driven development (BDD). It defines TDD as a process of writing automated tests before code to define desired functionality, then writing minimum code to pass tests and refactoring. BDD combines TDD techniques with domain-driven design and focuses on user stories over functions to promote communication. The document provides an example of using BDD to generate scenarios for a life insurance risk example, and shows how TestBox can be used to write automated tests based on those scenarios.
Solving Frequent ColdFusion Server Problems in New and Better Ways
Charlie Arehart gave a presentation on solving frequent ColdFusion server problems in new and better ways. He discussed using server logs more effectively to diagnose issues, various tools for monitoring CF servers beyond just watching monitors, and specific things to watch like memory, requests, queries and sessions. He provided examples of common challenges encountered and resources for further troubleshooting assistance.
This document discusses different ways of clustering ColdFusion applications for scalability, high availability, and failover. It covers vertical clustering by running multiple instances on the same server, horizontal clustering across multiple servers, and distributed architectures with the web and application servers on separate machines. It also discusses load balancing, session management, and demo's setting up different cluster configurations.
Giancarlo Gomez presented on using websockets for realtime applications with ColdFusion. He began by explaining what websockets are and how they allow for bidirectional messaging with low latency compared to HTTP polling techniques. He then demonstrated how to enable and use websockets in ColdFusion, including securing connections and using websockets in a clustered environment. Finally, he discussed real world uses of websockets and issues to consider like network connections and application reloads.
This document discusses using RabbitMQ for messaging between applications. It begins with an introduction to the presenter and agenda. It then contrasts traditional RPC-style calls with messaging and covers some benefits of messaging like decoupling and flexibility. Common messaging patterns like publish/subscribe, topics, and work queues are introduced. The AMQP protocol and RabbitMQ implementation are explained. Finally, a demo of RabbitMQ is promised and questions are solicited.
Microsoft has traditionally been a laggard in the JavaScript space, making such developers question whether their war cries were being heard aloud. Fortunately, the situation is rapidly improving since the release of Visual Studio Code. Code is a free, lightweight, cross-platform code editor which is sure to change your perception of Microsoft.
This presentation will demonstrate how to utilize popular JavaScript tooling within the editor. The focus will be placed on the first-class support for debuggers, linters, transpilers, and task runners.
This document is a presentation about design fundamentals given by Justine Arreche. It covers grids and content structure, color theory, and typography. For grids, it emphasizes laying out a grid first to keep content organized. For color theory, it discusses using relevant colors based on message, contrasting colors, and color schemes. For typography, it outlines basic differences between serif and sans-serif fonts and keeping fonts within the same family or with similar traits while allowing some daring choices.
This document contains notes from a presentation on software architecture. It discusses key principles like examining requirements to understand user needs, designing for foreseeable changes, and clear communication between architects and developers. Case studies are used to illustrate how understanding the problem domain leads to more elegant solutions. Overall it emphasizes that architecture is about managing risks to the application and examining all factors, known and unknown.
CommandBox is a ColdFusion command line interface (CLI) and package manager that allows developers to work more efficiently. It features a package manager for installing dependencies, a read-eval-print loop (REPL) for executing code, an integrated server for running apps, and automation capabilities through commands and recipes. CommandBox aims to improve how ColdFusion developers work by bringing the power of the command line and modern tooling to CFML.
This document discusses building an accessible video platform using ColdFusion and AWS services. It begins with an overview of relevant laws and forces around accessibility. It then covers various AWS services that could be used like S3, CloudFront, Elastic Transcoder, Lambda, DynamoDB, SNS, and SES. Version 2 of the architecture is described using these services. Version 3 improvements around file naming, error handling, and utilities are discussed. Challenges around security, timeouts, retries, and debugging are covered. Benefits of using AWS include no servers to maintain, fast performance, low cost, and ability to learn new technologies. The presentation concludes by encouraging questions.
1) The document discusses how to build modular web applications using the JavaScript frameworks Backbone.js and RequireJS. It advocates separating an application into reusable components using the Model-View-Controller (MVC) pattern and composing the interface from independent views.
2) RequireJS allows code to be split into bite-sized modules and defines dependencies between modules. This supports large-scale application development and avoids dependency issues.
3) The document provides an example of a fictitious stock trading application called Bullsfirst that demonstrates these techniques and emphasizes the importance of architecture for engaging web applications.
WebNet Conference 2012 - Designing complex applications using html5 and knock...
This document provides an overview of designing complex applications using HTML5 and KnockoutJS. It discusses HTML5 and why it is useful, introduces JavaScript and frameworks like KnockoutJS and SammyJS that help manage complexity. It also summarizes several JavaScript libraries and patterns including the module pattern, revealing module pattern, and MV* patterns. Specific libraries and frameworks discussed include RequireJS, AmplifyJS, UnderscoreJS, and LINQ.js. The document concludes with a brief mention of server-side tools like ScriptSharp.
This document provides an overview of the Swing Application Framework and Beans Binding frameworks being developed as part of JSR 296 and JSR 295. It discusses the motivations for creating standard frameworks to simplify Swing development, outlines the key goals and components of the Swing Application Framework, and briefly introduces Beans Binding for keeping object properties in sync. The frameworks are aimed at addressing common issues for typical Swing applications and are intended for the Java SE 7 platform.
The document provides information about React, including:
- React is a JavaScript library for building user interfaces and single-page applications using reusable UI components.
- Additional benefits of React include improved speed, use of a virtual DOM for better performance, readability through components, and support from a large community.
- The history and current versions of React and related tools like Create React App are provided.
- Getting started with React requires Node.js and NPM, and an example React code snippet is given.
- Key concepts in React like components, importing/exporting files, and using JSX syntax are summarized.
- Play 2.0 is a web framework for Java and Scala that simplifies development by embracing HTTP rather than fighting it
- It takes a new approach to building web apps in Java by not being built on top of servlet APIs and using an asynchronous programming model
- Developing, testing, and deploying a Play app locally and to CloudFoundry involves creating a project, running it locally, and pushing the compiled code to CloudFoundry which automatically detects and supports Play apps
Over the past year or so, we’ve seen the emergence of a new way of building JavaScript web apps that share code between the web browser and the server, using Node.js — a technique that has come to be known as "isomorphic JavaScript.” There are a variety of use cases for isomorphic JavaScript; some apps render HTML on both the server and the client, some apps share just a few small bits of application logic, while others share the entire application runtime between client and server to provide advanced offline and realtime features. Why go isomorphic? The main benefits are performance, maintainability, reusability, and SEO.
This talk shares examples of isomorphic JavaScript apps running in the wild, explore the exploding ecosystem of asset building tools, such as Browserify, Webpack, and Gulp, that allow developers to build their own isomorphic JavaScript apps with open-source libraries, demonstrate how to build an isomorphic JavaScript module from scratch, and explore how libraries like React and Flux can be used to build a single-page app that renders on the server.
A guide to create a simple Java application and upload it to the Google Cloud Platform with Google App Engine. This presentation covers usage of persistence API with both Google Cloud SQL and Google Cloud Datastore.
Android Workshop for NTU. A getting started guide to android application development.
UPDATE (Oct 2013): An updated slide at http://samwize.com/2013/10/13/android-workshop-2013/
Code generation in Magento 2 automatically generates code to handle dependency injection, interception, and the service layer. Key types of generated code include factories for object instantiation, proxies for optional dependencies, interceptors for plugins, repositories for the service layer, extension attributes, and loggers. This code generation improves abstraction, avoids boilerplate code, and enables features like dependency injection, aspect-oriented programming and generic programming in Magento 2.
Copy of the slides from the Advanced Web Development Workshop presented by Ed Bachta, Charlie Moad and Robert Stein of the Indianapolis Museum of Art during the Museums and the Web 2008 conference in Montreal
Modular Test-driven SPAs with Spring and AngularJSGunnar Hillert
The document discusses creating modular test-driven single page applications (SPAs) using Spring and AngularJS. It provides an overview of AngularJS concepts and how to integrate AngularJS with Spring, including building and deploying AngularJS apps, modularization, and testing. It also covers AngularJS basics like models, views, controllers, directives, and modules.
We Will learn about:
What is AngularJs?
Key Points
Core Features of AngularJS
How is it works?
AngularJs Terminologies
AngularJs directives
How we start work on AngularJs?
AngularJs Tags
How we use Yeoman?
Advantages and Disadvantages
From Backbone to Ember and Back(bone) Againjonknapp
As a software consultant, I get to see a lot of interesting code. In this particular instance a client was in the process of transforming their web application to a rich, interactive interface with the help of another company.
The project kicked off using Backbone and things were great. Until they were not great. Pages starting getting more and more involved and blame started being thrown at the technology choice.
A move to Ember.js ensued and the app was rewritten. But architecturally bad decisions don't hide long, and soon the rewrite was preforming even worse. That's when I stepped in, with the help of another consultant, to solve the performance issues once and for all. Our solution used Backbone.js and it was fast. This is that journey.
Vue.js is an open-source progressive framework for building user interfaces that focuses on the view layer. It has a virtual DOM and reactive components. Its core is small and works well with companion libraries. Single file components allow importing of templates, logic, and styles. Popular companion libraries include Vuex for state management and Vue Router for routing. The Vue CLI makes it easy to scaffold Vue projects with features like routing, lazy loading, and preloading for improved performance.
Vue.js is a progressive JavaScript framework that focuses on building user interfaces and is used for single-page applications. It was created by Evan You and released in 2014. Vue.js uses declarative templates and reactive data binding to render the view layer for an application. Templates in Vue use HTML-based syntax with directives prefixed with v- to dynamically bind expression results. Common directives include v-bind, v-if, and v-for. Vue.js applications can be built with its core library or integrated with other libraries and frameworks.
Vue.js is described as a "boring" framework that helps developers get work done without unnecessary complexity. It borrows best practices from other frameworks like React but aims to have simpler dependencies and templates. Vue.js uses reactive templates that can be written with plain JavaScript or JSX, and allows separating component logic from presentation with single file components. It also avoids unnecessary re-renders through its reactive system. The document demonstrates how Vue.js can be preferable for teams with mix of experience levels due to its flexibility and lack of complexity compared to other frameworks like React.
The presentation slide for Vue.js meetup
http://abeja-innovation-meetup.connpass.com/event/38214/
That contains mainly about SSR (Server side rendering) + SPA with isomorphic fetch and client hydration
This document discusses JavaScript patterns and principles for building modular applications. It covers topics like modularity, communication patterns using callbacks, promises, event emitters and publish/subscribe. It also discusses patterns within MV* architectures like MVC, MVP and MVVM. The document emphasizes breaking applications into small independent and reusable modules that are loosely coupled through communication patterns.
Building Single Page Application (SPA) with Symfony2 and AngularJSAntonio Peric-Mazar
Forget about classic website where UX is not so important. We are living in time where usability is one of the important thing if you are building some business client oriented web service. How to connect Symfony2 as backend and AngularJS as frontend solution? What are best practices? What are disadvantageous? How to take best from both worlds? These are topics I will cover in my talk with real examples.
Vuex is a state management pattern for Vue.js applications that serves as a centralized store for component data. It consists of state, getters, mutations, and actions. State contains app data, getters help access state, mutations are the only way to modify state and must be synchronous, and actions allow asynchronous operations and commit mutations.
Universal JS Web Applications with React - Luciano Mammino - Codemotion Rome ...Luciano Mammino
This document outlines a presentation about building universal JavaScript web applications with React. It discusses:
1. The term "universal" in relation to JavaScript and some advantages it provides like maintainability and faster load times.
2. Building a frontend single page application with React and then making it universal by rendering on the server as well with React and Express.
3. Key aspects of universal apps like module sharing, routing, data retrieval and state management that work across client and server.
4. An example of building a universal JavaScript app with React called "Judo Heroes" that shows athlete data and profiles, using components, routing, data and building tools like Babel and Webpack.
Create Restful Web Application With Node.js Express FrameworkEdureka!
Node.js uses JavaScript - a language known to millions of developers worldwide - thus giving it a much lower learning curve even for complete beginners. Using Node.js you can build simple Command Line programs or complex enterprise level web applications with equal ease. Node.js is an event-driven, server-side, asynchronous development platform with lightning speed execution. Node.js helps you to code the most complex functionalities in just a few lines of code.
125 고성능 web view-deview 2013 발표 자료_공유용NAVER D2
The document discusses ways to improve the performance of hybrid mobile applications that use WebView. It describes how WebView has less powerful capabilities and worse web standard compatibility compared to mobile browsers. This can cause issues like fragmentation across device versions.
The document proposes techniques for creating a high-performance WebView, including adding new capabilities like WebSockets, and replacing slower native elements like Canvas 2D with optimized custom implementations. It provides code examples for calling JavaScript from native and vice versa on Android and iOS. Lessons learned emphasize minimizing native/JavaScript communication and dealing with threading issues.
Presentation from Denver Open Source Users Group in February 2015. http://www.meetup.com/DOSUG1/events/219099019/
AngularJS is one of today's hottest JavaScript MVC Frameworks. In this session, we'll explore many concepts it brings to the world of client-side development: dependency injection, directives, filters, routing and two-way data binding. We'll also look at its recommended testing tools and build systems. Finally, you'll learn about my experience developing several real-world applications using AngularJS, HTML5 and Bootstrap.
This document provides an overview of the Ionic Framework, including:
- Ionic is an open source SDK for building hybrid mobile apps using web technologies like HTML, CSS, and JavaScript.
- It uses Cordova to access native device capabilities and wrap the app in a native shell.
- The document covers installing Ionic, using the Ionic CLI, CSS components, AngularJS directives, and integrating Sass for styling.
Presented at Web Unleashed 2017. More info at www.fitc.ca/webu
Presented by Ksenija Gogic, TWG
Overview
What are components? How can designers apply a component-minded approach to their workflow? How can we leverage components to improve the design handoff? Ultimately – how can designers and developers work together even better?
Using React as a framework, Ksenija will discuss how to design for a component-based web application to make for a more efficient workflow, an easier design handoff, and a better understanding between roles.
Objective
To create a common language and understanding when working with component-based web frameworks between designers and developers.
Target Audience
Designers and developers looking to make their collaborative workflow even better.
Five Things Audience Members Will Learn
How to take a component-minded approach to building a design system
How to design and create components using Sketch symbols
How to assemble (compose) collections of components using Sketch symbols
How to work with modifiers (props) to customize components
How to ensure everyone is speaking the same language
The document discusses JavaScript scoping and variable hoisting. It explains that JavaScript has function scoping rather than block scoping. Variables are scoped to the function they are declared in, rather than any surrounding blocks. It also discusses variable hoisting, where variable declarations are hoisted to the top of the function. This can cause confusion when a variable is declared within a block but then used outside that block. The key points are that variables live in the context of the function they are declared in, and variable declarations are effectively moved to the top of functions during hoisting.
The document discusses load balancing, failover, and scalability with ColdFusion. It covers modeling applications for scalability, ColdFusion and web server configurations, ColdFusion clustering, load balancing with the Tomcat connector, session management strategies, and provides an agenda for a demo on load balancing and failover. The presentation will look at building environments to support business critical applications with high availability and uninterrupted service.
This document provides tips and tools for debugging APIs from both the consumer and author perspectives. It discusses techniques for consumer debugging like discovery, testing in isolation, and using tools like cURL, HTTPie, and mock APIs. For author debugging, it recommends approaches like logging, error reporting, monitoring, and load testing. It also stresses the importance of documentation and API design.
The document discusses JavaScript scoping and variable hoisting. It explains that JavaScript has function scoping, not block scoping like other languages. Variables are scoped to the function they are declared in. It also discusses variable hoisting, where variable declarations are hoisted to the top of the function. This can cause confusion, as demonstrated in an example where a variable takes on the value of a later declaration instead of an earlier one, due to hoisting and function scoping rules.
Setting up your multiengine environment Apache Railo ColdFusionColdFusionConference
This document provides instructions for setting up a multi-engine environment with Apache, ColdFusion, and Railo. It explains how to install and configure Apache as the web server controller to pass requests to the appropriate engine. Key steps include extracting the connection configuration from ColdFusion installers, changing ports to avoid clashes, including modules and virtual hosts, and saving configuration snippets to external include files for reuse across websites.
This document provides an overview of building web applications with Ember.js. It discusses Ember's core concepts like templates, routes, controllers and components. It also covers using Ember Data to manage models and the store. Examples are given of setting up an application structure with routes and resources, passing data between routes, controllers and templates, and building reusable components. Support resources like the Ember Inspector and discussion forums are also mentioned. Finally, upcoming features like Ember CLI, HTMLBars and Ember Data 1.0 are highlighted.
This document provides an overview of Behavior Driven Development (BDD). It begins by introducing the speaker, Luis Majano, and his background. It then discusses the testing landscape, including the costs of fixing bugs at different stages of development. It provides an introduction to test-driven development (TDD) and how it differs from BDD. BDD combines TDD with domain-driven design and object-oriented principles to promote collaboration between developers, business analysts, and stakeholders. It focuses on user stories and scenarios rather than just functions. The remainder of the document discusses how to implement BDD using TestBox, a BDD testing framework for ColdFusion, including writing tests using describe(), it(), expectations, matchers, and
Shirak Avakian presented at the Adobe ColdFusion Summit 2015 on workflow in ColdFusion, PDF digital signatures, and the directory watcher. The presentation introduced the speaker and covered topics including how to create workflows in ColdFusion using the CFWorkflow component from GitHub, how digital signatures and public key infrastructure work with encrypting and validating PDFs in ColdFusion, and how to set up a directory watcher gateway to monitor a folder for changes. Demo code was provided to illustrate these ColdFusion features.
In The Trenches With Tomster, Upgrading Ember.js & Ember DataColdFusionConference
A few months after I started working with Ember.js & Ember Data at my new job we began a project to upgrade both. There were parts that were a breeze and others that were quite tricky. I'll walk you through some of the challenges we faced and how we solved them as well as how we began to prepare for the Ember 2.x architectural shift. Hopefully this talk will help save you some time when you decide to upgrade your Ember web application.
ColdFusion is racecar fast according to the document. It discusses ColdFusion performance best practices and tuning based on the experience of Webapper, a company that co-founded in 2001 by former Allaire consultants. They share settings for optimizing ColdFusion performance including memory, thread settings, JVM configuration, and monitoring tools to identify bottlenecks. Live load testing is demonstrated on AWS to show how tuning ColdFusion can achieve high request per second throughput without slowdowns.
This document discusses test-driven development (TDD) and behavior-driven development (BDD). It defines TDD as a process of writing automated tests before code to define desired functionality, then writing minimum code to pass tests and refactoring. BDD combines TDD techniques with domain-driven design and focuses on user stories over functions to promote communication. The document provides an example of using BDD to generate scenarios for a life insurance risk example, and shows how TestBox can be used to write automated tests based on those scenarios.
Solving Frequent ColdFusion Server Problems in New and Better WaysColdFusionConference
Charlie Arehart gave a presentation on solving frequent ColdFusion server problems in new and better ways. He discussed using server logs more effectively to diagnose issues, various tools for monitoring CF servers beyond just watching monitors, and specific things to watch like memory, requests, queries and sessions. He provided examples of common challenges encountered and resources for further troubleshooting assistance.
This document discusses different ways of clustering ColdFusion applications for scalability, high availability, and failover. It covers vertical clustering by running multiple instances on the same server, horizontal clustering across multiple servers, and distributed architectures with the web and application servers on separate machines. It also discusses load balancing, session management, and demo's setting up different cluster configurations.
Giancarlo Gomez presented on using websockets for realtime applications with ColdFusion. He began by explaining what websockets are and how they allow for bidirectional messaging with low latency compared to HTTP polling techniques. He then demonstrated how to enable and use websockets in ColdFusion, including securing connections and using websockets in a clustered environment. Finally, he discussed real world uses of websockets and issues to consider like network connections and application reloads.
This document discusses using RabbitMQ for messaging between applications. It begins with an introduction to the presenter and agenda. It then contrasts traditional RPC-style calls with messaging and covers some benefits of messaging like decoupling and flexibility. Common messaging patterns like publish/subscribe, topics, and work queues are introduced. The AMQP protocol and RabbitMQ implementation are explained. Finally, a demo of RabbitMQ is promised and questions are solicited.
Microsoft has traditionally been a laggard in the JavaScript space, making such developers question whether their war cries were being heard aloud. Fortunately, the situation is rapidly improving since the release of Visual Studio Code. Code is a free, lightweight, cross-platform code editor which is sure to change your perception of Microsoft.
This presentation will demonstrate how to utilize popular JavaScript tooling within the editor. The focus will be placed on the first-class support for debuggers, linters, transpilers, and task runners.
This document is a presentation about design fundamentals given by Justine Arreche. It covers grids and content structure, color theory, and typography. For grids, it emphasizes laying out a grid first to keep content organized. For color theory, it discusses using relevant colors based on message, contrasting colors, and color schemes. For typography, it outlines basic differences between serif and sans-serif fonts and keeping fonts within the same family or with similar traits while allowing some daring choices.
This document contains notes from a presentation on software architecture. It discusses key principles like examining requirements to understand user needs, designing for foreseeable changes, and clear communication between architects and developers. Case studies are used to illustrate how understanding the problem domain leads to more elegant solutions. Overall it emphasizes that architecture is about managing risks to the application and examining all factors, known and unknown.
CommandBox is a ColdFusion command line interface (CLI) and package manager that allows developers to work more efficiently. It features a package manager for installing dependencies, a read-eval-print loop (REPL) for executing code, an integrated server for running apps, and automation capabilities through commands and recipes. CommandBox aims to improve how ColdFusion developers work by bringing the power of the command line and modern tooling to CFML.
This document discusses building an accessible video platform using ColdFusion and AWS services. It begins with an overview of relevant laws and forces around accessibility. It then covers various AWS services that could be used like S3, CloudFront, Elastic Transcoder, Lambda, DynamoDB, SNS, and SES. Version 2 of the architecture is described using these services. Version 3 improvements around file naming, error handling, and utilities are discussed. Challenges around security, timeouts, retries, and debugging are covered. Benefits of using AWS include no servers to maintain, fast performance, low cost, and ability to learn new technologies. The presentation concludes by encouraging questions.
1) The document discusses how to build modular web applications using the JavaScript frameworks Backbone.js and RequireJS. It advocates separating an application into reusable components using the Model-View-Controller (MVC) pattern and composing the interface from independent views.
2) RequireJS allows code to be split into bite-sized modules and defines dependencies between modules. This supports large-scale application development and avoids dependency issues.
3) The document provides an example of a fictitious stock trading application called Bullsfirst that demonstrates these techniques and emphasizes the importance of architecture for engaging web applications.
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
This document provides an overview of designing complex applications using HTML5 and KnockoutJS. It discusses HTML5 and why it is useful, introduces JavaScript and frameworks like KnockoutJS and SammyJS that help manage complexity. It also summarizes several JavaScript libraries and patterns including the module pattern, revealing module pattern, and MV* patterns. Specific libraries and frameworks discussed include RequireJS, AmplifyJS, UnderscoreJS, and LINQ.js. The document concludes with a brief mention of server-side tools like ScriptSharp.
This document provides an overview of the Swing Application Framework and Beans Binding frameworks being developed as part of JSR 296 and JSR 295. It discusses the motivations for creating standard frameworks to simplify Swing development, outlines the key goals and components of the Swing Application Framework, and briefly introduces Beans Binding for keeping object properties in sync. The frameworks are aimed at addressing common issues for typical Swing applications and are intended for the Java SE 7 platform.
The document provides information about React, including:
- React is a JavaScript library for building user interfaces and single-page applications using reusable UI components.
- Additional benefits of React include improved speed, use of a virtual DOM for better performance, readability through components, and support from a large community.
- The history and current versions of React and related tools like Create React App are provided.
- Getting started with React requires Node.js and NPM, and an example React code snippet is given.
- Key concepts in React like components, importing/exporting files, and using JSX syntax are summarized.
- Play 2.0 is a web framework for Java and Scala that simplifies development by embracing HTTP rather than fighting it
- It takes a new approach to building web apps in Java by not being built on top of servlet APIs and using an asynchronous programming model
- Developing, testing, and deploying a Play app locally and to CloudFoundry involves creating a project, running it locally, and pushing the compiled code to CloudFoundry which automatically detects and supports Play apps
Building Isomorphic Apps (JSConf.Asia 2014)Spike Brehm
Over the past year or so, we’ve seen the emergence of a new way of building JavaScript web apps that share code between the web browser and the server, using Node.js — a technique that has come to be known as "isomorphic JavaScript.” There are a variety of use cases for isomorphic JavaScript; some apps render HTML on both the server and the client, some apps share just a few small bits of application logic, while others share the entire application runtime between client and server to provide advanced offline and realtime features. Why go isomorphic? The main benefits are performance, maintainability, reusability, and SEO.
This talk shares examples of isomorphic JavaScript apps running in the wild, explore the exploding ecosystem of asset building tools, such as Browserify, Webpack, and Gulp, that allow developers to build their own isomorphic JavaScript apps with open-source libraries, demonstrate how to build an isomorphic JavaScript module from scratch, and explore how libraries like React and Flux can be used to build a single-page app that renders on the server.
A guide to create a simple Java application and upload it to the Google Cloud Platform with Google App Engine. This presentation covers usage of persistence API with both Google Cloud SQL and Google Cloud Datastore.
Android Workshop for NTU. A getting started guide to android application development.
UPDATE (Oct 2013): An updated slide at http://samwize.com/2013/10/13/android-workshop-2013/
Code generation in Magento 2 automatically generates code to handle dependency injection, interception, and the service layer. Key types of generated code include factories for object instantiation, proxies for optional dependencies, interceptors for plugins, repositories for the service layer, extension attributes, and loggers. This code generation improves abstraction, avoids boilerplate code, and enables features like dependency injection, aspect-oriented programming and generic programming in Magento 2.
Copy of the slides from the Advanced Web Development Workshop presented by Ed Bachta, Charlie Moad and Robert Stein of the Indianapolis Museum of Art during the Museums and the Web 2008 conference in Montreal
Developing large scale JavaScript applicationsMilan Korsos
Developing large scale JavaScript applications
24/11/11 @ Front end meetup, Budapest (Hungary)
www.milankorsos.com
www.twitter.com/korsosm
www.sowink.com
The document provides information on Node.js, including its definition, advantages, companies that use it, and basic terminology. Node.js is a server-side JavaScript platform that allows building fast and scalable network applications. It uses an event-driven, non-blocking I/O model that makes it lightweight and efficient for data-intensive real-time apps. Some key advantages are its use of JavaScript, the fast V8 engine, support for building highly scalable web apps, and thousands of available modules. Major companies like Microsoft, Yahoo, and LinkedIn use Node.js. Basic terminology discussed includes asynchronous programming, npm, Express framework, modules, and REPL.
Html5 and beyond the next generation of mobile web applications - Touch Tou...RIA RUI Society
The document discusses upcoming features in HTML5 and beyond for developing mobile web applications, including offline web apps using the Application Cache, storing data locally using Web Storage, geolocation APIs, device orientation, camera access using getUserMedia, and media queries for responsive design. It provides code examples and encourages further reading on mobile web best practices.
Java Web Programming on Google Cloud Platform [3/3] : Google Web ToolkitIMC Institute
Google Web Toolkit (GWT) is an open source Java framework that allows web developers to create Ajax applications in Java and deploy them as optimized JavaScript. GWT provides tools for building AJAX applications in Java that are compiled into JavaScript for cross-browser compatibility. It handles browser inconsistencies and integrates with existing Java development tools, allowing developers to build and debug Rich Internet Applications using Java instead of JavaScript.
Front End Development for Back End Developers - UberConf 2017Matt Raible
Are you a backend developer that’s being pushed into front end development? Are you frustrated with all JavaScript frameworks and build tools you have to learn to be a good UI developer? If so, this session is for you! We’ll explore the tools of the trade for frontend development (npm, yarn, Gulp, Webpack, Yeoman) and learn the basics of HTML, CSS, and JavaScript.
This presentation dives into the intricacies of Bootstrap, Material Design, ES6, and TypeScript. Finally, after getting you up to speed with all this new tech, I'll show how it can all be found and integrated through the fine and dandy JHipster project.
Google Web Toolkit
Presentation by Assoc.Prof. Dr.Thanachart Numnonda & Asst.Prof. Thanisa Kruawaisayawan, Mini Master of Java Technology KMITL, July 2012
jQuery Mobile part 2 discusses various topics related to jQuery Mobile including document events, configuration, methods and utilities, themes, and app packaging. Some key points:
- Document events in jQuery Mobile include mobileinit, ready, and load which are used to configure jQuery Mobile settings and enhance markup.
- Configuration options exist for global settings, UI, AJAX, regionalization, touch overflow, and widgets. These can be modified to customize jQuery Mobile's behavior.
- Methods and utilities provide functions for manipulating data attributes, changing pages, and accessing platform information.
- Themes use CSS3 properties and gradients to style elements with different "swatches" for headers, content, and buttons. Themes
The document discusses Clean Architecture and provides an example of implementing it using a Movie Night app. It describes separating the app into Presentation, Data, and Domain layers with specific responsibilities. The Domain layer contains entities, use cases, and interfaces. The Data layer encapsulates data sources and mappers. The Presentation layer connects everything using ViewModels, LiveData, and observing lifecycle changes. It demonstrates how data flows from the Data layer through UseCases to the Presentation layer and updates the UI.
Presented at Bucharest Java User Group, http://www.bjug.ro/editii/5.html . Project source code available at: https://github.com/bucharest-jug/dropwizard-todo
Similar to Refactor Large applications with Backbone (20)
This document discusses developing and managing APIs with Adobe ColdFusion and API Manager. It covers designing APIs, onboarding APIs to API Manager, building blocks like security, SLA, and analytics. It provides examples of creating REST APIs with ColdFusion by defining attributes in cfcomponent, cffunction, and cfargument tags. It also discusses registering APIs as web services and responding to REST requests. Authentication methods like OAuth 2.0 and securing APIs are explained in detail.
VSR/VSRWest is a software company located in Westchester, NY and Southern CA that provides two ColdFusion business solutions: an ERP system and a WMS system. The ERP system has been in use for over 15 years, tracking operations for over 120 brands across industries like apparel. It processes over 450 million transactions monthly with $650 million in annual sales. The WMS also includes logistics companies, with clients located in various regions that have offices in Asia and Europe. Both products offer custom configurations and reporting capabilities. Highlights include the WMS's workflow and scan/pack/ship features and the ERP system's upcoming use of ColdBox architecture and eCommerce integrations. ColdFusion is
This document provides an overview of a presentation on building better SQL Server databases. The presentation covers how SQL Server stores and retrieves data by looking under the hood at tables, data pages, and the process of requesting data. It then discusses best practices for database design such as using the right data types, avoiding page splits, and tips for writing efficient T-SQL code. The presentation aims to teach attendees how to design databases for optimal performance and scalability.
This document discusses Adobe API Management and how it can help businesses realize value from their APIs. It outlines how API Management automates access control, versioning, analytics, documentation and other functionality that would otherwise require manual implementation. The document also provides examples of API monetization strategies like transactional payments, subscriptions, marketplaces and partnerships. It highlights the speed, simplicity and scalability of Adobe's API Management platform and demonstrates its request flow and user interface.
This document discusses making PDFs "smarter" through the use of custom properties, exporting and importing metadata, sanitization, barcodes, and defining workflows. It provides definitions of PDFs and discusses their history. It also demonstrates how to add custom properties, export and import metadata, sanitize PDFs, generate 1D and 2D barcodes, and presents a real-world example of integrating these features into a document management system workflow.
The document discusses how to approach crafting ColdFusion applications like an architect. It begins by introducing the presenter and then outlines topics to be covered including comparing a software architect to a building architect and how an architect's work relates to code. It discusses questions to consider when starting a project and designing entities and infrastructure. It also contrasts the roles of a software architect and code, explaining concepts like object-oriented programming, services, and user interfaces. Finally, it discusses different application server architectures.
This document summarizes Brian Sappéy's presentation on monetizing business models with ColdFusion and APIs. The presentation discusses how APIs can be used to create an affiliate marketing program to generate revenue. It provides details on how to implement an affiliate program, including tracking affiliate links and providing affiliates with a dashboard. It also shares statistics on the size of the affiliate marketing and e-commerce markets. The presentation encourages attendees to sign up to become an affiliate publisher on the Shop.com platform to participate in their affiliate program.
This document provides an overview of how to improve security when using ColdFusion 2016. It discusses installing ColdFusion with the secure profile, following the lockdown guide, applying updates, and using the new Security Analyzer tool. The Security Analyzer checks code for vulnerabilities like SQL injection, XSS, and CSRF. The document also recommends coding practices to avoid vulnerabilities, such as using ESAPI encoders and <cfqueryparam>. Proper session management and preventing attacks like XSS, SQL injection, and CSRF are also discussed.
This document summarizes a presentation given by Theonic Way of Fig Leaf consulting about their work redesigning the Washington Metropolitan Area Transit Authority (WMATA) website. It discusses the background of the current WMATA website, visions and solutions for the new site, and a demo of features like trip planning, alerts and the content management system. The new site uses a ColdFusion, Node.js and CommonSpot CMS architecture to improve responsiveness, integrate APIs and enable content authors.
Developer Insights for Application Upgrade to ColdFusion 2016ColdFusionConference
This document discusses performance improvements and other benefits of upgrading ColdFusion applications to ColdFusion 2016. It finds that applications run 30% faster out of the box in CF2016. Specific optimizations that further improve performance include using unsynchronized arrays (93% faster), passing structs by reference instead of value (2500% faster), and storing sessions in Redis. Additional benefits include improved PDF generation capabilities, safer object navigation syntax, and a new security code analyzer.
The document discusses the future direction of the ColdFusion product. It outlines plans to modernize the language with improved object oriented support, CFScript 2.0, support for null values, and multi-threading. It also discusses leveraging containerization with Docker, provisioning a microservices architecture, embracing devsecops practices like a built-in web application firewall, and accelerating digital transformation with enhanced API management capabilities. The goal is to implement a modern platform for building and deploying applications.
The document discusses partnerships between ColdFusion and independent software vendors (ISVs). It profiles one such partnership between Adobe and VSR Systems, a software company that provides two ColdFusion-based business solutions: an ERP system and a warehouse management system. The ERP system has been in use for over 15 years by over 120 brands, processing $650 million in annual sales. The WMS also services logistics companies. ColdFusion was chosen as it allows for reduced development time compared to other languages, enabling the company to focus on code design.
This document introduces using Vagrant and virtual machines to simplify ColdFusion development environments. It outlines the drawbacks of manual environment setup like human errors and inconsistencies. Using Vagrant allows creating reproducible virtual machines through scripted provisioning. The steps shown include installing VirtualBox and Vagrant, creating a Vagrantfile to define the virtual machine, provisioning it with Windows, IIS, and ColdFusion, then accessing the environment from the host computer. Benefits highlighted are repeatable environments that save time compared to manual setups and allow easily testing across different versions of ColdFusion.
Kevin Schmidt is a managing partner at Ikaria Consulting who specializes in ColdFusion and APIs. The document discusses REST, how to create RESTful services in ColdFusion using CFCs and defining attributes like restPath and access, and how to register and consume those services. It also provides details on the ColdFusion API Manager for access control, analytics, and custom workflows for administrators, publishers and subscribers.
Mura ORM allows you to access and modify objects quickly and easily within Mura without needing custom DAOs or database-specific CRUD statements. Entities are defined as CFC components that extend mura.bean.beanORM and define properties and relationships. Entities are automatically registered with the dependency injection container and can define attributes like entityname, table, and relationships to other entities.
Build your own secure and real-time dashboard for mobile and webColdFusionConference
This document discusses how to build secure and real-time dashboards for mobile and web using ColdFusion. It covers the features required in a dashboard like real-time updates, graphs, notifications and report generation. It demonstrates the architecture of a monitoring dashboard with ColdFusion running on a server collecting and processing data that is displayed. It provides code snippets for implementing websockets, analytics, report generation and security. Customizable dashboards can be created by changing configuration files.
Dan Wilson presented at the ColdFusion Summit 2016. He has experience with open source, startups, troubleshooting, and project rescue. Currently he works in product marketing for NativeScript and various conference boards. NativeScript is an open source framework for building truly native mobile apps with Angular, TypeScript or JavaScript. He provided an example of MeWatt, an energy monitoring device, and discussed approaches to writing code, including common mistakes like misunderstanding the problem or solution.
This document provides guidance on securing existing ColdFusion applications with large codebases. It recommends beginning the process by deleting unused code and implementing version control. It then advises patching the ColdFusion server, locking down server permissions, and implementing a web application firewall. The document outlines prioritizing the fixing of high risk vulnerabilities like file uploads, dynamic evaluation, SQL injection, and file system access. It provides code examples and tips for finding and fixing issues related to evaluate, IIF, file uploads, path traversals, and SQL injection. Finally, it mentions additional areas to review like session handling, scope injection, authentication, and cross-site scripting.
The document discusses testing and test automation. It introduces TestBox, an open source testing framework for ColdFusion, and how to use it to write and automate tests. It provides examples of setting up continuous integration and continuous delivery pipelines using TestBox with tools like Travis CI and Jenkins to run automated tests on code commits and merges.
Blockchain technology is transforming industries and reshaping the way we conduct business, manage data, and secure transactions. Whether you're new to blockchain or looking to deepen your knowledge, our guidebook, "Blockchain for Dummies", is your ultimate resource.
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...Toru Tamaki
Jindong Gu, Zhen Han, Shuo Chen, Ahmad Beirami, Bailan He, Gengyuan Zhang, Ruotong Liao, Yao Qin, Volker Tresp, Philip Torr "A Systematic Survey of Prompt Engineering on Vision-Language Foundation Models" arXiv2023
https://arxiv.org/abs/2307.12980
UiPath Community Day Kraków: Devs4Devs ConferenceUiPathCommunity
We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner!
We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too!
Check out our proposed agenda below 👇👇
08:30 ☕ Welcome coffee (30')
09:00 Opening note/ Intro to UiPath Community (10')
Cristina Vidu, Global Manager, Marketing Community @UiPath
Dawid Kot, Digital Transformation Lead @Proservartner
09:10 Cloud migration - Proservartner & DOVISTA case study (30')
Marcin Drozdowski, Automation CoE Manager @DOVISTA
Pawel Kamiński, RPA developer @DOVISTA
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
09:40 From bottlenecks to breakthroughs: Citizen Development in action (25')
Pawel Poplawski, Director, Improvement and Automation @McCormick & Company
Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company
10:05 Next-level bots: API integration in UiPath Studio (30')
Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner
10:35 ☕ Coffee Break (15')
10:50 Document Understanding with my RPA Companion (45')
Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath
11:35 Power up your Robots: GenAI and GPT in REFramework (45')
Krzysztof Karaszewski, Global RPA Product Manager
12:20 🍕 Lunch Break (1hr)
13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30')
Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance
13:50 Communications Mining - focus on AI capabilities (30')
Thomasz Wierzbicki, Business Analyst @Office Samurai
14:20 Polish MVP panel: Insights on MVP award achievements and career profiling
Mitigating the Impact of State Management in Cloud Stream Processing SystemsScyllaDB
Stream processing is a crucial component of modern data infrastructure, but constructing an efficient and scalable stream processing system can be challenging. Decoupling compute and storage architecture has emerged as an effective solution to these challenges, but it can introduce high latency issues, especially when dealing with complex continuous queries that necessitate managing extra-large internal states.
In this talk, we focus on addressing the high latency issues associated with S3 storage in stream processing systems that employ a decoupled compute and storage architecture. We delve into the root causes of latency in this context and explore various techniques to minimize the impact of S3 latency on stream processing performance. Our proposed approach is to implement a tiered storage mechanism that leverages a blend of high-performance and low-cost storage tiers to reduce data movement between the compute and storage layers while maintaining efficient processing.
Throughout the talk, we will present experimental results that demonstrate the effectiveness of our approach in mitigating the impact of S3 latency on stream processing. By the end of the talk, attendees will have gained insights into how to optimize their stream processing systems for reduced latency and improved cost-efficiency.
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsMydbops
This presentation, delivered at the Postgres Bangalore (PGBLR) Meetup-2 on June 29th, 2024, dives deep into connection pooling for PostgreSQL databases. Aakash M, a PostgreSQL Tech Lead at Mydbops, explores the challenges of managing numerous connections and explains how connection pooling optimizes performance and resource utilization.
Key Takeaways:
* Understand why connection pooling is essential for high-traffic applications
* Explore various connection poolers available for PostgreSQL, including pgbouncer
* Learn the configuration options and functionalities of pgbouncer
* Discover best practices for monitoring and troubleshooting connection pooling setups
* Gain insights into real-world use cases and considerations for production environments
This presentation is ideal for:
* Database administrators (DBAs)
* Developers working with PostgreSQL
* DevOps engineers
* Anyone interested in optimizing PostgreSQL performance
Contact info@mydbops.com for PostgreSQL Managed, Consulting and Remote DBA Services
Support en anglais diffusé lors de l'événement 100% IA organisé dans les locaux parisiens d'Iguane Solutions, le mardi 2 juillet 2024 :
- Présentation de notre plateforme IA plug and play : ses fonctionnalités avancées, telles que son interface utilisateur intuitive, son copilot puissant et des outils de monitoring performants.
- REX client : Cyril Janssens, CTO d’ easybourse, partage son expérience d’utilisation de notre plateforme IA plug & play.
Choose our Linux Web Hosting for a seamless and successful online presencerajancomputerfbd
Our Linux Web Hosting plans offer unbeatable performance, security, and scalability, ensuring your website runs smoothly and efficiently.
Visit- https://onliveserver.com/linux-web-hosting/
The Rise of Supernetwork Data Intensive ComputingLarry Smarr
Invited Remote Lecture to SC21
The International Conference for High Performance Computing, Networking, Storage, and Analysis
St. Louis, Missouri
November 18, 2021
Quantum Communications Q&A with Gemini LLM. These are based on Shannon's Noisy channel Theorem and offers how the classical theory applies to the quantum world.
Sustainability requires ingenuity and stewardship. Did you know Pigging Solutions pigging systems help you achieve your sustainable manufacturing goals AND provide rapid return on investment.
How? Our systems recover over 99% of product in transfer piping. Recovering trapped product from transfer lines that would otherwise become flush-waste, means you can increase batch yields and eliminate flush waste. From raw materials to finished product, if you can pump it, we can pig it.
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc
Six months into 2024, and it is clear the privacy ecosystem takes no days off!! Regulators continue to implement and enforce new regulations, businesses strive to meet requirements, and technology advances like AI have privacy professionals scratching their heads about managing risk.
What can we learn about the first six months of data privacy trends and events in 2024? How should this inform your privacy program management for the rest of the year?
Join TrustArc, Goodwin, and Snyk privacy experts as they discuss the changes we’ve seen in the first half of 2024 and gain insight into the concrete, actionable steps you can take to up-level your privacy program in the second half of the year.
This webinar will review:
- Key changes to privacy regulations in 2024
- Key themes in privacy and data governance in 2024
- How to maximize your privacy program in the second half of 2024
Comparison Table of DiskWarrior Alternatives.pdfAndrey Yasko
To help you choose the best DiskWarrior alternative, we've compiled a comparison table summarizing the features, pros, cons, and pricing of six alternatives.
Transcript: Details of description part II: Describing images in practice - T...BookNet Canada
This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator.
Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/
Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Bert Blevins
Today’s digitally connected world presents a wide range of security challenges for enterprises. Insider security threats are particularly noteworthy because they have the potential to cause significant harm. Unlike external threats, insider risks originate from within the company, making them more subtle and challenging to identify. This blog aims to provide a comprehensive understanding of insider security threats, including their types, examples, effects, and mitigation techniques.
The DealBook is our annual overview of the Ukrainian tech investment industry. This edition comprehensively covers the full year 2023 and the first deals of 2024.
Cookies program to display the information though cookie creation
Refactor Large applications with Backbone
1. From Mess to Success,
Refactoring Large Applications with Backbone
dev.Objective()
May 14, 2015
Stacy London
@stacylondoner
McWay Falls, Julia Pfeiffer Burns State Park - Big Sur, CA - 2015 by Stacy London
2. About Me
I’ve been making things for the web since 1998.
Currently I’m a Senior Application Architect focused on
Front-End Engineering at Northwestern Mutual.
@stacylondoner
3. Northwestern Mutual
Northwestern Mutual has been helping families and businesses achieve
financial security for nearly 160 years. Our financial representatives build
relationships with clients through a distinctive planning approach that integrates
risk management with wealth accumulation, preservation and distribution. With
more than $230 billion in assets, $27 billion in revenues, nearly $90 billion in
assets under management and more than $1.5 trillion worth of life insurance
protection in force, Northwestern Mutual delivers financial security to more than
4.3 million people who rely on us for insurance and investment
solutions, including life, disability and long-term care insurance; annuities; trust
services; mutual funds; and investment advisory products and services.
Northwestern Mutual is the marketing name for The Northwestern Mutual Life Insurance Company, Milwaukee, WI, and its
subsidiaries. Northwestern Mutual and its subsidiaries offer a comprehensive approach to financial security solutions including: life
insurance, long-term care insurance, disability income insurance, annuities, investment products, and advisory products and
services. Subsidiaries include Northwestern Mutual Investment Services, LLC, broker-dealer, registered investment adviser,
member FINRA and SIPC; the Northwestern Mutual Wealth Management Company, limited purpose federal savings bank; and
Northwestern Long Term Care Insurance Company.
4. What do I mean by large application?
• a multi-page web application (MPA) built with ASP.NET
MVC
• 1500+ files | 343,000+ lines of code
• UI (CSS / JS)
• 230+ files | 42,000+ lines of code
5. Development Culture
• JEE/Java shop turned .NET/C#
• view JS as a bit of a “toy” language
• as JS was being added it was just being added without much
thought to maintainability, extensibility, testability, patterns,
etc.
• app was going to be heavy with JS yet initially on a platform
that wasn’t optimized for this kind of app dev.
• path of least resistance was to just put everything in
$(document).ready()
9. Problems
• one large JavaScript file in the <head> (all code included
on every page regardless if it needed it)
• all JavaScript global and in $(document).ready()
• some pages had inline JavaScript
• not commented
• no unit tests
• unclear if a function / event was used on multiple pages
10. Iterative Refactoring
• big codebase
• large team working on 2 week sprints that couldn’t be
slowed down
• refactors had to fit into a sprint
13. Refactor, Iteration 1: Break Apart JS
• figure out what JS belongs with each page and move
that JS into a separate file for that page
• include that JS with the partial HTML
14. Refactor, Iteration 1: Start Adding Unit Tests
• start adding unit tests for original code then make sure it
passed after refactoring as a safety/confidence
mechanism
• to prepare for this journey of breaking code into smaller,
more testable chunks it was good to start early with
creating a test bed
• help make subsequent refactors less stressful
15. Refactor, Iteration 1: Start Adding Unit Tests
• picked Jasmine (BDD style) - http://
jasmine.github.io/
• a lot of the JS tied to DOM manipulation so not in
an ideal state for unit testing with Jasmine out of
the box
• needed DOM testing helper so added jquery-
jasmine library to add fixtures (HTML snippets
to run tests against)
• no external UI Regression tools (e.g. Selenium) in a
state to do this validation throughout the refactor
18. Refactor, Iteration 2: Namespacing & Object Literal
• create an app namespace to get custom code out of the global
namespace (window) to avoid collisions with external libs/
frameworks
• introduce an Object Literal notation style in preparation for
Backbone (which uses this pattern)
• helps to organize the code and parameters logically
“an object containing a collection of key:value pairs with a colon
separating each pair of keys and values where keys can also
represent new namespaces”
• add closures with Instantly Invoked Function Expressions
(IIFEs)
20. ;
var myApp = myApp || {};
(function($, myApp) {
'use strict';
$.extend(myApp, {
init: function() {
this.commonStuff();
},
commonStuff: function() {
// common code across many or all pages
}
});
})(window.jQuery, window.myApp);
$(document).ready(function() {
myApp.init();
});
my-app.js
21. my-app.js
with comments
// prefix with semi-colon as safety net against concatenated
// scripts and/or other plugins that are not closed properly
;
// check for existence of myApp in the global namespace
var myApp = myApp || {};
// Use IIFE to:
// * encapsulate app logic to protect it from global namespace
// * pass in namespace so can be modified locally and isn't
// overwritten outside of our function context
// * ensure $ only refers to window.jQuery (defensive programming)
// * $ passed through as local var rather than as globals and this
// (slightly) quickens the resolution process and can be more
// efficiently minified (especially if regularly referenced)
(function($, myApp) {
22. my-app.js
with comments
(function($, myApp) {
// Strict mode makes several changes to normal JavaScript semantics:
// * eliminates some JS silent errors by changing them to throw errors.
// * fixes mistakes that make it difficult for JavaScript engines to
// perform optimizations: strict mode code can sometimes be made to
// run faster than identical code that's not strict mode. Add inside
// the IIFE so it's defined for just the functions defined within and
// doesn't flip concatenating/minified code to strict inadvertently
'use strict';
// extend the namespace with more functionality
$.extend(myApp, {
24. Better but not great
• code is aligned with the screen to which is pertains
• pages now have mid-page script includes which isn’t
good for performance / rendering
• still hand-wiring Ajax calls
• entire-page-JS is not very modular
• want to break screens down into smaller features and
keep events neatly associated
25. Backbone to the rescue
• wanted something that provided/enforced structure but in a
lightweight way
• it’s a MPA not a SPA so full-featured SPA frameworks didn’t make
sense (e.g. Angular, Ember)
• wanted to be able to use just a small feature of the library/
framework and add more full integration over time (refactor in
multiple iterations)
• for these reasons Backbone.js made sense - http://backbonejs.org/
27. Refactor, Iteration 3: Page Level Backbone Views
• reducing boilerplate code
• views enforce organization of events
• views enforce an Object Literal notation pattern
• views helped developers think about encapsulating pieces of the
screen
• starting with just Views gave the team time to start planning for
refactoring back-end data provided by ASP.NET MVC Controllers
into more RESTful web services (Web API) which is necessary to
take full advantage of Backbone.js Models/Collections
28. Refactor, Iteration 3: Page Level Backbone Views
• my-app.js - is now responsible for instantiating the app
namespace and setting up a super light-weight view
manager for Backbone.js
• instantiate all available views on the page upon DOM
ready.
• page-one-view.js - no longer namespaced individually
since being added to the views object of the app
namespace
34. Refactor, Iteration 4: Sub-Page Backbone Views
• start breaking the large page views into sub-page views
so that you can get truly modular
• share modules/code if a module exists on more than
one page
37. Refactor, Iteration 5: Backbone Models, Collections
• move code that is getting data and doing any business
logic out of the Views and into Models and Collections
• e.g. move phone number formatting out of View and
into the Model
• remove hand written Ajax, use BB API (e.g. fetch)
• make sure server side controllers were written in a
RESTful way
• still not complete across the application
40. Use Backbone.js API
to get data
// initialize view
var pageOneView = new PageOneView({
collection: new PageOneCollection([]),
});
var PageOneView = Backbone.View.extend({
el: '#pageOneMainContainer',
template: _.template($('#page-one-template').html()),
initialize: function() {},
render: function() {
this.$el.html(this.template({'collection': this.collection}));
// maintain chainability
return this;
}
});
var PageOneCollection = Backbone.Collection.extend({
initialize: function(models, options) {},
model: PageOneModel,
// RESTful web service URL
url: '/SomeEndpoint'
});
42. Refactor, Iteration 6: Mini-SPA
• treat each page of the multi-page app (MPA) like it’s a
miniature single page app (SPA)
• each page has a single entry point (main.js)
• this will setup the code for a module loader / build system
so that we can finally move the JS to the bottom of the
page and remove mid-page scripts
• improve performance (time to first paint - how long it
takes between a user entering a URL into the browser
and when he/she sees visual activity on screen)
46. Refactor, Iteration 7: Modules
• current version of JavaScript (ECMA-262) doesn’t provide a
way to import modules of code like more traditional
programming languages do
• modules are proposed for the next version of JS (ES6/
ES2015/Harmony)
• to use modules and manage dependencies with the current
version of JS you can use community driven methodologies
• there are two popular styles with associated script
loaders / build systems
48. Refactor, Iteration 7: Modules - AMD
• AMD - Asynchronous Module Definition
“The Asynchronous Module Definition (AMD) API
specifies a mechanism for defining modules such that the
module and its dependencies can be asynchronously
loaded. This is particularly well suited for the browser
environment where synchronous loading of modules
incurs performance, usability, debugging, and cross-
domain access problems.”
https://github.com/amdjs/amdjs-api/wiki/AMD
49. Refactor, Iteration 7: Modules - CommonJS
• CommonJS’s module format was made popular for
server-side JavaScript development (namely for Node.js/
NPM)
• it’s synchronous
• syntax is a bit easier as it frees you from the define()
wrapper that AMD enforces
• requires a build in a JS runtime
50. Refactor, Iteration 7: Modules - RequireJS
• popular script loader written by James Burke that helps you load
multiple script files and define modules with or without
dependencies
• use RequireJS as first pass at module loading since async nature
means no build step during dev time (least disruption to the dev
team which is important because there is a learning curve)
• use almond (AMD API shim) so don’t have to add a special script
tag to load RequireJS and change any HTML
• this will move the code away from IIFEs to modules with
dependency management
51. my-app.js
// requireJS simplified commonJS wrapper
// do this so can use the commonJS style &
// make switch to browserify easier
define('app', function(require, exports, module) {
'use strict';
var $ = require('jquery');
var _ = require('underscore');
var Backbone = require('backbone');
var Modernizr = require('modernizr');
var HeaderController = require('./header-controller');
var FooterController = require('./footer-controller');
var app = new Backbone.Application();
module.exports = app;
});
(function() {
var $ = require('jquery');
var app = require('app');
// dom ready
$(function() {
app.start();
});
}());
52. ;
(function() {
'use strict';
var $ = require('jquery');
var PageOneController = require('./page-one-controller');
var app = require('app');
// dom ready
$(function() {
app.start({
ScreenController: PageOneController
});
});
}());
page-one-main.js
53. define('page-one-controller', function(require, exports, module) {
'use strict';
var Backbone = require('backbone');
var PageOneView = require('PageOneView');
var PageOneController = Backbone.Controller.extend({
initialize: function(options) {
var pageOneView = new PageOneView();
}
});
module.exports = PageOneController;
});
page-one-controller.js
55. Refactor, Iteration 7: Modules - Browserify
• Browserify lets you require('modules') in the browser by
bundling up all of your dependencies during a build step
• it’s the end-state module loader because it allows for easy
bundle splitting
• figure out common/shared JS and create a common
bundle then a bundle for the unique code on each page
• by having a main.js for each screen this will act as an
entry point so Browserify can find all the modules
required and create a screen-specific bundle
56. Refactor, Iteration 7: Modules - Browserify
• means build during dev but we were already doing that
for our CSS with LESS
• “It’s great the dev community has
embraced compilation because it’s
inevitable.” - Brendan Eich at Fluent 2015
• the code will become very clean
58. Summary
• the JavaScript is now modular and easier to maintain
• Backbone.js helps devs keep consistent with coding patterns and
organization (Object Literal notation, events)
• events are scoped to the smallest part of the page to which they matter
(Backbone.js)
• namespacing/IIFEs and then later module loader/build removes the
possibility of collisions with other frameworks/libs
• unit tests mean you can feel more confident to change things
• only sending JS to the browser that is necessary is good for
performance (think mobile)
60. "The secret to building large apps is never
build large apps. Break your applications
into small pieces. Then, assemble those
testable, bite-sized pieces into your big
application"
- Justin Meyer, author JavaScriptMVC
61. Team Shout Out
• This was over the course of several years and I worked
with two other fantastic front-end engineers:
• Ryan Anklam ( @bittersweetryan )
• Zeek Chentnik ( http://ezekielchentnik.com )
62. JavaScript References
• “Patterns For Large-Scale JavaScript Application Architecture” by Addy
Osmani
http://addyosmani.com/largescalejavascript/
• “Learning JavaScript Design Patterns” by Addy Osmani
http://addyosmani.com/resources/essentialjsdesignpatterns/book/
• “Using Objects to Organize Your Code” by Rebecca Murphey
http://rmurphey.com/blog/2009/10/15/using-objects-to-organize-your-code/
• “It’s time to start using JavaScript strict mode” by Nicholas Zakas
http://www.nczonline.net/blog/2012/03/13/its-time-to-start-using-javascript-strict-
mode/
• “Writing Modular JavaScript with AMD, CommonJS & ES Harmony” by Addy
Osmani
http://addyosmani.com/writing-modular-js/
63. Backbone.js References
• “Developing Backbone.js Applications” by Addy
Osmani
http://addyosmani.github.io/backbone-fundamentals/
• “Communicating Between Views in Client-Side
Apps” by Rebecca Murphey
http://bocoup.com/weblog/communicating-between-
views-in-client-side-apps/
• Talks from past Backbone Conferences are free/online:
http://backboneconf.com/
http://backboneconf.com/2013/