Chrome Extensions Slides Gtugna Kick Off MeetiStephan Linzner
This document summarizes an event for the Google Technology User Group Network in Germany (GTUGNA). It includes an agenda for talks on topics like Android web views, Chrome extensions, and Google Go. It provides resources like the event website, Google groups, and contact email. It promotes using the hashtag #gtugna and livestreaming the event. It outlines an introduction to building Chrome extensions, including extension structure, architecture using the background page and content scripts, and available Chrome APIs. It advertises the first ever GTUG Battle competition to develop Chrome extensions and prizes for the top teams. Information is also provided for local GTUG chapters in Nuremberg and Stuttgart.
This document discusses various Go tools and frameworks, including IntelliJ IDEA for Go development, the goa microservices framework, and goagen CLI tool for code generation. It provides links to the JetBrains IDE, goa documentation on GitHub, and a blog post about goa in Japanese. The document also references a design file for a Go application located in a GOPATH.
Build and run applications in a dockerless kubernetes world - DevConf India 18Jorge Morales
Kubernetes has rapidly grown to support many container runtime formats. In this talk, I'm presenting all the alternatives you have to run your applications in kubernetes, and will present CRI-O which is steadily becoming a replacement to run your Docker containers on production. And since you will no longer have a docker daemon on your hosts, how will you build now your containers? I'll talk about all the options you have in this new world of Dockerless containers.
Igalia is working on enabling Chromium to run natively on Wayland-based Linux systems by improving the Ozone/Wayland implementation. There are ongoing discussions around implementing external window mode in Ozone to allow Chromium windows to be separate from the host desktop, as well as splitting the UI and GPU components into separate processes as in ChromeOS. Igalia is focused on changing the Mus demo to support external window mode and getting Chromium to launch in this mode on Linux. Further work is also needed on desktop integration and using Mojo for inter-process communication in Ozone/Wayland.
Por José María Casanova Crespo.
El próximo 23 de febrero se impartirá en el CiTIUS el workshop Licencias Software Libre, en el que se ofrecerá una visión introductoria sobre el licenciamiento de software y los principales ejes temáticos que lo caracterizan: derechos y obligaciones, impacto y otros aspectos relacionados con su uso, en particular relacionado con su distribución de forma binaria o en formato de código fuente. Durante la sesión, de hora y media de duración, se abordarán también otros temas de posible interés para los asistentes, caso de la compatibilidad de licencias o los pasos a seguir para el licenciar un software propio.
(c) CiTIUS, CC-BY-SA 4.0
https://citius.usc.es/novidades/eventos/freesoftwarelicenses
23 Febrero 2017
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)Igalia
This document provides an overview of Grilo, a framework for easing access to multimedia content from applications. Grilo aims to provide a common API and plugins for integrating content from multiple sources like YouTube, Jamendo, podcasts, and local media in a platform-agnostic way. The document discusses Grilo's goals of lowering the implementation and maintenance effort for applications by centralizing work on media source integration. It provides details on Grilo's current status, including available plugins, bindings, documentation and demo applications. It encourages collaboration by explaining how to get involved in Grilo's open development on GNOME infrastructure.
Grilo: Feeding applications with multimedia content (GUADEC 2010)Igalia
The document provides an overview of Grilo, a framework for integrating multimedia content from various sources into applications. Grilo allows application developers to browse, search, and retrieve media content through a single API, hiding differences in how each media source works. It also allows backend developers to create plugins that provide media sources or metadata sources to Grilo. The document discusses how application and backend developers can use Grilo, including browsing, searching, resolving metadata, and creating plugin classes and methods.
This presentation talks about Grilo, the framework to provide access to multimedia content. It provides access to different source and a high level API.
Chrome Extensions Slides Gtugna Kick Off MeetiStephan Linzner
This document summarizes an event for the Google Technology User Group Network in Germany (GTUGNA). It includes an agenda for talks on topics like Android web views, Chrome extensions, and Google Go. It provides resources like the event website, Google groups, and contact email. It promotes using the hashtag #gtugna and livestreaming the event. It outlines an introduction to building Chrome extensions, including extension structure, architecture using the background page and content scripts, and available Chrome APIs. It advertises the first ever GTUG Battle competition to develop Chrome extensions and prizes for the top teams. Information is also provided for local GTUG chapters in Nuremberg and Stuttgart.
This document discusses various Go tools and frameworks, including IntelliJ IDEA for Go development, the goa microservices framework, and goagen CLI tool for code generation. It provides links to the JetBrains IDE, goa documentation on GitHub, and a blog post about goa in Japanese. The document also references a design file for a Go application located in a GOPATH.
Build and run applications in a dockerless kubernetes world - DevConf India 18Jorge Morales
Kubernetes has rapidly grown to support many container runtime formats. In this talk, I'm presenting all the alternatives you have to run your applications in kubernetes, and will present CRI-O which is steadily becoming a replacement to run your Docker containers on production. And since you will no longer have a docker daemon on your hosts, how will you build now your containers? I'll talk about all the options you have in this new world of Dockerless containers.
Igalia is working on enabling Chromium to run natively on Wayland-based Linux systems by improving the Ozone/Wayland implementation. There are ongoing discussions around implementing external window mode in Ozone to allow Chromium windows to be separate from the host desktop, as well as splitting the UI and GPU components into separate processes as in ChromeOS. Igalia is focused on changing the Mus demo to support external window mode and getting Chromium to launch in this mode on Linux. Further work is also needed on desktop integration and using Mojo for inter-process communication in Ozone/Wayland.
Por José María Casanova Crespo.
El próximo 23 de febrero se impartirá en el CiTIUS el workshop Licencias Software Libre, en el que se ofrecerá una visión introductoria sobre el licenciamiento de software y los principales ejes temáticos que lo caracterizan: derechos y obligaciones, impacto y otros aspectos relacionados con su uso, en particular relacionado con su distribución de forma binaria o en formato de código fuente. Durante la sesión, de hora y media de duración, se abordarán también otros temas de posible interés para los asistentes, caso de la compatibilidad de licencias o los pasos a seguir para el licenciar un software propio.
(c) CiTIUS, CC-BY-SA 4.0
https://citius.usc.es/novidades/eventos/freesoftwarelicenses
23 Febrero 2017
Grilo: Easing integration of multimedia content in applications (LinuxTag 2010)Igalia
This document provides an overview of Grilo, a framework for easing access to multimedia content from applications. Grilo aims to provide a common API and plugins for integrating content from multiple sources like YouTube, Jamendo, podcasts, and local media in a platform-agnostic way. The document discusses Grilo's goals of lowering the implementation and maintenance effort for applications by centralizing work on media source integration. It provides details on Grilo's current status, including available plugins, bindings, documentation and demo applications. It encourages collaboration by explaining how to get involved in Grilo's open development on GNOME infrastructure.
Grilo: Feeding applications with multimedia content (GUADEC 2010)Igalia
The document provides an overview of Grilo, a framework for integrating multimedia content from various sources into applications. Grilo allows application developers to browse, search, and retrieve media content through a single API, hiding differences in how each media source works. It also allows backend developers to create plugins that provide media sources or metadata sources to Grilo. The document discusses how application and backend developers can use Grilo, including browsing, searching, resolving metadata, and creating plugin classes and methods.
This presentation talks about Grilo, the framework to provide access to multimedia content. It provides access to different source and a high level API.
Go is a compiled, statically typed programming language with strong concurrency features. Gomobile is a tool that allows Go code to run on mobile platforms like Android and iOS. It can generate native Android apps or build Go libraries that can be imported into Android and iOS projects. The presentation demonstrated how to set up Gomobile and build Go mobile apps and libraries, highlighting some caveats to consider.
Having trouble managing dependencies with golang ? Here's how to resolve those issues using some of the best tools built by the community for the community.
This document summarizes different approaches for using the Go programming language to build Android applications. It discusses building a pure Go app using the NativeActivity class, integrating Go as a library using bindings, and spawning separate Go processes from an Android app using inter-process communication. Code examples are provided for each approach. While Go support for Android is still unstable, these techniques allow Go to be used for simple Android projects as an alternative to Java.
This document provides an introduction and overview of Grails, a web application framework for Groovy and Java developers. It discusses why Grails is an agile framework, how it integrates various technologies like Groovy, Spring, Hibernate, and more seamlessly. It also demonstrates how to create a basic Grails application with a domain class in under 5 minutes using common Grails commands. Finally, it lists some of the author's open source Grails plugins.
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...AEGIS-ACCESSIBLE Projects
The document discusses improvements to accessibility in the GNOME desktop environment. It describes adding a new "Barnacle code" property to allow setting and getting an identifier for barnacle installations. This involves defining a GParamSpec and installing the new property on the relevant GObject class.
Javascript can be used to develop applications and interfaces for the GNOME desktop environment. GNOME 3 introduced the GNOME Shell, which uses Javascript and the GObject Introspection system to interface GNOME libraries. GObject Introspection extracts metadata from C libraries to make them accessible from Javascript via bindings. This allows Javascript programs to import and use functionality from GNOME libraries. There are two engines for running GNOME Javascript code: GJS, which uses Mozilla's Spidermonkey, and Seed, which uses Apple's JavascriptCore. Both provide access to GNOME libraries but have some differences. Tools and documentation are still works in progress areas as GNOME Javascript continues to evolve.
This document provides an agenda and overview for a two-day Drools & jBPM workshop in October in London. Day 1 will cover the tooling technology stack including GWT, Errai, Uberfire and related modules. It will also include demos of the Drools workbench. Day 2 will cover the KIE platform introduction including KIE projects and jars, and will focus on jBPM tooling including creating and deploying KIE projects, executing business processes, and REST APIs. The document notes that the tooling shown is from a snapshot version and may have some issues on Windows.
The document discusses how to write a plugin for the Google Closure Editor to add image functionality. It covers initializing the editor, registering the plugin, interacting with commands, and implementing an image dialog plugin by extending the necessary classes and interfaces. The plugin allows users to click an image button, open an image dialog to insert images into the content.
Mobile Apps by Pure Go with Reverse BindingTakuya Ueda
This document discusses developing Android apps in Go using the gomobile tool. It covers cross-compiling Go code for Android, using cgo to access Android platform APIs, and developing both SDK and native Android apps in Go. It then describes how gomobile bind can generate bindings between Go and Java to allow accessing Android platform APIs from Go code through reverse bindings. This allows writing fully native Android apps directly in Go.
This document provides an overview of the GNOME desktop environment, including its core libraries and tools for developers as well as its main applications for users. It discusses GNOME's history and goals of being a free and easy-to-use desktop. The key libraries covered include GTK+, GLib, Pango, ATK, GDK, and GNOME VFS. Important developer tools like Glade, Anjuta, and GOB are also summarized. Finally, the document outlines many of GNOME's core applications and other notable programs.
PyConFR 2014 - DEPOT, Story of a file.write() gone wrongAlessandro Molina
DEPOT ( http://depot.readthedocs.org/en/latest/ ) is a file storage framework born from the experience on a project that saved a lot of files on disk, until the day it went online and the customer system engineering team diceded to switch to Heroku, which doesn't support storing files on disk.
Like SQLAlchemy makes possible to switch your storage on the fly without touching code, DEPOT aims at making so possible for files and even use multiple different storages together.
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview of debugging and development tools for the Android platform. It begins with an introduction to Android architecture basics like hardware components, the Android Open Source Project (AOSP), and system services. It then discusses development environments, observing and monitoring tools for the native, framework, and app layers. The document also covers interfacing with the Android framework, working with AOSP source code, symbolic debugging, performance profiling, and benchmarking.
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview of debugging and development for the Android platform. It discusses the architecture basics, setting up a development environment in Android Studio, tools for observing and monitoring the system like logcat and dumpsys, interfacing with the framework, working with AOSP sources, symbolic debugging with gdb and gdbserver, detailed dynamic data collection using tools like ftrace and perf, and benchmarking. The document also provides guidance on debugging challenges and lists additional topics like debuggerd, tombstones, and ANR traces.
Android Platform Debugging and DevelopmentKarim Yaghmour
This document provides an overview of debugging and development for the Android platform. It discusses the architecture basics, setting up a development environment in Android Studio, tools for observing and monitoring the system like logcat and dumpsys, interfacing with the framework, working with AOSP sources, symbolic debugging with gdb and gdbserver, detailed dynamic data collection using tools like ftrace and perf, and benchmarking. The document also provides guidance on debugging challenges and lists additional topics like debuggerd, tombstones, and ANR traces.
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview of debugging and development tools for the Android platform. It begins with an introduction to Android architecture basics and the development environment. It then discusses tools for observing and monitoring systems, interfacing with frameworks, and working with AOSP sources. The document also covers symbolic debugging, dynamic data collection using tools like logging, strace, and ftrace, and benchmarking Android performance.
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview and agenda for a presentation on Android platform debugging and development. It covers:
1. An introduction to Android architecture basics like hardware, AOSP, Binder and system services.
2. Setting up the development environment, including host/target systems, IDEs like Android Studio, and exploring the AOSP sources.
3. Tools for observing and monitoring at the native, framework and overall system level, including logcat, dumpsys, and third party apps.
4. Interfacing with the framework using commands like am, pm and wm, and service calls.
5. Tips for working with the AOSP source code using make targets and other build tools.
GVFS is a virtual filesystem for GNOME that provides a unified interface to accessing different types of remote and local files. It aims to address limitations in the existing GNOME Virtual File System (gnome-vfs) such as its outdated design, unnecessary dependencies, and lack of features. GVFS uses a modern object-oriented design with the GIO library and places filesystem backends in separate out-of-process daemon processes for improved stability and resource sharing. It allows files on remote systems and devices to be accessed locally through FUSE mounting while providing features like file monitoring, asynchronous I/O, and a common system for file metadata and icons.
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)Igalia
By Jacobo Aragunde Pérez
This session will present the status of the integration of the Chromium browser in the GDP and the plan for the next months.
(c) 16th GENIVI AMM
2017
https://at.projects.genivi.org/wiki/display/WIK4/16th+GENIVI+AMM
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/
On-going challenges in the Raspberry Pi driver stack: OpenGL 3, Vulkan and mo...Juan A. Suárez Romero
The document discusses ongoing challenges with Raspberry Pi drivers. It covers supporting the new Raspberry Pi 5 while merging drivers, implementing CPU job handling in Vulkan to avoid stalls, exposing OpenGL 3.1 features by fixing bugs, adding global GPU stats exposure, and taking questions. The presenters are from Igalia and discuss their work on the Raspberry Pi driver stack.
More Related Content
Similar to Writing multimedia applications with Grilo
Go is a compiled, statically typed programming language with strong concurrency features. Gomobile is a tool that allows Go code to run on mobile platforms like Android and iOS. It can generate native Android apps or build Go libraries that can be imported into Android and iOS projects. The presentation demonstrated how to set up Gomobile and build Go mobile apps and libraries, highlighting some caveats to consider.
Having trouble managing dependencies with golang ? Here's how to resolve those issues using some of the best tools built by the community for the community.
This document summarizes different approaches for using the Go programming language to build Android applications. It discusses building a pure Go app using the NativeActivity class, integrating Go as a library using bindings, and spawning separate Go processes from an Android app using inter-process communication. Code examples are provided for each approach. While Go support for Android is still unstable, these techniques allow Go to be used for simple Android projects as an alternative to Java.
This document provides an introduction and overview of Grails, a web application framework for Groovy and Java developers. It discusses why Grails is an agile framework, how it integrates various technologies like Groovy, Spring, Hibernate, and more seamlessly. It also demonstrates how to create a basic Grails application with a domain class in under 5 minutes using common Grails commands. Finally, it lists some of the author's open source Grails plugins.
Making the GNOME 3.0 desktop accessible: building accessibility into GNOME Sh...AEGIS-ACCESSIBLE Projects
The document discusses improvements to accessibility in the GNOME desktop environment. It describes adding a new "Barnacle code" property to allow setting and getting an identifier for barnacle installations. This involves defining a GParamSpec and installing the new property on the relevant GObject class.
Javascript can be used to develop applications and interfaces for the GNOME desktop environment. GNOME 3 introduced the GNOME Shell, which uses Javascript and the GObject Introspection system to interface GNOME libraries. GObject Introspection extracts metadata from C libraries to make them accessible from Javascript via bindings. This allows Javascript programs to import and use functionality from GNOME libraries. There are two engines for running GNOME Javascript code: GJS, which uses Mozilla's Spidermonkey, and Seed, which uses Apple's JavascriptCore. Both provide access to GNOME libraries but have some differences. Tools and documentation are still works in progress areas as GNOME Javascript continues to evolve.
This document provides an agenda and overview for a two-day Drools & jBPM workshop in October in London. Day 1 will cover the tooling technology stack including GWT, Errai, Uberfire and related modules. It will also include demos of the Drools workbench. Day 2 will cover the KIE platform introduction including KIE projects and jars, and will focus on jBPM tooling including creating and deploying KIE projects, executing business processes, and REST APIs. The document notes that the tooling shown is from a snapshot version and may have some issues on Windows.
The document discusses how to write a plugin for the Google Closure Editor to add image functionality. It covers initializing the editor, registering the plugin, interacting with commands, and implementing an image dialog plugin by extending the necessary classes and interfaces. The plugin allows users to click an image button, open an image dialog to insert images into the content.
Mobile Apps by Pure Go with Reverse BindingTakuya Ueda
This document discusses developing Android apps in Go using the gomobile tool. It covers cross-compiling Go code for Android, using cgo to access Android platform APIs, and developing both SDK and native Android apps in Go. It then describes how gomobile bind can generate bindings between Go and Java to allow accessing Android platform APIs from Go code through reverse bindings. This allows writing fully native Android apps directly in Go.
This document provides an overview of the GNOME desktop environment, including its core libraries and tools for developers as well as its main applications for users. It discusses GNOME's history and goals of being a free and easy-to-use desktop. The key libraries covered include GTK+, GLib, Pango, ATK, GDK, and GNOME VFS. Important developer tools like Glade, Anjuta, and GOB are also summarized. Finally, the document outlines many of GNOME's core applications and other notable programs.
PyConFR 2014 - DEPOT, Story of a file.write() gone wrongAlessandro Molina
DEPOT ( http://depot.readthedocs.org/en/latest/ ) is a file storage framework born from the experience on a project that saved a lot of files on disk, until the day it went online and the customer system engineering team diceded to switch to Heroku, which doesn't support storing files on disk.
Like SQLAlchemy makes possible to switch your storage on the fly without touching code, DEPOT aims at making so possible for files and even use multiple different storages together.
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview of debugging and development tools for the Android platform. It begins with an introduction to Android architecture basics like hardware components, the Android Open Source Project (AOSP), and system services. It then discusses development environments, observing and monitoring tools for the native, framework, and app layers. The document also covers interfacing with the Android framework, working with AOSP source code, symbolic debugging, performance profiling, and benchmarking.
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview of debugging and development for the Android platform. It discusses the architecture basics, setting up a development environment in Android Studio, tools for observing and monitoring the system like logcat and dumpsys, interfacing with the framework, working with AOSP sources, symbolic debugging with gdb and gdbserver, detailed dynamic data collection using tools like ftrace and perf, and benchmarking. The document also provides guidance on debugging challenges and lists additional topics like debuggerd, tombstones, and ANR traces.
Android Platform Debugging and DevelopmentKarim Yaghmour
This document provides an overview of debugging and development for the Android platform. It discusses the architecture basics, setting up a development environment in Android Studio, tools for observing and monitoring the system like logcat and dumpsys, interfacing with the framework, working with AOSP sources, symbolic debugging with gdb and gdbserver, detailed dynamic data collection using tools like ftrace and perf, and benchmarking. The document also provides guidance on debugging challenges and lists additional topics like debuggerd, tombstones, and ANR traces.
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview of debugging and development tools for the Android platform. It begins with an introduction to Android architecture basics and the development environment. It then discusses tools for observing and monitoring systems, interfacing with frameworks, and working with AOSP sources. The document also covers symbolic debugging, dynamic data collection using tools like logging, strace, and ftrace, and benchmarking Android performance.
Android Platform Debugging and DevelopmentOpersys inc.
This document provides an overview and agenda for a presentation on Android platform debugging and development. It covers:
1. An introduction to Android architecture basics like hardware, AOSP, Binder and system services.
2. Setting up the development environment, including host/target systems, IDEs like Android Studio, and exploring the AOSP sources.
3. Tools for observing and monitoring at the native, framework and overall system level, including logcat, dumpsys, and third party apps.
4. Interfacing with the framework using commands like am, pm and wm, and service calls.
5. Tips for working with the AOSP source code using make targets and other build tools.
GVFS is a virtual filesystem for GNOME that provides a unified interface to accessing different types of remote and local files. It aims to address limitations in the existing GNOME Virtual File System (gnome-vfs) such as its outdated design, unnecessary dependencies, and lack of features. GVFS uses a modern object-oriented design with the GIO library and places filesystem backends in separate out-of-process daemon processes for improved stability and resource sharing. It allows files on remote systems and devices to be accessed locally through FUSE mounting while providing features like file monitoring, asynchronous I/O, and a common system for file metadata and icons.
Integration of the Chromium Browser in the GENIVI Platform (16th GENIVI AMM)Igalia
By Jacobo Aragunde Pérez
This session will present the status of the integration of the Chromium browser in the GDP and the plan for the next months.
(c) 16th GENIVI AMM
2017
https://at.projects.genivi.org/wiki/display/WIK4/16th+GENIVI+AMM
Similar to Writing multimedia applications with Grilo (20)
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/
On-going challenges in the Raspberry Pi driver stack: OpenGL 3, Vulkan and mo...Juan A. Suárez Romero
The document discusses ongoing challenges with Raspberry Pi drivers. It covers supporting the new Raspberry Pi 5 while merging drivers, implementing CPU job handling in Vulkan to avoid stalls, exposing OpenGL 3.1 features by fixing bugs, adding global GPU stats exposure, and taking questions. The presenters are from Igalia and discuss their work on the Raspberry Pi driver stack.
This talk will focus on Grilo, a framework which purpose is to provide media application developers with proper tools to access online and offline multimedia. More specifically, Grilo provides:
- A single, high-level API that abstracts the differences among various media content providers, allowing application developers to browse and search content from various services and sources with little work on the application side.
- A collection of plugins for accessing content from various media providers. Developers can share efforts and code by writing plugins for the framework that are application agnostic.
- A flexible API that allows plugin developers to write plugins of various kinds.
Today, Grilo is already being used by various GNOME applications, such as Totem, Rhythmbox or MediaExplorer and it will have even more relevance in the future of the platform, where it is expected to be a key component of the new multimedia applications.
During this talk we will look at the current version of Grilo, and we will cover the new features that are coming for the 0.2 release: new API aimed to be extensible, new capabilities for filtering, a new design of plugins architecture, support for declarative plugin development, and, of course, the new plugins.
Talk from GUADEC 2012.
Rygel-Grilo provides a library and daemon to allow multimedia applications to access content over D-Bus using the Grilo framework and MediaServer2 specification. The library enables applications to consume media served by the Rygel-Grilo daemon, which uses Grilo to retrieve content from sources like YouTube and make it available to clients over D-Bus.
This document discusses debugging software by finding, reporting, locating, and fixing bugs. It describes different types of bugs and bugfixing steps. Tools for debugging like Bugzilla, GDB, Valgrind, Electric Fence, OProfile, and G_DEBUG are also covered. The document provides tutorials and explanations on using Bugzilla for reporting bugs and tracking issues, and using GDB for debugging programs.
Valgrind is an instrumentation framework for building analysis tools. It includes tools like Memcheck for detecting memory errors, and Callgrind for profiling call graphs and cache usage. Common errors it detects include illegal memory reads/writes, use of uninitialized values, and memory leaks. Leaks can be still reachable if a pointer is found, possibly lost if an interior pointer is found, or definitely lost if no pointer is found. Valgrind is useful for debugging but runs programs very slowly.
GDB is a GNU debugger that allows debugging C programs. It can trace code execution, inspect variable values, and debug running or crashed programs. Some key GDB commands include run, continue, backtrace, break, next, step, print, and display. Debugging requires compiling programs with debugging symbols and without optimizations. Core dumps created when programs crash can also be debugged with GDB.
LVM (Logical Volume Manager) allows managing disks in a different way by creating virtual disks called logical volumes from physical partitions. It does not have the same limitations as physical disks. LVM concepts include physical volumes representing physical partitions, volume groups which act as virtual disks by combining multiple physical volumes, and logical volumes which are partitions within volume groups that can be resized and moved independently of physical storage. LVM provides flexibility in managing storage and can be used with other technologies like encryption and RAID.
Una Arquitectura Multiagente Inteligente para la Detección de IntrusosJuan A. Suárez Romero
El documento describe una propuesta de arquitectura multiagente inteligente para la detección de intrusos. La arquitectura consta de cinco tipos de agentes: agentes de información, agentes especiales, agentes de prevención, agentes de detección y agentes de respuesta. Los agentes interactúan entre sí de forma dinámica y flexible para proveer información, prevenir, detectar y responder a posibles ataques de forma autónoma y tolerante a fallos.
This document proposes two new behaviors for the JADE agent framework called ParallelPriorityBehaviour and SequentialPriorityBehaviour. These behaviors allow agents to execute other behaviors in parallel or sequentially while assigning each a priority. The behaviors are able to run like the current scheduler implementations and provide a way to manage behaviors with priority.
The document proposes integrating a priority-based scheduler into the JADE agent development framework. It describes JADE's current scheduler and introduces two new scheduler behaviors: ParallelPriorityBehaviour and SequentialPriorityBehaviour. These behaviors allow scheduling agent tasks or behaviors based on static and dynamic priorities. This provides a way to prioritize some tasks over others, useful for applications like request handling where some requests require more urgent attention. The behaviors reuse existing JADE behaviors while adding prioritization, providing flexibility while penalizing scheduler performance.
A New Learning Method for Single Layer Neural Networks Based on a Regularized...Juan A. Suárez Romero
The document proposes a new learning method for single layer neural networks based on a regularized cost function. The method formulates an alternative cost function that can be solved using a system of linear equations, allowing for fast training with low computational cost. The method was tested on an intrusion detection classification problem and a time series regression problem. Results showed regularization generally obtained better solutions than an unregularized approach, especially with small training sets or noisy data. Future work will analyze methods for obtaining the optimal regularization parameter.
This document describes a tool that was developed for agent communication in the Mozart/Oz programming language. The tool allows agents to communicate using KQML, which Mozart/Oz previously lacked support for. The tool features a modular design with components like a ConversationMaster, PolicyManager, MessageDistributor, and MessageConverter to control conversations and route messages between agents on the internal Mozart/Oz platform and other external platforms. The tool aims to provide a flexible and scalable way for Mozart/Oz agents to communicate using KQML while maintaining the advantages of the Mozart/Oz programming environment.
The document proposes a new multi-agent architecture for intrusion detection that improves upon previous rigid systems. It describes seven classes of agents - information, prevention, detection, response, evidence-search, interface, and special agents - that would dynamically cooperate using both domain and social knowledge to detect intrusions. The architecture aims to provide a more flexible and fault-tolerant system compared to earlier work.
The document describes the KNITTER system, which implements the KQML agent communication language in Erlang to allow for the development of complex multi-agent systems. KNITTER features a modular architecture that separates different components like the conversation manager, transport protocols, and agent name service as plug-in modules. This allows KNITTER to interoperate with other KQML implementations and provides flexibility to change or add different modules as needed. The goal of KNITTER is to bring the benefits of KQML-based agent communication to the Erlang programming language.
"$10 thousand per minute of downtime: architecture, queues, streaming and fin...Fwdays
Direct losses from downtime in 1 minute = $5-$10 thousand dollars. Reputation is priceless.
As part of the talk, we will consider the architectural strategies necessary for the development of highly loaded fintech solutions. We will focus on using queues and streaming to efficiently work and manage large amounts of data in real-time and to minimize latency.
We will focus special attention on the architectural patterns used in the design of the fintech system, microservices and event-driven architecture, which ensure scalability, fault tolerance, and consistency of the entire system.
The Microsoft 365 Migration Tutorial For Beginner.pptxoperationspcvita
This presentation will help you understand the power of Microsoft 365. However, we have mentioned every productivity app included in Office 365. Additionally, we have suggested the migration situation related to Office 365 and how we can help you.
You can also read: https://www.systoolsgroup.com/updates/office-365-tenant-to-tenant-migration-step-by-step-complete-guide/
Introduction of Cybersecurity with OSS at Code Europe 2024Hiroshi SHIBATA
I develop the Ruby programming language, RubyGems, and Bundler, which are package managers for Ruby. Today, I will introduce how to enhance the security of your application using open-source software (OSS) examples from Ruby and RubyGems.
The first topic is CVE (Common Vulnerabilities and Exposures). I have published CVEs many times. But what exactly is a CVE? I'll provide a basic understanding of CVEs and explain how to detect and handle vulnerabilities in OSS.
Next, let's discuss package managers. Package managers play a critical role in the OSS ecosystem. I'll explain how to manage library dependencies in your application.
I'll share insights into how the Ruby and RubyGems core team works to keep our ecosystem safe. By the end of this talk, you'll have a better understanding of how to safeguard your code.
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
[OReilly Superstream] Occupy the Space: A grassroots guide to engineering (an...Jason Yip
The typical problem in product engineering is not bad strategy, so much as “no strategy”. This leads to confusion, lack of motivation, and incoherent action. The next time you look for a strategy and find an empty space, instead of waiting for it to be filled, I will show you how to fill it in yourself. If you’re wrong, it forces a correction. If you’re right, it helps create focus. I’ll share how I’ve approached this in the past, both what works and lessons for what didn’t work so well.
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
"Scaling RAG Applications to serve millions of users", Kevin GoedeckeFwdays
How we managed to grow and scale a RAG application from zero to thousands of users in 7 months. Lessons from technical challenges around managing high load for LLMs, RAGs and Vector databases.
The Department of Veteran Affairs (VA) invited Taylor Paschal, Knowledge & Information Management Consultant at Enterprise Knowledge, to speak at a Knowledge Management Lunch and Learn hosted on June 12, 2024. All Office of Administration staff were invited to attend and received professional development credit for participating in the voluntary event.
The objectives of the Lunch and Learn presentation were to:
- Review what KM ‘is’ and ‘isn’t’
- Understand the value of KM and the benefits of engaging
- Define and reflect on your “what’s in it for me?”
- Share actionable ways you can participate in Knowledge - - Capture & Transfer
AppSec PNW: Android and iOS Application Security with MobSFAjin Abraham
Mobile Security Framework - MobSF is a free and open source automated mobile application security testing environment designed to help security engineers, researchers, developers, and penetration testers to identify security vulnerabilities, malicious behaviours and privacy concerns in mobile applications using static and dynamic analysis. It supports all the popular mobile application binaries and source code formats built for Android and iOS devices. In addition to automated security assessment, it also offers an interactive testing environment to build and execute scenario based test/fuzz cases against the application.
This talk covers:
Using MobSF for static analysis of mobile applications.
Interactive dynamic security assessment of Android and iOS applications.
Solving Mobile app CTF challenges.
Reverse engineering and runtime analysis of Mobile malware.
How to shift left and integrate MobSF/mobsfscan SAST and DAST in your build pipeline.
inQuba Webinar Mastering Customer Journey Management with Dr Graham HillLizaNolte
HERE IS YOUR WEBINAR CONTENT! 'Mastering Customer Journey Management with Dr. Graham Hill'. We hope you find the webinar recording both insightful and enjoyable.
In this webinar, we explored essential aspects of Customer Journey Management and personalization. Here’s a summary of the key insights and topics discussed:
Key Takeaways:
Understanding the Customer Journey: Dr. Hill emphasized the importance of mapping and understanding the complete customer journey to identify touchpoints and opportunities for improvement.
Personalization Strategies: We discussed how to leverage data and insights to create personalized experiences that resonate with customers.
Technology Integration: Insights were shared on how inQuba’s advanced technology can streamline customer interactions and drive operational efficiency.
High performance Serverless Java on AWS- GoTo Amsterdam 2024Vadym Kazulkin
Java is for many years one of the most popular programming languages, but it used to have hard times in the Serverless community. Java is known for its high cold start times and high memory footprint, comparing to other programming languages like Node.js and Python. In this talk I'll look at the general best practices and techniques we can use to decrease memory consumption, cold start times for Java Serverless development on AWS including GraalVM (Native Image) and AWS own offering SnapStart based on Firecracker microVM snapshot and restore and CRaC (Coordinated Restore at Checkpoint) runtime hooks. I'll also provide a lot of benchmarking on Lambda functions trying out various deployment package sizes, Lambda memory settings, Java compilation options and HTTP (a)synchronous clients and measure their impact on cold and warm start times.
Dandelion Hashtable: beyond billion requests per second on a commodity serverAntonios Katsarakis
This slide deck presents DLHT, a concurrent in-memory hashtable. Despite efforts to optimize hashtables, that go as far as sacrificing core functionality, state-of-the-art designs still incur multiple memory accesses per request and block request processing in three cases. First, most hashtables block while waiting for data to be retrieved from memory. Second, open-addressing designs, which represent the current state-of-the-art, either cannot free index slots on deletes or must block all requests to do so. Third, index resizes block every request until all objects are copied to the new index. Defying folklore wisdom, DLHT forgoes open-addressing and adopts a fully-featured and memory-aware closed-addressing design based on bounded cache-line-chaining. This design offers lock-free index operations and deletes that free slots instantly, (2) completes most requests with a single memory access, (3) utilizes software prefetching to hide memory latencies, and (4) employs a novel non-blocking and parallel resizing. In a commodity server and a memory-resident workload, DLHT surpasses 1.6B requests per second and provides 3.5x (12x) the throughput of the state-of-the-art closed-addressing (open-addressing) resizable hashtable on Gets (Deletes).
Connector Corner: Seamlessly power UiPath Apps, GenAI with prebuilt connectorsDianaGray10
Join us to learn how UiPath Apps can directly and easily interact with prebuilt connectors via Integration Service--including Salesforce, ServiceNow, Open GenAI, and more.
The best part is you can achieve this without building a custom workflow! Say goodbye to the hassle of using separate automations to call APIs. By seamlessly integrating within App Studio, you can now easily streamline your workflow, while gaining direct access to our Connector Catalog of popular applications.
We’ll discuss and demo the benefits of UiPath Apps and connectors including:
Creating a compelling user experience for any software, without the limitations of APIs.
Accelerating the app creation process, saving time and effort
Enjoying high-performance CRUD (create, read, update, delete) operations, for
seamless data management.
Speakers:
Russell Alfeche, Technology Leader, RPA at qBotic and UiPath MVP
Charlie Greenberg, host
5. Grilo
● Framework focused on making discovery and
browsing easy for application developers
● A single, high-level API for all the sources
● Plugins
● Provides access to multimedia content
● Extendable
9. Requirements
● Define what we need
● Type of content
– Any kind?
– Only video? Music?
● Metadata keys
– URL
– Title
– Thumbnail
– ... 55 metadata keys
10. Content to show
● Ignore any source that does not provide Videos
● In “browse” view, ignore any source that does not
support browsing
● In “search” view, ignore any source that does not
support searching
11. Information to show
- Title
- Author
- Duration
- Thumbnail
- URL
- Title
- Author
- Duration
- Thumbnail
- URL
Browse Search
13. Problems
● Two problems to solve
● Source not handling some keys
● Too much expensive to retrieve some keys
14. Totem
● Flags to control content retrieval
● Normal: provides the known requested content
– GRL_RESOLVE_NORMAL
● Fast only: provides the known requested content that
does not penalize the operation in terms of performance
– GRL_RESOLVE_FAST_ONLY
● Full: provides the known requested content using all the
available sources
– GRL_RESOLVE_FULL
15. Reduce the problems
● Request content in chunks
● Request fast only in first iteration
● While current chunk is visible
● Ask for each visible media element the discarded keys
(using full flag)
● URL key case: slow key and not shown in the UI
● Request it when user wants to play
18. GNOME Music
● Music defines its own structure
● Grilo's one is different
● Does not have concept of “Artist” or “Album”
● They are “boxes”
● Needs to sort the results
20. Approaches
● Request content from Tracker directly
● Create Grilo Media elements to add missing information
(Cover Art)
● Instruct Grilo's Tracker plugin how to construct the
medias
● Use query() function
● Very specific to the plugin
● In case of Tracker plugin, use SPARQL to make the query
– First column is the media to build
– Use alias to map each SPARQL column to specific metadata keys
22. Other use-cases
● Application to upload audio/video content to web
services
● store() function
● Mediaplayer with auto-resume
● “playback-interrupted-time” key
● store_metadata() function
– Metadata Store source handles it