Leading a Community-Driven Open Source ProjectVincent Massol
Talk presented at Voxxed Luxembourg 2017.
This talk is a return of experience of 20 years developing open source software at the Apache Software Foundation (Jakarta Cactus, Apache Maven), at Codehaus (Cargo) and on the XWiki open source project (last 10 years).
Through the example of the XWiki open source project, the talk will tackle best practices and governance rules for running community-driven open source projects and it'll also tackle the difficult topic of how to run such a project when there are companies making money from the open source project behind the scene.
Examples of topics that will be covered:
* Committership
* Development best practices
* Roadmap definitions
* Fully automating software releases
* Handling companies
* Tracking who's using your project
Based on the example of the XWiki Open Source project (http://xwiki.org) this session will describe a number of practices to improve the quality of a Java project. Also, it will show how to implement these practices so that they are automatically checked and enforced. Some examples include: *How to make sure your project does not break binary compatibility unintentionally and, more generally, how to successfully evolve an API without breaking your users; *How to manage the JAR hell and avoid duplication of classes in your application at runtime; *How to automatically control the test coverage and the associated policies; *How to automate functional testing of web applications and how to avoid false-positives that plague any project..
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014Vincent Massol
When developing a web application, the traditional way is to develop the application from scratch using a general purpose language such as PHP, Grails, Play, Java/JSP, etc.
This presentation will show that a next generation wiki (examples based on XWiki: http://xwiki.org) can be used as a web development platform to develop applications on top of it, providing a strong infrastructure scaffolding to building web applications.
The advantages are similar to those of using an application sever. However whereas an application server offers technical services only, a wiki platform offers higher level services such as content management, rendering, storage, WYSIWYGeditor, user management, and a lot more.
Not only are these services offered, you can develop using them in your traditional IDE or in the runtime, directly in wiki pages. This allows developing web applications extremely quickly, collaboratively and with a fast turnaround time, which is perfect for adhoc web application development.
Creating your own project's Quality DashboardVincent Massol
Presentation held at Softshake 2017.
Shows how to use the XWiki open source project (http://xwiki.org) to develop a quality portal web site for your development projects. We'll start from a clean XWiki instance and configure it and write scripts to have the following features:
* Documentation for your project
* Display JIRA issues
* Display Sonar metrics
* Display Jenkins statuses
* Display Git statistics of your project
* Have an application to perform releases (checklist, release notes)
* Send alerts (mail, IRC, etc) when quality metric thresholds are reached
And more!
Da ormai qualche anno Node.js sta prendendo sempre più piede sia in ambito startup che in ambito enterprise, cerchiamo di capire insieme di cosa si tratta, quali sono le sue caratteristiche principali e dove questo tool può dare il meglio di sé. Inizieremo da una introduzione del JavaScript runtime, descrivendo il suo sistema di I/O non bloccante e le principali funzionalità che mette a disposizione. Passeremo poi all'enorme ecosistema di librerie (NPM), mostrando le più famose e il loro utilizzo.
Leading a Community-Driven Open Source ProjectVincent Massol
Talk presented at Voxxed Luxembourg 2017.
This talk is a return of experience of 20 years developing open source software at the Apache Software Foundation (Jakarta Cactus, Apache Maven), at Codehaus (Cargo) and on the XWiki open source project (last 10 years).
Through the example of the XWiki open source project, the talk will tackle best practices and governance rules for running community-driven open source projects and it'll also tackle the difficult topic of how to run such a project when there are companies making money from the open source project behind the scene.
Examples of topics that will be covered:
* Committership
* Development best practices
* Roadmap definitions
* Fully automating software releases
* Handling companies
* Tracking who's using your project
Based on the example of the XWiki Open Source project (http://xwiki.org) this session will describe a number of practices to improve the quality of a Java project. Also, it will show how to implement these practices so that they are automatically checked and enforced. Some examples include: *How to make sure your project does not break binary compatibility unintentionally and, more generally, how to successfully evolve an API without breaking your users; *How to manage the JAR hell and avoid duplication of classes in your application at runtime; *How to automatically control the test coverage and the associated policies; *How to automate functional testing of web applications and how to avoid false-positives that plague any project..
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014Vincent Massol
When developing a web application, the traditional way is to develop the application from scratch using a general purpose language such as PHP, Grails, Play, Java/JSP, etc.
This presentation will show that a next generation wiki (examples based on XWiki: http://xwiki.org) can be used as a web development platform to develop applications on top of it, providing a strong infrastructure scaffolding to building web applications.
The advantages are similar to those of using an application sever. However whereas an application server offers technical services only, a wiki platform offers higher level services such as content management, rendering, storage, WYSIWYGeditor, user management, and a lot more.
Not only are these services offered, you can develop using them in your traditional IDE or in the runtime, directly in wiki pages. This allows developing web applications extremely quickly, collaboratively and with a fast turnaround time, which is perfect for adhoc web application development.
Creating your own project's Quality DashboardVincent Massol
Presentation held at Softshake 2017.
Shows how to use the XWiki open source project (http://xwiki.org) to develop a quality portal web site for your development projects. We'll start from a clean XWiki instance and configure it and write scripts to have the following features:
* Documentation for your project
* Display JIRA issues
* Display Sonar metrics
* Display Jenkins statuses
* Display Git statistics of your project
* Have an application to perform releases (checklist, release notes)
* Send alerts (mail, IRC, etc) when quality metric thresholds are reached
And more!
Da ormai qualche anno Node.js sta prendendo sempre più piede sia in ambito startup che in ambito enterprise, cerchiamo di capire insieme di cosa si tratta, quali sono le sue caratteristiche principali e dove questo tool può dare il meglio di sé. Inizieremo da una introduzione del JavaScript runtime, descrivendo il suo sistema di I/O non bloccante e le principali funzionalità che mette a disposizione. Passeremo poi all'enorme ecosistema di librerie (NPM), mostrando le più famose e il loro utilizzo.
Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015Chris Gates
In a rare mash-up, DevOps is increasingly blending the work of both application and network security professionals. In a quest to move faster, organizations can end up creating security vulnerabilities using the tools and products meant to protect them. Both Chris Gates (carnal0wnage) and Ken Johnson (cktricky) will share their collaborative research into the technology driving DevOps as well as share their stories of what happens when these tools are used insecurely as well as when the tools are just insecure.
Technologies discussed will encompass AWS Technology, Chef, Puppet, Hudson/Jenkins, Vagrant, Kickstart and much, much more. Everything from common misconfigurations to remote code execution will be presented. This is research to bring awareness to those responsible for securing a DevOps environment.
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...Mario Heiderich
ECMAScript 6, in short ES6, has been boiling in a copper pot for many years by now and step-by-step, browser vendors come forward to taste the first sips of this mystery soup. So, ES6 is no longer a theoretic language but already crawled across the doorstep and now lurks under your bed, ready for the nasty, waiting for the right moment to bite.
Now, what is this whole ES6 thing? How did it develop and who made it? And why is it now implemented in your favorite browser? And what does it mean for web-security and beyond?
This talk will answer these questions and showcase the new language from an attacker's perspective. You will see the new code constructs possible to be executed with ES6, new attack vectors and learn what you can do to tame that beast. Kafkaesque terminology such as expression interpolation, proper tail calls, computed properties, spread parameters, modules and tagged template strings will no longer be surprising you after attending this talk.
Presentation held at Softshake 2017.
When developing a web application, the traditional way is to develop the application from scratch using a general purpose language such as PHP, Grails, Play, Java/JSP, etc.
This presentation shows that a next generation wiki (examples based on XWiki: http://xwiki.org) can be used as a web development platform to develop applications on top of it, providing a strong infrastructure scaffolding to building web applications.
The advantages are similar to those of using an application sever. However whereas an application server offers technical services only, a wiki platform offers higher level services such as content management, rendering, storage, WYSIWYGeditor, user management, and a lot more.
Not only are these services offered, you can develop using them in your traditional IDE or in the runtime, directly in wiki pages. This allows developing web applications extremely quickly, collaboratively and with a fast turnaround time, which is perfect for adhoc web application development.
Vert.x is a new JVM based application framework with an event driven, asynchronous programming model. With APIs available in Java, JavaScript, Ruby, Python and Groovy, developers are given complete freedom to implement their application in the language of their choice.
Starting with the core Vert.x concepts, this presentation will walk attendees through the components of a simple vert.x based application. Through this process, attendees will gain an understanding of how Vert.x:
- provides for a way to use several different languages in the same application
- takes advantage of JVMs excellent multi-core capabilities
- uses a module-based framework for packaging and hot-deployment
- communicates with other processes via a distributed event bus
- exposes an asynchronous programming model with very simple concurrency
With this presentation, viewers should gain a deep-enough understanding of Vert.x to be able to evaluate the platform for their own projects.
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017Matt Warren
It's a 'brave new world' or 'hell has frozen over' (depending on your point-of-view). Microsoft is the top contributor on GitHub, they have opened-sourced their entire .NET platform and gone cross-platform!
In this talk we will look at what the new 'Open-Source' Microsoft actually looks like, what they've done, how they're doing it and what it all means. From new features to compiler design meetings, from TechEmpower benchmarks to increased community contributions, we will examine it all!
Integrating MQ Protocols with WSO2 ESB 4.9.0 (RabbitMQ, MQTT, Kafka)WSO2
To view webinar recording please use below URL:
http://wso2.com/library/webinars/2015/11/integrating-mq-protocols-with-wso2-esb-4.9-rabbitmq-mqtt-kafka/
With the release of WSO2 ESB 4.9.0, we introduced enhanced functionalities in message queuing protocols that are heavily used in modern enterprise integrations. It includes completely new transports such as MQTT (message queuing telemetry transport) and Kafka and improvements to the existing RabbitMQ transport.
In this webinar, we are going to discuss
Improvements to RabbitMQ transport with inbound endpoint support
An introduction to MQTT transport and its usage in WSO2 ESB
Kafka integration with inbound endpoints
A MQTT producer/consumer demo explaining the basic consuming case using MQTT inbound endpoints and basic producer case using MQTT Axis2 transport
Docker Security - Secure Container Deployment on LinuxMichael Boelen
How to securely deploy your containers, by the author of rkhunter and auditing tool Lynis.
Many introductory talks about Docker and its container technology, have been given. This attention to the subject is not surprising, seeing the amount of people "doing DevOps" now.
With container technology being fairly new on the Linux platform, the security aspects of containers are often being overlooked. While Linux containers do still not fully contain from a security point of view, we can definitely improve the security level of them.
In this talk, we have a look at the underlying Linux security measures, followed by the features Docker itself has to offer. The goal is to get an understanding how we can deploy containers in a secure way. After all, Docker is no longer just a toy, and our precious data is involved.
Development with Vert.x: an event-driven application framework for the JVMDavid Wu
For a long time JVM developers have been sitting out watching web developers write agile and performant applications with frameworks such as node.js. Fortunately this is no longer the case. Vert.x is a powerful, bleeding edge event-driven application framework for the JVM. It features native support for non-blocking I/O and concurrency. It has a distributed event bus that that allows real-time communication between client and server. In addition to including out-of-the-box modules for easy development, vert.x has a module system that enables code reuse. To be even more cool, vert.x is polyglot, supporting components written in different languages such as Javascript, Ruby, and Python. In this speech I will give an overview of the vert.x framework and some of the caveats that you should be aware of.
Using Xtext for the first time is usually a very positive experience. Although Xtext is a complex generic framework, it is very easy to create your first Xtext-based editor, because of Xtext’s smart defaults and intuitive APIs. Even with minimal initial effort, the results are quite spectacular. Unfortunately the initial excitement often turns into disillusion as soon as you use your plugin on a big project.
Many development teams hit a performance wall as their plugin gets deployed and has to support larger projects. Internally, Xtext is a complex beast. The internals are carefully hidden from the user, but understanding them is critical to understand where the performance bottlenecks come from.
At Sigasi we have built commercial tool support for complex hardware description languages (VHDL, Verilog, SystemVerilog) using the Xtext framework. Our plugin needs to handle big industrial sized projects (>400k lines of code) that include large generated files (2 to 10 MB). To handle these kinds of projects we have developed a set of techniques over the last four years.
In this talk we will cover some performance critical pieces of the Xtext framework and evaluate what can be done to optimize it (think: parallel loading, caching, fast linking,…). We will also discuss some workarounds that can be used if nothing else works (light-weight editors, reducing the workload of the compiler).
Presentation given at the Alpes JUG and Mars JUG on 10th and 11th of October 2012. Explains why XWiki is a runtime platform for developing web applications
Devoops: DoJ Annual Cybersecurity Training Symposium Edition 2015Chris Gates
In a rare mash-up, DevOps is increasingly blending the work of both application and network security professionals. In a quest to move faster, organizations can end up creating security vulnerabilities using the tools and products meant to protect them. Both Chris Gates (carnal0wnage) and Ken Johnson (cktricky) will share their collaborative research into the technology driving DevOps as well as share their stories of what happens when these tools are used insecurely as well as when the tools are just insecure.
Technologies discussed will encompass AWS Technology, Chef, Puppet, Hudson/Jenkins, Vagrant, Kickstart and much, much more. Everything from common misconfigurations to remote code execution will be presented. This is research to bring awareness to those responsible for securing a DevOps environment.
ECMAScript 6 from an Attacker's Perspective - Breaking Frameworks, Sandboxes,...Mario Heiderich
ECMAScript 6, in short ES6, has been boiling in a copper pot for many years by now and step-by-step, browser vendors come forward to taste the first sips of this mystery soup. So, ES6 is no longer a theoretic language but already crawled across the doorstep and now lurks under your bed, ready for the nasty, waiting for the right moment to bite.
Now, what is this whole ES6 thing? How did it develop and who made it? And why is it now implemented in your favorite browser? And what does it mean for web-security and beyond?
This talk will answer these questions and showcase the new language from an attacker's perspective. You will see the new code constructs possible to be executed with ES6, new attack vectors and learn what you can do to tame that beast. Kafkaesque terminology such as expression interpolation, proper tail calls, computed properties, spread parameters, modules and tagged template strings will no longer be surprising you after attending this talk.
Presentation held at Softshake 2017.
When developing a web application, the traditional way is to develop the application from scratch using a general purpose language such as PHP, Grails, Play, Java/JSP, etc.
This presentation shows that a next generation wiki (examples based on XWiki: http://xwiki.org) can be used as a web development platform to develop applications on top of it, providing a strong infrastructure scaffolding to building web applications.
The advantages are similar to those of using an application sever. However whereas an application server offers technical services only, a wiki platform offers higher level services such as content management, rendering, storage, WYSIWYGeditor, user management, and a lot more.
Not only are these services offered, you can develop using them in your traditional IDE or in the runtime, directly in wiki pages. This allows developing web applications extremely quickly, collaboratively and with a fast turnaround time, which is perfect for adhoc web application development.
Vert.x is a new JVM based application framework with an event driven, asynchronous programming model. With APIs available in Java, JavaScript, Ruby, Python and Groovy, developers are given complete freedom to implement their application in the language of their choice.
Starting with the core Vert.x concepts, this presentation will walk attendees through the components of a simple vert.x based application. Through this process, attendees will gain an understanding of how Vert.x:
- provides for a way to use several different languages in the same application
- takes advantage of JVMs excellent multi-core capabilities
- uses a module-based framework for packaging and hot-deployment
- communicates with other processes via a distributed event bus
- exposes an asynchronous programming model with very simple concurrency
With this presentation, viewers should gain a deep-enough understanding of Vert.x to be able to evaluate the platform for their own projects.
Microsoft & Open Source - a 'brave new world' - ProgSCon 2017Matt Warren
It's a 'brave new world' or 'hell has frozen over' (depending on your point-of-view). Microsoft is the top contributor on GitHub, they have opened-sourced their entire .NET platform and gone cross-platform!
In this talk we will look at what the new 'Open-Source' Microsoft actually looks like, what they've done, how they're doing it and what it all means. From new features to compiler design meetings, from TechEmpower benchmarks to increased community contributions, we will examine it all!
Integrating MQ Protocols with WSO2 ESB 4.9.0 (RabbitMQ, MQTT, Kafka)WSO2
To view webinar recording please use below URL:
http://wso2.com/library/webinars/2015/11/integrating-mq-protocols-with-wso2-esb-4.9-rabbitmq-mqtt-kafka/
With the release of WSO2 ESB 4.9.0, we introduced enhanced functionalities in message queuing protocols that are heavily used in modern enterprise integrations. It includes completely new transports such as MQTT (message queuing telemetry transport) and Kafka and improvements to the existing RabbitMQ transport.
In this webinar, we are going to discuss
Improvements to RabbitMQ transport with inbound endpoint support
An introduction to MQTT transport and its usage in WSO2 ESB
Kafka integration with inbound endpoints
A MQTT producer/consumer demo explaining the basic consuming case using MQTT inbound endpoints and basic producer case using MQTT Axis2 transport
Docker Security - Secure Container Deployment on LinuxMichael Boelen
How to securely deploy your containers, by the author of rkhunter and auditing tool Lynis.
Many introductory talks about Docker and its container technology, have been given. This attention to the subject is not surprising, seeing the amount of people "doing DevOps" now.
With container technology being fairly new on the Linux platform, the security aspects of containers are often being overlooked. While Linux containers do still not fully contain from a security point of view, we can definitely improve the security level of them.
In this talk, we have a look at the underlying Linux security measures, followed by the features Docker itself has to offer. The goal is to get an understanding how we can deploy containers in a secure way. After all, Docker is no longer just a toy, and our precious data is involved.
Development with Vert.x: an event-driven application framework for the JVMDavid Wu
For a long time JVM developers have been sitting out watching web developers write agile and performant applications with frameworks such as node.js. Fortunately this is no longer the case. Vert.x is a powerful, bleeding edge event-driven application framework for the JVM. It features native support for non-blocking I/O and concurrency. It has a distributed event bus that that allows real-time communication between client and server. In addition to including out-of-the-box modules for easy development, vert.x has a module system that enables code reuse. To be even more cool, vert.x is polyglot, supporting components written in different languages such as Javascript, Ruby, and Python. In this speech I will give an overview of the vert.x framework and some of the caveats that you should be aware of.
Using Xtext for the first time is usually a very positive experience. Although Xtext is a complex generic framework, it is very easy to create your first Xtext-based editor, because of Xtext’s smart defaults and intuitive APIs. Even with minimal initial effort, the results are quite spectacular. Unfortunately the initial excitement often turns into disillusion as soon as you use your plugin on a big project.
Many development teams hit a performance wall as their plugin gets deployed and has to support larger projects. Internally, Xtext is a complex beast. The internals are carefully hidden from the user, but understanding them is critical to understand where the performance bottlenecks come from.
At Sigasi we have built commercial tool support for complex hardware description languages (VHDL, Verilog, SystemVerilog) using the Xtext framework. Our plugin needs to handle big industrial sized projects (>400k lines of code) that include large generated files (2 to 10 MB). To handle these kinds of projects we have developed a set of techniques over the last four years.
In this talk we will cover some performance critical pieces of the Xtext framework and evaluate what can be done to optimize it (think: parallel loading, caching, fast linking,…). We will also discuss some workarounds that can be used if nothing else works (light-weight editors, reducing the workload of the compiler).
Presentation given at the Alpes JUG and Mars JUG on 10th and 11th of October 2012. Explains why XWiki is a runtime platform for developing web applications
We introduced Colibri Skin in version 2.0 (2009) and we have supported it for 6 years (version 7.0). How long do we estimate to have support for Flamingo Skin? How are we suppose to innovate / improve the UI with the current skin/templates structure we have?
Raised questions:
* What will the future of XWiki Skins will be?
* Will we be able to support multiple skins per flavor?
* Will we try to make Flamingo Skin customizable? How this will affect the testing of every possible configuration?
Con el uso de CDI, para la inyección de dependencias, y la consolidación de la plataforma Arquillian, ya no hay excusas en la plataforma Java EE para el desarrollo de pruebas.
La máquina virtual y la plataforma Java se está convirtiendo en el pilar de multiples lenguajes: Java, Scala, Groovy, Clojure, Ceylon, JRuby... pero muchos desarrolladores no conocen como funciona por dentro tanto el sistema de memoria como el recolector de basura. Este conocimiento es fundamental y puede marcar la diferencia entre dos programadores.
Esta charla consisitirá en una introducción a la gestión de memoria de la JVM (Hotspot), cómo trabaja el recolector de basura o algunas opciones para poder configurar las opciones por defecto.
Si alguna vez te has cruzado con un OutOfMemoryError y no entendistes la línea que copiastes de StackOverflow: esta es tu charla.
Presentado originalmente el martes 12 de junio de 2012, en la
5ta. Jornada "Por una Web Sin Barreras para las Personas con Discapacidad",
http://www.isoc.org.ar/proyectos/jornada5.html
Actualizado el 8 de agosto de 2013 para presentación en el curso
"Especialización en Diseño de interacción con estándares de accesibilidad y usabilidad"
del INSPT - Universidad Tecnológica Nacional.
Accesibilidad práctica con HTML5, CSS3 y WAI-ARIAManuel Razzari
Presentado por Camilo Kawerín y Manuel Razzari el 28/11/2012 en http://ux2012.com.ar La Jornada Anual de Experiencia de Usuario en Argentina, organizado por IxDA Buenos Aires.
Slide de ma présentation au Voxxed Days Luxembourg 2017.
http://cfp-voxxed-lux.yajug.org/2017/talk/KMC-5325/Documentation_as_code:_controler_la_qualite_!
"Document as code" consiste à utiliser toutes les bonnes pratiques que nous utilisons pour notre source code et de les appliquer à la documentation. Les points clés sont :
* Utiliser un outil de gestion des sources (git) et de préférence le même que pour les sources.
* Un format de texte simple (pas de XML) comme AsciiDoc.
* Mettre en place des outils d'intégration continu et déploiement continu
Lorsque cette bonne pratique est en place, se pose une seconde catégorie de problème. Comment garantir la qualité :
* Faciliter la barrière à l’entrée en proposant un lien pour éditer la documentation sur chaque page et pour soumettre une pull request.
* Test systématique des exemples de code
* Respect des conventions de documentation
* Métriques et dashboard pour garantir la qualité
* Partage de bonnes pratiques/revue de documentation.
Cette présentation est un retour d’expérience et donne quelques bonnes pratiques de documentation. C'est un aperçu de ce qui peut être mis en place pour s’assurer de la qualité de la doc.
A presentation discussing the benefits of VBScripting in today's even with the advent of PowerShell. This presentation also discusses building an HTA for your VBScripts and accessing WMI and AD information.
Any diligent developer is constantly working on improving his or her code. There are plenty of books telling how to make your code better. However most of them use the language of class-based OOP. Reader must have enough of experience to reflect those classical design patterns on JavaScript. Thus, many and many developers give up on the language before mastering its true power. On the other hand, JavaScript is an incredible impressive language. I wonder if JavaScript was originally designed as a foundation on which you build your own language.
About 2 years ago I had worked out a solution which developed by now into a light-weight library which brings into JavaScript everything I miss in the language as a follower of class-based OOP. All about how it is implemented and how can be used is on the slides.
Hidden pearls for High-Performance-PersistenceSven Ruppert
Small UseCases with a significant amount of data for internal company usage, most developers had this in their career, already. However, no Ops Team, no Kubernetes, no Cluster is available as part of the solution.
In this talk, I will show a few tech stacks that are helping to deal with persistent data without dealing with the classic horizontal scaling tech monsters like Kubernetes, Hadoop and many more.
Sit down, relax and enjoy the journey through a bunch of lightning-fast persistence alternatives for pure java devs.
www.denizoguz.com-For an in company JDK 7 orientation I have prepared a presentation which summaries new features of JDK 7. I would like to make it public for everyone who needs it.
A beginner's guide to annotation processing.
In this talk that I gave at Droidcon Tel Aviv in 2016, I walk you through the process of building a custom annotation processor which mimics some of the behavior you may be familiar with from the popular Android library: Butter Knife.
Finally Java SE 7 is GA and you can start using it. This talk will cover the most important new features of the language and the virtual machine. It will also cover some features that did not make it in to the SE 7 release. Finally we will discuss current state of Java as an ecosystem and my analysis and hopes for the future.
En tant que développeur, qu'il est bon d'être capable de débugguer sur sa machine un problème survenant en production, dans une configuration spécifique ! C'est ce que permet le framework TestContainers. Il permet de piloter Docker directement depuis ses tests JUnit et donc d'avoir un mécanisme extrêmement efficace pour déployer ses tests fonctionnels dans un environnement donné.
Cette session présentera TestContainers, appliqué à un cas réel avec une démonstration de comment l'utiliser pour effectuer des tests impliquant une base de données, un moteur de Servlet et plus. Au programme: Intégration JUnit5, création d'images Docker custom, enregistrement automatique de vidéos des tests, intégration avec un job Jenkins pipeline pour itérer sur les différentes configurations à tester.
Abstract 2: "Advanced testing in action on a Java project"
In 2019 we're all used to writing automated tests in Java projects. It's now time to move up the chain and learn how to implement more complex type of testing.
This talk will demonstrate advanced testing practices used by the XWiki open source project (http://xwiki.org), and using Java, Maven, Docker and Jenkins and more:
* Testing for backward compatibility with Revapi and an associated strategy
* Testing for coverage with Jacoco and defining a viable strategy for slowing improving the situation
* Testing the quality of your tests with Descartes Mutation testing
* Automatically enriching your test suite with DSpot
* Testing various configurations with Docker containers and Jenkins
Configuration Testing with Docker & TestContainersVincent Massol
Testing different configuration of your software on the developer machine, directly from your IDE.
Presented at Devoxx FR 2019
Video at https://youtu.be/0TvWv4L_IJM
This talk demonstrates advanced testing practices coming from the STAMP research project and applied to the XWiki open source project:
- Testing for coverage with Jacoco and defining a viable strategy for slowly improving the situation
- Testing the quality of your tests with Descartes Mutation testing
- Automatically enriching your test suite with DSpot
- Testing various configurations with Docker containers and Jenkins
- Generating tests automatically from production stack traces
Video at https://www.youtube.com/watch?v=nD1eFbql8jg
This talk will demonstrate advanced testing practices used by the XWiki open source project, and using Java, Maven, Docker and Jenkins:
* Testing for backward compatibility with Revapi and an associated strategy
* Testing for coverage with Jacoco and defining a viable strategy for slowing improving the situation
* Testing the quality of your tests with Descartes Mutation testing
Automatically enriching your test suite with DSpot
* Testing various configurations with Docker containers and Jenkins
Internal training at [[XWiki SAS>>http://xwiki.com]] about the Development Practices used by the XWiki SAS product team in charge of developing the XWiki open source project (among other projects). Most of the practices detailed are those from the XWiki open source project, defined on the [[dev subwiki>>dev:Main.WebHome]]. However the slides also provide a glimpse of other development practices that are used to complement the open source practices, such as Roadmap preparation and Stakeholder meetings.
More details at http://www.xwiki.org/xwiki/bin/view/Blog/DevPracticesByXWikiSAS
XWiki SAS est une société qui sponsorise le développement du logiciel open source XWiki (http://xwiki.org).
De plus le développement du logiciel est communautaire et suit les règles de développement de la fondation Apache.
Vincent Massol, directeur technique de XWiki SAS présentera comme la société est organisée de l’intérieur, ses sources de revenus, comment se font les recrutements et quels sont les liens avec le projet open source et les tensions inhérentes entre une société à but commercial et un projet open source communautaire.
PHP Frameworks: I want to break free (IPC Berlin 2024)Ralf Eggert
In this presentation, we examine the challenges and limitations of relying too heavily on PHP frameworks in web development. We discuss the history of PHP and its frameworks to understand how this dependence has evolved. The focus will be on providing concrete tips and strategies to reduce reliance on these frameworks, based on real-world examples and practical considerations. The goal is to equip developers with the skills and knowledge to create more flexible and future-proof web applications. We'll explore the importance of maintaining autonomy in a rapidly changing tech landscape and how to make informed decisions in PHP development.
This talk is aimed at encouraging a more independent approach to using PHP frameworks, moving towards a more flexible and future-proof approach to PHP development.
Accelerate your Kubernetes clusters with Varnish CachingThijs Feryn
A presentation about the usage and availability of Varnish on Kubernetes. This talk explores the capabilities of Varnish caching and shows how to use the Varnish Helm chart to deploy it to Kubernetes.
This presentation was delivered at K8SUG Singapore. See https://feryn.eu/presentations/accelerate-your-kubernetes-clusters-with-varnish-caching-k8sug-singapore-28-2024 for more details.
Neuro-symbolic is not enough, we need neuro-*semantic*Frank van Harmelen
Neuro-symbolic (NeSy) AI is on the rise. However, simply machine learning on just any symbolic structure is not sufficient to really harvest the gains of NeSy. These will only be gained when the symbolic structures have an actual semantics. I give an operational definition of semantics as “predictable inference”.
All of this illustrated with link prediction over knowledge graphs, but the argument is general.
JMeter webinar - integration with InfluxDB and GrafanaRTTS
Watch this recorded webinar about real-time monitoring of application performance. See how to integrate Apache JMeter, the open-source leader in performance testing, with InfluxDB, the open-source time-series database, and Grafana, the open-source analytics and visualization application.
In this webinar, we will review the benefits of leveraging InfluxDB and Grafana when executing load tests and demonstrate how these tools are used to visualize performance metrics.
Length: 30 minutes
Session Overview
-------------------------------------------
During this webinar, we will cover the following topics while demonstrating the integrations of JMeter, InfluxDB and Grafana:
- What out-of-the-box solutions are available for real-time monitoring JMeter tests?
- What are the benefits of integrating InfluxDB and Grafana into the load testing stack?
- Which features are provided by Grafana?
- Demonstration of InfluxDB and Grafana using a practice web application
To view the webinar recording, go to:
https://www.rttsweb.com/jmeter-integration-webinar
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...DanBrown980551
Do you want to learn how to model and simulate an electrical network from scratch in under an hour?
Then welcome to this PowSyBl workshop, hosted by Rte, the French Transmission System Operator (TSO)!
During the webinar, you will discover the PowSyBl ecosystem as well as handle and study an electrical network through an interactive Python notebook.
PowSyBl is an open source project hosted by LF Energy, which offers a comprehensive set of features for electrical grid modelling and simulation. Among other advanced features, PowSyBl provides:
- A fully editable and extendable library for grid component modelling;
- Visualization tools to display your network;
- Grid simulation tools, such as power flows, security analyses (with or without remedial actions) and sensitivity analyses;
The framework is mostly written in Java, with a Python binding so that Python developers can access PowSyBl functionalities as well.
What you will learn during the webinar:
- For beginners: discover PowSyBl's functionalities through a quick general presentation and the notebook, without needing any expert coding skills;
- For advanced developers: master the skills to efficiently apply PowSyBl functionalities to your real-world scenarios.
The Art of the Pitch: WordPress Relationships and SalesLaura Byrne
Clients don’t know what they don’t know. What web solutions are right for them? How does WordPress come into the picture? How do you make sure you understand scope and timeline? What do you do if sometime changes?
All these questions and more will be explored as we talk about matching clients’ needs with what your agency offers without pulling teeth or pulling your hair out. Practical tips, and strategies for successful relationship building that leads to closing the deal.
UiPath Test Automation using UiPath Test Suite series, part 3DianaGray10
Welcome to UiPath Test Automation using UiPath Test Suite series part 3. In this session, we will cover desktop automation along with UI automation.
Topics covered:
UI automation Introduction,
UI automation Sample
Desktop automation flow
Pradeep Chinnala, Senior Consultant Automation Developer @WonderBotz and UiPath MVP
Deepak Rai, Automation Practice Lead, Boundaryless Group and UiPath MVP
GDG Cloud Southlake #33: Boule & Rebala: Effective AppSec in SDLC using Deplo...James Anderson
Effective Application Security in Software Delivery lifecycle using Deployment Firewall and DBOM
The modern software delivery process (or the CI/CD process) includes many tools, distributed teams, open-source code, and cloud platforms. Constant focus on speed to release software to market, along with the traditional slow and manual security checks has caused gaps in continuous security as an important piece in the software supply chain. Today organizations feel more susceptible to external and internal cyber threats due to the vast attack surface in their applications supply chain and the lack of end-to-end governance and risk management.
The software team must secure its software delivery process to avoid vulnerability and security breaches. This needs to be achieved with existing tool chains and without extensive rework of the delivery processes. This talk will present strategies and techniques for providing visibility into the true risk of the existing vulnerabilities, preventing the introduction of security issues in the software, resolving vulnerabilities in production environments quickly, and capturing the deployment bill of materials (DBOM).
Speakers:
Bob Boule
Robert Boule is a technology enthusiast with PASSION for technology and making things work along with a knack for helping others understand how things work. He comes with around 20 years of solution engineering experience in application security, software continuous delivery, and SaaS platforms. He is known for his dynamic presentations in CI/CD and application security integrated in software delivery lifecycle.
Gopinath Rebala
Gopinath Rebala is the CTO of OpsMx, where he has overall responsibility for the machine learning and data processing architectures for Secure Software Delivery. Gopi also has a strong connection with our customers, leading design and architecture for strategic implementations. Gopi is a frequent speaker and well-known leader in continuous delivery and integrating security into software delivery.
"Impact of front-end architecture on development cost", Viktor TurskyiFwdays
I have heard many times that architecture is not important for the front-end. Also, many times I have seen how developers implement features on the front-end just following the standard rules for a framework and think that this is enough to successfully launch the project, and then the project fails. How to prevent this and what approach to choose? I have launched dozens of complex projects and during the talk we will analyze which approaches have worked for me and which have not.
Software Delivery At the Speed of AI: Inflectra Invests In AI-Powered QualityInflectra
In this insightful webinar, Inflectra explores how artificial intelligence (AI) is transforming software development and testing. Discover how AI-powered tools are revolutionizing every stage of the software development lifecycle (SDLC), from design and prototyping to testing, deployment, and monitoring.
Learn about:
• The Future of Testing: How AI is shifting testing towards verification, analysis, and higher-level skills, while reducing repetitive tasks.
• Test Automation: How AI-powered test case generation, optimization, and self-healing tests are making testing more efficient and effective.
• Visual Testing: Explore the emerging capabilities of AI in visual testing and how it's set to revolutionize UI verification.
• Inflectra's AI Solutions: See demonstrations of Inflectra's cutting-edge AI tools like the ChatGPT plugin and Azure Open AI platform, designed to streamline your testing process.
Whether you're a developer, tester, or QA professional, this webinar will give you valuable insights into how AI is shaping the future of software delivery.
2. What is XWiki Rendering?
•
•
•
A Java, open source (LGPL) library to convert an input in a given syntax
into an output in another syntax.
Needs: Wikis, Commenting system on web sites, any place where you ask
user to enter content.
Complex to implement properly!
3. Supported Syntaxes
Input Syntaxes
•
•
•
•
•
•
•
•
•
•
•
XWiki Syntax 1.0, 2.0, 2.1
HTML 4.x/XHTML 1.0
Plain text
Docbook 4.x
Confluence/Confluence XHTML
Mediawiki
JSPWiki
TWiki
Creole 1.0
Markdown
APT
Output Syntaxes
•
•
•
•
•
XWiki Syntax 2.0, 2.1
HTML 4.x/XHTML 1.0
Plain text
Docbook 4.x
APT
Future Syntaxes
•
•
PDF (prototype version using iText exists)
Asciidoc (need events in Asciidoctor)
4. Library Initialization
// Initialize Rendering components and allow getting instances!
EmbeddableComponentManager componentManager = !
! new EmbeddableComponentManager();!
componentManager.initialize(this.getClass().getClassLoader());
5. Example 1: Convert to XHTML
Converter converter =!
! componentManager.getInstance(Converter.class);!
!
WikiPrinter printer = new DefaultWikiPrinter();!
converter.convert(new StringReader("This is **bold**”),!
! Syntax.XWIKI_2_1, Syntax.XHTML_1_0, printer);!
!
Assert.assertEquals("<p>This is <strong>bold</strong></p>", !
! printer.toString());
6. Example 2: Italicize links
Parser parser = componentManager.getInstance(Parser.class, !
! Syntax.XWIKI_2_1.toIdString());!
XDOM xdom = parser.parse(new StringReader("This a [[link>MyPage]]"));!
!
// Find all links and make them italic!
for (Block block : xdom.getBlocks(new ClassBlockMatcher(LinkBlock.class), !
! Block.Axes.DESCENDANT)) {!
! Block parentBlock = block.getParent();!
! Block newBlock = new FormatBlock(Collections.<Block>singletonList(block), !
! ! Format.ITALIC);!
! parentBlock.replaceChild(newBlock, block);!
}!
!
WikiPrinter printer = new DefaultWikiPrinter();!
BlockRenderer renderer = componentManager.getInstance(BlockRenderer.class, !
! Syntax.XWIKI_2_1.toIdString());!
renderer.render(xdom, printer);!
!
Assert.assertEquals("This a //[[link>MyPage]]//", printer.toString());
8. Demo Time!
!
Build a live preview web site using
XWiki Rendering and AngularJS
27 au 29 mars 2013
9. Use it!
• Documentation on http://rendering.xwiki.org
• WYSIWYG editor using XWiki Rendering also available
• Use Maven for a simple start (recommended) or use the
•
Standalone JAR
Contribute to add more Syntaxes, more Macros!
11. Vincent Massol
• Speaker Bio
•
CTO XWiki SAS
•
•
XWiki (community-driven open source project)
Past: Maven, Apache Cargo, Apache Cactus, Pattern Testing
•
•
•
LesCastCodeurs podcast
Creator of OSSGTP open source group in Paris
3 books: JUnit in Action, Maven: A Developer’s Notebook, BBWM
• Your Projects
• Other Credentials: