Have you been working with other frameworks and feel ready to try something new? Why not try Zend Framework? Not only can you use it for the full stack of your application, but you can pull out the individual components into your existing application. Get ready for a course on how to build an ZF2 application from the ground up — from the basics of an MVC app to the more advanced components. When you leave this tutorial, you will have a great grasp on how the framework is structured
Gradle is a general-purpose build automation tool. It combines the power and flexibility of Ant with the dependency management and conventions of Maven into a more effective way to build. Its powered by Groovy DSL. Presentation discusses what and why Gradle with demo for java, groovy, web, multi-project and grails projects.
EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 4Rob Tweed
The document discusses building a React application with sub-components. It begins with a simple single component application and shows how to break it into a hierarchy with multiple sub-components. It demonstrates creating <Title> and <Content> sub-component modules and rendering them from the parent <MainPage> component. It also discusses passing a controller object between components and fixing errors that occur when returning multiple JSX elements from the render method.
EWD 3 Training Course Part 39: Building a React.js application with QEWD, Part 3Rob Tweed
This document discusses separating concerns in React components. It provides an example of extracting the dynamic logic from a React component into a separate controller module. This keeps the component focused only on the view logic and renders. The controller module is required by the component and handles any asynchronous behavior or state updates. Separating these concerns improves modularity and makes the code easier to understand and maintain. The example transforms an existing component to use this pattern by moving the dynamic code into a new controller file and augmenting the main component with the controller's methods.
EWD 3 Training Course Part 14: Using Ajax for QEWD MessagesRob Tweed
This presentation is Part 14 of the EWD 3 Training Course. It explains how (and when) to use Ajax/HTTP messaging instead of WebSockets within your QEWD applications
Introduction to Grunt.js on Taiwan JavaScript ConferenceBo-Yi Wu
This document provides an overview of popular front-end development tools, including Node Version Manager (nvm) for managing Node.js versions, Bower for package management, CoffeeScript for compiling JavaScript, Compass for compiling CSS, RequireJS for module management, and Livereload for live reloading during development. It recommends using Grunt as a task runner to integrate these tools, describing how to configure Grunt plugins for Bower, CoffeeScript, and Compass.
This document provides an introduction to HTML enhanced for web apps using AngularJS. It discusses key AngularJS concepts like templates (directives), controllers, dependency injection, services, filters, models, configuration, routing, resources and testing. Directives allow HTML to be extended with new attributes and elements. Controllers contain business logic. Dependency injection provides dependencies to controllers and services. Filters transform displayed data. Models represent application data. Configuration sets up modules. Routing maps URLs to templates. Resources interact with RESTful APIs. Testing ensures code works as expected.
The document discusses build tools like Ant, Maven, and Gradle. It provides an overview of each tool's history and capabilities. Gradle is presented as a build tool that aims to improve on Ant and Maven by allowing builds to be written in a Groovy-based domain-specific language for improved flexibility. The document also demonstrates several Gradle features like tasks, dependencies, plugins, and multi-project builds.
Gradle is a general-purpose build automation tool. It combines the power and flexibility of Ant with the dependency management and conventions of Maven into a more effective way to build. Its powered by Groovy DSL. Presentation discusses what and why Gradle with demo for java, groovy, web, multi-project and grails projects.
EWD 3 Training Course Part 38: Building a React.js application with QEWD, Part 4Rob Tweed
The document discusses building a React application with sub-components. It begins with a simple single component application and shows how to break it into a hierarchy with multiple sub-components. It demonstrates creating <Title> and <Content> sub-component modules and rendering them from the parent <MainPage> component. It also discusses passing a controller object between components and fixing errors that occur when returning multiple JSX elements from the render method.
EWD 3 Training Course Part 39: Building a React.js application with QEWD, Part 3Rob Tweed
This document discusses separating concerns in React components. It provides an example of extracting the dynamic logic from a React component into a separate controller module. This keeps the component focused only on the view logic and renders. The controller module is required by the component and handles any asynchronous behavior or state updates. Separating these concerns improves modularity and makes the code easier to understand and maintain. The example transforms an existing component to use this pattern by moving the dynamic code into a new controller file and augmenting the main component with the controller's methods.
EWD 3 Training Course Part 14: Using Ajax for QEWD MessagesRob Tweed
This presentation is Part 14 of the EWD 3 Training Course. It explains how (and when) to use Ajax/HTTP messaging instead of WebSockets within your QEWD applications
Introduction to Grunt.js on Taiwan JavaScript ConferenceBo-Yi Wu
This document provides an overview of popular front-end development tools, including Node Version Manager (nvm) for managing Node.js versions, Bower for package management, CoffeeScript for compiling JavaScript, Compass for compiling CSS, RequireJS for module management, and Livereload for live reloading during development. It recommends using Grunt as a task runner to integrate these tools, describing how to configure Grunt plugins for Bower, CoffeeScript, and Compass.
This document provides an introduction to HTML enhanced for web apps using AngularJS. It discusses key AngularJS concepts like templates (directives), controllers, dependency injection, services, filters, models, configuration, routing, resources and testing. Directives allow HTML to be extended with new attributes and elements. Controllers contain business logic. Dependency injection provides dependencies to controllers and services. Filters transform displayed data. Models represent application data. Configuration sets up modules. Routing maps URLs to templates. Resources interact with RESTful APIs. Testing ensures code works as expected.
The document discusses build tools like Ant, Maven, and Gradle. It provides an overview of each tool's history and capabilities. Gradle is presented as a build tool that aims to improve on Ant and Maven by allowing builds to be written in a Groovy-based domain-specific language for improved flexibility. The document also demonstrates several Gradle features like tasks, dependencies, plugins, and multi-project builds.
This document introduces AngularBeans, which aims to integrate AngularJS with Java EE backends using CDI. Some key points:
- AngularBeans allows defining Angular services using CDI beans, and enables features like dependency injection, JSON-RPC calls, and real-time capabilities between the frontend and backend.
- It supports concepts of single-page applications and thin server architectures. AngularBeans services can make HTTP requests, handle events, and communicate over websockets.
- Examples show how to create an AngularBean that exposes methods to the frontend, handle requests and return responses, access the backend via JSON-RPC calls, and implement real-time functionality using events and websockets.
Here are slides from basic training for Gradle.
This training is aimed to help Java Developers to get hands-on experience to use Gradle as a primary build tool for Java source code starting from simple compilation continuing with different kinds of tests and finishing with code quality analysis and artefacts publishing.
EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...Rob Tweed
This presentation is Part 13 of the EWD 3 Training Course. It pulls together everything we've covered in the previous 12 lessons in a worked example QEWD application
EWD 3 Training Course Part 36: Accessing REST and Web Services from a QEWD ap...Rob Tweed
This document describes how to create a REST proxy using QEWD. It involves:
1. Amending the backend restDemo.js module to extract the REST call logic into a separate function and define a 'proxy' handler function.
2. Setting the module to be a REST module.
3. Having the proxy handler function invoke the extracted REST call logic to proxy requests to the actual REST service.
4. Adding a route in the QEWD startup file to route the /api/proxy URL to the proxy handler function, exposing the REST service via the proxy.
This allows the module to act as a REST proxy to the external JSONPlaceholder service while still supporting normal interactive apps
Operators are automated software managers for Kubernetes applications that extend the Kubernetes API to create, configure, and manage instances of complex stateful applications on behalf of a Kubernetes user. The Operator Framework is used to build operators which reconcile the desired state specified in a Custom Resource with the actual state of the cluster. Operators can be built using the Operator SDK and can leverage different runtimes like Go, Ansible, or Helm. Once installed, end users can create operator-managed resources like Postgres in their own namespaces through the Kubernetes API.
- Gradle is a build automation tool that uses a Groovy-based domain-specific language to define software builds.
- It aims to provide flexibility, performance, and ease of use for builds of any size, from small to large multi-project builds.
- Gradle supports many languages and frameworks including Java, Groovy, Scala, and C/C++ and integrates with tools like Maven and Ant.
Deprecated: Foundations of Zend Framework 2Adam Culp
DEPRECATED-Please see http://www.slideshare.net/adamculp/foundations-of-zendframework for updated version.
For this talk Adam Culp will cover a basic intro to Zend Framework 2 (ZF2) and how to use the foundational pieces. We will discover how to get a Zend Framework 2 application up and running quickly using GitHub, Composer, and the Zend Framework 2 Skeleton Application. Then we will leverage the Zend Skeleton Module to introduce adding modules to a Zend Framework 2 application.
We will also cover basic usage of the ZF2 module manager, event manager, service manager, and database components. Adam will also introduce some useful resources to help attendees continue learning on their own. The goal of the talk is to give attendees enough information to be able to get a jump start into using ZF2.
Deploying configurable frontend web application containersJosé Moreira
Deploying containerized client-side web applications requires a different configuration strategy compared to system applications. The runtime of client-side web applications is the client-side web browser and, unlike other applications which can utilize environment values, configuration has to be hard-coded in the Javascript source code.
presented at Web Unleashed 2017
More info at www.fitc.ca/webu
Giorgio Natili
Akamai Technologies
Overview
There are a lot of different frameworks to use to build an enterprise web app, among them Angular is one of the most popular. In the past year, Angular changed dramatically evolving from the version 1.x known as AngularJS to the next generation of Angular.
Despite the excitement for the new version of the framework, a lot of organizations are facing several challenges because of the nature of the upgrade that is not retro-compatible with the old version of Angular (aka AngularJS).
During this presentation, you’ll learn first how to integrate AngularJS component in an Angular to reuse as much as possible the existing codebase and then how to design and develop a predictable state using Redux.
Objective
Learn how to upgrade your code base from AngularJS to Angular and how to create uni-directional architectures able to manage a predictable application state.
Target Audience
Engineers and engineering managers
Assumed Audience Knowledge
AngularJS
Five Things Audience Members Will Learn
How to use Angular 4 with AngularJS
How to upgrade components and services from AngularJS to Angular 4
What is Redux and how to use it with Angular 4
How to design an app with a predictive state
How to implement a state machine with Redux and Angular
Building Grails Plugins - Tips And TricksMike Hugo
This document provides an overview of building Grails plugins, including tips and tricks. It discusses creating a plugin project structure, testing plugins, adding configuration, events, and internationalization. It also covers integrating plugins into applications, reloading changes during development, and publishing plugins for others to use.
Gradle is a build automation tool that uses Groovy as its configuration language. It aims to provide a flexible, customizable, and extensible build system that understands Ant and Maven builds. Gradle builds upon the concepts of Ant and Maven but aims to provide a more flexible and customizable build system. It supports various programming languages and frameworks out of the box and has plugins for additional functionality. Gradle builds are defined using Groovy build scripts and it supports various IDEs and continuous integration servers.
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
For the long time, we have used various build tools to package applications for new software releases or applying patches to existing applications etc. dependency management, version controlling, scalability, flexibility, single-multiple projects sup portability are some of the key areas that drove the selection of a build tool, This session focuses on Gradle as a successful build tool and looks into all the above areas and uses Groovy as a DSL. We will also look into how easy it is to use Gradle as compared to other open source build tools.
Photos: https://plus.google.com/u/0/photos/105295086916869617504/albums/5739617166453582993
Gradle build tool that rocks with DSL By Rajmahendra Hegde at JavaOne Hyderabad, India on 4th May 2012
This document discusses using React with Grails 3. It begins with an overview of React, explaining key concepts like components, props, and state. It then covers different approaches to using React in Grails projects, including with the Asset Pipeline, Webpack, and the React profile for Grails which generates a project setup with React and Webpack configured. Isomorphic React, which allows server-side rendering with Nashorn, is also demonstrated. Resources for further learning about React, Grails plugins, and integrating the two frameworks are provided.
This document introduces GradleFx, a Flex build tool that uses Gradle. It discusses key features of GradleFx such as supporting SWC, SWF, and AIR compilation; tasks for cleaning, compiling, packaging, and testing; and conventions for project structure and dependencies. Advanced topics covered include compiler options, JVM arguments, dependency configurations, and additional steps for AIR projects and FlexUnit testing. An example Gradle build script is provided.
Single Page App (SPA) frameworks offer many benefits over traditional web apps which do all of their HTML generation on the server side. Popular SPA frameworks include Vue, React and Angular. Micronaut is very well suited for publishing REST APIs and is a terrific fit for implementing backend logic for SPAs.
The document provides an introduction to Gradle, an open source build automation tool. It discusses that Gradle is a general purpose build system with a rich build description language based on Groovy. It supports "build-by-convention" and is flexible and extensible, with built-in plugins for Java, Groovy, Scala, web and OSGi. The presentation covers Gradle's basic features, principles, files and collections, dependencies, multi-project builds, plugins and reading materials.
Java(ee) mongo db applications in the cloud Shekhar Gulati
This document provides an agenda and summary for a workshop on developing MongoDB applications on OpenShift presented by Shekhar Gulati. The agenda includes getting started with OpenShift, developing a location-aware Java EE application using JAX-RS and CDI for REST services, and MongoDB for the database. The document discusses OpenShift, JAX-RS, CDI, and MongoDB concepts. It also outlines code samples and steps to create and deploy a sample Twitter-like application on OpenShift that supports creating, finding, and geo-searching statuses.
Deployments are one of the most important parts of any project. Yet in my experience deploying is one of the most dreaded parts of a project. Early starts, Rollbacks stress and joy. However deploying should not be like this. Continuous delivery and deployments are nothing new but they do take a shift in how we think as developers both from the infrastructure aspect and revisions in code. During this talk I will take you through my journey of continuous delivery with E-Commerce applications where we deploy several times a day, use feature toggles to hide functionality and how we handle git in an ever deployable environment.
This talk will take you through a history of how I previously handled PHP deployments highlighting the areas I wanted improving, Speed to deploy, Ease of deployment, Experimentation and agility. We will then learn more about CD with feature branching and feature toggles and what the infrastructure looks like for PHP projects wanting to take advantage of this. My hope is that people will leave the room with enough knowledge to explore there own deployment process and how they can leverage parts of CD to aid in there workflow.
php[world] 2015 Training - Laravel from the Ground UpJoe Ferguson
Most of this training was code samples which are not included here.
Ready to jump into Laravel and start building applications and more? Ready to explore more than just Adventures in Laravel 5? Come learn the best practices for local development, building real world applications, and deploying your applications to production. Join us and learn how to leverage modern development practices so build powerful and robust applications. We will also cover how to test your application's functionality so you can be more confident in deployments and upgrades. Laravel 5.1 will be the framework's first "LTS" (Long term support) version so you can be certain there will be community and support for the life of your application.
Adding 1.21 Gigawatts to Applications with RabbitMQ (Bulgaria PHP 2016 - Tuto...James Titcumb
As your application grows, you soon realise you need to break up your application into smaller chunks that talk to each other. You could just use web services to interact, or you could take a more robust approach and use the message broker RabbitMQ. In this tutorial, I will introduce RabbitMQ as a solution to scalable, interoperable and flexible applications.
This tutorial is perfect for those who would like a deep dive into RabbitMQ with little or no pre-existing knowledge about message queuing systems. Once you’ve finished the tutorial, you will have learnt how to set up basic publish/subscribe message queues, control the flow of messages using various exchanges, and understand various features of RabbitMQ such as RPC, TTL, and DLX.
This document introduces AngularBeans, which aims to integrate AngularJS with Java EE backends using CDI. Some key points:
- AngularBeans allows defining Angular services using CDI beans, and enables features like dependency injection, JSON-RPC calls, and real-time capabilities between the frontend and backend.
- It supports concepts of single-page applications and thin server architectures. AngularBeans services can make HTTP requests, handle events, and communicate over websockets.
- Examples show how to create an AngularBean that exposes methods to the frontend, handle requests and return responses, access the backend via JSON-RPC calls, and implement real-time functionality using events and websockets.
Here are slides from basic training for Gradle.
This training is aimed to help Java Developers to get hands-on experience to use Gradle as a primary build tool for Java source code starting from simple compilation continuing with different kinds of tests and finishing with code quality analysis and artefacts publishing.
EWD 3 Training Course Part 13: Putting Everything so far into Practice using ...Rob Tweed
This presentation is Part 13 of the EWD 3 Training Course. It pulls together everything we've covered in the previous 12 lessons in a worked example QEWD application
EWD 3 Training Course Part 36: Accessing REST and Web Services from a QEWD ap...Rob Tweed
This document describes how to create a REST proxy using QEWD. It involves:
1. Amending the backend restDemo.js module to extract the REST call logic into a separate function and define a 'proxy' handler function.
2. Setting the module to be a REST module.
3. Having the proxy handler function invoke the extracted REST call logic to proxy requests to the actual REST service.
4. Adding a route in the QEWD startup file to route the /api/proxy URL to the proxy handler function, exposing the REST service via the proxy.
This allows the module to act as a REST proxy to the external JSONPlaceholder service while still supporting normal interactive apps
Operators are automated software managers for Kubernetes applications that extend the Kubernetes API to create, configure, and manage instances of complex stateful applications on behalf of a Kubernetes user. The Operator Framework is used to build operators which reconcile the desired state specified in a Custom Resource with the actual state of the cluster. Operators can be built using the Operator SDK and can leverage different runtimes like Go, Ansible, or Helm. Once installed, end users can create operator-managed resources like Postgres in their own namespaces through the Kubernetes API.
- Gradle is a build automation tool that uses a Groovy-based domain-specific language to define software builds.
- It aims to provide flexibility, performance, and ease of use for builds of any size, from small to large multi-project builds.
- Gradle supports many languages and frameworks including Java, Groovy, Scala, and C/C++ and integrates with tools like Maven and Ant.
Deprecated: Foundations of Zend Framework 2Adam Culp
DEPRECATED-Please see http://www.slideshare.net/adamculp/foundations-of-zendframework for updated version.
For this talk Adam Culp will cover a basic intro to Zend Framework 2 (ZF2) and how to use the foundational pieces. We will discover how to get a Zend Framework 2 application up and running quickly using GitHub, Composer, and the Zend Framework 2 Skeleton Application. Then we will leverage the Zend Skeleton Module to introduce adding modules to a Zend Framework 2 application.
We will also cover basic usage of the ZF2 module manager, event manager, service manager, and database components. Adam will also introduce some useful resources to help attendees continue learning on their own. The goal of the talk is to give attendees enough information to be able to get a jump start into using ZF2.
Deploying configurable frontend web application containersJosé Moreira
Deploying containerized client-side web applications requires a different configuration strategy compared to system applications. The runtime of client-side web applications is the client-side web browser and, unlike other applications which can utilize environment values, configuration has to be hard-coded in the Javascript source code.
presented at Web Unleashed 2017
More info at www.fitc.ca/webu
Giorgio Natili
Akamai Technologies
Overview
There are a lot of different frameworks to use to build an enterprise web app, among them Angular is one of the most popular. In the past year, Angular changed dramatically evolving from the version 1.x known as AngularJS to the next generation of Angular.
Despite the excitement for the new version of the framework, a lot of organizations are facing several challenges because of the nature of the upgrade that is not retro-compatible with the old version of Angular (aka AngularJS).
During this presentation, you’ll learn first how to integrate AngularJS component in an Angular to reuse as much as possible the existing codebase and then how to design and develop a predictable state using Redux.
Objective
Learn how to upgrade your code base from AngularJS to Angular and how to create uni-directional architectures able to manage a predictable application state.
Target Audience
Engineers and engineering managers
Assumed Audience Knowledge
AngularJS
Five Things Audience Members Will Learn
How to use Angular 4 with AngularJS
How to upgrade components and services from AngularJS to Angular 4
What is Redux and how to use it with Angular 4
How to design an app with a predictive state
How to implement a state machine with Redux and Angular
Building Grails Plugins - Tips And TricksMike Hugo
This document provides an overview of building Grails plugins, including tips and tricks. It discusses creating a plugin project structure, testing plugins, adding configuration, events, and internationalization. It also covers integrating plugins into applications, reloading changes during development, and publishing plugins for others to use.
Gradle is a build automation tool that uses Groovy as its configuration language. It aims to provide a flexible, customizable, and extensible build system that understands Ant and Maven builds. Gradle builds upon the concepts of Ant and Maven but aims to provide a more flexible and customizable build system. It supports various programming languages and frameworks out of the box and has plugins for additional functionality. Gradle builds are defined using Groovy build scripts and it supports various IDEs and continuous integration servers.
Gradle build tool that rocks with DSL JavaOne India 4th May 2012Rajmahendra Hegde
For the long time, we have used various build tools to package applications for new software releases or applying patches to existing applications etc. dependency management, version controlling, scalability, flexibility, single-multiple projects sup portability are some of the key areas that drove the selection of a build tool, This session focuses on Gradle as a successful build tool and looks into all the above areas and uses Groovy as a DSL. We will also look into how easy it is to use Gradle as compared to other open source build tools.
Photos: https://plus.google.com/u/0/photos/105295086916869617504/albums/5739617166453582993
Gradle build tool that rocks with DSL By Rajmahendra Hegde at JavaOne Hyderabad, India on 4th May 2012
This document discusses using React with Grails 3. It begins with an overview of React, explaining key concepts like components, props, and state. It then covers different approaches to using React in Grails projects, including with the Asset Pipeline, Webpack, and the React profile for Grails which generates a project setup with React and Webpack configured. Isomorphic React, which allows server-side rendering with Nashorn, is also demonstrated. Resources for further learning about React, Grails plugins, and integrating the two frameworks are provided.
This document introduces GradleFx, a Flex build tool that uses Gradle. It discusses key features of GradleFx such as supporting SWC, SWF, and AIR compilation; tasks for cleaning, compiling, packaging, and testing; and conventions for project structure and dependencies. Advanced topics covered include compiler options, JVM arguments, dependency configurations, and additional steps for AIR projects and FlexUnit testing. An example Gradle build script is provided.
Single Page App (SPA) frameworks offer many benefits over traditional web apps which do all of their HTML generation on the server side. Popular SPA frameworks include Vue, React and Angular. Micronaut is very well suited for publishing REST APIs and is a terrific fit for implementing backend logic for SPAs.
The document provides an introduction to Gradle, an open source build automation tool. It discusses that Gradle is a general purpose build system with a rich build description language based on Groovy. It supports "build-by-convention" and is flexible and extensible, with built-in plugins for Java, Groovy, Scala, web and OSGi. The presentation covers Gradle's basic features, principles, files and collections, dependencies, multi-project builds, plugins and reading materials.
Java(ee) mongo db applications in the cloud Shekhar Gulati
This document provides an agenda and summary for a workshop on developing MongoDB applications on OpenShift presented by Shekhar Gulati. The agenda includes getting started with OpenShift, developing a location-aware Java EE application using JAX-RS and CDI for REST services, and MongoDB for the database. The document discusses OpenShift, JAX-RS, CDI, and MongoDB concepts. It also outlines code samples and steps to create and deploy a sample Twitter-like application on OpenShift that supports creating, finding, and geo-searching statuses.
Deployments are one of the most important parts of any project. Yet in my experience deploying is one of the most dreaded parts of a project. Early starts, Rollbacks stress and joy. However deploying should not be like this. Continuous delivery and deployments are nothing new but they do take a shift in how we think as developers both from the infrastructure aspect and revisions in code. During this talk I will take you through my journey of continuous delivery with E-Commerce applications where we deploy several times a day, use feature toggles to hide functionality and how we handle git in an ever deployable environment.
This talk will take you through a history of how I previously handled PHP deployments highlighting the areas I wanted improving, Speed to deploy, Ease of deployment, Experimentation and agility. We will then learn more about CD with feature branching and feature toggles and what the infrastructure looks like for PHP projects wanting to take advantage of this. My hope is that people will leave the room with enough knowledge to explore there own deployment process and how they can leverage parts of CD to aid in there workflow.
php[world] 2015 Training - Laravel from the Ground UpJoe Ferguson
Most of this training was code samples which are not included here.
Ready to jump into Laravel and start building applications and more? Ready to explore more than just Adventures in Laravel 5? Come learn the best practices for local development, building real world applications, and deploying your applications to production. Join us and learn how to leverage modern development practices so build powerful and robust applications. We will also cover how to test your application's functionality so you can be more confident in deployments and upgrades. Laravel 5.1 will be the framework's first "LTS" (Long term support) version so you can be certain there will be community and support for the life of your application.
Adding 1.21 Gigawatts to Applications with RabbitMQ (Bulgaria PHP 2016 - Tuto...James Titcumb
As your application grows, you soon realise you need to break up your application into smaller chunks that talk to each other. You could just use web services to interact, or you could take a more robust approach and use the message broker RabbitMQ. In this tutorial, I will introduce RabbitMQ as a solution to scalable, interoperable and flexible applications.
This tutorial is perfect for those who would like a deep dive into RabbitMQ with little or no pre-existing knowledge about message queuing systems. Once you’ve finished the tutorial, you will have learnt how to set up basic publish/subscribe message queues, control the flow of messages using various exchanges, and understand various features of RabbitMQ such as RPC, TTL, and DLX.
With the evolution of software, starts an evolution of the software developer and how things are approached. A different and more responsible mindset is now required and with that comes the use of the Engineering Cycle that will provide not only the basic skill set but also the core base for a Software Engineer to handle any type of project.
The document discusses PHPUnit, a testing framework for PHP. It provides an overview of PHPUnit, including that it was created by Sebastian Bergmann in 2004 as a port of xUnit to PHP. PHPUnit uses assertions for testing and supports unit, integration, and acceptance testing. The document reviews available assertions, annotations like @group and @dataProvider, and how to set up and run tests with PHPUnit.
Talk given at PHP World 2015 about the Hack language released by Facebook. A short history and look at it's key features as well as how Hack and PHP are evolving together.
Amp your site an intro to accelerated mobile pagesRobert McFrazier
Accelerated Mobile Pages (AMP) is a framework for building web pages that are optimized for mobile devices. It addresses issues like slow load times and poor user experiences on mobile by simplifying pages and parallelizing resource loading. AMP pages use HTML, CSS and JavaScript to load quickly. They are cached globally through Google's AMP Cache for fast delivery. Publishers can easily implement AMP pages and monetize them while embracing an open web.
Laravel is a great framework to use for web applications but what if you need to do more? Come learn how to harness the power of the console in your Laravel applications to do various tasks such as caching data from 3rd party APIs, Expire old content from S3 or other data store, and batch process huge data sets without users having to wait for results. You can even automate tasks such as backing up your remote databases before you run migrations with artisan commands.
Sure, you could improve yourself or promote your project the normal way, with hard work and years of slow, incremental progress. Or you could use some of the brain’s built-in cheat codes to level up on your way to success.
Along with learning, our brains are plagued by a raft of bugs and unwanted features that we have been unable to remove. Use these “features” to your advantage to teach, learn and persuade. Join us in a tour of some of the most amusing bugs and exploits that allow you to play with the interface between our brains and the world.
Code Coverage for Total Security in Application MigrationsDana Luther
So the time has come to take the leap and upgrade your application to a new major version of the underlying framework, or, perhaps, to an entirely different framework... how do you ensure that none of your functionality or usability is impacted by a potentially drastic rewrite of the underlying systems? How can you move forward with 100% confidence in your migrated codebase? Testing, testing and more testing. Using a combination of unit, functional and acceptance tests can give you the certainty you need. In this talk, we will go over key strategies for ensuring that you begin with full code coverage and move forward with confidence.
Security is an enormous topic, and it’s really, really complicated. If you’re not careful, you’ll find yourself vulnerable to any number of attacks which you definitely don’t want to be on the receiving end of. This talk will give you just a taster of the vast array of things there is to know about security in modern web applications, such as writing secure PHP web applications and securing a Linux server. Whether you are writing anything beyond a basic brochure website, or even developing a complicated business web application, this talk will give you insights to some of the things you need to be aware of.
This document outlines an agenda for a talk about using Git. The talk is broken into three parts: messing with commits, everyday workflows, and what to do when Git problems happen. It provides terminology for Git concepts like repository, commit, branch and HEAD. It also summarizes common Git commands and workflows like add, commit, log, status, cherry-pick and GitHub flow. Troubleshooting techniques like reflog and bisect are also mentioned.
This document provides an overview of PHP extensions, including reasons for creating extensions, the extension development process, and advanced extension topics. Some key points:
- Extensions allow PHP to interface with C/C++ libraries, modify how the PHP engine works, and increase performance of slow code.
- The extension development process includes setting up the compile environment, writing the module definition, adding functions, and testing.
- Advanced topics include using global variables, custom object handling, memory management, and threading safety. Well-documented extensions can be proposed for inclusion in the PECL repository.
By using a comprehensive feature-filled framework we can build software fast. On the other hand, by decoupling our applications we can build sofware that is independent of our framework and infrastructure choices, and therefore longer lasting.
We can't do both, is one approach always right?
In this talk we'll look at different decoupling techniques, what problems they solve, and when they make sense. We will learn some concrete techniques to discover where we should be investing in decoupling, and when we should let the framework maintainers do the work for us.
The new JSON fields are some of the most talking about new features in MySQL 5.7. But they are by no means the only awesome things this version has to offer. MySQL 5.7 is a year old, so this talk won't be an introduction to this version. We will be digging into 5.7 to see how to make the most of the tools available in it. Want to tackle important practical problem solving for your data, make your query performance analysis more efficient or look at how virtual columns can help you index data? This talk is for you!
This document discusses modern SQL features beyond the SQL-92 standard, including OLAP features like grouping sets, cube, and rollup for multi-dimensional analysis; common table expressions (WITH queries) for organizing complex queries and enabling recursion; lateral joins for iterating over query results; window functions for ranking and aggregating over partitions; and the use of JSON data types in PostgreSQL for combining SQL and NoSQL capabilities. It provides examples and discusses support for these features across major database systems.
The document provides information about an intermediate PHP OOP conference session covering magic methods, polymorphism, collections, iterators, loose coupling, and high cohesion. The session details include explanations of magic methods like __construct, __destruct, __call, and __get, as well as polymorphism, implementing interfaces like Countable and ArrayAccess, and using iterators. The talk aims to improve developers' OOP skills in PHP.
PHP World DC 2015 - What Can Go Wrong with Agile Development and How to Fix ItMatt Toigo
A talk I gave at the 2015 PHPWorld Conference. PDF Version of the slides at www.matt-toigo.com/files/phpworld_2015_presentation.pdf
Agile and Scrum are often pitched together as the definitive silver bullet for eliminating pain from software development, but they include their own sets of problems that commonly drag down development teams. Whether an agile team is executing an internal project or doing work for a client, a very similar set of problems begins to afflict all the members of such teams, regardless of their roles. The common root causes of these problems can be quickly identified, and complementary solutions can be easily implemented to ensure a happy team that continues to deliver high-quality work.
We all have focussed on best practices and code quality over the past years, but we seemed to forgot the most important aspect of the web: security. This talk gives a good overview on your first-line of defence in your code, how to ensure that new exploits and hacking techniques are covered with tests and how you build solid web applications that secured enough to keep script kiddies and wanna-be hackers away. I will also give some tips what to do when you're company becomes victim of cyber crime.
Enough suffering, fix your architecture!Luís Cobucci
You aim for a simple change to deliver a feature, but the outcome is chaotic: coupled code, unrelated things breaking, one tiny change results on a humongous changeset. Aren't you tired of this and think that software development should be simple and make people happy? Do not despair we're here to help you!
In this talk, we take a look at software anatomy, laugh at some mistakes we constantly make, and see a proof of concept using modern PHP tools. Then you will finally be able to break this cycle and find your way out of this madness.
Website Accessibility: It’s the Right Thing to doDesignHammer
Website Accessibility refers to the idea that people of all abilities and disabilities be able to access online content. These disabilities can impair vision, hearing, and movement. Since the early days of the web, accessibility focus in the US has been on government run, and government funded websites. This may soon change. Even if the new regulations don’t apply to your business, learn what is involved in making your website accessible to better serve your customers. It’s the right thing to do.
One of the most prolific parts of Zend Framework 2 is the Service Manager. Its many nooks and crannies dictate much of what happens inside our Zend Framework 2 applications and is incredibly powerful. Let's look into exactly what the Service Manager allows us to do and how we can take advantage of it for cleaner, and faster, code.
This document provides an overview of the key concepts and components in the Zend Framework MVC architecture. It discusses the Model-View-Controller pattern and how each component (Model, View, Controller) is implemented in Zend Framework using classes like Zend_Controller, Zend_View, and specialized model classes. It also covers routing, action controllers, view rendering, plugins, helpers and putting the pieces together to build an application with Zend Framework.
Building Web Services with Zend Framework (PHP Benelux meeting 20100713 Vliss...King Foo
The document discusses using the Zend Framework to build web services. It covers exposing classes as SOAP, XML-RPC, and JSON-RPC web services. It also discusses building RESTful web services using the Zend Framework by implementing actions in a Zend_Rest_Controller and adding a Zend_Rest_Route. Code examples are provided for each approach.
This document provides an overview and introduction to the Zend Framework. It begins with introductions of the speaker and an outline of topics to be covered, which include basics of the Zend Framework, its model-view-controller implementation, components and libraries, and what's new. It then discusses what the Zend Framework is, how it was developed, its requirements, flexible licensing, and benefits of using it. The rest of the document explains key aspects of the Zend Framework including its front controller, action controllers, views, models, and how they work together in the traditional MVC pattern. It also provides examples of controllers, views, models, and customizing the framework.
The document discusses various strategies for deploying and maintaining Pyramid web applications. It covers deployment options using Nginx, Apache with mod_wsgi, and Paste. It also discusses using buildout, supervisor, scripting, exception logging, backups, staging environments, caching, monitoring, and replication. The case study at the end describes how the open source KARL project deploys their Pyramid application using Nginx, HAProxy, Paste, Supervisor, buildout, and a custom package index on GitHub.
This document provides an agenda and overview for a two-day training on the Zend Framework. Day 1 covers downloading and installing Zend Framework, creating a basic MVC structure using the Zend tool, and hands-on lab time. Topics include the history of Zend Framework, MVC architecture, models, controllers, views, and layouts. Day 2 focuses on Zend Form for form creation and validation, continuing CRUD operations, and more lab time.
Presentation for azPHP on setting up a new project using Zend_Tool. Also goes over creating basic modules, controllers, actions, models and layouts.
All code in the presentation has not necessarily been tested. Will update presentation when done.
Doing Quality Assurance in PHP projects sometimes looks like a dark art! Picking the right tools, making all tools work together, analysing your code and even then deliver all the required features of the software project can be quite challenging.
This talks aims to help lowering the entry barrier for doing QA on your project, sharing the experience, knowledge and some tricks that brings QA back from the dark arts to the every day of a PHP programmer.
We will review tools like Jenkins, PHPUnit, phpcs, pdepend, phpcpd, etc and how we can chain them together to make sure we are building a great software.
This document provides an overview and introduction to Laravel 5, a PHP web application framework. It discusses key Laravel 5 concepts and features such as Eloquent ORM, routing, middleware, contracts, form requests, the IoC container, file drivers, scheduling commands, and the command bus pattern. The document is intended to explain Laravel 5 concepts through code examples and brief explanations.
In this talk, Carlos de la Guardia shows how a Pyramid application can be deployed using a front end web server, like Apache or Nginx. He also covers how to automate deployment using buildout and a PyPI clone, and post-deployment creation of a variety of maintenance scripts and cron jobs that perform application specific tasks through Pyramid.
A link to audio of the presentation is here: http://2011ploneconference.sched.org/event/29a2f357905e4ab0fe3048c53bc1c94c
This document provides an introduction and overview of the Zend Framework by Michelangelo van Dam. It discusses what the Zend Framework is, its component-based MVC architecture, how to set up a basic project structure using the framework, and additional resources for learning more. The document demonstrates configuring virtual hosts, directory structure, controllers, models, views and layouts to build a simple "Hello World" application with the Zend Framework.
Getting up & running with zend frameworkSaidur Rahman
This document provides an overview of getting started with the Zend Framework. It discusses what a framework is, why use the Zend Framework specifically, and its MVC architecture and components. It then covers setting up the development environment, creating a sample project with the Zend tool, and performing basic CRUD operations with a controller and model. Finally, it demonstrates connecting to a database and consuming web services like Flickr using Zend components.
This document provides an overview of getting started with the Zend Framework. It discusses what a framework is, why use the Zend Framework specifically, and its MVC architecture and components. It then covers setting up the development environment, creating a sample project with CRUD operations, and connecting to a database. Finally, it demonstrates using the Zend framework to access web services like Flickr and provides additional resources for learning more.
From framework coupled code to #microservices through #DDD /by @codelytvCodelyTV
From framework coupled code to microservices through DDD modules. The presentation discussed the evolution from monolithic frameworks to microservices architecture through various stages:
1) Old days of framework coupled code with low autonomy, maintainability and learning curve.
2) Use of MVC frameworks improved isolation but code was still highly coupled.
3) Focus on testing drove adoption of SOLID principles at a micro scale.
4) Domain-Driven Design introduced modules per domain concept improving decoupling, semantics and testability.
5) Further decomposition into bounded contexts and microservices provided more autonomy for teams but introduced new accidental complexities around infrastructure and coordination.
This document summarizes a presentation about the Zend Framework PHP development framework. It introduces the MVC architecture used in Zend Framework and describes how the framework implements Models using database abstraction, Views using template rendering, and Controllers to dispatch requests. It also discusses how Zend Framework supports web services, Ajax, and other web technologies and includes built-in libraries for common tasks.
Dropwizard is a Java framework for building RESTful web services. It supports microservices architecture and includes modules for common functions like authentication, database access, metrics collection, and health checks. Developers define resources, configure the application via YAML, integrate with databases via JDBI, and build representations with Jackson. It aims to provide a productive full-stack framework for building microservices.
This document provides an overview of using the Bluemix platform-as-a-service from IBM. It discusses getting started with Bluemix, deploying a sample Node.js application, configuring services, debugging tools, and other features like custom domains and no-downtime deployments. The document is a guide for Node.js developers to understand Bluemix and how to build and deploy applications to it.
Slide links:
- https://lumberjack.rareloop.com
- https://docs.lumberjack.rareloop.com
- https://github.com/Rareloop/lumberjack-bedrock-installer
- https://github.com/Rareloop/lumberjack
- https://github.com/Rareloop/lumberjack-validation
- https://github.com/Rareloop/hatchet
- https://lizkeogh.com/2017/08/31/reflecting-reality/amp
- https://www.upstatement.com/timber
- https://roots.io/bedrock
- https://scotch.io/bar-talk/s-o-l-i-d-the-first-five-principles-of-object-oriented-design
- https://github.com/zendframework/zend-diactoros
- https://www.php-fig.org
- http://php-di.org
---
Often WordPress themes are not easy to change, maintain or fun to work on. This can rule WordPress out as a viable option for bespoke, non-trivial websites.
In this talk we’ll dive into how this happens & look at how we can benefit from software engineering techniques to help make your code easier to change. I’ll also show how using Lumberjack, a powerful MVC framework built on Timber, can be used to power-up your themes.
You may know that queues can help with long-running tasks, but did you know they can help you make your application easier to debug, more performant, and scale in the cloud? Taking the real-world example of a contest app deployed on Azure, we'll see how easy queues can be to implement. You'll see how the smart use of queues can enable your application to handle many more users with the same code, break components across servers, and help you keep your app responsive.
How to use SELINUX (No I don't mean turn it off)Chuck Reeves
Why do we turn off NSA-grade security features? Well early on, SELINUX was complex and confusing. However, the pains of dealing with SELINUX are long gone. In fact, the tools for working with SELINUX have long improved are now so easy, anyone can configure the security layer. Even one bad chmod on a server can leave you vulnerable. However, when SELINUX is running, rogue processes will be prevented from running havoc. You'll learn how easy it is to use SELINUX and how (with little effort) you can configure and troubleshoot this amazing security feature. Stop leaving gaps in your infrastructure and turn it back on.
Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy . At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
Many developers are often asked by project owners to give time estimates for features or bug fixes. But how many developers have the ability to provide project owners a reasonable estimate? Many developers will just follow irrational formulas or arbitrary methods to create a number that is not only wrong, but costly. "Stop Multiplying by 4" will teach developers of all skill levels easy techniques to provide accurate estimations. We will start with a small calibration exercise to find out how good you are. We will then go over procedures to improve accuracy. At the end of the talk, you will possess the skills to get you started on improving the certainty of your estimates.
Single page Apps with Angular and ApigilityChuck Reeves
This document discusses building single page applications using Angular and Apigility. It introduces Apigility as a REST API framework and Angular as a frontend framework. It then covers topics such as whether to make the Angular app public or bundle it as an asset, using Grunt for building, and Restangular for Angular-REST communication. The document ends by providing links to the Apigility, Angular, and Restangular websites as well as a link to view the full talk.
The document discusses techniques for estimating software development timelines. It recommends doubling the initial time estimate and rounding up to the next unit on the time scale. Factors like involving other people and unexpected issues mean schedules are difficult to accurately predict. Breaking tasks down into smaller parts and using historical data, testing, and confidence intervals can help. Prioritization methods include urgency matrices and spreadsheets weighing factors like benefits, costs, and risks. The document provides references for further reading on software estimation.
The document discusses various techniques for estimating software project timelines and schedules. It recommends doubling your initial time estimate and then rounding up to the next unit on the time scale (e.g. hours to days). It also stresses accounting for impediments by padding estimates. Other estimation techniques mentioned include defining parameters, using historical data, confidence intervals, fuzzy logic based on lines of code, the Delphi method, and prioritizing requirements based on factors like benefit, penalty, cost and risk. The document recommends preferring hour estimates over days for easier scaling and warns against assuming more developers will solve scheduling problems or negotiating estimates. It provides references for further reading on software estimation.
Stop multiplying by 4: Practical Software EstimationChuck Reeves
The document provides tips and techniques for estimating software development timelines. It recommends doubling the initial time estimate and rounding up to the next unit to account for uncertainties. Key aspects to define include requirements, parameters to validate, and historical data. Estimates should have confidence intervals rather than precise figures. Prioritization involves assessing features' relative benefits, costs and risks to determine priority. Communication and removing personal biases are also important.
Requirements gathering and software estimation are important parts of the development process. There are many techniques for gathering requirements such as use cases, user stories, and interviews to understand necessary features and avoid ambiguity. Estimates are also important but there is uncertainty involved since many factors can change. Estimates should be iterative and refined over time using techniques like counting lines of code or tasks.
How x debug restored partial sanity to the insaneChuck Reeves
The document discusses the XDebug PHP debugging tool, including how it provides debugging capabilities like breakpoints and navigation that bring sanity to PHP development. It covers XDebug's installation, features like variable inspection and profiling, and references Eclipse and PHP as related tools. The document provides logos and images from XDebug, Eclipse, and PHP sites to accompany the text.
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc
How does your privacy program stack up against your peers? What challenges are privacy teams tackling and prioritizing in 2024?
In the fifth annual Global Privacy Benchmarks Survey, we asked over 1,800 global privacy professionals and business executives to share their perspectives on the current state of privacy inside and outside of their organizations. This year’s report focused on emerging areas of importance for privacy and compliance professionals, including considerations and implications of Artificial Intelligence (AI) technologies, building brand trust, and different approaches for achieving higher privacy competence scores.
See how organizational priorities and strategic approaches to data security and privacy are evolving around the globe.
This webinar will review:
- The top 10 privacy insights from the fifth annual Global Privacy Benchmarks Survey
- The top challenges for privacy leaders, practitioners, and organizations in 2024
- Key themes to consider in developing and maintaining your privacy program
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsDianaGray10
Join us to learn how UiPath Apps can directly and easily interact with prebuilt connectors via Integration Service--including Salesforce, ServiceNow, Open GenAI, and more.
The best part is you can achieve this without building a custom workflow! Say goodbye to the hassle of using separate automations to call APIs. By seamlessly integrating within App Studio, you can now easily streamline your workflow, while gaining direct access to our Connector Catalog of popular applications.
We’ll discuss and demo the benefits of UiPath Apps and connectors including:
Creating a compelling user experience for any software, without the limitations of APIs.
Accelerating the app creation process, saving time and effort
Enjoying high-performance CRUD (create, read, update, delete) operations, for
seamless data management.
Speakers:
Russell Alfeche, Technology Leader, RPA at qBotic and UiPath MVP
Charlie Greenberg, host
Taking AI to the Next Level in Manufacturing.pdfssuserfac0301
Read Taking AI to the Next Level in Manufacturing to gain insights on AI adoption in the manufacturing industry, such as:
1. How quickly AI is being implemented in manufacturing.
2. Which barriers stand in the way of AI adoption.
3. How data quality and governance form the backbone of AI.
4. Organizational processes and structures that may inhibit effective AI adoption.
6. Ideas and approaches to help build your organization's AI strategy.
Have you ever been confused by the myriad of choices offered by AWS for hosting a website or an API?
Lambda, Elastic Beanstalk, Lightsail, Amplify, S3 (and more!) can each host websites + APIs. But which one should we choose?
Which one is cheapest? Which one is fastest? Which one will scale to meet our needs?
Join me in this session as we dive into each AWS hosting service to determine which one is best for your scenario and explain why!
How information systems are built or acquired puts information, which is what they should be about, in a secondary place. Our language adapted accordingly, and we no longer talk about information systems but applications. Applications evolved in a way to break data into diverse fragments, tightly coupled with applications and expensive to integrate. The result is technical debt, which is re-paid by taking even bigger "loans", resulting in an ever-increasing technical debt. Software engineering and procurement practices work in sync with market forces to maintain this trend. This talk demonstrates how natural this situation is. The question is: can something be done to reverse the trend?
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
What is an RPA CoE? Session 1 – CoE VisionDianaGray10
In the first session, we will review the organization's vision and how this has an impact on the COE Structure.
Topics covered:
• The role of a steering committee
• How do the organization’s priorities determine CoE Structure?
Speaker:
Chris Bolin, Senior Intelligent Automation Architect Anika Systems
For the full video of this presentation, please visit: https://www.edge-ai-vision.com/2024/06/temporal-event-neural-networks-a-more-efficient-alternative-to-the-transformer-a-presentation-from-brainchip/
Chris Jones, Director of Product Management at BrainChip , presents the “Temporal Event Neural Networks: A More Efficient Alternative to the Transformer” tutorial at the May 2024 Embedded Vision Summit.
The expansion of AI services necessitates enhanced computational capabilities on edge devices. Temporal Event Neural Networks (TENNs), developed by BrainChip, represent a novel and highly efficient state-space network. TENNs demonstrate exceptional proficiency in handling multi-dimensional streaming data, facilitating advancements in object detection, action recognition, speech enhancement and language model/sequence generation. Through the utilization of polynomial-based continuous convolutions, TENNs streamline models, expedite training processes and significantly diminish memory requirements, achieving notable reductions of up to 50x in parameters and 5,000x in energy consumption compared to prevailing methodologies like transformers.
Integration with BrainChip’s Akida neuromorphic hardware IP further enhances TENNs’ capabilities, enabling the realization of highly capable, portable and passively cooled edge devices. This presentation delves into the technical innovations underlying TENNs, presents real-world benchmarks, and elucidates how this cutting-edge approach is positioned to revolutionize edge AI across diverse applications.
Best 20 SEO Techniques To Improve Website Visibility In SERPPixlogix Infotech
Boost your website's visibility with proven SEO techniques! Our latest blog dives into essential strategies to enhance your online presence, increase traffic, and rank higher on search engines. From keyword optimization to quality content creation, learn how to make your site stand out in the crowded digital landscape. Discover actionable tips and expert insights to elevate your SEO game.
Building Production Ready Search Pipelines with Spark and MilvusZilliz
Spark is the widely used ETL tool for processing, indexing and ingesting data to serving stack for search. Milvus is the production-ready open-source vector database. In this talk we will show how to use Spark to process unstructured data to extract vector representations, and push the vectors to Milvus vector database for search serving.
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
FREE A4 Cyber Security Awareness Posters-Social Engineering part 3Data Hops
Free A4 downloadable and printable Cyber Security, Social Engineering Safety and security Training Posters . Promote security awareness in the home or workplace. Lock them Out From training providers datahops.com
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
5. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
INTRO TO ZEND FRAMEWORK 2
▸ Release in Fall 2012
▸ Updated modules from Zend Framework 1
▸ Collection of Individual components
▸ PSR-0 Compliant
SOME BASICS
5
6. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
INTRO TO ZEND FRAMEWORK 2
GETTING STARTED
▸ Using the skeleton app
cd my/project/dir
git clone git://github.com/zendframework/ZendSkeletonApplication.git
cd ZendSkeletonApplication
php composer.phar install
▸ God Mode (aka Composer):
"require": {
"zendframework/zendframework": "~2.5"
}
6
7. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
FILE STRUCTURE
▸ config - stores global config options
▸ data - cache, logs, session files
▸ module - your custom modules
▸ public - HTML, CSS, JS, Images
▸ test - Integration tests and test bootstrap
INTRO TO ZEND FRAMEWORK 2 7
8. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
INTRO TO ZEND FRAMEWORK 2
APPLICATION BASICS
▸ At its core, ZF2 applications have 6 dependancies:
1. ZendConfig - a Traversable object containing merged config
2. ZendServiceManager - A Service Locator for loading/creating objects
3. ZendEventManager - An Event dispatcher for controlling application flow
4. ZendModuleManager - Used for loading/finding configured modules
5. Request - Helper for managing the incoming request
6. Response - Helper for returning a response
8
14. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
DEPENDENCY INJECTION - FOR THOSE WHO DON'T KNOW
▸ Instead of creating all the objects needed by a class, you "inject" a created
object that the class knows how to interact with it
▸ Makes testing easier (you are writing tests correct?)
▸ Code changes are a breeze
▸ Reduces class coupling
14
16. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
DEPENDENCY INJECTION - __CONSTRUCT
class MapService
{
protected $map;
public function __construct(GoogleMaps $map) {
$this->$map = $map;
}
public function getLatLong($street, $city, $state ) {
return $this->map->getLatLong($street . ' ' . $city .
' ' . $state);
}
}
16
17. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
DEPENDENCY INJECTION - SETTERS
class MapService
{
protected $map;
public function setMap(GoogleMaps $map) {
$this->$map = $map;
}
public function getMap() {
return $this->map;
}
public function getLatLong($street, $city, $state ) {
return $this->getMap()->getLatLong($street . ' ' . $city . ' ' . $state);
}
}
17
18. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
WHAT IS A SERVICE LOCATOR
▸ Purpose - "To implement a loosely coupled architecture in order to get better
testable, maintainable and extendable code. DI pattern and Service Locator
pattern are an implementation of the Inverse of Control pattern." *
▸ Keeps DI Simple and clean
▸ Only has two methods: get() and has()
18
* https://github.com/domnikl/DesignPatternsPHP/tree/master/More/ServiceLocator
19. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
WHAT IS IN THE SERVICE MANAGER
▸ Invokables - Objects that can just be called via "new <class_name>"
▸ Factories - a class that creates another (follows the factory pattern)
▸ Abstract Factories - Factories that create many objects using a config
▸ Initializers - Used to add additional dependancies after the object is created
(ex. adding logging to classes with out having a huge dependency list)
▸ Delegators - wrappers that adds more functionality to existing objects
▸ Aliases - simpler names for services
19
21. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
REGISTERING SERVICES - THE WRONG WAY!
'factories' => [
'MyModuleMyService' => function
($sm) {
// do crazy things to build
// this class and slow down
// your application
return $service;
}
],
21
22. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
REGISTERING SERVICES - THE WRONG WAY!
▸ SERIOUSLY DON'T USE CLOSURES TO REGISTER SERVICES
▸ YOU MIGHT AS WELL USE TABS
▸ LIKE EVER
22
23. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
REGISTERING SERVICES - CONCRETE OBJECT
use ZendServiceManagerServiceManager;
$serviceManager = new ServiceManager();
//sets the created object instead of having the SM buildone
$fooBar = new stdClass();
$serviceManager->setService('FooBar', $fooBar);
23
24. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
REGISTERING SERVICES - IN CODE
use ZendServiceManagerServiceManager;
$serviceManager = new ServiceManager();
$serviceManager->setFactory('MyModuleMyService', 'MyModuleMyServiceFactory');
$serviceManager->setInvokableClass('FooBar', 'stdClass');
$serviceManager->addAbstractFactory('ZendLogLoggerAbstractServiceFactory');
$serviceManager->addDelegator('MyModuleMyService', 'MyModuleMyServiceDelegator');
$serviceManager->setAlias('MyService', 'MyModuleMyService');
24
25. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
FACTORIES
▸ Contains the code to build the object
▸ The ServiceManager is passed in to the create function
▸ can either implement ZendServiceManagerFactoryInterface or just implement
__invoke
25
26. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
ABSTRACT FACTORIES
▸ Allows one factory that builds multiple objects based on a config
▸ Prevents writing multiple factories that do similar functions based on a config
▸ MUST Implement ZendServiceManagerAbstractFactoryInterface
▸ defines canCreateServiceWithName() and createServiceWithName()
26
27. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
ABSTRACT FACTORIES
use ZendDbTableGatewayTableGateway;
use ZendServiceManagerFactoryInterface;
use ZendServiceManagerServiceLocatorInterface;
class ProjectsTableFactory implements FactoryInterface {
public function createService(ServiceLocatorInterface $serviceLocator) {
$adapter = new $serviceLocator->get('ZendDbAdapterAdapter');
return new TableGateway('projects', $adapter);
}
}
class CategoriesTableFactory implements FactoryInterface {
public function createService(ServiceLocatorInterface $serviceLocator) {
$adapter = new $serviceLocator->get('ZendDbAdapterAdapter');
return new TableGateway('categories', $adapter);
}
}
27
28. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
ABSTRACT FACTORIES
use ZendDbTableGatewayTableGateway;
use ZendServiceManagerAbstractFactoryInterface;
use ZendServiceManagerServiceLocatorInterface;
class TableAbstractFactory implements AbstractFactoryInterface {
public function canCreateServiceWithName(ServiceLocatorInterface $sl, $name, $requestedName)
{
return preg_match("/Table$/", $requestedName);
}
public function createServiceWithName(ServiceLocatorInterface $sl, $name, $requestedName) {
$adapter = $sl->get('ZendDbAdapterAdapter');
$tableName = str_replace('Table', '', $requestedName);
$tableName = strtolower($tableName);
return new TableGateway($tableName, $adapter);
}
}
28
29. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
INITIALIZERS
▸ Applied to every object that the ServiceManager created
▸ Useful to inject other dependancies
▸ Do not over use them (50 Initializers with 300 objects means 15,000 calls)
29
30. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
DELEGATORS
▸ Add functionality to a class
▸ Transfers process to another object based on conditions
▸ Technically ZF2 delegators are decorators
▸ https://en.wikipedia.org/wiki/Delegation_pattern
30
31. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
DELEGATORS - HOW THEY WORK
▸ A delegator factory (MUST implement ZendServiceManager
DelegatorFactoryInterface)
▸ FactoryClass MUST BE registered as separate service in the ServiceManager
▸ Note: the delegator will not be passed through initializers
31
32. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
SERVICE MANAGER
OTHER SERVICE MANAGERS
▸ ZF2 builds other service managers that will be injected with the main service
manager
▸ ControllerManager, InputFilterManager, RouterPluginManager, and
FormElementManager are just some
32
34. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
EVENT MANAGER
EVENT MANAGER
▸ Aspect Oriented Programming (AOP)
▸ What it is useful for:
▸ Logging
▸ Caching
▸ Authorization
▸ Sanitizing
▸ Auditing
▸ Notifying the user when something happens (or fails)
34
35. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
EVENT MANAGER
ASPECT ORIENTED PROGRAMMING 101 - TERMS
▸ Aspect - The object being interacted
with
▸ Advice - What should be done with
each method of the aspect
▸ Joinpoint - Places where Advice can be
created
▸ Pointcut - Matches Joinpoint to an
Advice
35
36. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
EVENT MANAGER
ASPECT ORIENTED PROGRAMMING 101 - ADVICE TYPES
▸ Before advice - Applied before the advice is called
▸ After returning advice - Applied after the advice is called
▸ After throwing advice - Applied when an error happens
▸ Around advice - combines the Before and After returning advice*
36
http://www.sitepoint.com/explore-aspect-oriented-programming-with-codeigniter-1/
37. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
EVENT MANAGER
HOW IT WORKS IN ZF2
▸ Events chain until no more listeners are registered or a listener stops
propagation of events
▸ Listeners are called in order of priority. From the higher number to lower
number
▸ Responses from each listener is stored in a collection and returned back to the
calling code
37
38. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
EVENT MANAGER
REGISTERING EVENTS - CALLBACKS
use ZendEventManagerEventManager;
use ZendEventManagerEvent;
use ZendLogLogger;
$log = new Logger(['writers' => [['name' => 'noop']]]);
$events = new EventManager();
$events->attach('my_event', function (Event $event) use ($log) {
$event = $event->getName();
$target = get_class($event->getTarget());
$params = json_encode($event->getParams());
$log->info(sprintf(
'%s called on %s, using params %s',
$event,
$target,
$params
));
});
$target = new stdClass();
$params = ['foo' => 'bar'];
$events->trigger('my_event', $target, $params);
38
39. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
EVENT MANAGER
REGISTERING EVENTS - AGGREGATE
class Listener implements ListenerAggregateInterface, LoggerAwareInterface
{
use LoggerAwareTrait;
protected $listeners = [];
public function attach(EventManagerInterface $events) {
$this->listeners[] = $events->attach('my_event', [$this, 'logEvent'], 1000);
}
public function detach(EventManagerInterface $events) {
foreach ($this->listeners as $index => $callback) {
if ($events->detach($callback)) {
unset($this->listeners[$index]);
}
}
}
}
$events->attach(new Listener());
39
40. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
EVENT MANAGER
REGISTERING EVENTS - OTHER
▸ Register a listener to multiple events using an array
$events->attach(['my_event_1', 'my_event_2'], [$this, 'logEvent']);
▸ Or using a wildcard
$events->attach('*', [$this, 'logEvent']);
40
41. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
EVENT MANAGER
SHARED EVENT MANAGER
▸ Segregates events from other classes that could interfere with the listeners
▸ JIT loading of listeners to keep the event manager lightweight
41
46. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
MODELS
▸ Nothing special they are just classes
46
47. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
MVC_EVENT
▸ Created during application bootstrap
▸ Provides helpers to access the Application, Request, Response, Router, and the
View. (all these are injected during the bootstrap event
47
48. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
MVC_EVENT - EVENTS
▸ MvcEvent::EVENT_BOOTSTRAP - Prepares the application
▸ MvcEvent::EVENT_ROUTE - Matches the request to a controller
▸ MvcEvent::EVENT_DISPATCH - Call the matched controller
▸ MvcEvent::EVENT_DISPATCH_ERROR - Error happens during dispatch
▸ MvcEvent::EVENT_RENDER - Prepares the data to be rendered
▸ MvcEvent::EVENT_RENDER_ERROR - Error during rendering
▸ MvcEvent::EVENT_FINISH - Finial task
48
49. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
ROUTING
▸ Provides a means to match a request to a controller
▸ Matching can be made on any part of the URL
▸ Three router types: ConsoleSimpleRouteStack, HttpSimpleRouterStack and
HttpTreeRouterStack
49
50. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
CONTROLLERS
▸ Controllers are dispatched from a Router
▸ A Controller just needs to implement ZendStdlibDispatchableInterface
▸ Other common interfaces for controllers:
▸ ZendMvcInjectApplicationEventInterface
▸ ZendServiceManagerServiceLocatorAwareInterface
▸ ZendEventManagerEventManagerAwareInterface
50
53. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
CONTROLLER PLUGINS - CUSTOM PLUGINS IN 3 STEPS
▸ Create plugin
▸ Register in config
▸ Call in controller
53
54. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
VIEWS
▸ Views incorporate multiple levels to render a response
▸ By default uses the PHP template system (but can use your templating system
of choice)
▸ Layouts are also possible since ViewModels can be nested
▸ Your controllers do not need to return a ViewModel
54
55. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
VIEW - ONE VIEW MANY LAYERS
▸ Containers - holds variables and or callbacks (typically a model or the array
representation of the model)
▸ View Model - Connects the Container to a template (if applicable)
▸ Renders - Takes the Model and returns the representation of the model (Three are
included by default: PhpRenderer, JsonRenderer, FeedRenderer)
▸ Resolvers - Uses a strategy to resolve a template for the renderer
▸ Rendering Strategies - Decides which renderer to use
▸ Response Strategies - Handles setting the headers responses
55
56. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
VIEWS - HOW TO USE
▸ From controller:
$view = new ViewModel(array(
'message' => 'Hello world',
));
$view->setTemplate('my/template');
return $view;
▸ Or
return array(
'message' => 'Hello world',
);
56
57. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
VIEW - HELPERS
▸ Used with the PhpRenderer
▸ Handles common functions within a view
▸ Check out the manual for complete list visit: http://framework.zend.com/
manual/current/en/modules/zend.view.helpers.html
57
58. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
VIEW - CREATING CUSTOM HELPERS
▸ Have your helper implement ZendViewHelperHelperInterface
▸ or just extend ZendViewHelperAbstractHelper
▸ Register the helper
▸ in the config under 'view_helpers'
▸ in the module by implementing ZendModuleManagerFeature
ViewHelperProviderInterface
58
59. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
MVC
REQUEST AND RESPONSE
▸ Abstracts the HTTP (or console) Request and response
▸ Can also be used with the ZendHttp when you need to make CURL requests
▸ ViewModels can also understand the response based on different PHP
runtimes (console or web requests)
59
64. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
FORMS, VALIDATORS AND INPUTFILTERS
FORMS
▸ Used to bridge Views to Models (epically useful when following DOM)
▸ Takes elements, filters and validators to ensure data integrity.
▸ Creates element objects just-in-time to help keep for classes light
64
65. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
FORMS, VALIDATORS AND INPUTFILTERS
INPUTFILTERS
▸ Filters and validates sets of data by using filters and validators
▸ Can be independent objects, specified in the config or built on the fly in code
▸ Passed by reference, keeps data from being munged elsewhere
65
66. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
FORMS, VALIDATORS AND INPUTFILTERS
FILTERS AND VALIDATORS
▸ Transform data (trim, uppercase, lowercase etc)
▸ Filters are applied before validation
▸ Multiple filters and validators can be applied for each field
▸ Validators get passed the full data set to help validate
66
67. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
FORMS, VALIDATORS AND INPUTFILTERS
RENDERING FORMS
▸ View helpers for each filed type
▸ or simply use the formElement view helper
▸ setting values to the form will display the value by the user
67
69. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
DATABASE
OVERVIEW
▸ ZendDb provides simple abstraction for working with RDBMS
▸ Can be used as an ORM
▸ Can use PDO or basic drivers
69
70. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
DATABASE
STATEMENTS
▸ Used to Programmatically create SQL statements
▸ Agnostic towards different systems
▸ Normalizes out queries (as best they can) to handle the differences between
RDBMS
▸ Returns Results Statements which can create your models using a hydrator
70
71. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
DATABASE
HYDRATORS
▸ Transform an object to an array
▸ Take and array and set those values on the
object (or hydrates an object)
▸ ArraySerializable
▸ ClassMethods
▸ Can also filter values before passing into the
object
71
72. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
DATABASE
TABLE/ROW GATEWAY
▸ Represents a row or table in the database
▸ Does all the heavy lifting for building a SQL query.
▸ A Must have when following the Active Record pattern
▸ Definition of the row and table is defined using the ZendDbMetadata*
classes
72
74. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
LOGGING
BASICS
▸ Allows writing to multiple log locations
▸ Allows filtering out log levels or text
▸ Can be used to log PHP errors and exceptions
▸ Complies with RFC-3164
▸ Not PSR-3 compliant! (but you can use this
module)
74
75. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
LOGGING
HOW IT WORKS
▸ ZendLogLogger is constructed with writers
▸ Writers can get formatters to format the message to your hearts desire
▸ Messages are normally written during shutdown
▸ Logger can also take a filter which messages are logged
▸ Log Level
▸ Regex
▸ Following a Filter or Validator
75
76. Zend Framework Foundations, Chuck Reeves @manchuck PHP[world] 2015
LOGGING
USING LOGS
$logger = new ZendLogLogger;
$writer = new ZendLogWriterStream('php://output');
$logger->addWriter($writer);
$logger->info('This is an info');
76