Here is the blog: http://www.aurorasolutions.io/architecture-workflow-of-modern-web-apps/
In the IT industry the biggest problem we regularly face is the abundance of choice. We have tons of frameworks, languages, tools, platforms, etc. Although for competition purposes; multiple choices are ultimately very good but we usually find ourselves in paralysis when we have to choose among them for our next project.
People usually still consider that (frontend) of web applications are created by mixing together HTML, CSS & JavaScript without giving any thoughts about the frontend architecture, workflow and testing; but things have definitely changed now since last couple of years and in this presentation I try to explain that how JavaScript and it’s related stuff has become first class citizen and how the new workflow looks like. And I will also explain that how the architecture of modern web applications is migrating from thick server-side applications to smart clients and services on their journey North to pure Microservices.
Here is the list of different tools and frameworks that have been discussed in this presentation:
* Yeoman: (http://yeoman.io/) Yeoman is the web’s scaffolding tool for modern webapps. Yeoman helps you to kickstart new projects, prescribing best practices and tools to help you stay productive.
* Bower: (http://bower.io/) Bower is used for dependency management, so that you no longer have to manually download and manage your scripts. Web sites are made of lots of things — frameworks, libraries, assets, utilities, and rainbows. Bower manages all these things for you.
* Grunt: (http://gruntjs.com/) Grunt is a task-based command line build tool for JavaScript projects. When you work on large projects you have couple of things that you do regularly and you would like them to be automated; Grunt is the tool to solve that problem!
* HTML5 Boilerplate: (https://html5boilerplate.com/) HTML5 Boilerplate is a professional front-end template for building fast, robust, and adaptable web apps or sites.
* Twitter Bootstrap: (http://getbootstrap.com/2.3.2/) Sleek, intuitive, and powerful front-end framework for faster and easier web development.
* Jasmine: (https://github.com/jasmine/jasmine) Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.
* Karma: (https://github.com/karma-runner/karma/) A simple tool that allows you to execute JavaScript code in multiple real browsers.
* PhantomJS: (https://github.com/ariya/phantomjs/) PhantomJS is a headless WebKit scriptable with JavaScript.
* Protractor: (https://github.com/angular/protractor) Protractor is an end-to-end test framework for AngularJS applications.
Modern Web Application Development Workflow - EclipseCon US 2014Stéphane Bégaudeau
People often consider that creating a web application is done by creating a bunch of HTML, Javascript and CSS files together in a text editor and uploading them on the web.
Well, things have changed and in this presentation, you will see how the workflow used to deliver web applications has evolved over the past few years!
We will start by seeing how you can use Yeoman and its generators to kickstart your project. Then you will see how Bower let you manage the dependencies of your project. Downloading the JavaScript and CSS frameworks that you are using for you. After that we will have a look at Chrome Devtools in order to debug and edit our application. We will also see how to use remote debugging to inspect a web application running on a phone or a tablet.
Finally we will see how you can set up your whole continuous integration workflow with Grunt. Compilation, static code analysis, unit tests, integration tests, minification, code coverage, you name it.
This talk has been presented during EclipseCon North America 2014 in San Francisco
Modern Web Application Development Workflow - EclipseCon France 2014Stéphane Bégaudeau
People often consider that creating a web application is done by creating a bunch of HTML, Javascript and CSS files in a text editor, putting them in a folder and uploading them on the web.
Well, things have changed and in this presentation, you will see how the workflow used to deliver web applications has evolved over the past few years and where the Eclipse Foundation's tools stand in this new world!
In this talk, we will start by having a look at all the new development tools that have appeared with the arrival of Node.js and how they are used by the web development community.
With tools like Bower used to manage the dependencies of a project, Grunt and Gulp used for the continuous integration and Yeoman used to kickstart web applications, web developers have dramatically increased their productivity.
After that, we will see what tools like the Eclipse IDE and Orion can offer to web developers in order to build and maintain their applications and finally how they could be improved to provide the features needed by web developers.
1. Isomorphic JavaScript is the pattern of running JavaScript code on both server & client.
2. People are using it for production today. Ask Facebook, Yahoo, Asana, Airbnb, Rising Stack, …
3. This is not another talk about NodeJS!
With .NET Core, Microsoft has started a new era for developing multi-platform software. ASP.NET Core web framework is written from scratch, works on all major platforms including Window, Linux, MacOS - and even on RaspberryPI, and brings all-around extraordinary performance. After the short introduction, we'll look into what's new in versions 2.x and through demos analyze the basic templates for web and API applications, connecting with client-side frameworks as well as using the console and IDEs.
MEAN Stack technology is a full-stack JavaScript solution that helps you build fast and very light weight web application. The web application made under MEAN stack is fast because the Node js which is run time environment made by C++ which is very fast as compare to other languages.
MEAN is acronym of Mongodb, Express js, Angular js, Node js. The MEAN stack technology is very easy to learn because MEAN is completely based on JavaScript which means you don't have to learn different languages for implementing this.
Modern Web Application Development Workflow - EclipseCon US 2014Stéphane Bégaudeau
People often consider that creating a web application is done by creating a bunch of HTML, Javascript and CSS files together in a text editor and uploading them on the web.
Well, things have changed and in this presentation, you will see how the workflow used to deliver web applications has evolved over the past few years!
We will start by seeing how you can use Yeoman and its generators to kickstart your project. Then you will see how Bower let you manage the dependencies of your project. Downloading the JavaScript and CSS frameworks that you are using for you. After that we will have a look at Chrome Devtools in order to debug and edit our application. We will also see how to use remote debugging to inspect a web application running on a phone or a tablet.
Finally we will see how you can set up your whole continuous integration workflow with Grunt. Compilation, static code analysis, unit tests, integration tests, minification, code coverage, you name it.
This talk has been presented during EclipseCon North America 2014 in San Francisco
Modern Web Application Development Workflow - EclipseCon France 2014Stéphane Bégaudeau
People often consider that creating a web application is done by creating a bunch of HTML, Javascript and CSS files in a text editor, putting them in a folder and uploading them on the web.
Well, things have changed and in this presentation, you will see how the workflow used to deliver web applications has evolved over the past few years and where the Eclipse Foundation's tools stand in this new world!
In this talk, we will start by having a look at all the new development tools that have appeared with the arrival of Node.js and how they are used by the web development community.
With tools like Bower used to manage the dependencies of a project, Grunt and Gulp used for the continuous integration and Yeoman used to kickstart web applications, web developers have dramatically increased their productivity.
After that, we will see what tools like the Eclipse IDE and Orion can offer to web developers in order to build and maintain their applications and finally how they could be improved to provide the features needed by web developers.
1. Isomorphic JavaScript is the pattern of running JavaScript code on both server & client.
2. People are using it for production today. Ask Facebook, Yahoo, Asana, Airbnb, Rising Stack, …
3. This is not another talk about NodeJS!
With .NET Core, Microsoft has started a new era for developing multi-platform software. ASP.NET Core web framework is written from scratch, works on all major platforms including Window, Linux, MacOS - and even on RaspberryPI, and brings all-around extraordinary performance. After the short introduction, we'll look into what's new in versions 2.x and through demos analyze the basic templates for web and API applications, connecting with client-side frameworks as well as using the console and IDEs.
MEAN Stack technology is a full-stack JavaScript solution that helps you build fast and very light weight web application. The web application made under MEAN stack is fast because the Node js which is run time environment made by C++ which is very fast as compare to other languages.
MEAN is acronym of Mongodb, Express js, Angular js, Node js. The MEAN stack technology is very easy to learn because MEAN is completely based on JavaScript which means you don't have to learn different languages for implementing this.
High Productivity Web Development WorkflowVũ Nguyễn
We are all familiar with these web technologies: Angular, NodeJS, Grunt, Karma, ... However, how to put them together to make a seamless, high productivity workflow for building prototypes quickly and delivering products frequently?
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Ido Green
In this talk from DevCon TLV I've covered the two sides of the coin:
1. Client side: what are the main steps when you are building your Web Applications:
○ Design
○ Code
○ Debug
○ Demo
2. On the server side, you wish to have a great API that you (and others) could use from any platform out there (Mobile, web). The answer on Google Cloud platform is Google Cloud Endpoints.
Interoperability of components built with different frameworksSouvik Basu
As React, Vue, Angular and other Frontend frameworks mature, more and more projects embrace them in production. It has reached a point where a project written in React wants to use Angular or Vue components (and vice versa). We will explore pragmatic ways to use components created using different frameworks in the same app.
I am working on an Angular project for one of our clients. It recently acquired a company which is invested into React for few years. There is a plan to merge our products which has a lot of feature overlap. To use capabilities of existing teams, it was decided to use React components within Angular app. This is when we explored all possibilities of inter operations between frameworks. This talk will be case study of our work and what you can take away from it
The way we build web applications evolved over the decades - from on-prem servers named after your favourite Star Wars characters to autoscaling cloud clusters and serverless functions. Throughout this journey the architecture paradigm shifted towards more distributed model. Whether that’s your CMS, monitoring system or authorisation layer - it’s most likely just an endpoint you exchange data with. At the end of the day, every HTTP request goes through various middleware layers and requires both server- (SSR) and client-side rendering (CSR).
Recently, a new piece of tech appeared on the landscape - WebAssembly. It became 4th official language on the Web (following HTML, CSS and JavaScript) and was initially meant to run in the browser and improve CSR. It quickly turned out that WebAssembly on the server is also a thing and can revolutionise the way we think of web apps.
Some providers like Fastly and Cloudflare adopted WebAssembly and allow you to run custom code at the edge. That opens up completely new possibilities - authentication, personalised content rendering, A/B testing - you name it. Everything as close to end users as possible.
During my talk I’d like to show you what edge computing offers at this stage and how it can be integrated with AEM as a Cloud Service.
Microsoft WebMatrix is a new tool from Microsoft aimed at the non-professional and hobbiest web developers and provides them a complete toolset to create
The all-new ASP .NET Core 2.0 introduces some great new capabilities, the ability to host on multiple server platforms, and a number of new tools that you will want to get familiar with. Learn about the future of ASP.NET Core MVC, Web API, Razor Web Pages, .NET Core Tools and Visual Studio 2017!
Visual Studio: The best tool for web developers.Robert MacLean
The slides from my talk @ the JSinSA 2013 conference. The talk covers amazing features in Visual Studio for any web developer, regardless of platform.
You can watch a video of this talk at http://youtu.be/QQUAZHU3swk
Real World AngularJS recipes: beyond TodoMVCCarlo Bonamico
Codemotion Rome 2015 Talk with Sonia Pini
You got captured by Angular power and simplicity, and have chosen it for your next project (or you are thinking about it). Creating a prototype with Data Binding, scopes and MVVM was relatively quick and easy. But what do you need to effectively complete and bring a complex application in Production? We will discuss practical recipes from our real world experiences for choosing between ES5, ES6 and TypeScript, designing a modular, event-driven application structure, creating or selecting components and directives, implementing authentication, managing errors and logging, testing and packaging.
What's behind the hype about Blazor? Is Javascript dead? Another Silverlight? If you are a .Net developer you will love Blazor: the new framework to build web/desktop and even mobile apps with C#. In this talk we will cover Blazor hosting models, Javascript Interop, Components, and a lot more.
High Productivity Web Development WorkflowVũ Nguyễn
We are all familiar with these web technologies: Angular, NodeJS, Grunt, Karma, ... However, how to put them together to make a seamless, high productivity workflow for building prototypes quickly and delivering products frequently?
Modern Web Applications Utilizing HTML5 (Dev Con TLV 06-2013)Ido Green
In this talk from DevCon TLV I've covered the two sides of the coin:
1. Client side: what are the main steps when you are building your Web Applications:
○ Design
○ Code
○ Debug
○ Demo
2. On the server side, you wish to have a great API that you (and others) could use from any platform out there (Mobile, web). The answer on Google Cloud platform is Google Cloud Endpoints.
Interoperability of components built with different frameworksSouvik Basu
As React, Vue, Angular and other Frontend frameworks mature, more and more projects embrace them in production. It has reached a point where a project written in React wants to use Angular or Vue components (and vice versa). We will explore pragmatic ways to use components created using different frameworks in the same app.
I am working on an Angular project for one of our clients. It recently acquired a company which is invested into React for few years. There is a plan to merge our products which has a lot of feature overlap. To use capabilities of existing teams, it was decided to use React components within Angular app. This is when we explored all possibilities of inter operations between frameworks. This talk will be case study of our work and what you can take away from it
The way we build web applications evolved over the decades - from on-prem servers named after your favourite Star Wars characters to autoscaling cloud clusters and serverless functions. Throughout this journey the architecture paradigm shifted towards more distributed model. Whether that’s your CMS, monitoring system or authorisation layer - it’s most likely just an endpoint you exchange data with. At the end of the day, every HTTP request goes through various middleware layers and requires both server- (SSR) and client-side rendering (CSR).
Recently, a new piece of tech appeared on the landscape - WebAssembly. It became 4th official language on the Web (following HTML, CSS and JavaScript) and was initially meant to run in the browser and improve CSR. It quickly turned out that WebAssembly on the server is also a thing and can revolutionise the way we think of web apps.
Some providers like Fastly and Cloudflare adopted WebAssembly and allow you to run custom code at the edge. That opens up completely new possibilities - authentication, personalised content rendering, A/B testing - you name it. Everything as close to end users as possible.
During my talk I’d like to show you what edge computing offers at this stage and how it can be integrated with AEM as a Cloud Service.
Microsoft WebMatrix is a new tool from Microsoft aimed at the non-professional and hobbiest web developers and provides them a complete toolset to create
The all-new ASP .NET Core 2.0 introduces some great new capabilities, the ability to host on multiple server platforms, and a number of new tools that you will want to get familiar with. Learn about the future of ASP.NET Core MVC, Web API, Razor Web Pages, .NET Core Tools and Visual Studio 2017!
Visual Studio: The best tool for web developers.Robert MacLean
The slides from my talk @ the JSinSA 2013 conference. The talk covers amazing features in Visual Studio for any web developer, regardless of platform.
You can watch a video of this talk at http://youtu.be/QQUAZHU3swk
Real World AngularJS recipes: beyond TodoMVCCarlo Bonamico
Codemotion Rome 2015 Talk with Sonia Pini
You got captured by Angular power and simplicity, and have chosen it for your next project (or you are thinking about it). Creating a prototype with Data Binding, scopes and MVVM was relatively quick and easy. But what do you need to effectively complete and bring a complex application in Production? We will discuss practical recipes from our real world experiences for choosing between ES5, ES6 and TypeScript, designing a modular, event-driven application structure, creating or selecting components and directives, implementing authentication, managing errors and logging, testing and packaging.
What's behind the hype about Blazor? Is Javascript dead? Another Silverlight? If you are a .Net developer you will love Blazor: the new framework to build web/desktop and even mobile apps with C#. In this talk we will cover Blazor hosting models, Javascript Interop, Components, and a lot more.
Basics, Components, Design and Development of Web Application and Websites. Especially made for seminars and guest sessions for newbies in Web Development field.
STAENZ Academy
https://staenz.com/academy
List of few AngularJS recommended/best practices that can help to write clean, robust and maintainable SPA applications. It was presented at JUG Stockholm Sweden.
Agenda:
1. AngularJS Best Practice # 1: File Organization
2. AngularJS Best Practice # 2: Cross Component Communication
3. AngularJS Best Practice # 3: Scopes
4. AngularJS Best Practice # 4: Named Functions
5. AngularJS Best Practice # 5: Keep Controllers Focused
Presented by Rasheed (http://se.linkedin.com/pub/rasheed-waraich/46/113/72/) Co-founder Aurora Solutions (http://home.aurorasolutions.org/) & FixTelligent (www.fixtelligent.com)
That special presentation in an event "Multimedia Symposium for New Technologies - MSN 2016" in the Islamic University of Gaza "Faculty of Information Technology".
I was speaker.
Metaprogramming is a key tool of many Java frameworks, such as Spring and Hibernate. In this talk we will cover how metaprogramming can be implemented on JVM. We’ll look at annotations, reflection, bytecode manipulation and cover metaprogramming patterns you can successfully apply in your projects.
Next-gen OData/ui5 microservices with Spring BootJan Penninkhof
Develop small self-contained apps rapidly using Spring Boot and deploy them on the SAP HANA platform, SAP HANA Cloud Platform, or your own computer. We will share a boilerplate application that quickly gets you going with Olingo, persistency, SAPUI5, and annotations. You can get an initial end-to-end application running in 5 minutes, which can be modified easily and scaled up to an enterprise-level microservice or app, like the SAP Mentors Lemonaid app. We’re looking for your feedback!
Presented at SAP TechEd 2016 - Barcelona
This presentation is an introduction to the design, creation, and maintenance of web design and development life cycle and web technologies. With it, you will learn about the web technologies, the life cycle of developing an efficient website and web application and finally some web essentials questions will be provided and reviewed.
This presentation introduces the key innovations that Play 2 brings to web application development in Java and Scala. The Play framework has brought high-productivity web development to Java with three innovations that changed the rules on Java EE: Java class and template save-and-reload that just works, a simplified stateless architecture that enables cloud deployment, and superior ease-of-use. Following Play's rapidly-growing popularity, Play 2.0 was released in March 2012 with innovations that are not just new in the Java world: type-safe view templates and HTTP routing, compile-time checking for static resources, and native support for both Java and Scala. Type safety matters. After dynamically-typed programming languages such as PHP and Ruby set the standard for high-productivity web development, Play built on their advantages and has created a type-safe web development framework with extensive compile-time checking. This is essential for applications that will scale to tens of thousands of lines of code, with hundreds of view templates. Meanwhile, Play avoids the architectural-complexity that is promoted by Java EE-based approaches. The result is that Play 2 first enables rapid initial application development and then Play 2 helps you build big, serious and scalable web applications.
JDD2015: Java Everywhere Again—with DukeScript - Jaroslav TulachPROIDEA
JAVA EVERYWHERE AGAIN—WITH DUKESCRIPT
For a long time, Java was perfect for creating cross-platform applications, but the advent of iPhone, iPad, and Android devices changed everything, resulting in a totally fragmented world. Catering to all these platform is troublesome and expensive. That’s why DukeScript was created: to make it easy to create cross-platform Java applications again. The goal of this hands-on lab is to create a cross-platform application from scratch that will run on iOS, Android, desktop, browser, and embedded devices such as the Raspberry Pi. You’ll learn about the Model-View-ViewModel (MVVM) architecture, which enables you to write and test business code totally independently of the view, and, finally, you’ll see it combined with a view to complete a working application.
IMPORTANT
Before conference, please follow the steps to prepare for the session:
- perform the Maven repository initialization by creating the archetype and building it as
described at DukeScript website
- also download NetBeans IDE (either latest beta or at least 8.0.2)
- Installing Android SDK rev. 19 or bringing own Mac Book with XCode installed can be also found beneficial
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
Creating Modular Test-Driven SPAs with Spring and AngularJSGunnar Hillert
Single-page Applications (SPA) are all the rage these days and with them there is an avalanche of new tools, libraries and frameworks we need to know. But what does this mean for us as Spring developers? In this session we will give you an overview of the current landscape and illustrate the choices the Spring XD team has made for its user interface. What do I use to write SPA applications? How do I integrate them into existing Spring-based backends? How do I build them? Can I integrate them into my existing Gradle or Maven build processes in order to achieve complete build automation? How do I integrate realtime messaging using Spring's SockJS/WebSocket support? In this talk we will answer these and many more questions. We will cover frameworks such as AngularJS, Bootstrap, RequireJS; tools like Bower, Grunt, Gulp; and also talk about testing using Karma and Protractor.
We'll go through the possible ways to bring technology agnostic microservice architecture to the frontend, review pros/cons of each of them. We also will check the "ultimate solution" that handles microservices with SSR in SPA manner.
This talk will be interesting for ones who have multiple teams working on the same frontend application.
JSFest 2019: Technology agnostic microservices at SPA frontendVlad Fedosov
We'll go through the possible ways to bring technology agnostic microservice architecture to the frontend, review pros/cons of each of them. We also will check the "ultimate solution" that handles microservices with SSR in SPA manner.
This talk will be interesting for ones who have multiple teams working on the same frontend application.
A Introduction to the World of Node, Javascript & SeleniumJames Eisenhauer
A Introduction to the World of Node, Javascript & Selenium by James Eisenhauer
We will discuss the following:
- What it takes to run Node.js
- Node.js vs IO.js vs Node Foundation
- NPM (Node Package Manager)
- NVM (Node Version Manager)
- Node Testing Tools like Jasmine & Mocha
- Node Build Tools like Grunt & Gulp
- Selenium Node.js many language bindings
- WD.js, Webdriver.io, Webdriver.js, Nightwatch.js
- Other Selenium Node Frameworks
- Protractor.js, TheIntern.js
- Testing Asynchronously
Sponsored by O'Reilly
AngularJS is a structural framework for dynamic web apps. It lets you use HTML as your template language and lets you extend HTML's syntax to express your application's components clearly and succinctly. AngularJS's data binding and dependency injection eliminate much of the code you would otherwise have to write. And it all happens within the browser, making it an ideal partner with any server technology.
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2015.
http://www.ivanomalavolta.com
Refactoring to a Single Page ApplicationCodemotion
"Refactoring to a Single Page Application" by Marcello Teodori
In origine era il monolite. Spesso dietro una startup web di successo c'è un'applicazione in tecnologia singola (Java, Rails, ecc.) che cresce finché fatica a scalare all'aumentare degli utenti e con essa il relativo processo di sviluppo all'aumentare degli sviluppatori. Sul back-end una strategia consolidata è suddividere progressivamente il monolite in microservice. Per il front-end la soluzione duale è estrarre gradualmente il codice HTML, CSS e JavaScript in una Single Page Application, applicando diverse tecniche come quelle maturate durante la mia esperienza in Workshare.
Building applications for mobile devices has its additional challenges: The network connection can be flaky and slow, so the application should still work when the device is offline. Users expect application icons on their home screens to start them. Depending on your use cases you want to access sensors that are not available in the browser.
This Meetup Martin Sotirov (@unclemartycodes) will talk about Vue on mobile devices and take a look at the different ways you can deploy a Vue app on mobile. We start with a PWA, go through a hybrid solution using Ionic Capacitor and then finally arrive at a NativeScript app which renders native iOS and Android views.
https://martinsotirov.com
contact@martinsotirov.com
The Cordova framework
Recurrent app architecture
Cordova CLI
Debugging Cordova applications
My development environment
Cordova APIs
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2014.
http://www.ivanomalavolta.com
At the origin there was a monolith. Behind a successful startup often lies a single technology application (Java, Rails, etc.) that grows until it hardly scales with the number of customers and likewise its development process as developers increase. A consolidated strategy on the back-end is to progressively slice the monolith into micro-services. A dual solution on the front-end is to gradually extract HTML, CSS and JavaScript code into a Single Page Application, applying some techniques like the ones I've been maturing during my experience in Workshare.
Similar to Architecture & Workflow of Modern Web Apps (20)
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
Let's dive deeper into the world of ODC! Ricardo Alves (OutSystems) will join us to tell all about the new Data Fabric. After that, Sezen de Bruijn (OutSystems) will get into the details on how to best design a sturdy architecture within ODC.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...UiPathCommunity
💥 Speed, accuracy, and scaling – discover the superpowers of GenAI in action with UiPath Document Understanding and Communications Mining™:
See how to accelerate model training and optimize model performance with active learning
Learn about the latest enhancements to out-of-the-box document processing – with little to no training required
Get an exclusive demo of the new family of UiPath LLMs – GenAI models specialized for processing different types of documents and messages
This is a hands-on session specifically designed for automation developers and AI enthusiasts seeking to enhance their knowledge in leveraging the latest intelligent document processing capabilities offered by UiPath.
Speakers:
👨🏫 Andras Palfi, Senior Product Manager, UiPath
👩🏫 Lenka Dulovicova, Product Program Manager, UiPath
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Epistemic Interaction - tuning interfaces to provide information for AI supportAlan Dix
Paper presented at SYNERGY workshop at AVI 2024, Genoa, Italy. 3rd June 2024
https://alandix.com/academic/papers/synergy2024-epistemic/
As machine learning integrates deeper into human-computer interactions, the concept of epistemic interaction emerges, aiming to refine these interactions to enhance system adaptability. This approach encourages minor, intentional adjustments in user behaviour to enrich the data available for system learning. This paper introduces epistemic interaction within the context of human-system communication, illustrating how deliberate interaction design can improve system understanding and adaptation. Through concrete examples, we demonstrate the potential of epistemic interaction to significantly advance human-computer interaction by leveraging intuitive human communication strategies to inform system design and functionality, offering a novel pathway for enriching user-system engagements.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
3. www.aurorasolutions.io
Full Stack Developer & Co-Founder @ Aurora - Provides
Remote Teams specializing in JVM languages and Angular +
Ember
About: Rasheed
LinkedIn: https://se.linkedin.com/in/rasheedwaraich
33
Email: rasheed@aurorasolutions.io
My team at Aurora specializes in:
► Web Apps ◄ Java, Groovy, C# and AngularJS/EmberJS based
single or multi page web apps
► Mobile Apps ◄ Android & iOS
We provide REMOTE teams based in Pakistan which integrate
seamlessly with our customers. We have happy clients across
Europe, USA, Canada & Australia.
www.aurorasolutions.io
6. www.aurorasolutions.io
● Sites were static HTML ● Pros:
o low computational overhead
o highly cacheable
o highly indexable
● Cons:
o hard(easy?) to update
o no personalization
o usually poor UI
6
In the beginning...
8. www.aurorasolutions.io
● Introduced dynamic generated pages ● Pros:
o dynamic!
o selectively cacheable
o highly indexable
o personalizable
● Cons:
o “high” computational overhead
o hard to create
o usually poor UI
8
Let there be CGI
10. www.aurorasolutions.io
● Dynamic Pages
● Lightweight complement to applets
● Mostly used for simple scripting
o basic form validation
o popup ads
o comet cursor trails
● Pros:
o enhanced usability, maybe
o reduced trips to the server
● Cons:
o abuses annoyed users
o business logic often implemented
twice: client and server
10
LiveScript JavaScript
11. www.aurorasolutions.io
● Google Maps sparked Web 2.0
● GMail
o required Javascript
● Pros:
o killer UI
o more responsive apps
● Cons:
o difficult to cache
o impossible to index
o required JavaScript
11
AJAX - Web 2.0
12. www.aurorasolutions.io
● No JavaScript, no problem
● Provide features for user agents that
support them
o fall back to basic HTML
● Pros:
o wider compatibility
o just as rich UI
o just as responsive
● Cons:
o higher development costs
o requires thoughtful engineering
12
Unobtrusive JavaScript
13. www.aurorasolutions.io
● Business logic lives on the client
● Resources and permanent state stored on
the server
● Application and session state stored on
client
● Pros:
o reduce server workloads
o application is highly cacheable
o extreme rich UI
● Cons:
o content not indexable
o requires JavaScript
o often requires a ‘modern’ browser
13
Client Side Applications
40. www.aurorasolutions.io
40
GENERATORS
Project templates
● npm install generator-webapp
○ yo webapp
● npm install generator-angular
○ yo angular
○ yo angular:controller MyCtrl
○ yo angular:directive tabs
○ yo angular:route login
● npm search yeoman-generator
41. www.aurorasolutions.io
41
YO
yo scaffolds out a new application, writing your Grunt
configuration and pulling in relevant Grunt tasks and
Bower dependencies that you might need for your
build.
62. www.aurorasolutions.io
62
HTML5 BOILERPLATE
“HTML5 Boilerplate is the professional badass’s
base HTML/CSS/JS template for a fast, robust and
future proof site”
It helps you to quickly get up and running with front-
end web projects
NOT A FRAMEWORK
Bring what you need to your project.
64. www.aurorasolutions.io
64
ADVANCED FEATURES
● Includes meta viewport declaration
● Includes modernizer
● Javascript profiling
● Use conditional comments to add “ie” classes
<!--[if IE 9]> <html lang=”en” class=”nojs ie9”> <![endif]-->
Allows you to do this in your CSS
div.foo { padding-right: 10px; }
.ie6 div.foo { padding-right: 5px; }
70. www.aurorasolutions.io
70
JASMINE
● Jasmine is powerful javascript unit testing framework
● Jasmine describes its test in simple natural language
● Jasmine tests can be read by non-programmers
● Jasmine provides a clean mechanism for synchronous asynchronous code
71. www.aurorasolutions.io
71
JASMINE SAMPLE TEST
describe(“A sample suite”, function(){
it(“contains a spec with an expectation”, function(){
expect(true).toEqual(true);
});
});
Main Constructs:
● TestSuite begins with a call to describe().
● TestCase “or spec” begins with a call to it().
● TestCase can contain one or more matcher(s).
73. www.aurorasolutions.io
73
KARMA
● Karma is a test runner for JavaScript that runs on Node.js
● It is very well suited to testing AngularJS or any other
JavaScript projects
● It can run test of most popular javascript testing frameworks
like:
○ Jasmine
○ Mocha
○ QUnit
○ etc.
● Karma can execute tests not only in browser of your choice but
also on the platform of your choice (desktop, phone, tablets)
76. www.aurorasolutions.io
76
PHANTOMJS
● PhantomJS is a headless WebKit scriptable with a JavaScript API
● Created by Ariya Hidayat
● PhantomJS itself is NOT a test framework, it is only used to launch
the tests via suitable test runner.
77. www.aurorasolutions.io
77
FEATURES
● Multiplatform, available on major operating systems: Windows, Mac
OS X, Linux, other Unices.
● Fast and native implementation of web standards: DOM, CSS,
JavaScript, Canvas, SVG. No emulation!
● Pure headless (no X11) on Linux, ideal for continuous integration
systems. Also runs on Amazon EC2, Heroku, Iron.io.
● Easy to install.
80. www.aurorasolutions.io
80
PROTRACTOR
“is an end to end test framework for AngularJS applications built
on top of WebDriverJS.
Protractor runs tests against your application running in a real
browser, interacting with it as a user would.”
83. www.aurorasolutions.io
83
AngularJS
● AngularJS is a MVC framework that defines numerous concepts to
properly organize your web application.
● Created by Google.
● It’s a complete client side solution.
● Data binding, as in {{}}.
● DOM control structures for repeating, showing and hiding DOM
fragments.
● Support for forms and form validation.
● Attaching new behavior to DOM elements, such as DOM event
handling.
● Grouping of HTML into reusable components.
This architecture combines the advantages of traditional Web applications - dynamic behavior, networking, and easy access from the browser - with those of classic desktop client applications: Offline availability, fast response time and speed.
How many of you are backend developers?
How many of you are frontend developers?
How many of you are full stack developers?
How many of you have never used AngularJS?
How many of you have been using it for more than a year?
A problem we regularly face in this industry is an abundance of choice. We have a plethora of tools, frameworks, languages, abstractions and platforms. Choice is ultimately good for competition and innovation, however when faced with too many choices, we can feel paralysis. Rather than making a choice we feel frozen and alone with the indecision of having too many options in front of us. This isn’t necessarily an industry problem — it’s a human problem.
People often consider that creating a web application is done by creating a bunch of HTML, Javascript and CSS files together in a text editor and uploading them on the web.
Well, things have changed and in this presentation, you will see how the workflow used to deliver web applications has evolved over the past few years!
We will start by seeing how you can use Yeoman and its generators to kickstart your project. Then you will see how Bower let you manage the dependencies of your project. Downloading the JavaScript and CSS frameworks that you are using for you. After that we will have a look at Chrome Devtools in order to debug and edit our application. We will also see how to use remote debugging to inspect a web application running on a phone or a tablet.
Finally we will see how you can set up your whole continuous integration workflow with Grunt. Compilation, static code analysis, unit tests, integration tests, minification, code coverage, you name it.
If you work with JavaScript, it’s highly probable that you already know of at least some of these tools, even if you’re new to Angular.
In the beginning...
Let there be CGI
YEOMAN THE WEB'S SCAFFOLDING TOOL FOR MODERN WEBAPPS
BOWER Bower is used for dependency management, so that you no longer have to manually download and manage your scripts.
KILLER PACKAGE MANAGEMENT Need a dependency? It's just a keystroke away. It allows you to easily search for new packages via the command-line (e.g. `bower search jquery`), install them and keep them updated without needing to open your browser.
BOWER.JSON { "name":"myproject", "version":"0.1.0", "dependencies":{ "jquery":"~1.11.0", "bootstrap-sass-official":"~3.1.0" }, "devDependencies":{ "mocha":"1.14.0" } }
INSTALL NEW PACKAGE
bower install underscore
bower install jqueryui#1.10.4
bower search calendar
BOWER Bower is used for dependency management, so that you no longer have to manually download and manage your scripts.
KILLER PACKAGE MANAGEMENT Need a dependency? It's just a keystroke away. It allows you to easily search for new packages via the command-line (e.g. `bower search jquery`), install them and keep them updated without needing to open your browser.
BOWER.JSON { "name":"myproject", "version":"0.1.0", "dependencies":{ "jquery":"~1.11.0", "bootstrap-sass-official":"~3.1.0" }, "devDependencies":{ "mocha":"1.14.0" } }
INSTALL NEW PACKAGE
bower install underscore
bower install jqueryui#1.10.4
bower search calendar
GRUNT Grunt is used to build, preview and test your project, thanks to help from tasks curated by the Yeoman team and grunt-contrib.
SAMPLE TASKS test build serve
PLUGINS connect jshint mocha imagemin, svgmin, htmlmin compass karma
What is Bootstrap?
2. Bootstrap is a free collection of tools for creating websites and web applications lBootstrap contains HTML and CSS-based design templates for text, forms, buttons, navigation and other components lBootstrap also contains optional JavaScript extensions lBootstrap is open source and available on GitHub
3. Bootstrap History
Bootstrap was developed by Mark Otto and Jacob Thornton at Twitter as a framework to encourage consistency across internal tools. Before Bootstrap, various libraries were used for interface development, which led to inconsistencies and a high maintenance burden.
Bootstrap was released as an open source product in August 2011 on GitHub.
4. Why Use Bootstrap?
Mobile-first approach: Since Bootstrap 3, the framework consists of mobile-first styles throughout the entire library
Browser support: Bootstrap is supported by all popular browsers
5. Responsive web design: Bootstrap responsive CSS adjusts to Desktops, Tablets, and Mobile phones
Easy to get started: With just the knowledge of HTML and CSS anyone can get started with Bootstrap
6. What Does Bootstrap Include?
Scaffolding: Contains layout, grid system, fluid grid system, and responsive design
Base CSS: Contains classes for typography, tables, forms, buttons, images, and more
Components: Contains reusable components: icons, dropdowns, navbars, breadcrumbs, alerts, and more
7. JavaScript Plugins: Contains over a dozen custom jQuery plugins. You can include them all, or one by one Customizable Components : Customize Bootstrap's components, LESS variables, and jQuery plugins to create your own version
http://www.slideshare.net/Hazems/automated-jasmine-tests-for-java-script
http://www.slideshare.net/cebartling/javascript-tdd-with-jasmine-and-karma
Introducing Jasmine
• Testing framework
• Suites possess a hierarchical structure
• Tests as specifications
• Matchers, both built-in and custom
• Spies, a test double pattern
Jasmine suite describe("A specification suite", function() { … });
• Group specifications together using nested describe function blocks.
• Also useful for delineating context-specific specifications.
Jasmine specification describe("A specification suite", function() { it(“contains spec with an expectation", function() { expect(view.tagName).toBe(‘tr’); }); });
• Specifications are expressed with the it function.
• The description should read well in the report.
• Expectations are expressed with the expect function.
Jasmine matchers
• not • toBe • toEqual • toMatch • toBeDefined • toBeUndefined • toBeNull • toBeTruthy • toBeFalsy • toContain • toBeLessThan • toBeGreaterThan • toBeCloseTo • toThrow
http://www.slideshare.net/Hazems/automated-jasmine-tests-for-java-script
http://www.slideshare.net/cebartling/javascript-tdd-with-jasmine-and-karma
Introducing Jasmine
• Testing framework
• Suites possess a hierarchical structure
• Tests as specifications
• Matchers, both built-in and custom
• Spies, a test double pattern
Jasmine suite describe("A specification suite", function() { … });
• Group specifications together using nested describe function blocks.
• Also useful for delineating context-specific specifications.
Jasmine specification describe("A specification suite", function() { it(“contains spec with an expectation", function() { expect(view.tagName).toBe(‘tr’); }); });
• Specifications are expressed with the it function.
• The description should read well in the report.
• Expectations are expressed with the expect function.
Jasmine matchers
• not • toBe • toEqual • toMatch • toBeDefined • toBeUndefined • toBeNull • toBeTruthy • toBeFalsy • toContain • toBeLessThan • toBeGreaterThan • toBeCloseTo • toThrow
http://www.slideshare.net/Hazems/automated-jasmine-tests-for-java-script
http://www.slideshare.net/cebartling/javascript-tdd-with-jasmine-and-karma
Introducing Jasmine
• Testing framework
• Suites possess a hierarchical structure
• Tests as specifications
• Matchers, both built-in and custom
• Spies, a test double pattern
Jasmine suite describe("A specification suite", function() { … });
• Group specifications together using nested describe function blocks.
• Also useful for delineating context-specific specifications.
Jasmine specification describe("A specification suite", function() { it(“contains spec with an expectation", function() { expect(view.tagName).toBe(‘tr’); }); });
• Specifications are expressed with the it function.
• The description should read well in the report.
• Expectations are expressed with the expect function.
Jasmine matchers
• not • toBe • toEqual • toMatch • toBeDefined • toBeUndefined • toBeNull • toBeTruthy • toBeFalsy • toContain • toBeLessThan • toBeGreaterThan • toBeCloseTo • toThrow
Spectacular Test Runner for Javascript
AngularJS...
is not a JavaScript library (e.g jQuery)
is not a Platform (e.g .Net, Java) or a Language (e.g C#)
is not a Plugin or a browser extension
doesn’t abstract away HTML, CSS, or JavaScript
doesn’t require jQuery or inheritance from proprietary types
doesn’t use one-way data binding
doesn’t require boilerplate code is not that complicated
http://yeoman.io/learning/
JavaScript has “Yet another framework syndrome” (how many solutions do we have for MVC, template rendering or data-binding?), Perl has “There’s more than one way to do it” (TIMTOWTDI), and Python has “There should be one obvious way to do it”, The Zen of Python.