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
The REST Architectural Style
Resources
Representations
Actions
Security
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
Mobile applications Development - Lecture 12
Javascript
jQuery (Zepto)
useful microframeworks
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
[2015/2016] Local data storage for web-based mobile appsIvano Malavolta
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
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
Introduction
Require JS
Handlebars
Conclusions
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
Why Backbone
Events
Models
Collections
Views
Routers
Summary
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
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
JavaScript basics
JavaScript event loop
Ajax and promises
DOM interaction
JavaScript object orientation
Web Workers
Useful Microframeworks
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
This document provides an overview of HTML5 and CSS3 concepts for building web applications. It begins with defining what a web app is and its basic anatomy. It then covers new HTML5 structural tags, forms, multimedia capabilities like audio and video, offline data storage, geolocation, and canvas/SVG graphics. For CSS3, it discusses new selectors, the box model, positioning, fonts, visual effects, and media queries. Key topics are presented at a high level with examples to illustrate the main capabilities and uses of HTML5 and CSS3 for mobile web development.
This document discusses single page applications using ASP.NET MVC 4. It describes how single page applications can provide a great user experience across devices using HTML, CSS, JavaScript, and data services to retrieve and display data without reloading the entire page. Key aspects covered include using Web API and Upshot for data access, Knockout.js and Upshot for the user interface, and offline support using HTML5 application cache and local storage.
The document discusses various web technologies including HTML5, CSS, JavaScript, jQuery, ASP.NET, MVC pattern, and more. It provides an overview of each topic with definitions and examples. It also includes a brief history and future directions of web standards.
The document discusses techniques for improving the performance of mobile web apps. It covers optimizing DOM manipulation, event handling, network usage, and memory management. Some key recommendations include efficiently navigating and updating the DOM, using event delegation, throttling and debouncing events, leveraging built-in JavaScript methods, and preventing memory leaks by properly removing event listeners and DOM elements no longer in use. The document also promotes using CSS3 features like transforms, transitions, animations, and media queries instead of JavaScript for visual effects whenever possible.
Angular - Chapter 4 - Data and Event HandlingWebStackAcademy
The document provides information about Angular data binding and event handling. It discusses how interpolation can be used to connect data from a component class to its template. It also explains how property binding and event binding allow two-way communication between the component class and template. Finally, it introduces ngModel for setting up two-way data binding between an input element and a property.
Http Service will help us fetch external data, post to it, etc. We need to import the http module to make use of the http service. Let us consider an example to understand how to make use of the http service.
AJAX is a technique for building interactive web applications that allows asynchronous data retrieval and updating parts of a web page without reloading the entire page. It uses JavaScript, XML, and CSS to retrieve data from the server behind the scenes. This allows faster interactions and more responsive applications. Google Maps is a well-known example that uses AJAX to dynamically load map tiles as the user pans and zooms, avoiding full page reloads. While powerful, AJAX relies on JavaScript so some browsers and devices may not fully support it.
Backbone.js
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
jQuery provides a trivially simple interface for doing various kind of amazing effects. jQuery methods allow us to quickly apply commonly used effects with a minimum configuration. This tutorial covers all the important jQuery methods to create visual effects.
The document discusses advanced topics in Spring MVC, including annotation driven controllers, arguments and return types, and validation. It provides details on annotations like @Controller, @RequestMapping, @PathVariable, @ModelAttribute, @CookieValue, @HeaderValue, @DateTimeFormat, @RequestBody, and @ResponseBody and how they can be used to configure controller methods. It also describes what types of arguments controller methods can accept and what return types are allowed.
- Ruby on Rails is an open-source, full-stack framework for developing database-backed web applications using the Model-View-Controller pattern. It uses the Ruby programming language.
- Rails uses conventions over configurations, don't repeat yourself (DRY) principles, and an opinionated philosophy. It provides a directory structure, environment modes, and generators to quickly develop applications.
- The document provides an example of generating a bookmarks application with models, views, controllers, validations, associations, and AJAX functionality using Rails.
Spring MVC is the web component of the Spring framework. It follows the MVC pattern with controllers handling requests and generating models for views to display. Spring MVC supports annotations for mapping requests to controller methods and binding request parameters to Java objects. It provides validation, internationalization, and AJAX support through integration with other libraries. Common view technologies like JSP are supported through tags that integrate with Spring MVC.
Which ORM (Object-relational mapping) library should I use? What should I use for my template language? Should I use MVC (Model/View/Controller) or some other pattern? What unit testing framework should I use? What database engine should I use?
Unfortunately, these questions make it difficult to start web projects. Therefore, Ruby on Rails has made all of these decisions already; you can just get started. And it's extensible enough that if one of the default choices doesn't work for you, just choose a different library. How does Ruby on Rails answer these questions? How does it use the Ruby language to help make your development even faster? Come and find out!
jQuery is a fast, small, and feature-rich JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax interactions much simpler. It works across browsers and supports DOM element selection, traversal and modification, events, effects, animations, AJAX, and extensibility through plugins. jQuery can be included via a JavaScript file link and has utility functions prefixed with $ as well as chainable command functions accessed via $.
This document summarizes the basics of Spring MVC, including the model-view-controller (MVC) pattern it uses. It describes the main components - the model which contains application data, the view which displays data to the user, and the controller which handles requests and coordinates the model and view. It provides examples of how controllers work using annotations like @RequestMapping and how they can return different types of responses. It also briefly mentions other related concepts like interceptors, exceptions, and static resources.
The document describes the Spring MVC flow as:
1. A request is received by the DispatcherServlet front controller.
2. The DispatcherServlet uses the HandlerMapping to determine the associated controller and transfers the request.
3. The controller processes the request and returns a ModelAndView containing model data and view name.
The document provides an overview of HTTP, CGI, servlets, JSPs, and AJAX. It describes how HTTP works for client-server communication. It explains how CGI was used for web server and application integration but had performance and manageability issues. It introduces the servlet/JSP model and web application container as an improved approach. It also gives a brief introduction to using AJAX.
AngularJS is a JavaScript MVC framework that allows developers to create dynamic web applications. It uses HTML as the template language and allows two-way data binding between models and views. Some key features include directives, modules, controllers, services and filters. AngularJS applications can be unit tested and services can be injected for dependency injection. Routing in AngularJS allows single page applications without reloading the entire page.
Spring MVC 3.0 Framework
Objective:
1. Introduce Spring MVC Module
2. Learn about Spring MVC Components (Dispatcher, Handler mapping, Controller, View Resolver, View)
Slides:
1. What Is Spring?
2. Why use Spring?
3. By the way, just what is MVC?
4. MVC Architecture
5. Spring MVC Architecture
7. Spring MVC Components
8. DispatcherServlet
9. DispatcherServlet Architecture.........
.........................................................
Lift is a free Scala-based web application framework that provides tools to make writing secure, interactive, and scalable web applications easier. It uses a view-first approach where the view is chosen first and then dynamic content is included. Key features include concise code due to Scala, high performance, and security through opaque identifiers. It is organized into core, persistence, and modules subprojects.
Slides of a talk of a seminars series I gave at WebRatio in January 2014.
I implemented many best practices and advices in this presentation in a generic app template available here: https://github.com/iivanoo/cordovaboilerplate
MV* presentation frameworks in Javascript: en garde, pret, allez!Roberto Messora
HTML5 is the playing area, the strip, Javascript presentation frameworks are the fences and they are fierce and proud. In this presentation we will attend an interesting match between two of the emerging contenders in the MV* family: KnockoutJS and BackboneJS. We'll try to understand how they solve the same issues in modern web software development to better decide which one is suitable in our scenario.
This document provides an overview of HTML5 and CSS3 concepts for building web applications. It begins with defining what a web app is and its basic anatomy. It then covers new HTML5 structural tags, forms, multimedia capabilities like audio and video, offline data storage, geolocation, and canvas/SVG graphics. For CSS3, it discusses new selectors, the box model, positioning, fonts, visual effects, and media queries. Key topics are presented at a high level with examples to illustrate the main capabilities and uses of HTML5 and CSS3 for mobile web development.
This document discusses single page applications using ASP.NET MVC 4. It describes how single page applications can provide a great user experience across devices using HTML, CSS, JavaScript, and data services to retrieve and display data without reloading the entire page. Key aspects covered include using Web API and Upshot for data access, Knockout.js and Upshot for the user interface, and offline support using HTML5 application cache and local storage.
The document discusses various web technologies including HTML5, CSS, JavaScript, jQuery, ASP.NET, MVC pattern, and more. It provides an overview of each topic with definitions and examples. It also includes a brief history and future directions of web standards.
The document discusses techniques for improving the performance of mobile web apps. It covers optimizing DOM manipulation, event handling, network usage, and memory management. Some key recommendations include efficiently navigating and updating the DOM, using event delegation, throttling and debouncing events, leveraging built-in JavaScript methods, and preventing memory leaks by properly removing event listeners and DOM elements no longer in use. The document also promotes using CSS3 features like transforms, transitions, animations, and media queries instead of JavaScript for visual effects whenever possible.
Angular - Chapter 4 - Data and Event HandlingWebStackAcademy
The document provides information about Angular data binding and event handling. It discusses how interpolation can be used to connect data from a component class to its template. It also explains how property binding and event binding allow two-way communication between the component class and template. Finally, it introduces ngModel for setting up two-way data binding between an input element and a property.
Http Service will help us fetch external data, post to it, etc. We need to import the http module to make use of the http service. Let us consider an example to understand how to make use of the http service.
AJAX is a technique for building interactive web applications that allows asynchronous data retrieval and updating parts of a web page without reloading the entire page. It uses JavaScript, XML, and CSS to retrieve data from the server behind the scenes. This allows faster interactions and more responsive applications. Google Maps is a well-known example that uses AJAX to dynamically load map tiles as the user pans and zooms, avoiding full page reloads. While powerful, AJAX relies on JavaScript so some browsers and devices may not fully support it.
Backbone.js
This presentation has been developed in the context of the Mobile Applications Development course at the Computer Science Department of the University of L’Aquila (Italy).
http://www.di.univaq.it/malavolta
jQuery provides a trivially simple interface for doing various kind of amazing effects. jQuery methods allow us to quickly apply commonly used effects with a minimum configuration. This tutorial covers all the important jQuery methods to create visual effects.
The document discusses advanced topics in Spring MVC, including annotation driven controllers, arguments and return types, and validation. It provides details on annotations like @Controller, @RequestMapping, @PathVariable, @ModelAttribute, @CookieValue, @HeaderValue, @DateTimeFormat, @RequestBody, and @ResponseBody and how they can be used to configure controller methods. It also describes what types of arguments controller methods can accept and what return types are allowed.
- Ruby on Rails is an open-source, full-stack framework for developing database-backed web applications using the Model-View-Controller pattern. It uses the Ruby programming language.
- Rails uses conventions over configurations, don't repeat yourself (DRY) principles, and an opinionated philosophy. It provides a directory structure, environment modes, and generators to quickly develop applications.
- The document provides an example of generating a bookmarks application with models, views, controllers, validations, associations, and AJAX functionality using Rails.
Spring MVC is the web component of the Spring framework. It follows the MVC pattern with controllers handling requests and generating models for views to display. Spring MVC supports annotations for mapping requests to controller methods and binding request parameters to Java objects. It provides validation, internationalization, and AJAX support through integration with other libraries. Common view technologies like JSP are supported through tags that integrate with Spring MVC.
Which ORM (Object-relational mapping) library should I use? What should I use for my template language? Should I use MVC (Model/View/Controller) or some other pattern? What unit testing framework should I use? What database engine should I use?
Unfortunately, these questions make it difficult to start web projects. Therefore, Ruby on Rails has made all of these decisions already; you can just get started. And it's extensible enough that if one of the default choices doesn't work for you, just choose a different library. How does Ruby on Rails answer these questions? How does it use the Ruby language to help make your development even faster? Come and find out!
jQuery is a fast, small, and feature-rich JavaScript library that makes HTML document traversal and manipulation, event handling, animation, and Ajax interactions much simpler. It works across browsers and supports DOM element selection, traversal and modification, events, effects, animations, AJAX, and extensibility through plugins. jQuery can be included via a JavaScript file link and has utility functions prefixed with $ as well as chainable command functions accessed via $.
This document summarizes the basics of Spring MVC, including the model-view-controller (MVC) pattern it uses. It describes the main components - the model which contains application data, the view which displays data to the user, and the controller which handles requests and coordinates the model and view. It provides examples of how controllers work using annotations like @RequestMapping and how they can return different types of responses. It also briefly mentions other related concepts like interceptors, exceptions, and static resources.
The document describes the Spring MVC flow as:
1. A request is received by the DispatcherServlet front controller.
2. The DispatcherServlet uses the HandlerMapping to determine the associated controller and transfers the request.
3. The controller processes the request and returns a ModelAndView containing model data and view name.
The document provides an overview of HTTP, CGI, servlets, JSPs, and AJAX. It describes how HTTP works for client-server communication. It explains how CGI was used for web server and application integration but had performance and manageability issues. It introduces the servlet/JSP model and web application container as an improved approach. It also gives a brief introduction to using AJAX.
AngularJS is a JavaScript MVC framework that allows developers to create dynamic web applications. It uses HTML as the template language and allows two-way data binding between models and views. Some key features include directives, modules, controllers, services and filters. AngularJS applications can be unit tested and services can be injected for dependency injection. Routing in AngularJS allows single page applications without reloading the entire page.
Spring MVC 3.0 Framework
Objective:
1. Introduce Spring MVC Module
2. Learn about Spring MVC Components (Dispatcher, Handler mapping, Controller, View Resolver, View)
Slides:
1. What Is Spring?
2. Why use Spring?
3. By the way, just what is MVC?
4. MVC Architecture
5. Spring MVC Architecture
7. Spring MVC Components
8. DispatcherServlet
9. DispatcherServlet Architecture.........
.........................................................
Lift is a free Scala-based web application framework that provides tools to make writing secure, interactive, and scalable web applications easier. It uses a view-first approach where the view is chosen first and then dynamic content is included. Key features include concise code due to Scala, high performance, and security through opaque identifiers. It is organized into core, persistence, and modules subprojects.
Slides of a talk of a seminars series I gave at WebRatio in January 2014.
I implemented many best practices and advices in this presentation in a generic app template available here: https://github.com/iivanoo/cordovaboilerplate
MV* presentation frameworks in Javascript: en garde, pret, allez!Roberto Messora
HTML5 is the playing area, the strip, Javascript presentation frameworks are the fences and they are fierce and proud. In this presentation we will attend an interesting match between two of the emerging contenders in the MV* family: KnockoutJS and BackboneJS. We'll try to understand how they solve the same issues in modern web software development to better decide which one is suitable in our scenario.
Backbone.js is a JavaScript framework that provides structure and conventions for developing single-page web applications. It helps avoid unnecessary DOM manipulations by separating the application state from the DOM using models. Views observe changes to models and re-render the DOM accordingly. Models can be synced to a back-end API to persist data. Backbone.js uses an MVVM pattern with models representing the application state, views for rendering, and the DOM acting as the view model.
Knockout implementing mvvm in java script with knockoutAndoni Arroyo
This document discusses implementing the MVVM pattern in JavaScript using Knockout.js. It begins with an introduction to MVVM and the benefits of the pattern. It then provides an overview of Knockout.js and demonstrates how to connect views to view models, use computed observables and observable arrays, implement control flow bindings and interactive bindings, access external data with templates, and create custom bindings. The presentation includes examples of working with Knockout.js.
This document outlines a plan to introduce the Backbone.js JavaScript framework. It begins with an introduction to MVC and other models in JavaScript. It then discusses third party libraries that can be used with Backbone like jQuery. The rest of the document details the core components of Backbone - Models, Collections, Views and controllers. It provides examples of implementing each component and discusses benefits like easier maintenance and decoupling of logic from the user interface.
MVC is a framework that separates an application into three main components: the model, the view, and the controller. The model manages the application's data logic, the view displays the user interface, and the controller handles input and converts it to commands for the model and view. MVC frameworks aim to create loosely coupled and testable web applications and help organize complex projects. ASP.NET MVC was developed by Microsoft as an alternative to Web Forms that embraces the MVC pattern for building dynamic websites using the .NET Framework.
The document provides an overview of building quick AJAX applications using Django and Backbone.js. It begins with an agenda that introduces Backbone.js and builds an AJAX app in five acts, followed by a workshop. It then provides details on using Backbone.js, including its implementation of the MVC pattern, models, collections, views, and templates. Finally, it walks through building a sample contacts app with Django and Backbone.js to demonstrate how the pieces fit together.
The document discusses design patterns and architectural patterns, specifically focusing on the model-view-controller (MVC) pattern. It provides an overview of MVC, explaining the model, view, and controller components. It then describes how MVC is implemented in ASP.NET MVC, including the request flow and separation of concerns. Some key benefits of ASP.NET MVC like clean URLs, testability, and extensibility are also summarized.
Raybiztech Guide To Backbone Javascript Libraryray biztech
This document provides an overview of the Backbone.js framework for building single-page web applications. It describes the core components of Backbone - Models, Collections, Views and Routers. Models represent individual data records, Collections hold groups of related Models, Views handle displaying data to the user, and Routers provide URL routing. Examples are given of defining each component and using them to build a basic TODO application, including fetching data from a backend server using a RESTful WCF service and handling user interactions.
Getting started with MVC 5 and Visual Studio 2013Thomas Robbins
The ASP.NET MVC Framework provides a powerful Model View Controller (MVC) approach to building web applications and provides separation of concerns, control over HTML output, intuitive URLs, and increased testability. We will start by looking at the what and why of ASP.NET MVC. Then we will explore the various pieces of ASP.NET MVC including routes, controllers, actions, and views. If you are looking to get started with MVC then don’t miss this session.
Backbone.js is a client-side MVC framework that provides structure and connects to RESTful APIs. It includes models to hold and sync data, views to render models and handle DOM events, and a router to handle application states and back/forward buttons. The framework is lightweight at 6.3kb gzipped and focuses models, views, and controllers to build single page applications that are organized and connect to RESTful services.
Introduction to Backbone.js for Rails developersAoteaStudios
Backbone.js is a small JavaScript library that helps organize front-end code using an MVC pattern. It does not dictate HTML structure or widgets, but rather provides structure for JavaScript code and ties together DOM events, views, and CRUD operations on models and collections. Key components include controllers, views, models, collections, and support for RESTful persistence via Backbone.sync and JSON. Templates can be used to render views and manage data display, and various templating engines are supported.
The document discusses the MVC architecture pattern and how it is commonly implemented using Java technologies like Servlets, JSPs, and frameworks like Struts. It describes the core components of MVC - the Model, View, and Controller layers. The Model contains the business logic and data access code. The View is responsible for presentation and user interface. The Controller accepts user input and interfaces with the Model to handle requests. Frameworks like Struts provide libraries and utilities to simplify building applications using the MVC pattern.
This document provides an overview of ASP.NET MVC including its history, the MVC pattern, controllers, views, routing, and Razor views. It discusses the Model-View-Controller components, controller actions, action results, and action filters. It also covers view helpers, layouts, sections, and Razor syntax features.
ASP.NET MVC is a framework that allows developers to apply the MVC pattern to ASP.NET applications. This separates the application into three components - the Model, View, and Controller. The Controller handles requests and interacts with the Model, which contains business logic. The View displays the user interface and data from the Model. This separation of concerns allows for better reusability and easier testing compared to the standard ASP.NET web forms model.
Backbonification for dummies - Arrrrug 10/1/2012Dimitri de Putte
This presentation was given on the Arrrrug meeting as a first introduction to backbone.js in combination with rails after playing a couple of weeks with backbone.js.
Note: It is really on introduction level, in the meantime, my level of backbone.js and coffeescript have increased.
Apache Cayenne is an open source object-relational mapping framework for Java. It has been an Apache project since 2006 and has over 17 committers and 9 project management committee members. Cayenne provides tools for mapping database schemas to Java objects and vice versa, as well as tools for querying, caching query results, and handling object lifecycles. It aims to simplify working with relational databases for Java developers in a similar way to how Enterprise Objects Framework simplified it for Objective-C developers.
This document provides an overview of AngularJS, including what it is, how it uses MVC architecture, data binding, views, controllers, models, modules, routing, and more. Some key points are:
- AngularJS is an open-source JavaScript framework that uses MVC pattern for building dynamic web apps
- It uses data binding so changes to models and data are automatically reflected in views
- Views use directives like ng-repeat and ng-if to interact with models and controllers
- Controllers contain business logic and models contain application data
- Modules are used to separate an app into components and routing manages multiple views
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
The document discusses conducting experiments on the software architecture of robotic systems. It describes three experiments:
1) Identifying and evaluating "green" architectural tactics for energy-efficient robotics software by mining the ROS ecosystem.
2) Empirically exploring the performance and energy trade-offs of computation offloading for ground robots communicating over WiFi.
3) Analyzing how different 2D SLAM algorithms impact resource utilization in ROS-based systems, including metrics like energy consumption, CPU usage, memory usage, and map quality.
The slides of a short presentation I gave about my experience about working in the context of EU grants. It contains tips and tricks for the before/during/after phases of a EU project.
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
The Green Lab allows students to measure real software products for industry-driven experiments focusing on energy efficiency, performance, and other areas. It provides infrastructure for experimenting on software, including a master course, platform, and collaboration platform. The lab contains a green computing cluster managed by Proxmox virtualization software, which hosts various virtual machines for running experiments. Hardware in the cluster includes servers, workstations, and a smartphone test farm for controlling Android devices remotely. Students use tools like Android Runner and wattsup meters to automate experiments measuring aspects like energy consumption of mobile apps. The Green Lab also serves as a learning environment where students conduct experiments for class projects and contribute to open source tools like Android Runner.
This document discusses software sustainability from Ivano Malavolta, an assistant professor. It discusses how ICT is unsustainable due to the large amounts of energy consumed by platforms like YouTube. It also discusses research on improving the energy efficiency of software, including a case study on the KPMG software platform. Additionally, it discusses experiments on the energy impact of progressive web apps and service workers. Finally, it proposes using design decision maps to help frame sustainability concerns when planning software projects.
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
Slides of my presentation at the NIER track of the 41th International Conference on Software Engineering (ICSE 2019).
The paper is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2019_NAPPA.pdf
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
Slides of my presentation at the Research track of the 34th International Conference on Software Maintenance and Evolution (ICSME 2018).
The full paper is available here: http://www.ivanomalavolta.com/files/papers/ICSME_2018.pdf
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
Slides of my presentation at the Journal first track of the 40th International Conference on Software Engineering (ICSE 2018).
The accompanying extended abstract is available here: http://www.ivanomalavolta.com/files/papers/ICSE_2018_JournalFirst.pdf
The original TSE paper is available here: http://www.ivanomalavolta.com/files/papers/TSE_2017.pdf
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
This document provides an introduction to modeling behavior using UML state machines. It discusses key concepts like states, transitions, events, and state types. States represent when an object is active and can execute activities. Transitions change the object's state in response to events and can include actions. Event types include signals, operation calls, time-based and change events. The document also covers state machine notation including initial/final states, decisions nodes, parallel/orthogonal states, history states, and entry/exit points. An example state machine is provided and questions are asked to help understand state machine execution order and values.
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
This presentation is about a lecture I gave within the "Software Design" course of the Computer Science bachelor program, of the Vrije Universiteit Amsterdam.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
Slides of my talk given at LAC 2017, the annual conference on software architecture in the Netherlands (https://www.laccongres.nl).
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.infn.it/.
http://www.ivanomalavolta.com
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
This document provides an introduction to software architecture concepts. It defines software architecture as the selection of structural elements and their interactions within a system. Common architectural styles are described, including Model-View-Controller (MVC), publish-subscribe, layered, shared data, peer-to-peer, and pipes and filters. Tactics are introduced as design decisions that refine styles to control quality attributes. The document emphasizes that architectural styles solve recurring problems and promote desired qualities like performance, security, and maintainability.
This presentation is about a lecture I gave within the "Software systems and services" immigration course at the Gran Sasso Science Institute, L'Aquila (Italy): http://cs.gssi.it/.
http://www.ivanomalavolta.com
Designing Low-Latency Systems with Rust and ScyllaDB: An Architectural Deep DiveScyllaDB
Want to learn practical tips for designing systems that can scale efficiently without compromising speed?
Join us for a workshop where we’ll address these challenges head-on and explore how to architect low-latency systems using Rust. During this free interactive workshop oriented for developers, engineers, and architects, we’ll cover how Rust’s unique language features and the Tokio async runtime enable high-performance application development.
As you explore key principles of designing low-latency systems with Rust, you will learn how to:
- Create and compile a real-world app with Rust
- Connect the application to ScyllaDB (NoSQL data store)
- Negotiate tradeoffs related to data modeling and querying
- Manage and monitor the database for consistently low latencies
Procurement Insights Cost To Value Guide.pptxJon Hansen
Procurement Insights integrated Historic Procurement Industry Archives, serves as a powerful complement — not a competitor — to other procurement industry firms. It fills critical gaps in depth, agility, and contextual insight that most traditional analyst and association models overlook.
Learn more about this value- driven proprietary service offering here.
Enhancing ICU Intelligence: How Our Functional Testing Enabled a Healthcare I...Impelsys Inc.
Impelsys provided a robust testing solution, leveraging a risk-based and requirement-mapped approach to validate ICU Connect and CritiXpert. A well-defined test suite was developed to assess data communication, clinical data collection, transformation, and visualization across integrated devices.
Generative Artificial Intelligence (GenAI) in BusinessDr. Tathagat Varma
My talk for the Indian School of Business (ISB) Emerging Leaders Program Cohort 9. In this talk, I discussed key issues around adoption of GenAI in business - benefits, opportunities and limitations. I also discussed how my research on Theory of Cognitive Chasms helps address some of these issues
AI and Data Privacy in 2025: Global TrendsInData Labs
In this infographic, we explore how businesses can implement effective governance frameworks to address AI data privacy. Understanding it is crucial for developing effective strategies that ensure compliance, safeguard customer trust, and leverage AI responsibly. Equip yourself with insights that can drive informed decision-making and position your organization for success in the future of data privacy.
This infographic contains:
-AI and data privacy: Key findings
-Statistics on AI data privacy in the today’s world
-Tips on how to overcome data privacy challenges
-Benefits of AI data security investments.
Keep up-to-date on how AI is reshaping privacy standards and what this entails for both individuals and organizations.
Andrew Marnell: Transforming Business Strategy Through Data-Driven InsightsAndrew Marnell
With expertise in data architecture, performance tracking, and revenue forecasting, Andrew Marnell plays a vital role in aligning business strategies with data insights. Andrew Marnell’s ability to lead cross-functional teams ensures businesses achieve sustainable growth and operational excellence.
TrustArc Webinar: Consumer Expectations vs Corporate Realities on Data Broker...TrustArc
Most consumers believe they’re making informed decisions about their personal data—adjusting privacy settings, blocking trackers, and opting out where they can. However, our new research reveals that while awareness is high, taking meaningful action is still lacking. On the corporate side, many organizations report strong policies for managing third-party data and consumer consent yet fall short when it comes to consistency, accountability and transparency.
This session will explore the research findings from TrustArc’s Privacy Pulse Survey, examining consumer attitudes toward personal data collection and practical suggestions for corporate practices around purchasing third-party data.
Attendees will learn:
- Consumer awareness around data brokers and what consumers are doing to limit data collection
- How businesses assess third-party vendors and their consent management operations
- Where business preparedness needs improvement
- What these trends mean for the future of privacy governance and public trust
This discussion is essential for privacy, risk, and compliance professionals who want to ground their strategies in current data and prepare for what’s next in the privacy landscape.
AI EngineHost Review: Revolutionary USA Datacenter-Based Hosting with NVIDIA ...SOFTTECHHUB
I started my online journey with several hosting services before stumbling upon Ai EngineHost. At first, the idea of paying one fee and getting lifetime access seemed too good to pass up. The platform is built on reliable US-based servers, ensuring your projects run at high speeds and remain safe. Let me take you step by step through its benefits and features as I explain why this hosting solution is a perfect fit for digital entrepreneurs.
Mobile App Development Company in Saudi ArabiaSteve Jonas
EmizenTech is a globally recognized software development company, proudly serving businesses since 2013. With over 11+ years of industry experience and a team of 200+ skilled professionals, we have successfully delivered 1200+ projects across various sectors. As a leading Mobile App Development Company In Saudi Arabia we offer end-to-end solutions for iOS, Android, and cross-platform applications. Our apps are known for their user-friendly interfaces, scalability, high performance, and strong security features. We tailor each mobile application to meet the unique needs of different industries, ensuring a seamless user experience. EmizenTech is committed to turning your vision into a powerful digital product that drives growth, innovation, and long-term success in the competitive mobile landscape of Saudi Arabia.
Big Data Analytics Quick Research Guide by Arthur MorganArthur Morgan
This is a Quick Research Guide (QRG).
QRGs include the following:
- A brief, high-level overview of the QRG topic.
- A milestone timeline for the QRG topic.
- Links to various free online resource materials to provide a deeper dive into the QRG topic.
- Conclusion and a recommendation for at least two books available in the SJPL system on the QRG topic.
QRGs planned for the series:
- Artificial Intelligence QRG
- Quantum Computing QRG
- Big Data Analytics QRG
- Spacecraft Guidance, Navigation & Control QRG (coming 2026)
- UK Home Computing & The Birth of ARM QRG (coming 2027)
Any questions or comments?
- Please contact Arthur Morgan at [email protected].
100% human made.
What is Model Context Protocol(MCP) - The new technology for communication bw...Vishnu Singh Chundawat
The MCP (Model Context Protocol) is a framework designed to manage context and interaction within complex systems. This SlideShare presentation will provide a detailed overview of the MCP Model, its applications, and how it plays a crucial role in improving communication and decision-making in distributed systems. We will explore the key concepts behind the protocol, including the importance of context, data management, and how this model enhances system adaptability and responsiveness. Ideal for software developers, system architects, and IT professionals, this presentation will offer valuable insights into how the MCP Model can streamline workflows, improve efficiency, and create more intuitive systems for a wide range of use cases.
Book industry standards are evolving rapidly. In the first part of this session, we’ll share an overview of key developments from 2024 and the early months of 2025. Then, BookNet’s resident standards expert, Tom Richardson, and CEO, Lauren Stewart, have a forward-looking conversation about what’s next.
Link to recording, presentation slides, and accompanying resource: https://bnctechforum.ca/sessions/standardsgoals-for-2025-standards-certification-roundup/
Presented by BookNet Canada on May 6, 2025 with support from the Department of Canadian Heritage.
HCL Nomad Web – Best Practices and Managing Multiuser Environmentspanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-nomad-web-best-practices-and-managing-multiuser-environments/
HCL Nomad Web is heralded as the next generation of the HCL Notes client, offering numerous advantages such as eliminating the need for packaging, distribution, and installation. Nomad Web client upgrades will be installed “automatically” in the background. This significantly reduces the administrative footprint compared to traditional HCL Notes clients. However, troubleshooting issues in Nomad Web present unique challenges compared to the Notes client.
Join Christoph and Marc as they demonstrate how to simplify the troubleshooting process in HCL Nomad Web, ensuring a smoother and more efficient user experience.
In this webinar, we will explore effective strategies for diagnosing and resolving common problems in HCL Nomad Web, including
- Accessing the console
- Locating and interpreting log files
- Accessing the data folder within the browser’s cache (using OPFS)
- Understand the difference between single- and multi-user scenarios
- Utilizing Client Clocking
Linux Support for SMARC: How Toradex Empowers Embedded DevelopersToradex
Toradex brings robust Linux support to SMARC (Smart Mobility Architecture), ensuring high performance and long-term reliability for embedded applications. Here’s how:
• Optimized Torizon OS & Yocto Support – Toradex provides Torizon OS, a Debian-based easy-to-use platform, and Yocto BSPs for customized Linux images on SMARC modules.
• Seamless Integration with i.MX 8M Plus and i.MX 95 – Toradex SMARC solutions leverage NXP’s i.MX 8 M Plus and i.MX 95 SoCs, delivering power efficiency and AI-ready performance.
• Secure and Reliable – With Secure Boot, over-the-air (OTA) updates, and LTS kernel support, Toradex ensures industrial-grade security and longevity.
• Containerized Workflows for AI & IoT – Support for Docker, ROS, and real-time Linux enables scalable AI, ML, and IoT applications.
• Strong Ecosystem & Developer Support – Toradex offers comprehensive documentation, developer tools, and dedicated support, accelerating time-to-market.
With Toradex’s Linux support for SMARC, developers get a scalable, secure, and high-performance solution for industrial, medical, and AI-driven applications.
Do you have a specific project or application in mind where you're considering SMARC? We can help with Free Compatibility Check and help you with quick time-to-market
For more information: https://www.toradex.com/computer-on-modules/smarc-arm-family
The Evolution of Meme Coins A New Era for Digital Currency ppt.pdfAbi john
Analyze the growth of meme coins from mere online jokes to potential assets in the digital economy. Explore the community, culture, and utility as they elevate themselves to a new era in cryptocurrency.
Artificial Intelligence is providing benefits in many areas of work within the heritage sector, from image analysis, to ideas generation, and new research tools. However, it is more critical than ever for people, with analogue intelligence, to ensure the integrity and ethical use of AI. Including real people can improve the use of AI by identifying potential biases, cross-checking results, refining workflows, and providing contextual relevance to AI-driven results.
News about the impact of AI often paints a rosy picture. In practice, there are many potential pitfalls. This presentation discusses these issues and looks at the role of analogue intelligence and analogue interfaces in providing the best results to our audiences. How do we deal with factually incorrect results? How do we get content generated that better reflects the diversity of our communities? What roles are there for physical, in-person experiences in the digital world?
3. Why Backbone
We are building apps, not web sites
If your code is not structured:
• it is extremely easy that your web app becomes a
big mess of HTML + CSS + JavaScript
• maintaining each part of your app asks for a
deep analysis of ALL its aspects (logic, presentation, etc.)
• you may waste a whole day due to a missing
<
5. What we want to avoid
Imagine yourself trying to change
• how a movie should be rendered in your app
• the REST API providing info about movies
6. Why Backbone
From the Backbone website...
manipulate
the DOM
lists
of models
represent
data
7. Why Backbone
Additionally, Backbone provides also features for:
sync
for managing how to persist models (default is via REST)
events
for managing how data and control are exchanged within your app
router
for managing the interaction flow among views
10. Events
Any object communicates with other objects via events
It gives the object the ability to bind and trigger custom named events
It is extremely useful for exchanging data and control among objects
17. Models
Models represent your data
Each model represents a data type in your app, together with the logic surrounding it, like:
• persistence
• conversions
• validation
• computed properties
• access control
MVC: Notify their observers about
state using the Observer pattern
18. Models
You extend Backbone.Model with your domain-specific methods, and Model provides a basic set of
functionality for managing changes, like:
• getter and setter
• id
• constructor
• REST-based persistence
19. Example of model
custom method
g an attribute
event fired when
“color” changes
custom method
invocation
20. Model constructor and attributes
initialize()
it is triggered every time you create a new instance of a model
it works also for collections and views
it can take a JS object for setting also attributes
get() & set()
they are used to set and retrieve the value of certain attributes
defaults
a property named 'defaults' in your model declaration
22. Model persistence
Backbone.sync
is the function that Backbone calls every time it attempts to read or save a model
By default, it uses Ajax to make a REST-ish request to a server
Resources represented
as JSON strings
23. Sync signature
sync(method,
model,
[options])
method
the CRUD method ("create“, "read“, "update", or "delete")
model
the model (or collection) to be synced
options
success and error callbacks, and all other jQuery request options
example of overriden sync:
http://bit.ly/KWdxNN
Sync returns a jQuery XMLHttpRequest (jqXHR) object
It implements the Promise
interface
24. Sync usage
Normally you will not use the sync method directly, you will do it implicitly when you call one of these
methods
Model
• fetch: gets the most up-to-date values of the model instance
• save: persists the model instance
• destroy: deletes the model instance
Collection
• fetch: gets all the models of the collection from the server
• create: creates a model, saves it to the server and adds it to the collection
25. Overriding sync
You can override it in order to use a different persistence strategy, such as:
• WebSockets
• Local Storage
• WebSQL
Backbone.sync is the default global function that all models use unless the models have a sync method
specifically set
28. Collections
Collections are ordered sets of models
You can:
• bind change events to be notified when any model in the collection has been modified
• listen for add and remove events
• fetch the collection from the server (or other persistence layers)
• find models or filter collections themeselves
The model attribute of a collection represents the kind of model that can be stored in it
Any event that is triggered on a model in a collection
will also be triggered on the collection directly
MVC: Notify their observers
about state using the Observer
pattern (same as models)
32. Views
Views represent and manage the visible parts of your application
They are also used to
• listen to interaction events
• and react accordingly
views can be rendered at any time, and inserted into the DOM
you get high-performance UI rendering
with as few reflows and repaints as possible
MVC: observe models, and update
itself according to the state of the
models + manage user inputs (it’s a
controller, to this sense)
33. Interaction with the DOM
All views refer to a DOM element at all times, even if they are already in the page or not
this.el is a reference to the DOM element, it is created from:
tagName
for example body,
ul,
span,
img
className
class name of some element within the DOM
id
id of an element within the DOM
If none of them is specified,
this.el is an empty <div>
34. Rendering the view
The render() method is used to update the this.el element with the new HTML
The default implementation of render() is a no-op
à you have to override it to update this.el with your HTML code
Backbone is agnostic with respect to your code in render(), however...
you are STRONGLY encouraged to use a
JavaScript templating library here
39. The router
Backbone.Router
provides methods for routing client-side pages,
and connecting them to actions and events
At a minimum, a router is composed of two main parts:
routes
an hash that pairs routes to actions
actions
JS functions triggered when certain routes are navigated
40. Routing
Every router contains an hash that maps routes to functions on your router
URLs fragments can also contain dynamic data via Backbone-specific URL parts:
parameter
(:param)
match a single URL component between slashes
splat
(*fragment)
match any number of URL components
42. History
History serves as a global router to
1. handle hashchange events
2. match the appropriate route
3. trigger callbacks
You should never access it directly, you just need call Backbone.history.start()
to begin
monitoring hashchange events, and dispatching routes in your app
Call Backbone.history.navigate(ROUTE_NAME,
{trigger:
true}); to activate a specific route
of the router
Technically, it uses the HTML5
History API to listen to to its job
For older browsers, it uses URL hash
fragments as fallback
45. Classical workflow
1. You dig into JSON objects
2. Look up elements in the DOM
3. Update the HTML by hand
46. Backbone-based workflow
• You organize your interface into logical views backed by models
• Each view can be updated independently when the model changes,
without having to redraw the page
You can bind your view‘s
render() function to the
model‘s "change” event
à
now everywhere that
model data is displayed in the
UI, it is always immediately up
to date
47. Is Backbone real MVC?
Let’s look at the description of the Model-View-Presenter pattern on Wikipedia:
an interface defining the data to be displayed or otherwise acted upon in the user interface
passive interface that displays data (the model) and routes user commands (events) to the
presenter to act upon that data
acts upon the model and the view. It retrieves data from repositories (the model), and formats it
for display in the view
Model
View
Presenter