Fixing Gaps. Strengthening the Chromium platform for content blockingIgalia
From AdBlocker Developer Summit 2020
Miyoung Shin and Lorenzo Tilve from Igalia discuss work in the Chromium open source browser project, performed by Igalia to improve things for ad Bbocking and content blocking use cases.
The document discusses the WebKit project and how to contribute to it. It describes WebKit as an open source web browser engine used in browsers and other applications. It provides information on WebKit's architecture, goals, features, ports to different platforms, and the WebKit2 API. It also discusses the large WebKit community, how work is tracked, and how developers can contribute through bug fixing, new features, or creating new ports.
The document discusses plans for GWT 3.0 and beyond. It outlines goals to make GWT faster and lighter by simplifying JavaScript interoperability, improving code generation and compilation speed, and better supporting modern browser capabilities and mobile expectations. Key areas of focus include radically improved JavaScript interoperability through combined compilation, web components support, and code splitting improvements.
Writing native Linux desktop apps with JavaScriptIgalia
This document summarizes a talk about writing native Linux desktop applications using JavaScript. It discusses using technologies like GJS, GTK, and Flatpak to build desktop apps with web development skills. It covers topics like build systems, assembling the UI, popular runtime libraries, writing the code, and distributing the finished app via Flathub. The talk uses a sample note-taking app called "Bloatpad" to demonstrate the process.
Puppeteer - A web scraping & UI Testing ToolMiki Lombardi
Puppeteer is more than a node library.
It comes with a powerful toolset that enable you to test every feature in every environment of your application.
By Martin Robinson.
After two years of work, WebKit2 has arrived to the GNOME platform, bringing security, stability, and performance. This talk will outline the new design and dive briefly into some of the gory technical details. Also, included will be a mountain of practical advice for application developers about the transition, such as whether or not applications should be rewritten for WebKit2 and how best to take advantage of the new multi-process model.
Ewebkit basic (Web rendering enging of EFL)ryuan choi
This document provides an introduction and overview of ewebkit, which is a webkit-based rendering engine for EFL. It discusses ewebkit features, architecture, internals, tutorials for basic usage, and links to documentation and code repositories. The key points are that ewebkit uses a multi-process architecture based on WebKit2, and provides HTML5 capabilities for rendering web content within EFL applications.
Turducken - Divide and Conquer large GWT apps with multiple teamsRobert Keane
Complex GWT apps can involve multiple teams with different release cycles. Compile times can quickly become prohibitive when your codebase grows into millions of lines. “Turducken” is a technique to combine multiple GWT apps that can be built and released by separate teams while providing a seamless, snappy user experience.
Fixing Gaps. Strengthening the Chromium platform for content blockingIgalia
From AdBlocker Developer Summit 2020
Miyoung Shin and Lorenzo Tilve from Igalia discuss work in the Chromium open source browser project, performed by Igalia to improve things for ad Bbocking and content blocking use cases.
The document discusses the WebKit project and how to contribute to it. It describes WebKit as an open source web browser engine used in browsers and other applications. It provides information on WebKit's architecture, goals, features, ports to different platforms, and the WebKit2 API. It also discusses the large WebKit community, how work is tracked, and how developers can contribute through bug fixing, new features, or creating new ports.
The document discusses plans for GWT 3.0 and beyond. It outlines goals to make GWT faster and lighter by simplifying JavaScript interoperability, improving code generation and compilation speed, and better supporting modern browser capabilities and mobile expectations. Key areas of focus include radically improved JavaScript interoperability through combined compilation, web components support, and code splitting improvements.
Writing native Linux desktop apps with JavaScriptIgalia
This document summarizes a talk about writing native Linux desktop applications using JavaScript. It discusses using technologies like GJS, GTK, and Flatpak to build desktop apps with web development skills. It covers topics like build systems, assembling the UI, popular runtime libraries, writing the code, and distributing the finished app via Flathub. The talk uses a sample note-taking app called "Bloatpad" to demonstrate the process.
Puppeteer - A web scraping & UI Testing ToolMiki Lombardi
Puppeteer is more than a node library.
It comes with a powerful toolset that enable you to test every feature in every environment of your application.
By Martin Robinson.
After two years of work, WebKit2 has arrived to the GNOME platform, bringing security, stability, and performance. This talk will outline the new design and dive briefly into some of the gory technical details. Also, included will be a mountain of practical advice for application developers about the transition, such as whether or not applications should be rewritten for WebKit2 and how best to take advantage of the new multi-process model.
Ewebkit basic (Web rendering enging of EFL)ryuan choi
This document provides an introduction and overview of ewebkit, which is a webkit-based rendering engine for EFL. It discusses ewebkit features, architecture, internals, tutorials for basic usage, and links to documentation and code repositories. The key points are that ewebkit uses a multi-process architecture based on WebKit2, and provides HTML5 capabilities for rendering web content within EFL applications.
Turducken - Divide and Conquer large GWT apps with multiple teamsRobert Keane
Complex GWT apps can involve multiple teams with different release cycles. Compile times can quickly become prohibitive when your codebase grows into millions of lines. “Turducken” is a technique to combine multiple GWT apps that can be built and released by separate teams while providing a seamless, snappy user experience.
Puppeteer is a Node library that provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It can generate screenshots, crawl SPAs, automate form submission and UI testing, and more. Puppeteer communicates with the browser using the DevTools Protocol and controls browser instances, browser contexts within instances, pages within contexts, and frames within pages. It is maintained by the Chrome DevTools team.
The Internal Architecture of Chrome Developer ToolsMiroslav Bajtoš
The talk explains that Chrome Developer Tools are actually just an (un)usual web page, every Blink browser has an embedded WebSocket server and that allows Node Inspector to reuse Developer Tools GUI for building Node.js debugger.
Max Voloshin - "Organization of frontend development for products with micros...IT Event
While our product was growing our team came to need to implement microservices. Later it became obvious that our approaches on organization of frontend development should be rethought and significantly improved.
The report contains our team's solutions for simple and comfortable frontend product development with microservices. Also, this talk is about how we along with the way updated frontend framework, separated frontend and backend, solved internalization problem and started using Docker for front end tasks.
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)Igalia
The presentation discusses the development of a Vulkan driver named V3DV for the Raspberry Pi 4. It began development in November 2019 and has progressed from initial triangle rendering to supporting many Vulkan CTS tests and demos like Quake games. While the basic Vulkan 1.0 feature set is complete, there are still challenges around the linear display pipeline and optimizing usage of the texture filtering unit. Future plans include improving conformance, merging with Mesa, and exploring performance optimizations and additional features. External contributors are welcomed to help with testing, documentation, and implementing optional Vulkan aspects.
This document discusses WebKitGtk+, an open source web engine used in many applications. It summarizes the history and architecture of WebKit, describes how WebKitGtk+ integrates with GNOME platforms, and outlines how to get involved with the WebKit community through contributing code, testing, or participating in discussions.
This document discusses using NPM scripts as a build tool. It covers setting up scripts in the package.json file to automate common tasks like linting, testing, building assets, and running dev servers. Examples are provided of setting up scripts for CSS preprocessing, bundling JavaScript, running tests, and more for both AngularJS and React projects. Chaining, piping, and running tasks concurrently with NPM scripts is also covered.
Ozone is a wrapper that creates a unified platform interface at runtime, allowing Chromium to run on multiple platforms like Wayland and X11 from a single binary. Igalia has been working on Ozone support for Wayland since 2016, facing many challenges due to Wayland's restrictions, while the X11 support added more recently proved easier through refactoring. Overall, Ozone has proven to be a reasonable approach for Linux by providing a common interface while each platform still has specific implementation details.
This document discusses the rendering process in Webkit and Chromium. It describes how layers are created and composited during rendering. It also covers the multi-process architecture in Chromium including the browser process, render process, and rendering threads. Key classes involved in inter-process communication like RenderViewHost and RenderView are introduced.
Puppeteer can automate that! - FrontmaniaÖnder Ceylan
Puppeteer is a node library which provides a high-level API to control Chrome over the DevTools Protocol. When combined with the power of the web technologies, it can be used for automating image processing and batch file generation, creating automated visual testing with device emulation, tracking page loading performance, enforcing performance and code coverage budgets on CI, crawling a SPA, capturing a timeline trace of your site to help diagnose performance issues and more!
We'll explore those capabilities of Puppeteer API with combination of DevTools protocol and cloud functions (FaaS) with a showcase of real life use cases demonstrated by live-examples. Finally, we’ll go through the existing puppeteer based SaaS solutions such as Checkly and Browserless.
Embedding Chromium into AGL demo platform with WAMIgalia
The document discusses embedding Chromium into the Automotive Grade Linux (AGL) demo platform using the Web Application Manager (WAM). Currently, WAM and a modified version of Chromium from the LG WebOS project are used. Considering moving to use the Chromium Embedded Framework (CEF) instead, which could simplify keeping WAM and Chromium in sync with upstream changes. The proposed approach would adapt WAM to connect directly to CEF rather than a customized Chromium version.
Deview 2013 mobile browser internals and trends_20131022NAVER D2
The document discusses browser internals and trends related to mobile browsers. It provides an overview of the major rendering engines including WebKit, Blink, and Chromium. It then focuses on specifics of Android's WebView and how it has transitioned to using the Chromium engine. Finally, it describes the multi-process architecture of Chromium which separates rendering and browser components across multiple processes for improved stability.
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)Igalia
By Xan López.
Do you want to write native looking GNOME applications while at the same time using all the compelling recent additions to the web arsenal like HTML5 or CSS3? In this talk we’ll use WebkitGTK+’s well-integrated GObject DOM bindings to get direct access to the well-known DOM APIs for building truly integrated hybrid GNOME applications.
The document discusses Node.js development in the cloud with Azure. It provides an overview of deploying Node.js applications to Azure Web Sites and infrastructure as a service (IaaS). It also demonstrates using Socket.IO with Node.js for real-time web applications and deploying a sample conference scheduling application to Azure that uses CouchDB for data storage.
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutionjuanjosanchezpenas
This document summarizes Juan J. Sánchez's presentation on WebKit and Blink. It discusses:
1) The history and goals of the WebKit project from 2004-2013, including its features, architecture, ports, and licenses.
2) The WebKit community, including types of contributors, tools used, and events held.
3) The creation of Blink in 2013 when Google forked WebKit, the motivations behind it, and its impact on the WebKit community.
4) The current status of WebKit and Blink projects and their future perspectives.
Building Rich Internet Applications Using Google Web Toolkitrajivmordani
This document provides an overview of building rich internet applications (RIAs) using Google Web Toolkit (GWT). It introduces GWT and discusses its key features and advantages, such as allowing developers to write RIA frontends completely in Java instead of JavaScript. The document covers GWT architecture, common widgets and layouts, stylesheets, and supported browsers. It also provides instructions on setting up a basic GWT project and deploying GWT applications in hosted or web mode.
VueJS is a progressive framework for building user interfaces. It introduces key concepts like the MVVM pattern, reactivity system, lifecycle hooks and components. The document discusses various aspects of VueJS including using .vue files with different languages for templates, styles and scripts. It also covers Vuex for state management, Vue Router for routing, VueStrap for Bootstrap components, and integrating JWT authentication with Auth0.
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4Igalia
This document provides an overview of the development of the open source Vulkan driver for the Raspberry Pi 4. Key points include:
- Development began in 2019 on a Mesa fork and has progressed to support Vulkan 1.0 features and pass the Vulkan CTS.
- Current status includes support for games like Quake and demos, though performance work remains. Implementation challenges include the Pi's linear display pipeline.
- Future plans include exploring performance improvements, optional feature support, and assessing code reuse opportunities with the GLES driver. External contributors are welcome via mailing lists and issues.
This document provides an overview of Google Web Toolkit (GWT), a framework for building Ajax applications in Java. It discusses some problems with traditional AJAX development and how GWT addresses these issues. Key features of GWT highlighted include using Java for development, strong typing, good IDE support, and asynchronous browser-to-server communication. Sample code structure and use of GWT widgets and remote procedure calls are also summarized.
1. Synchronous scripts block page rendering, so scripts should be loaded asynchronously.
2. Front-end dependencies like social media widgets can cause slowdowns if they fail to load. Blackholing domains in tests can show these slowdowns.
3. "Bootstrap scripts" from content delivery networks often have short cache times, increasing chances of failures. But they can be made self-updating while keeping long cache times.
Puppeteer is a Node library that provides a high-level API to control headless Chrome or Chromium over the DevTools Protocol. It can generate screenshots, crawl SPAs, automate form submission and UI testing, and more. Puppeteer communicates with the browser using the DevTools Protocol and controls browser instances, browser contexts within instances, pages within contexts, and frames within pages. It is maintained by the Chrome DevTools team.
The Internal Architecture of Chrome Developer ToolsMiroslav Bajtoš
The talk explains that Chrome Developer Tools are actually just an (un)usual web page, every Blink browser has an embedded WebSocket server and that allows Node Inspector to reuse Developer Tools GUI for building Node.js debugger.
Max Voloshin - "Organization of frontend development for products with micros...IT Event
While our product was growing our team came to need to implement microservices. Later it became obvious that our approaches on organization of frontend development should be rethought and significantly improved.
The report contains our team's solutions for simple and comfortable frontend product development with microservices. Also, this talk is about how we along with the way updated frontend framework, separated frontend and backend, solved internalization problem and started using Docker for front end tasks.
Overview of the open source Vulkan driver for Raspberry Pi 4 (XDC 2020)Igalia
The presentation discusses the development of a Vulkan driver named V3DV for the Raspberry Pi 4. It began development in November 2019 and has progressed from initial triangle rendering to supporting many Vulkan CTS tests and demos like Quake games. While the basic Vulkan 1.0 feature set is complete, there are still challenges around the linear display pipeline and optimizing usage of the texture filtering unit. Future plans include improving conformance, merging with Mesa, and exploring performance optimizations and additional features. External contributors are welcomed to help with testing, documentation, and implementing optional Vulkan aspects.
This document discusses WebKitGtk+, an open source web engine used in many applications. It summarizes the history and architecture of WebKit, describes how WebKitGtk+ integrates with GNOME platforms, and outlines how to get involved with the WebKit community through contributing code, testing, or participating in discussions.
This document discusses using NPM scripts as a build tool. It covers setting up scripts in the package.json file to automate common tasks like linting, testing, building assets, and running dev servers. Examples are provided of setting up scripts for CSS preprocessing, bundling JavaScript, running tests, and more for both AngularJS and React projects. Chaining, piping, and running tasks concurrently with NPM scripts is also covered.
Ozone is a wrapper that creates a unified platform interface at runtime, allowing Chromium to run on multiple platforms like Wayland and X11 from a single binary. Igalia has been working on Ozone support for Wayland since 2016, facing many challenges due to Wayland's restrictions, while the X11 support added more recently proved easier through refactoring. Overall, Ozone has proven to be a reasonable approach for Linux by providing a common interface while each platform still has specific implementation details.
This document discusses the rendering process in Webkit and Chromium. It describes how layers are created and composited during rendering. It also covers the multi-process architecture in Chromium including the browser process, render process, and rendering threads. Key classes involved in inter-process communication like RenderViewHost and RenderView are introduced.
Puppeteer can automate that! - FrontmaniaÖnder Ceylan
Puppeteer is a node library which provides a high-level API to control Chrome over the DevTools Protocol. When combined with the power of the web technologies, it can be used for automating image processing and batch file generation, creating automated visual testing with device emulation, tracking page loading performance, enforcing performance and code coverage budgets on CI, crawling a SPA, capturing a timeline trace of your site to help diagnose performance issues and more!
We'll explore those capabilities of Puppeteer API with combination of DevTools protocol and cloud functions (FaaS) with a showcase of real life use cases demonstrated by live-examples. Finally, we’ll go through the existing puppeteer based SaaS solutions such as Checkly and Browserless.
Embedding Chromium into AGL demo platform with WAMIgalia
The document discusses embedding Chromium into the Automotive Grade Linux (AGL) demo platform using the Web Application Manager (WAM). Currently, WAM and a modified version of Chromium from the LG WebOS project are used. Considering moving to use the Chromium Embedded Framework (CEF) instead, which could simplify keeping WAM and Chromium in sync with upstream changes. The proposed approach would adapt WAM to connect directly to CEF rather than a customized Chromium version.
Deview 2013 mobile browser internals and trends_20131022NAVER D2
The document discusses browser internals and trends related to mobile browsers. It provides an overview of the major rendering engines including WebKit, Blink, and Chromium. It then focuses on specifics of Android's WebView and how it has transitioned to using the Chromium engine. Finally, it describes the multi-process architecture of Chromium which separates rendering and browser components across multiple processes for improved stability.
Hybrid Desktop/Web applications with WebKitGTK+ (COSCUP 2010)Igalia
By Xan López.
Do you want to write native looking GNOME applications while at the same time using all the compelling recent additions to the web arsenal like HTML5 or CSS3? In this talk we’ll use WebkitGTK+’s well-integrated GObject DOM bindings to get direct access to the well-known DOM APIs for building truly integrated hybrid GNOME applications.
The document discusses Node.js development in the cloud with Azure. It provides an overview of deploying Node.js applications to Azure Web Sites and infrastructure as a service (IaaS). It also demonstrates using Socket.IO with Node.js for real-time web applications and deploying a sample conference scheduling application to Azure that uses CouchDB for data storage.
WebKit and Blink: Bridging the Gap Between the Kernel and the HTML5 Revolutionjuanjosanchezpenas
This document summarizes Juan J. Sánchez's presentation on WebKit and Blink. It discusses:
1) The history and goals of the WebKit project from 2004-2013, including its features, architecture, ports, and licenses.
2) The WebKit community, including types of contributors, tools used, and events held.
3) The creation of Blink in 2013 when Google forked WebKit, the motivations behind it, and its impact on the WebKit community.
4) The current status of WebKit and Blink projects and their future perspectives.
Building Rich Internet Applications Using Google Web Toolkitrajivmordani
This document provides an overview of building rich internet applications (RIAs) using Google Web Toolkit (GWT). It introduces GWT and discusses its key features and advantages, such as allowing developers to write RIA frontends completely in Java instead of JavaScript. The document covers GWT architecture, common widgets and layouts, stylesheets, and supported browsers. It also provides instructions on setting up a basic GWT project and deploying GWT applications in hosted or web mode.
VueJS is a progressive framework for building user interfaces. It introduces key concepts like the MVVM pattern, reactivity system, lifecycle hooks and components. The document discusses various aspects of VueJS including using .vue files with different languages for templates, styles and scripts. It also covers Vuex for state management, Vue Router for routing, VueStrap for Bootstrap components, and integrating JWT authentication with Auth0.
An Overview of the Open Source Vulkan Driver for Raspberry Pi 4Igalia
This document provides an overview of the development of the open source Vulkan driver for the Raspberry Pi 4. Key points include:
- Development began in 2019 on a Mesa fork and has progressed to support Vulkan 1.0 features and pass the Vulkan CTS.
- Current status includes support for games like Quake and demos, though performance work remains. Implementation challenges include the Pi's linear display pipeline.
- Future plans include exploring performance improvements, optional feature support, and assessing code reuse opportunities with the GLES driver. External contributors are welcome via mailing lists and issues.
This document provides an overview of Google Web Toolkit (GWT), a framework for building Ajax applications in Java. It discusses some problems with traditional AJAX development and how GWT addresses these issues. Key features of GWT highlighted include using Java for development, strong typing, good IDE support, and asynchronous browser-to-server communication. Sample code structure and use of GWT widgets and remote procedure calls are also summarized.
1. Synchronous scripts block page rendering, so scripts should be loaded asynchronously.
2. Front-end dependencies like social media widgets can cause slowdowns if they fail to load. Blackholing domains in tests can show these slowdowns.
3. "Bootstrap scripts" from content delivery networks often have short cache times, increasing chances of failures. But they can be made self-updating while keeping long cache times.
JS Fest 2019. Minko Gechev. Building Fast Angular Applications by DefaultJSFestUA
Angular grew significantly in the past few years from both a tooling and developer experience standpoint. This talk will explore many of the features and newer improvements in the pipeline that allow anyone to build and deploy performant apps with very little overhead. Through real demos and examples, we’ll cover Ivy, bundle budgeting, differential serving, automatic code-splitting, and progressive rehydration of SSR elements. In the second part of the talk, we’ll focus on how to efficiently prefetch and preload different modules and components.
Front End Development for Back End Java Developers - Jfokus 2020Matt Raible
The document is a presentation about front end development for back end Java developers. It discusses topics like JavaScript, TypeScript, build tools, CSS frameworks, front end performance, and progressive web apps. It also provides introductions and comparisons of popular JavaScript frameworks like Angular, React, and Vue. The presentation encourages attendees to learn new front end skills and try building something with a front end framework.
It’s trivial today to start writing and debugging some React code, but it’s not 100% clear how to properly deploy the application, manage versions and what implications that has on the build configurations. Especially if you want to allow different versions for different users in order to perform some A/B testing, testing new features in production environment, come up with some UI experiments, or gradually roll out new features for a subset of users.
In this presentation I hopefully covered all that.
This document provides instructions for installing Yobi Git on a system and connecting it to a Git repository. It includes steps to check the JDK version, download Play Framework and Yobi, run Play Framework, start Yobi, connect through a browser, upgrade Yobi, backup files, check Git installation, create a sample project, and upload a project to Git using a script file. The document contains screenshots to illustrate the various steps and commands.
Building Beautiful and Interactive Metro apps with JavaScript, HTML5 & CSS3Doris Chen
This session outlines some of what you can do with new HTML5 and CSS3 features introduced in Internet Explorer 10. Internet Explorer 10 is the browser for rendering modern (HTML5/CSS3) standards-compliant websites. It is also one of the foundations for Metro style app development on Windows 8.
Get started writing Metro style apps using your HTML5, JavaScript, and CSS skills today! You already have a Web app on the Internet and want to reach customers with a new, targeted experience on Windows 8. Come get practical guidance and best practices on how to reuse your Web assets. Come dive into the specifics of this exciting platform and see how you can use your Web skills to build deeply-integrated Windows apps.
• You’ll discover how this mirrors or differs from traditional Web programming and how to harness the rich capabilities of Windows 8 through JavaScript and the Windows Runtime.
• You'll learn techniques for turning your HTML5, CSS and JavaScript into a great Windows app including touch-enablement, adopting the Windows look and feel, and system integration.
This session will arm you with everything you need to know to start building Metro style apps with the skills you already have.
The document discusses an image processing pipeline for mobile devices that uses the webcam on a browser to capture images and upload them to a GPU-enabled server for preprocessing and neural network processing before returning results to the browser. It covers using WebRTC and JavaScript Canvas to capture images, uploading images to the server via WebSocket, preprocessing images on both the client and server sides, using Tornado on the server to handle the WebSocket connection and processing images with queues and multiprocessing, and various neural networks that could be used for processing.
Embedding WPE WebKit - from Bring-up to MaintenanceIgalia
Embedded devices have become powerful enough to run Web content a decade ago,
and any modern SoC that can run Linux and includes a GPU is a potential
candidate to hide a Web engine under the surface. How did it made it there?
Does it only show Web content? What else can it do? The talk will cover
bring-up tips to build and get WPE WebKit working on your custom embedded
device and make your own simple Web browser, as well as the best practices for
keeping the system up to date. No less important is integration with the rest
of the system: this session will detail the possibilities that WebKit brings to
the table, including how to add new JavaScript APIs which call into native code
to provide tight, performant access to platform functionality.
(c) Embedded Open Source Summit 2024
April 16-18, 2024
Seattle, Washington (US)
https://events.linuxfoundation.org/embedded-open-source-summit/
https://eoss24.sched.com/event/1aBFQ/embedding-wpe-webkit-from-bring-up-to-maintenance-adrian-perez-de-castro-igalia
Exploration note - none windows based authentication for WCFShahzad
1. The document discusses security implementation options for WCF web services deployed with IIS as the host, given limitations on authentication methods.
2. It analyzes certificate-based authentication, custom username/password validation, and using an HTTP module for basic authentication as potential solutions.
3. It provides clarification that while custom username/password validation is possible, the standard WCF bindings do not support it over HTTP without additional changes, and recommends using HTTPS instead.
This document discusses responsive image techniques for adaptive web design. It begins by explaining browser sniffing versus feature testing, and recommends using feature testing to determine browser width, screen resolution, and bandwidth instead of browser sniffing. It then covers techniques like using background-size to control image sizes, SVG for smaller file sizes, and font-based solutions. The document also discusses server-side techniques like .htaccess rewrite rules and client-side techniques like picture and HiSRC. It advocates for a mobile-first approach using CSS media queries and a single pixel GIF for responsive images.
This document discusses patterns for implementing micro frontends with Vue. It describes Vue as a good framework for building micro frontends due to its flexibility. It then covers issues that can arise with micro frontends and provides solutions, such as using custom elements to ensure components are rendered correctly, passing data from server to client, and sharing components between micro frontends.
Front End Development for Back End Developers - Denver Startup Week 2017Matt Raible
Are you a backend developer that’s being pushed into front end development? Are you frustrated with all JavaScript frameworks and build tools you have to learn to be a good UI developer? If so, this session is for you! We’ll explore the tools of the trade for fronted development (npm, yarn, Gulp, Webpack, Yeoman) and learn the basics of HTML, CSS, and JavaScript. I'll dive into the intricacies of Bootstrap, Material Design, ES6, and TypeScript. Finally, after getting you up to speed with all this new tech, I'll show how it can all be found and integrated through the fine and dandy JHipster project.
What Web Developers Need to Know to Develop Windows 8 AppsDoris Chen
You already have a Web app on the Internet and want to reach customers with a new, targeted experience on Windows 8. Come get practical guidance and best practices on how to reuse your Web assets. Come dive into the specifics of this exciting platform and see how you can use your Web skills to build deeply-integrated Windows apps.
◦You’ll discover how this mirrors or differs from traditional Web programming and how to harness the rich capabilities of Windows 8 through JavaScript and the Windows Runtime.
◦You'll learn practical techniques on how to access a web service, how to work with camera, and how to make live tiles, etc.
◦Expect a lot of code and demo.
This session will jump start you with everything you need to know to start building Windows 8 apps with the skills you already have.
Front End Development for Back End Developers - UberConf 2017Matt Raible
Are you a backend developer that’s being pushed into front end development? Are you frustrated with all JavaScript frameworks and build tools you have to learn to be a good UI developer? If so, this session is for you! We’ll explore the tools of the trade for frontend development (npm, yarn, Gulp, Webpack, Yeoman) and learn the basics of HTML, CSS, and JavaScript.
This presentation dives into the intricacies of Bootstrap, Material Design, ES6, and TypeScript. Finally, after getting you up to speed with all this new tech, I'll show how it can all be found and integrated through the fine and dandy JHipster project.
JDD 2017: 7 things which you should care about before release your code to pr...PROIDEA
You have finished working on your new Java project and it's time to release it to the rest of the World? What's now? Do you remember about all important things? This talk aims to highlight the most important things before the first release. Those topics will be covered on presentation:
- Versioning
- Profiling
- Health checks
- Logs
- Performance
- Monitoring and alarming
- Release process
Vue.js is an open-source progressive framework for building user interfaces that focuses on the view layer. It has a virtual DOM and reactive components. Its core is small and works well with companion libraries. Single file components allow importing of templates, logic, and styles. Popular companion libraries include Vuex for state management and Vue Router for routing. The Vue CLI makes it easy to scaffold Vue projects with features like routing, lazy loading, and preloading for improved performance.
This document provides an overview of tools and techniques for Magento 2 development. It discusses Composer, Magento CLI, N98 Magerun, PHPStorm, module creators, debug tools, Xdebug, and logging methods. It also covers setting up development environments with LAMP/LEMP stacks, using Node.js and Grunt for frontend work, and debugging with KnockoutJS and ChromePHP. Contact information is provided at the end for additional support.
1. Developing web applications has become increasingly complex over the years, requiring developers to choose frameworks, configure apps, and handle deployment.
2. Templates can help streamline development by providing pre-configured starting points for common stacks and handling boilerplate configuration.
3. Tools like Vagrant and Docker can help isolate development environments and more easily simulate production.
4. Frameworks like Brunch and Yeoman can automate frontend tasks like compilation, minification, and live reloading.
A Year of the Servo Reboot: Where Are We Now?Igalia
Created by Mozilla Research in 2012 and now part of Linux Foundation Europe, the Servo project is an experimental rendering engine written in Rust. It combines memory safety and concurrency to create an independent, modular, and embeddable rendering engine that adheres to web standards. Stewardship of Servo moved from Mozilla Research to the Linux Foundation in 2020, where its mission remains unchanged. After some slow years, in 2023 there has been renewed activity on the project, with a roadmap now focused on improving the engine’s CSS 2 conformance, exploring Android support, and making Servo a practical embeddable rendering engine. In this presentation, Rakhi Sharma reviews the status of the project, our recent developments in 2023, our collaboration with Tauri to make Servo an easy-to-use embeddable rendering engine, and our plans for the future to make Servo an alternative web rendering engine for the embedded devices industry.
(c) Embedded Open Source Summit 2024
April 16-18, 2024
Seattle, Washington (US)
https://events.linuxfoundation.org/embedded-open-source-summit/
https://ossna2024.sched.com/event/1aBNF/a-year-of-servo-reboot-where-are-we-now-rakhi-sharma-igalia
Building End-user Applications on Embedded Devices with WPEIgalia
The Web engine is the most important component of a Web Browser, enabling
developers to harness the power of the Web Platform to build their
applications. However, Web Browsers are not the only type of applications that
can be built with Web Engines, which can also be used to develop other types of
applications using the same Web-based technologies, but for a different type of
use cases other than "browsing the Web".
These use cases can cover a wide range of situations outside of the traditional
desktop or mobile environments, such as the ones embedded systems are usually
used for (e.g. set-top-boxes, smart home appliances, GPS navigation devices, or
in-car/in-flight infotainment systems, to name a few). And in those situations
it is very common to be running on boards with SoCs and a particular set of HW
capabilities that make it crucial for the Web Engine to be able to tightly
integrate with them.
In this session we will focus on how WPE, a fully Open Source port of the
WebKit Web engine for Linux-based embedded devices, can be used to adapt to the
different challenges that embedded devices pose to develop end-user
applications, using the power of the Web Platform underneath.
(c) Embedded Open Source Summit 2024
April 16-18, 2024
Seattle, Washington (US)
https://events.linuxfoundation.org/embedded-open-source-summit/
https://eoss24.sched.com/event/1aNTr/building-end-user-applications-on-embedded-devices-with-wpe-mario-sanchez-prada-igalia
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
The Raspberry Pi 5 was announced on October 2023. This new version of the
popular embedded device comes with a new iteration of Broadcom’s VideoCore GPU
platform, and was released with a fully open source driver stack, developed by
Igalia. The presentation will discuss some of the major changes required to
support this new Video Core iteration, the challenges we faced in the process
and the solutions we provided in order to deliver conformant OpenGL ES and
Vulkan drivers. The talk will also cover the next steps for the open source
Raspberry Pi 5 graphics stack.
(c) Embedded Open Source Summit 2024
April 16-18, 2024
Seattle, Washington (US)
https://events.linuxfoundation.org/embedded-open-source-summit/
https://eoss24.sched.com/event/1aBEx
Automated Testing for Web-based Systems on Embedded DevicesIgalia
Every day, embedded devices are becoming more powerful and capable of running
more elaborate applications. Among these applications are Web-based ones,
enabling to leverage features from the Web APIs to the embedded context, either
through a generic browser running a traditional Web application or through a
customized Web engine tightly integrated within the system.
But such capabilities usually bring new challenges, like testing user
interactions with the application using the embedded device's specific I/O
methods, such as gestures, or inspecting Web application internals with
JavaScript. In this context, using a browser automation framework such as
WebDriver, which is a W3C standard supported by WebKit Web engine, allows
testing Web-based applications on such devices as if the user were actually
using it, alongside running custom JS code.
In this session, we will cover why we need browser automation for testing on
certain types of embedded devices, with a focus on WebDriver as the proposed
tool to achieve that goal. We will also discuss WebDriver's main features and
limitations, as well as other possible approaches and frameworks that could be
considered for this kind of task.
(c) Embedded Open Source Summit 2024
April 16-18, 2024
Seattle, Washington (US)
https://events.linuxfoundation.org/embedded-open-source-summit/
https://eoss24.sched.com/event/1aeSx/automated-testing-for-web-based-systems-on-embedded-devices-lauro-moura-igalia
This talk dives into how the scheduler impacts your gameplay on Linux and
unveils our journey to smoother gameplay. How does task scheduling impact Linux
gaming? Suboptimal task scheduling can cause stuttering while playing games on
the Steam Deck game console. First, we nail down the enemy. What exactly is
"stuttering," and how can we measure its impact on your gameplay? Next, we
extensively analyzed the characteristics of game tasks from the scheduler’s
point of view. Characterizing task behavior in Linux gaming helps to understand
why some schedulers create much stuttering and others create less and to unveil
the secrets behind smooth vs. choppy performance. Lastly, we will share our
progress on the optimized scheduler for reducing the stuttering problems in
Linux gaming, especially Steam Deck. We implemented the scheduling policy based
on sched_ext, a BPF-based extensible scheduling framework.
(c) Open Source Summit North America 2024
April 16-18, 2024
Seatle, Washington (US)
https://events.linuxfoundation.org/open-source-summit-north-america/
https://ossna2024.sched.com/event/1aBOT/optimizing-scheduler-for-linux-gaming-changwoo-min-igalia
So, we are adding a backend for the SpiderMonkey’s codegen to enable JIT
support for JavaScript running through Wasm. Sounds a bit cryptic so let’s
divide it into parts.
SpiderMonkey is a JavaScript engine which is used for running JavaScript inside
the Firefox browser. SpiderMonkey is written in C++ and supports compilation
into the Wasm module, see live demo -
https://mozilla-spidermonkey.github.io/sm-wasi-demo/. However, SpiderMonkey
compiled into the Wasm module supports execution of JavaScript only in the
interpreter-only mode and it doesn’t support just-in-time compilation because
there is no Wasm backend for that. There are backends for Arm, X86, X64 etc but
there is none for Wasm.
Why do we want to add support for JIT? Well, because we want speed. Right now
there is no solution to run JS scripts via Wasm fast, there are only
interpreters.
Why does JIT improve performance?
The reasons are the same for why an interpreter is slower than a compiler -
because it eliminates the interpreter loop, uses a more efficient ABI and, more
importantly, it can specialize polymorphic operations in JavaScript. So, we not
only enable the JIT tier in SpiderMonkey for Wasm but we also provide support
for inline caches.
Inline caches is a mechanism for specializing the behavior of particular
operations like plus or a call to specific arguments provided at runtime.
With all that we can generate Wasm modules on the fly, instantiate them, and
link them to provide from ~2x to ~11x speedup over the interpreter. In the
talks we will cover how the whole scheme works with SpiderMonkey: 1. How to
link modules on the fly into SpiderMonkey.wasm 2. How to add an exotic Wasm
backend into SpiderMonkey’s supported backend line - X64, X86, Arm, Wasm 3. How
to use the whole solution in the cloud instead of QuickJS 4. How to get a
speedup of your JS over wasm with test data.
Wasm I/O 2024
14 - 15 Mar, 2024
Barcelona
https://2024.wasmio.tech/
To crash or not to crash: if you do, at least recover fast!Igalia
What could be possibly worse that an almost unbeatable boss in
a game or a tough maze that consume hours of gameplay with not
much progress? How about a Linux kernel crash that makes you
lose all the game progress with no apparent reason or feedback?
Though rare, it is a real possibility that would make gamers
quite annoyed, given that Linux is used more and more as a
platform for playing games.
Some technologies are available to collect logs and feedback
the user in case such disastrous events happen, mostly related
with kernel crashes handling mechanisms. The main ones available
are kdump and pstore, but still there are work to be done in
this area...
In this talk we're going to present the basics about kernel
crash handling, like how a kernel panic might happen, how to
deal with that (with an overall discussion about kdump and
pstore techs) and the kdumpst tool, developed specially to
deal with this situation on Steam Deck (and generically on
Arch Linux); also we're gonna discuss some missing
pieces / ideas to make it even less likely gamers need to
complain that their device just got hang for no reason!
FOSForums 2023
Aug 26 - Aug 27, 2023
Institute of Computing, State University of Campinas (Unicamp)
Campinas, São Paulo, Brazil
https://www.fosforums.org/
Introducción a Mesa. Caso específico dos dispositivos Raspberry Pi por IgaliaIgalia
Nesta charla impartida por Alejandro Piñeiro de Igalia, darase unha introdución
a Mesa, librería open-source para o desenvolvemento de drivers gráficos.
Explicarase a súa historia, os seus compoñentes máis importantes, que
utilidades proporcionan aos desenvolvedores e unha lista de hardware ás que dan
soporte. Finalmente explicarase o caso concreto do soporte proporcionado para
as GPUs dos dispositivos da serie Raspberry Pi, centrándonos nas Raspberry Pi 4
e Raspberry Pi 5
Igalia é unha empresa galega, con sede na Coruña, especializada en servizos de
consultoría, e que desenvolve solucións innovadoras de código aberto para un
gran conxunto de plataformas de software e hardware. En Igalia traballan nas
áreas máis interesantes do software de código aberto, incluídos navegadores,
gráficos e multimedia.
Igalia desenvolveu os controladores OpenGL ES 3.1 e Vulkan 1.2 conformes para a
GPU VideoCore VII Broadcom que se fornece coa nova Raspberry Pi 5.
Alejandro Piñeiro é enxeñeiro de Software e socio en Igalia, é desenvolvedor de
Software Libre desde 2004. A súa experiencia inclúe unha variedade de proxectos
de GNOME e freedesktop.org, enfocándose desde 2015 en Mesa, especificamente os
drivers Intel e Broadcom. É un dos responsables do desenvolvemento do
controlador Broadcom Vulkan para Raspberry Pi 4 & 5.
Máis información en https://aindustriosa.org/Mesa/
Esta actividade está patrocinada pola Xunta de Galicia e pola Axencia Para a
Modernización Tecnolóxica (AMTEGA).
(c) A Industriosa
https://aindustriosa.org
28 de Outubro (Vigo)
Chimera Linux is a novel Linux distribution built around FreeBSD core tools and
the LLVM toolchain. Since its initial launch in 2021, it has made a lot of
progress and is now in alpha stage. The system can be deployed on a wide array
of hardware and many people are using it as their desktop system; it works on
x86_64, AArch64, POWER (little and big endian) as well as RISC-V and by now
comes with thousands of packages.
While trying to be practical, Chimera is also highly hardened, partly thanks to
the LLVM toolchain, rendering it immune to various security issues other
distros are vulnerable to. It has transparent and robust infrastructure,
ensuring smooth deployment of packages. We are also developing various new
tooling that the whole ecosystem can benefit from, including the Turnstile
session tracker. Service management is based around Dinit, a modern,
supervising system; we maintain and create a variety of tooling around it,
trying to break the existing status quo with systemd, while abandoning legacy
approaches.
2023 has seen several major milestones, so I will focus on these, while also
giving a short overview so that people unfamiliar with the system don't feel
lost. I will also explain how our work benefits the entire Linux ecosystem, as
well as beyond.
(c) FOSDEM 2024
3 & 4 February 2024
https://fosdem.org/2024/schedule/event/fosdem-2024-2524-2023-in-chimera-linux/
For the last 3 years, I've been building a complete Linux distribution, Chimera
Linux (https://chimera-linux.org) using solely LLVM as its system toolchain -
that means Clang, compiler-rt, and libc++, alongside its other tooling. Right
now, it is a complete desktop system that is already used by many, with a
familiar GNOME interface and thousands of packages, targeting 5 CPU
architectures. In this talk I would like to focus on my experiences using the
toolchain, what obstacles got in the way, how I dealt with them, the issues
that are still left and I would like to see addressed, the many benefits using
LLVM gave the project, and overall give the audience an insight into practical
deployment of LLVM in a project where it isn't simply a drop-in alternative to
GCC.
(c) FOSDEM 2024
3 & 4 February 2024
https://fosdem.org/2024/schedule/event/fosdem-2024-2555-building-a-linux-distro-with-llvm/
turnip: Update on Open Source Vulkan Driver for Adreno GPUsIgalia
Turnip changed a lot since the last status update. You could now run AAA
desktop games via FEX + Turnip, Adreno 7xx is now supported, Turnip is used by
emulators on Android, and more!
(c) FOSDEM 2024
3 & 4 February 2024
https://fosdem.org/2024/schedule/event/fosdem-2024-2033-turnip-update-on-open-source-vulkan-driver-for-adreno-gpus/
Graphics stack updates for Raspberry Pi devicesIgalia
This talk will show the efforts done in the Open-Source graphics stack for
supporting Raspberry Pi devices. Although the talk will focus on the recently
launched new Raspberry Pi 5, we will show the improvements done for previous
generations of the Raspberry Pi hardware.
Raspberry Pi 5 has available FLOSS GPU drivers on product launch, exposing
OpenGL-ES 3.1 and Vulkan 1.2. We'll go through the changes needed to enable
desktop OpenGL 3.1 on RPi4/5.
We will also review the changes done to the kernel driver to expose the RPi5
capabilities and the new GPU stats support for RPi4/5.
Finally, we will show the work done to use Wayfire as the default Wayland
compositor on the Raspberry Pi OS.
- https://www.mesa3d.org/
- https://www.raspberrypi.com/
- https://wayfire.org/
(c) FOSDEM 2024
3 & 4 February 2024
https://fosdem.org/2024/schedule/event/fosdem-2024-2841-graphics-stack-updates-for-raspberry-pi-devices/
Delegated Compositing - Utilizing Wayland Protocols for Chromium on ChromeOSIgalia
This talk will cover our experience in utilizing Wayland subsurfaces and
implementing delegated compositing for Chromium on ChromeOS. Several concepts
will be covered - from overlay making decision in Chromium/Viz to design and
implementation of custom Wayland protocols, which were required to pass frame
data as overlays via Wayland and reconstruct that frame on the Wayland server
side.
(c) FOSDEM 2024
3 & 4 February 2024
https://fosdem.org/2024/schedule/event/fosdem-2024-3177-delegated-compositing-utilizing-wayland-protocols-for-chromium-on-chromeos/
MessageFormat: The future of i18n on the webIgalia
Internationalization in JavaScript and on the web platform is very complicated,
but also vastly important for us developers in order to build accessible and
intelligible interfaces. Thankfully, Unicode Consortium's MessageFormat working
group and TC39 have been hard at work standardizing the next generation of i18n
tooling that aims to unify analogous non-standard tools in use today while
approaching this problem from a fresh perspective.
Join me along this tour of i18n in JavaScript, discover some of the newest
additions to the toolkit and learn about the ongoing MessageFormat proposal and
how it aims to radically improve the developer experience.
(c) FOSDEM 2024
3 & 4 February 2024
https://fosdem.org/2024/schedule/event/fosdem-2024-2832-messageformat-the-future-of-i18n-on-the-web/
Replacing the geometry pipeline with mesh shadersIgalia
This talk will discuss the problems with the traditional vertex processing
pipeline and present how mesh shading solves these problems. Instead of
processing a fixed set of input vertices, mesh shaders can create an arbitrary
topology of vertices and primitives. Mesh shading also includes a new solution
for geometry amplification: task shaders.
The talk should be scheduled before Timur's talk about implementing mesh
shaders in the RADV Mesa driver.
(c) X.Org Developer Conference (XDC) 2022
October 4-6, 2022
Minneapolis, Minnesota, USA
https://indico.freedesktop.org/event/2/
Let's talk about developing AMD display drivers in the DRM subsystem as an
external contributor. Part of this work is a trail of breadcrumbs to build
documentation. What are those breadcrumbs? How do they help to review, fix,
improve and enable features of AMD drivers? How would both sides benefit if
those pieces of information were already documented? We are gathering
information from anywhere and also bothering experts for input. Ultimately,
this presentation focuses on AMD driver development but may fit DRM drivers of
any GPU vendors.
(c) X.Org Developer Conference (XDC) 2022
October 4-6, 2022
Minneapolis, Minnesota, USA
https://indico.freedesktop.org/event/2/
There has been a lot of activity in V3DV, the Vulkan driver for Raspberry Pi 4,
over the last year: we have significantly reworked our synchronization code,
obtained Vulkan 1.1 conformance, implemented Vulkan 1.2 support, continued to
work on compiler optimizations and more.
In this talk I would like to go through the main development milestones and
changes we implemented in the driver as well as discussing some limitations of
the underlying hardware platform that have discouraged us from implementing
features such as scalar block layout or fp16.
(c) X.Org Developer Conference (XDC) 2022
October 4-6, 2022
Minneapolis, Minnesota, USA
https://indico.freedesktop.org/event/2/
Enable hardware acceleration for GL applications without glamor on Xorg modes...Igalia
This talk will focus on development efforts and progress of enabling hardware
acceleration using the modesetting Xorg driver on Raspberry Pi 1-3 devices
without using Glamor.
We will discuss the reasons for disabling Glamor on these Raspberry Pi devices,
along with some previous attempts to accomplish this. This talk will also cover
the methods and technologies used in the current implementation such as DRI3,
GEM and GBM.
(c) X.Org Developer Conference (XDC) 2022
October 4-6, 2022
Minneapolis, Minnesota, USA
https://indico.freedesktop.org/event/2/
Ready to Unlock the Power of Blockchain!Toptal Tech
Imagine a world where data flows freely, yet remains secure. A world where trust is built into the fabric of every transaction. This is the promise of blockchain, a revolutionary technology poised to reshape our digital landscape.
Toptal Tech is at the forefront of this innovation, connecting you with the brightest minds in blockchain development. Together, we can unlock the potential of this transformative technology, building a future of transparency, security, and endless possibilities.
Discover the benefits of outsourcing SEO to Indiadavidjhones387
"Discover the benefits of outsourcing SEO to India! From cost-effective services and expert professionals to round-the-clock work advantages, learn how your business can achieve digital success with Indian SEO solutions.
Gen Z and the marketplaces - let's translate their needsLaura Szabó
The product workshop focused on exploring the requirements of Generation Z in relation to marketplace dynamics. We delved into their specific needs, examined the specifics in their shopping preferences, and analyzed their preferred methods for accessing information and making purchases within a marketplace. Through the study of real-life cases , we tried to gain valuable insights into enhancing the marketplace experience for Generation Z.
The workshop was held on the DMA Conference in Vienna June 2024.
HijackLoader Evolution: Interactive Process HollowingDonato Onofri
CrowdStrike researchers have identified a HijackLoader (aka IDAT Loader) sample that employs sophisticated evasion techniques to enhance the complexity of the threat. HijackLoader, an increasingly popular tool among adversaries for deploying additional payloads and tooling, continues to evolve as its developers experiment and enhance its capabilities.
In their analysis of a recent HijackLoader sample, CrowdStrike researchers discovered new techniques designed to increase the defense evasion capabilities of the loader. The malware developer used a standard process hollowing technique coupled with an additional trigger that was activated by the parent process writing to a pipe. This new approach, called "Interactive Process Hollowing", has the potential to make defense evasion stealthier.
18. Future work
h/w accelerated video playback
Native Hardware Buffers
PSON
armv7, x86
Emulator
Packaging and distribution
Resize, fullscreen
Many, many more
17 / 20
19. Give it a try
https://cloud.igalia.com/s/E2sHHMRTwAHfCS7 https://github.com/Igalia/wpe-android
18 / 20