Anatomy of a web app
HTML5
CSS3
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
Introduction
Web Storage
WebSQL
IndexedDB
File System Access
Final Considerations
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 document discusses various technologies for building web applications, including HTML5. It begins by explaining the anatomy of a web app, including the server-side components and use of backend services. It then covers different types of apps - native, web, and hybrid. A large portion of the document focuses on HTML5, describing new structural elements, forms, multimedia capabilities like audio and video, local storage options, and geolocation. It concludes by mentioning technologies like PhoneGap/Cordova for building cross-platform apps and WebSockets for real-time connections.
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 has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2016.
http://www.ivanomalavolta.com
The document provides information about HTML Template Language (HTL) in AEM, including what HTL is, why it was introduced, its main features and syntax. HTL is the preferred templating language for AEM that enforces separation of concerns between presentation and business logic. It uses HTML5 syntax along with additional data attributes and expressions to add dynamic functionality.
Angular jS Introduction by Google
A to Z angular introduction about Angular Framework which is single page application.
Angular JS and angular is very important for single page applications.
SPSNH 2014 - The SharePoint & jQueryGuideMark Rackley
This document provides an agenda and overview for a SharePoint and jQuery event. It discusses what jQuery is and why it is useful for SharePoint. It covers jQuery and SharePoint basics, deployment options, development best practices, and examples of commonly used jQuery methods. The presentation aims to demonstrate how jQuery can be used to modify and enhance the user experience of SharePoint.
This document discusses client-side libraries in AEM and best practices for their use. It explains that clientlibs allow logical organization of JavaScript and CSS files and avoid duplicate includes. Key points covered include using cq:ClientLibraryFolders to define libraries, including them via cq:includeClientLib, dependencies vs embedding, debugging tools, themes, and minification. Best practices include placing component code in clientlibs, embedding to reduce requests, requesting from /etc, defining dependencies, and minification on publish.
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...SPTechCon
The document summarizes Peter Serzo's presentation on the client-side story and object model in SharePoint 2010. It discusses how the client object model allows accessing SharePoint data through managed code, Silverlight, JavaScript and web services. It provides examples of using the client object model to upload files, retrieve list data, and get user profile properties. It also covers using jQuery templates and REST to display and format list data on a page.
Model View Controller (MVC) is a software architectural pattern commonly used for developing web applications. It promotes separation of concerns by dividing the application into three interconnected parts - the Model, the View, and the Controller. The Model manages the data logic and rules of the application. The View displays the user interface and presentation logic. The Controller interprets user input, communicates between the Model and View, and controls the flow of data and functionality. MVC enables modular and reusable application components and code and simplifies application maintenance. Django is a web framework that follows the MVT (Model Template View) pattern, which is very similar to MVC.
This document discusses HTML5 and web application development. It begins with an overview of the anatomy of a web app, including setting up the server, using data services, and device detection. It then covers HTML5 features like new semantic tags, forms, multimedia capabilities using audio, video, and canvas. JavaScript APIs are discussed for geolocation, web storage, web SQL, and web workers. The document emphasizes that the mobile web is the most viable platform for cross-device applications.
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
This document provides an overview of designing complex applications using HTML5 and KnockoutJS. It discusses HTML5 and why it is useful, introduces JavaScript and frameworks like KnockoutJS and SammyJS that help manage complexity. It also summarizes several JavaScript libraries and patterns including the module pattern, revealing module pattern, and MV* patterns. Specific libraries and frameworks discussed include RequireJS, AmplifyJS, UnderscoreJS, and LINQ.js. The document concludes with a brief mention of server-side tools like ScriptSharp.
SPTechCon 2014 How to develop and debug client side code in SharePointMark Rackley
This document contains the presentation slides for a session titled "How to Develop and Debug Client Side Code" given by Mark Rackley at the SPTechCon San Francisco 2014 conference. The presentation provides an overview of tools and techniques for developing and debugging JavaScript and jQuery code in SharePoint, including jQuery, jQuery UI, DataTables, Bluff Charts, and REST/CSOM/SPServices. It also covers debugging basics, common issues, and best practices.
This document provides an overview of key features in Sightly, an HTML templating language used in Adobe Experience Manager (AEM):
- It describes Sightly statements like data-sly-use, data-sly-attribute, data-sly-element, and data-sly-resource that allow manipulating elements, attributes, and including resources.
- Expression options like @context, @format, @join, and @i18n that control output are also covered.
- URI manipulation using options like @scheme, @domain, @path, @query, and @fragment is explained.
- Other topics include template and call statements, external templates, and the
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.
This presentation was given at SharePoint Saturday Virginia Beach 2012. The topic covers some SharePoint based solutions that directly benefit from HTML5 features.
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012crokitta
APEX& jQuery Mobile
Binnenkort zal Oracle versie de lang aangekondigde upgrade naar release 4.2 van Oracle Application Express beschikbaar maken. Een van de meest besproken nieuwe features die voor dit nieuwe release zijn aangekondigd is de integratie van het jQuery Mobile framework. Met de integratie van dit framework zal het mogelijk worden om met APEX applicaties te ontwikkelen, die geschikt zijn voor mobiele toestellen.
Wat is en hoe werkt jQuery Mobile en wat betekend dit voor het ontwikkelen in APEX. Dat zijn de onderwerpen die de presentatie aan bod komen. En waarom wachten tot het release van 4.2. Het is namelijk nu al mogelijk om jQuery Mobile in APEX te integreren en gebruiken. Hoe, wordt in een demo getoond. Deze sessie is waarschijnlijk de enige waarin u gevraagd zal worden om uw mobile telefoon aan te laten staan.
Presented at 3|SHARE's EVOLVE'14 - The Adobe Experience Manager Community Summit on Tuesday November 18th, 2014 at the Hard Rock Hotel in San Diego, CA. evolve14.com
Introduction to using jQuery with SharePointRene Modery
This document provides an introduction to using jQuery with SharePoint. It discusses what jQuery is, some basic jQuery concepts like selection and modification, and how jQuery can be used to enhance SharePoint through demos of content modification, slideshows, column visibility toggling, and calling SharePoint web services. Requirements, development tools, and resources for learning more about jQuery with SharePoint are also outlined.
JavaScript and jQuery for SharePoint DevelopersRob Windsor
If you’re a SharePoint developer you either are doing JavaScript development now or you will be doing JavaScript development in the near future. There has been an increased focus on client-side development with each of the recent versions of SharePoint and now, with the introduction of the SharePoint 2013 App model, understanding client-side development is a must. In this session, we`ll look at JavaScript development from a SharePoint perspective. In addition to effective use of JavaScript and jQuery in your applications, we`ll look where you can deploy JavaScript files and how to reference those files in your pages and web parts.
Codemotion 2013 - Designing complex applications using html5 and knockoutjsFabio Franzini
The document discusses tools and frameworks for building complex applications using HTML5 and JavaScript. It begins with introductions and background on the speaker. The rest of the document outlines various topics: HTML5 and its benefits, JavaScript and patterns like modularity, client-side frameworks like KnockoutJS, server-side tools like TypeScript, packaging apps with Cordova or AppJS, and demonstrates some of the frameworks.
Presentation about Apache Wicket given at FOSDEM 2011. Apache Wicket is an open source, component oriented Java web framework. This presentation features an introduction to the Wicket framework and showcases some of the new features in the upcoming 1.5 release of Wicket.
1. ASP.NET uses the CLR to replace the existing ISAPI/ASP infrastructure of IIS with a more efficient framework for servicing HTTP requests. It also provides its own framework for compilation, execution, and building user interfaces.
2. ASP.NET is both an evolution of the ASP programming model as well as a revolution, introducing features like compiled pages, separation of code and HTML, server-side controls, and web services.
3. In ASP.NET, every page is compiled into an assembly the first time it is accessed. Subsequent requests use the compiled assembly for improved performance unless the source files have changed.
Last updated on Dec 12, 2014
The Sightly template language, shipped with Adobe Experience Manager 6.0, simplifies a lot the component development workflow by allowing front-end developers to edit components themselves directly.
Learn about the main features of that template language, and about the tools available to make project development work more efficient.
Introduction
Require JS
Handlebars
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 as the 7th mass medium
Designing for context
Key mobile development strategies
Types of mobile applications
Tips for the project
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
The Magic Revealed: Four Real-World Examples of Using the Client Object Model...SPTechCon
The document summarizes Peter Serzo's presentation on the client-side story and object model in SharePoint 2010. It discusses how the client object model allows accessing SharePoint data through managed code, Silverlight, JavaScript and web services. It provides examples of using the client object model to upload files, retrieve list data, and get user profile properties. It also covers using jQuery templates and REST to display and format list data on a page.
Model View Controller (MVC) is a software architectural pattern commonly used for developing web applications. It promotes separation of concerns by dividing the application into three interconnected parts - the Model, the View, and the Controller. The Model manages the data logic and rules of the application. The View displays the user interface and presentation logic. The Controller interprets user input, communicates between the Model and View, and controls the flow of data and functionality. MVC enables modular and reusable application components and code and simplifies application maintenance. Django is a web framework that follows the MVT (Model Template View) pattern, which is very similar to MVC.
This document discusses HTML5 and web application development. It begins with an overview of the anatomy of a web app, including setting up the server, using data services, and device detection. It then covers HTML5 features like new semantic tags, forms, multimedia capabilities using audio, video, and canvas. JavaScript APIs are discussed for geolocation, web storage, web SQL, and web workers. The document emphasizes that the mobile web is the most viable platform for cross-device applications.
WebNet Conference 2012 - Designing complex applications using html5 and knock...Fabio Franzini
This document provides an overview of designing complex applications using HTML5 and KnockoutJS. It discusses HTML5 and why it is useful, introduces JavaScript and frameworks like KnockoutJS and SammyJS that help manage complexity. It also summarizes several JavaScript libraries and patterns including the module pattern, revealing module pattern, and MV* patterns. Specific libraries and frameworks discussed include RequireJS, AmplifyJS, UnderscoreJS, and LINQ.js. The document concludes with a brief mention of server-side tools like ScriptSharp.
SPTechCon 2014 How to develop and debug client side code in SharePointMark Rackley
This document contains the presentation slides for a session titled "How to Develop and Debug Client Side Code" given by Mark Rackley at the SPTechCon San Francisco 2014 conference. The presentation provides an overview of tools and techniques for developing and debugging JavaScript and jQuery code in SharePoint, including jQuery, jQuery UI, DataTables, Bluff Charts, and REST/CSOM/SPServices. It also covers debugging basics, common issues, and best practices.
This document provides an overview of key features in Sightly, an HTML templating language used in Adobe Experience Manager (AEM):
- It describes Sightly statements like data-sly-use, data-sly-attribute, data-sly-element, and data-sly-resource that allow manipulating elements, attributes, and including resources.
- Expression options like @context, @format, @join, and @i18n that control output are also covered.
- URI manipulation using options like @scheme, @domain, @path, @query, and @fragment is explained.
- Other topics include template and call statements, external templates, and the
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.
This presentation was given at SharePoint Saturday Virginia Beach 2012. The topic covers some SharePoint based solutions that directly benefit from HTML5 features.
Oracle Application Express & jQuery Mobile - OGh Apex Dag 2012crokitta
APEX& jQuery Mobile
Binnenkort zal Oracle versie de lang aangekondigde upgrade naar release 4.2 van Oracle Application Express beschikbaar maken. Een van de meest besproken nieuwe features die voor dit nieuwe release zijn aangekondigd is de integratie van het jQuery Mobile framework. Met de integratie van dit framework zal het mogelijk worden om met APEX applicaties te ontwikkelen, die geschikt zijn voor mobiele toestellen.
Wat is en hoe werkt jQuery Mobile en wat betekend dit voor het ontwikkelen in APEX. Dat zijn de onderwerpen die de presentatie aan bod komen. En waarom wachten tot het release van 4.2. Het is namelijk nu al mogelijk om jQuery Mobile in APEX te integreren en gebruiken. Hoe, wordt in een demo getoond. Deze sessie is waarschijnlijk de enige waarin u gevraagd zal worden om uw mobile telefoon aan te laten staan.
Presented at 3|SHARE's EVOLVE'14 - The Adobe Experience Manager Community Summit on Tuesday November 18th, 2014 at the Hard Rock Hotel in San Diego, CA. evolve14.com
Introduction to using jQuery with SharePointRene Modery
This document provides an introduction to using jQuery with SharePoint. It discusses what jQuery is, some basic jQuery concepts like selection and modification, and how jQuery can be used to enhance SharePoint through demos of content modification, slideshows, column visibility toggling, and calling SharePoint web services. Requirements, development tools, and resources for learning more about jQuery with SharePoint are also outlined.
JavaScript and jQuery for SharePoint DevelopersRob Windsor
If you’re a SharePoint developer you either are doing JavaScript development now or you will be doing JavaScript development in the near future. There has been an increased focus on client-side development with each of the recent versions of SharePoint and now, with the introduction of the SharePoint 2013 App model, understanding client-side development is a must. In this session, we`ll look at JavaScript development from a SharePoint perspective. In addition to effective use of JavaScript and jQuery in your applications, we`ll look where you can deploy JavaScript files and how to reference those files in your pages and web parts.
Codemotion 2013 - Designing complex applications using html5 and knockoutjsFabio Franzini
The document discusses tools and frameworks for building complex applications using HTML5 and JavaScript. It begins with introductions and background on the speaker. The rest of the document outlines various topics: HTML5 and its benefits, JavaScript and patterns like modularity, client-side frameworks like KnockoutJS, server-side tools like TypeScript, packaging apps with Cordova or AppJS, and demonstrates some of the frameworks.
Presentation about Apache Wicket given at FOSDEM 2011. Apache Wicket is an open source, component oriented Java web framework. This presentation features an introduction to the Wicket framework and showcases some of the new features in the upcoming 1.5 release of Wicket.
1. ASP.NET uses the CLR to replace the existing ISAPI/ASP infrastructure of IIS with a more efficient framework for servicing HTTP requests. It also provides its own framework for compilation, execution, and building user interfaces.
2. ASP.NET is both an evolution of the ASP programming model as well as a revolution, introducing features like compiled pages, separation of code and HTML, server-side controls, and web services.
3. In ASP.NET, every page is compiled into an assembly the first time it is accessed. Subsequent requests use the compiled assembly for improved performance unless the source files have changed.
Last updated on Dec 12, 2014
The Sightly template language, shipped with Adobe Experience Manager 6.0, simplifies a lot the component development workflow by allowing front-end developers to edit components themselves directly.
Learn about the main features of that template language, and about the tools available to make project development work more efficient.
Introduction
Require JS
Handlebars
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 as the 7th mass medium
Designing for context
Key mobile development strategies
Types of mobile applications
Tips for the project
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
Introduction to javascript templating using handlebars.jsMindfire Solutions
Handlebars.js is a JavaScript templating library. Web apps are using JavaScript to create dynamic interfaces now more than ever before, and that’s not a trend that will change any time soon. DOM manipulation is great for simpler JavaScript apps, but what do you do when you’re changing huge chunks of the document with each change of the view? That’s where JavaScript templating has a critical role to play.
The document provides a summary of new tags introduced in HTML5 compared to HTML4. Some key new tags introduced in HTML5 include <article>, <aside>, <audio>, <canvas>, <details>, <embed>, <figure>, <footer>, <header>, <mark>, <meter>, <nav>, and <video>. These new tags allow for better semantic structuring of web pages and inclusion of multimedia like audio and video without requiring plugins. The document lists each new tag and provides a brief description.
RequireJS & Handlebars
This presentation has been developed in the context of the Mobile Applications Development course, DISIM, University of L'Aquila (Italy), Spring 2013.
http://www.ivanomalavolta.com
Intro + Examples
Human Interface Principles
Platform Characteristics
UX Guidelines
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 10
HTML5 Refresher
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
Anatomy of a web app
HTML5
CSS3
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 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.
Slides from an HTML5 overview session I presented at work...
This presentation has an accompanying sample webapp project: http://code.google.com/p/html5-playground
A brief introduction on HTML5 and responsive layoutsTim Wray
The document discusses the choice between building apps with HTML5 versus native apps. It provides an overview of new features in HTML5, including semantic layout tags, custom data attributes, new UI elements, smarter forms, CSS3, canvas graphics, audio/video support, drag and drop, offline storage, geolocation, and responsive web design. HTML5 allows building responsive mobile web experiences through features like media queries and viewport meta tags.
This document discusses HTML5 programming and several HTML5 features including multimedia, canvas, web sockets, web storage, indexed databases, offline capabilities, file systems, and geolocation. It provides examples and explanations of how to use these new HTML5 features in programming and notes that while specifications continue to evolve, real-world browser support is more important. It aims to cover programming aspects of video, canvas, web sockets, data storage, offline usage, file systems, and geolocation.
An introduction to HTML5 and its API's for the extream beginners those who already know what is HTML. Presentation also includes few features the CSS3.
This document provides an introduction and overview of HTML5. It discusses the new features and elements in HTML5, including video/audio, canvas, drag and drop, geolocation, web storage, web workers, and new form elements. It also covers browser support for various HTML5 features and provides examples of how to implement many of the new technologies.
This document provides an introduction to HTML5. It describes HTML5 as a draft specification from the W3C that is over 1100 pages and is not yet complete, as it continues to evolve. It adds new elements like canvas, video, audio, and inline SVG, and changes or removes some older elements and attributes. The document outlines the status and roadmap for the HTML5 specification. It also provides examples and demonstrations of new HTML5 features like video, audio, canvas, and geolocation.
This document provides an introduction to HTML5. It describes HTML5 as a draft specification from the W3C that is over 1100 pages and is not yet complete, as it continues to evolve. It adds new elements like canvas, video, audio, and inline SVG, and changes or removes some older elements and attributes. The document outlines the status and roadmap for the HTML5 specification. It also provides examples and demonstrations of new HTML5 features like video, audio, canvas, and geolocation.
The document discusses HTML5 and provides an overview of its key elements and features. It begins with a definition of HTML5 as a draft specification from the W3C that adds new elements like canvas, video and audio. It then provides summaries of important HTML5 elements and features like video, audio, canvas, SVG, CSS3, DOM scripting, geolocation and more. The document concludes by discussing resources for learning more about HTML5 and considerations around using HTML5 versus apps or other technologies on mobile.
HTML5 introduces several new features including new semantic elements, support for embedded video and audio, canvas element for 2D/3D graphics, offline web applications, and drag and drop. It also removes some older HTML elements. HTML5 is still a work in progress but is supported by all major browsers. It aims to make web pages more compatible with new technologies and reduce the need for browser plug-ins.
Most data visualisation solutions today still work on data sources which are stored persistently in a data store, using the so called “data at rest” paradigms. More and more data sources today provide a constant stream of data, from IoT devices to Social Media streams. These data stream publish with high velocity and messages often have to be processed as quick as possible. For the processing and analytics on the data, so called stream processing solutions are available. But these only provide minimal or no visualisation capabilities. One was is to first persist the data into a data store and then use a traditional data visualisation solution to present the data.
If latency is not an issue, such a solution might be good enough. An other question is which data store solution is necessary to keep up with the high load on write and read. If it is not an RDBMS but an NoSQL database, then not all traditional visualisation tools might already integrate with the specific data store. An other option is to use a Streaming Visualisation solution. They are specially built for streaming data and often do not support batch data. A much better solution would be to have one tool capable of handling both, batch and streaming data. This talk presents different architecture blueprints for integrating data visualisation into a fast data solution and highlights some of the products available to implement these blueprints.
Web development involves creating websites for the Internet. Web pages can be static, with fixed content, or dynamic, where content can change on the client side. HTML5 is the latest version of HTML and introduces new markup elements, input types, and form attributes. It also supports audio and video elements. CSS3 adds new selectors, properties and values for styling and layout. PHP is a server-side scripting language commonly used for web development. Popular PHP frameworks like Yii, CodeIgniter and Zend help support the development of dynamic websites and applications.
Turbocharge your applications with HTML5 features and its JavaScript APIs. Simplify tasks that weren’t possible previously. Understand how to tap the full potential of HTML5 features in your web applications using: HTML5 features, File API, Video, Location API, Application Cache API, Local Storage API, Animating the User Interface, Web Workers.
The document discusses the features of HTML5 including:
1) New elements such as <video>, <audio>, and <canvas> that allow embedding multimedia directly into webpages.
2) Block-level elements like <article>, <section>, <aside>, <header>, <footer>, and <nav> that help define page structure and outlines.
3) Associated technologies enabled by HTML5 including geolocation, offline storage, and CSS3 features for animations, gradients and rounded corners.
From the July 14th, 2010 Boston Area SharePoint Users Group meeting, "Creating Great Applications in SharePoint 2010 with Silverlight", Presented by Bob German of Microsoft.
SharePoint and Silverlight make an unbeatable combination for building great web applications. In this session, you will learn how to develop these solutions more easily than ever with Visual Studio 2010 and SharePoint's new client object model and REST services. We'll begin with an empty Visual Studio project and show how to get started, and then move on to topics such as how to deal with large datasets, out-of-browser support, building mash-ups and more.
The document introduces HTML5 and provides an overview of its key features and benefits. It discusses how to get started with HTML5 by simply changing the doctype to <!DOCTYPE html>. It then outlines several new HTML5 elements and JavaScript APIs integrated with HTML5, including canvas, geolocation, and web sockets. The document also reviews browser support and tools for checking HTML5 compatibility.
On-Device or Remote? On the Energy Efficiency of Fetching LLM-Generated Conte...Ivano Malavolta
Slides of the presentation by Vincenzo Stoico at the main track of the 4th International Conference on AI Engineering (CAIN 2025).
The paper is available here: http://www.ivanomalavolta.com/files/papers/CAIN_2025.pdf
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
[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.
Viam product demo_ Deploying and scaling AI with hardware.pdfcamilalamoratta
Building AI-powered products that interact with the physical world often means navigating complex integration challenges, especially on resource-constrained devices.
You'll learn:
- How Viam's platform bridges the gap between AI, data, and physical devices
- A step-by-step walkthrough of computer vision running at the edge
- Practical approaches to common integration hurdles
- How teams are scaling hardware + software solutions together
Whether you're a developer, engineering manager, or product builder, this demo will show you a faster path to creating intelligent machines and systems.
Resources:
- Documentation: https://on.viam.com/docs
- Community: https://discord.com/invite/viam
- Hands-on: https://on.viam.com/codelabs
- Future Events: https://on.viam.com/updates-upcoming-events
- Request personalized demo: https://on.viam.com/request-demo
Challenges in Migrating Imperative Deep Learning Programs to Graph Execution:...Raffi Khatchadourian
Efficiency is essential to support responsiveness w.r.t. ever-growing datasets, especially for Deep Learning (DL) systems. DL frameworks have traditionally embraced deferred execution-style DL code that supports symbolic, graph-based Deep Neural Network (DNN) computation. While scalable, such development tends to produce DL code that is error-prone, non-intuitive, and difficult to debug. Consequently, more natural, less error-prone imperative DL frameworks encouraging eager execution have emerged at the expense of run-time performance. While hybrid approaches aim for the "best of both worlds," the challenges in applying them in the real world are largely unknown. We conduct a data-driven analysis of challenges---and resultant bugs---involved in writing reliable yet performant imperative DL code by studying 250 open-source projects, consisting of 19.7 MLOC, along with 470 and 446 manually examined code patches and bug reports, respectively. The results indicate that hybridization: (i) is prone to API misuse, (ii) can result in performance degradation---the opposite of its intention, and (iii) has limited application due to execution mode incompatibility. We put forth several recommendations, best practices, and anti-patterns for effectively hybridizing imperative DL code, potentially benefiting DL practitioners, API designers, tool developers, and educators.
DevOpsDays SLC - Platform Engineers are Product Managers.pptxJustin Reock
Platform Engineers are Product Managers: 10x Your Developer Experience
Discover how adopting this mindset can transform your platform engineering efforts into a high-impact, developer-centric initiative that empowers your teams and drives organizational success.
Platform engineering has emerged as a critical function that serves as the backbone for engineering teams, providing the tools and capabilities necessary to accelerate delivery. But to truly maximize their impact, platform engineers should embrace a product management mindset. When thinking like product managers, platform engineers better understand their internal customers' needs, prioritize features, and deliver a seamless developer experience that can 10x an engineering team’s productivity.
In this session, Justin Reock, Deputy CTO at DX (getdx.com), will demonstrate that platform engineers are, in fact, product managers for their internal developer customers. By treating the platform as an internally delivered product, and holding it to the same standard and rollout as any product, teams significantly accelerate the successful adoption of developer experience and platform engineering initiatives.
UiPath Agentic Automation: Community Developer OpportunitiesDianaGray10
Please join our UiPath Agentic: Community Developer session where we will review some of the opportunities that will be available this year for developers wanting to learn more about Agentic Automation.
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrus AI
Gyrus AI: AI/ML for Broadcasting & Streaming
Gyrus is a Vision Al company developing Neural Network Accelerators and ready to deploy AI/ML Models for Video Processing and Video Analytics.
Our Solutions:
Intelligent Media Search
Semantic & contextual search for faster, smarter content discovery.
In-Scene Ad Placement
AI-powered ad insertion to maximize monetization and user experience.
Video Anonymization
Automatically masks sensitive content to ensure privacy compliance.
Vision Analytics
Real-time object detection and engagement tracking.
Why Gyrus AI?
We help media companies streamline operations, enhance media discovery, and stay competitive in the rapidly evolving broadcasting & streaming landscape.
🚀 Ready to Transform Your Media Workflow?
🔗 Visit Us: https://gyrus.ai/
📅 Book a Demo: https://gyrus.ai/contact
📝 Read More: https://gyrus.ai/blog/
🔗 Follow Us:
LinkedIn - https://www.linkedin.com/company/gyrusai/
Twitter/X - https://twitter.com/GyrusAI
YouTube - https://www.youtube.com/channel/UCk2GzLj6xp0A6Wqix1GWSkw
Facebook - https://www.facebook.com/GyrusAI
In the dynamic world of finance, certain individuals emerge who don’t just participate but fundamentally reshape the landscape. Jignesh Shah is widely regarded as one such figure. Lauded as the ‘Innovator of Modern Financial Markets’, he stands out as a first-generation entrepreneur whose vision led to the creation of numerous next-generation and multi-asset class exchange platforms.
AI 3-in-1: Agents, RAG, and Local Models - Brent LasterAll Things Open
Presented at All Things Open RTP Meetup
Presented by Brent Laster - President & Lead Trainer, Tech Skills Transformations LLC
Talk Title: AI 3-in-1: Agents, RAG, and Local Models
Abstract:
Learning and understanding AI concepts is satisfying and rewarding, but the fun part is learning how to work with AI yourself. In this presentation, author, trainer, and experienced technologist Brent Laster will help you do both! We’ll explain why and how to run AI models locally, the basic ideas of agents and RAG, and show how to assemble a simple AI agent in Python that leverages RAG and uses a local model through Ollama.
No experience is needed on these technologies, although we do assume you do have a basic understanding of LLMs.
This will be a fast-paced, engaging mixture of presentations interspersed with code explanations and demos building up to the finished product – something you’ll be able to replicate yourself after the session!
Webinar - Top 5 Backup Mistakes MSPs and Businesses Make .pptxMSP360
Data loss can be devastating — especially when you discover it while trying to recover. All too often, it happens due to mistakes in your backup strategy. Whether you work for an MSP or within an organization, your company is susceptible to common backup mistakes that leave data vulnerable, productivity in question, and compliance at risk.
Join 4-time Microsoft MVP Nick Cavalancia as he breaks down the top five backup mistakes businesses and MSPs make—and, more importantly, explains how to prevent them.
Integrating FME with Python: Tips, Demos, and Best Practices for Powerful Aut...Safe Software
FME is renowned for its no-code data integration capabilities, but that doesn’t mean you have to abandon coding entirely. In fact, Python’s versatility can enhance FME workflows, enabling users to migrate data, automate tasks, and build custom solutions. Whether you’re looking to incorporate Python scripts or use ArcPy within FME, this webinar is for you!
Join us as we dive into the integration of Python with FME, exploring practical tips, demos, and the flexibility of Python across different FME versions. You’ll also learn how to manage SSL integration and tackle Python package installations using the command line.
During the hour, we’ll discuss:
-Top reasons for using Python within FME workflows
-Demos on integrating Python scripts and handling attributes
-Best practices for startup and shutdown scripts
-Using FME’s AI Assist to optimize your workflows
-Setting up FME Objects for external IDEs
Because when you need to code, the focus should be on results—not compatibility issues. Join us to master the art of combining Python and FME for powerful automation and data migration.
Web & Graphics Designing Training at Erginous Technologies in Rajpura offers practical, hands-on learning for students, graduates, and professionals aiming for a creative career. The 6-week and 6-month industrial training programs blend creativity with technical skills to prepare you for real-world opportunities in design.
The course covers Graphic Designing tools like Photoshop, Illustrator, and CorelDRAW, along with logo, banner, and branding design. In Web Designing, you’ll learn HTML5, CSS3, JavaScript basics, responsive design, Bootstrap, Figma, and Adobe XD.
Erginous emphasizes 100% practical training, live projects, portfolio building, expert guidance, certification, and placement support. Graduates can explore roles like Web Designer, Graphic Designer, UI/UX Designer, or Freelancer.
For more info, visit erginous.co.in , message us on Instagram at erginoustechnologies, or call directly at +91-89684-38190 . Start your journey toward a creative and successful design career today!
Config 2025 presentation recap covering both daysTrishAntoni1
Config 2025 What Made Config 2025 Special
Overflowing energy and creativity
Clear themes: accessibility, emotion, AI collaboration
A mix of tech innovation and raw human storytelling
(Background: a photo of the conference crowd or stage)
3. What is a Web App?
A software built with web technologies that is accessible via a mobile
browser
The browser may be either
the standard device browser
or an embedded browser
(Hybrid app)
5. Data
Usually mobile apps do not talk directly with the database
à do not even think about JDBC, drivers, etc!
à They pass through an application server and communicate via:
• standard HTTP requests for HTML content (eg PHP)
• REST-full services (XML, JSON, etc.)
• SOAP
6. Data
• Data can be stored in any classical way:
– Relational
– Graph
– Key-value
– Document-based
Latest trend à backend-as-a-service
7. BaaS
1. Developers build a visual model of
their DB
2. The service generates APIs and
client-side libraries(compatible
with Android, Windows Phone,
etc.)
3. The data produced/consumed in
the app can be pushed/pulled to
their DB
– Communication is handled via
REST-based APIs
8. Example of Baas software: BaasBox
Main features:
• User management
– ACL
– Friendships
– Authentication via Facebook and Google+
• Document-based data manegement (via OrientDB)
• Assets management (fotos, documents, or files)
• Push notifications
The “Box” in BaasBox means that all the features
are in a standalone server, just like a box.
No Application Server, no Database Server, just
a JVM and nothing more
Rest API
Web
dashboard
http://www.baasbox.com/
10. HTML 5
• Intro
• New Structural Tags and Attributes
• Forms
• Audio & Video
• Offline Data
• Geolocalization
• Web Sockets
• Canvas & SVG
11. HTML 5
HTML5 will be the new standard for HTML
HTML5 is still a work in progress
W3C final recomendation: 2020
Top browsers support many (not all) of the new HTML5 elements
http://mobilehtml5.org
http://caniuse.com
14. Roadmap
• Intro
• New Structural Tags and Attributes
• Forms
• Audio & Video
• Offline Data
• Geolocalization
• Web Sockets
• Canvas & SVG
15. New Structural Tags
Main Goal: separate presentation from content
• Poor accessibility
• Unnecessary complexity
• Larger document size
Most of the presentational features from earlier versions of
HTML are no longer supported
16. New Structural Tags
<header> header region of a page or section
<footer> footer region of a page or section
<nav> navigation region of a page or section
<section> logical region of a page
<article> a complete piece of content
<aside> secondary or related content
18. Other Structural Tags
<command> a command button that a user can invoke
<details> additional details that the user can view or hide
<summary> a visible heading for a <details> element
<meter> an amount within a range
<progress> shows real-time progress towards a goal
<figure> self-contained content, like illustrations,
diagrams, photos, code listings, etc.
<figcaption> caption of a figure
<mark> marked/highlighted text
<time> a date/time
<wbr>Defines a possible line-break
19. Custom Data Attributes
Can be used to add metadata about any element within an
HTML5 page
They are ignored by the validator for HTML5 documents
They all start with the data- pattern
They can be read by any browser using Javascript via the
getAttribute() method
21. Roadmap
• Intro
• New Structural Tags and Attributes
• Forms
• Audio & Video
• Offline Data
• Geolocalization
• Web Sockets
• Canvas & SVG
23. Form Input Types
Form input types degrade gracefully
à Unknown input types are treated as text-type
http://bit.ly/I65jai
24. Form Input Types
<input type="search"> for search boxes
<input type="number"> for spinboxes
<input type="range"> for sliders
<input type="color"> for color pickers
<input type="tel"> for telephone numbers
<input type="url"> for web addresses
<input type="email"> for email addresses
<input type="date"> for calendar date pickers
<input type="month"> for months
<input type="week"> for weeks
<input type="time"> for timestamps
<input type="datetime"> for precise timestamps
<input type="datetime-local"> for local dates and times
25. Form Field Attributes
Autofocus
– Support for placing the focus on a specific form element
<input type="text“ autofocus>
Placeholder
– Support for placing placeholder text inside a form field
<input type="text“ placeholder=“your name”>
26. Roadmap
• Intro
• New Structural Tags and Attributes
• Forms
• Audio & Video
• Offline Data
• Geolocalization
• Web Sockets
• Server-Sent Events
• Canvas & SVG
27. Audio
<audio> : a standard way to embed an audio file on a web page
<audio controls>
<source src="song.ogg" type="audio/ogg" />
<source src="song.mp3" type="audio/mpeg" />
Not Supported
</audio>
Multiple sources à the browser will use the first recognized
format
29. Audio Javascript API
HTML5 provides a set of Javascript APIs for interacting with an
audio element
For example:
play() pause() load() currentTime ended
volume…
à http://www.w3.org/wiki/HTML/Elements/audio
30. Video
<video> : a standard way to embed a video file on a web page
<video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4" />
<source src="movie.ogg" type="video/ogg" />
Not Supported
</video>
Multiple sources à the browser will use the first recognized
format
32. Video Javascript API
HTML5 provides a set of Javascript APIs for interacting with a
video element
For example:
play() pause() load() currentTime ended
volume…
à http://www.w3.org/wiki/HTML/Elements/video
33. A note on YouTube videos
<video> works only if you have a direct link to the
MP4 file of the YouTube video
If you have just a link to the YouTube page of your video,
simply embed it in your page
<iframe width="560" height="315" src="http://
www.youtube.com/embed/Wp20Sc8qPeo" frameborder="0"
allowfullscreen></iframe>
34. Roadmap
• Intro
• New Structural Tags and Attributes
• Forms
• Audio & Video
• Offline Data
• Geolocalization
• Web Sockets
• Canvas & SVG
35. Offline Data
LocalStorage
stores data in key/value pairs
it is tied to a specific domain/app
persists across browser sessions
SessionStorage
stores data in key/value pairs
it is tied to a specific domain/app
data is erased when a browser session ends
36. Offline Data
WebSQL Database
relational DB
support for tables creation, insert, update, …
transactional
tied to a specific domain/app
persists across browser sessions
Its evolution is called IndexedDB, but it is actually not supported
by most mobile browsers
37. Offline data
Mobile browsers compatibility matrix
We will have a dedicated lecture to offline data
storage on mobile devices
38. Roadmap
• Intro
• New Structural Tags and Attributes
• Forms
• Audio & Video
• Offline Data
• Geolocalization
• Web Sockets
• Canvas & SVG
39. Geolocalization
Gets Latitude and Longitude from the user’s browser
There is also a watchPosition method wich calls a JS function
every time the user moves
We will have a dedicated lecture to
geolocalization on mobile devices
40. Example
function getLocation() {
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
} else {
console.log(‘no geolocalization’);
}
}
function showPosition(position) {
console.log(position.coords.latitude);
console.log(position.coords.longitude);
}
42. Roadmap
• Intro
• New Structural Tags and Attributes
• Forms
• Audio & Video
• Offline Data
• Geolocalization
• Web Sockets
• Canvas & SVG
43. WebSockets
Bidirectional, full-duplex communication between devices and
server
Specifically suited for
chat, videogames, drawings sharing, real-time info
Requires a Web Socket Server to handle the protocol
44. WebSockets - Overview
1. Client notifies websocket server (EventMachine) of an event,
giving ids of recipients
2. The server notifies all the active clients (subscribed to that type
of event)
3. Clients process event
when given recipient Id
matches the client’s one
http://bit.ly/Ixcupi
45. Alternative - Polling via AJAX
+ Near real-time updates (not purely real-time)
+ easy to implement
+ no new technologies needed
- they are requested from the client and cause increased
network traffic
- AJAX requests generally have a small payload and relatively
high amount of http headers (wasted bandwith)
46. Roadmap
• Intro
• New Structural Tags and Attributes
• Forms
• Audio & Video
• Offline Data
• Geolocalization
• Web Sockets
• Canvas & SVG
47. Canvas & SVG
Canvas & SVG allow you to create graphics inside the browser
We will have a dedicated
lecture to canvas & SVG
on mobile devices
http://bit.ly/Ie4HKu
48. Canvas & SVG
Canvas
draws 2D graphics, on the fly
you use Javascript to draw on the canvas
rendered pixel by pixel
SVG
describes 2D graphics in XML
every element is available within the SVG DOM
JavaScript event handlers for an element
49. Roadmap
• Intro
• New Structural Tags and Attributes
• Forms
• Audio & Video
• Offline Data
• Geolocalization
• Web Sockets
• Server-Sent Events
• Canvas & SVG
53. CSS3 Main Drivers
Simplicity
– less images
– less markup
– less Javascript
– less Flash
Better performance
– fewer HTTP requests
Better Search Engine Placement
– text as real text, not images or Flash
– speed
56. Inheritance
If an HTML element B is nested into another element A
à B inherits the style of A unless B has an explicit style
definition
body {
background-color: red;
}
div {
background-color: green;
}
59. Backgrounds
You can style a background of any element
div {
background:url(img.png), url(img2.png);
background-size:80px 60px;
background-repeat:no-repeat;
background-origin:content-box;
}
repeat
no-repeat | repeat
repeat-x | repeat-y
origin
top left | top center | top right | center left
| border-box | content-box etc.
61. Gradients
They can be used in every place you can use an image
div {
background: -webkit-gradient(linear, right top,
left bottom, from(red), green));
}
linear à the type of gradient (also radial, or repeating-linear)
right-top à start of the gradient
left-bottom à end of the gradient
from à starting color
to à final color
62. Text
p {
color: grey;
letter-spacing: 5px;
text-align: center;
text-decoration: underline;
text-indent: 10px;
text-transform: capitalize;
word-spacing: 10px;
}
text-align
left | right
center | justify
Text-decoration
none
underline
overline
line through
text-transform
none | capitalize |
lowercase | uppercase
63. Text Effects
p {
text-shadow: 2px 10px 5px #FF0000;
text-overflow: ellipsis;
word-wrap:break-word;
}
2px à horizontal shadow
10px à vertical shadow
5px à blur distance
#FF0000 à color
66. Selectors
Classical ways to select elements in CSS2:
• by type
a { color: red; }
• by id
#redLink { color: red; }
• by class
.redLink { color: red; }
67. Other Selectors from CSS1 & CSS2
• div p à all <p> elements inside a <div>
• div>p à all <p> elements where the parent is a <div>
• div+p à all <p> elements that are placed immediately after
<div>
• [target] à all elements with a target attribute
• [target=_blank] à all elements with target= "_blank“
• p:first-child à every <p> element that is the first child of its
parent
68. Some selectors introduced in CSS3
• a[src^="https"] à every <a> element whose src attribute
value begins with "https”
• a[src$=".pdf"] à every <a> element whose src attribute value
ends with ".pdf”
• a[src*=“mobile"] à every <a> element whose src attribute
value contains the substring “mobile“
• p:nth-child(2) à every <p> element that is the second child of
its parent
• p:nth-last-child(2) à every <p> element that is the second
child of its parent, counting from the last child
• :not(p) à every element that is not a <p> element
76. The Display Property
It specifies if and how an element is displayed
div {
display: none;
}
The element will be hidden, and the page will be displayed as if the
element is not there
77. The Display Property
Other usual values:
block
• a block element is an element that takes up the full width
available, and has a line break before and after it
inline
• an inline element only takes up as much width as necessary
• it can contain only other inline elements
inline-block
• the element is placed as an inline element (on the same line
as adjacent content), but it behaves as a block element
– you can set width and height, top and bottom margins and paddings
78. The visibility Property
It specifies if an element should be visible or hidden
div.hidden {
visibility: hidden;
}
The element will be hidden, but still affect the layout
It can also be set to
visible, collapse, inherit
79. Flex Box
It helps in styling elements to be arranged horizontally or
vertically
box:
• a new value for the display property
• a new property box-orient
#div {
display: box;
box-orient: horizontal;
}
80. Flex Box main elements
display: box
opts an element and its immediate children into the flexible
box model
box-orient
Values: horizontal | vertical | inherit
How should the box's children be aligned?
box-direction
Values: normal | reverse | inherit
sets the order in which the elements will be displayed
81. Flex Box main elements
box-pack
Values: start | end | center | justify
Sets the alignment of the box along the box-orient axis
box-orient: horizontal;
box-pack: end;
82. Flex Box main elements
box-align
Values: start | end | center | baseline | stretch
Sets how the box's children are aligned in the box
box-orient: horizontal;
box-align: center;
83. Flex Box Children
by default child elements are not flexible
à their dimension is set according to their width
box-flex can be set to any integer
It sets how a child element occupy the
box’s space
#box1 {
width: 100px;
}
#box2 {
box-flex: 1;
}
#box3 {
box-flex: 2;
}
86. Relative Positioning
Elements behave exactly the same
way as statically positioned elements
we can adjust a relatively positioned
element with offset properties:
top, right, bottom, and left
http://bit.ly/I8cEaF
87. Relative Positioning
It is possible to create a coordinate system for child elements
http://bit.ly/I8cEaF
88. Absolute Positioning
an absolutely positioned element is removed from the normal flow
it won’t affect or be
affected by any other
element in the flow
http://bit.ly/I8cEaF
89. Fixed Positioning
shares all the rules of an absolutely positioned element
a fixed element does not scroll with the document
http://bit.ly/I8cEaF
90. Float
A floated element will move as far to the left or right as it can
Elements are floated only horizontally
The float CSS property can accept one of 4 values:
left, right, none, and inherit
92. Fonts
Before CSS3, web designers had to use fonts that were already
installed on the user's device
With CSS3, web designers can use whatever font they like
@font-face {
font-family: NAME;
src: url(Dimbo.ttf);
font-weight: normal;
font-style: normal;
}
font-style
normal
italic
oblique
font-weight
normal
bold
100
200
…
93. Fonts Usage
To use the font for an HTML element, refer to the name of the
font (NAME) through the font-family property
div {
font-family: NAME;
}
97. Transforms
A transform is an effect that lets an element
change shape, size, position, …
You can transform your elements using 2D or 3D transformations
http://bit.ly/IroJ7S
100. Transitions
They are used to add an effect when changing from one style to
another
The effect can be gradual
The effect will start when the specified CSS property changes
value
101. Transition syntax
A transition contains 4 properties:
• property
– the name of the CSS property the transition effect is for (can be all)
• duration
– how many seconds (or milliseconds) the transition effect takes to
complete
• timing-function
– linear, ease, ease-in, ease-out, ease-in-out
• delay
– when the transition effect will start
103. Animations
An animation is an effect that lets an element gradually change
from one style to another
You can change style in loop, repeating, etc.
To bind an animation to an element, you have to specify at least:
1. Name of the animation
2. Duration of the animation
div {
animation: test 5s ease-in;
}
104. Animation Definition
An animation is defined in a keyframe
It splits the animation into parts, and assign a specific style to
each part
The various steps within an animation are given as percentuals
0% à beginning of the animation (from)
100% à end of the animation (to)
107. Transitions VS Animations
• Trigger
– Transitions must be bound to a CSS property change
– Animations start autonomously
• States
– Transitions have start and end states
– Animations can have multiple states
• Repeats
– Transitions can be perfomed once for each activation
– Animations can be looped
109. Media Types
Media Queries are based on Media Types
A media type is a specification of the actual media that is being
used to access the page
Examples of media types include
• screen: computer screens
• print: printed document
• braille: for Braille-based devices
• tv: for television devices
110. Media Types
There are two main ways to specify a media type:
• <link> in the HTML page
<link rel=“stylesheet”
href=“style.css” media=“screen” />
• @media within the CSS file
@media screen {
div { color: red; }
}
111. Media Queries
They allow you to to change style based on specific conditions
For example, they can be about
• device’s display size
• orientation of the device
• Resolution of the display
• ...
113. Media Queries
A media query is a boolean expression
The CSS associated with the media query expression is applied
only if it evaluates to true
A media query consists of
1. a media type
2. a set of media features
@media screen and orientation: portrait
115. The AND operator
You can combine multiple expressions by using the and operator
@media screen and (max-device-width: 480px){
/* your style */
}
116. The COMMA operator
The comma keyword acts as an or operator
@media screen and (color),
handheld and (color) {
/* your style */
}
117. The NOT operator
You can explicitly ignore a specific type of device by using the not
operator
@media not (width:480px) {
/* your style */
}
118. Examples
Retina Displays
@media only screen and -webkit-min-device-pixel-ratio: 2
iPad in landscape orientation
@media only screen and
(device-width: 768px) and (orientation: landscape)
iPhone and Android devices
@media only screen and
(min-device-width: 320px) and (max-device-width: 480px)