Version 5 of eZ Publish is now running on Symfony 2 full stack. This talk will recount this fantastic journey, how the heart of a legacy content management engine was reworked, re-architectured, and injected into a Symfony 2 powered HMVC architecture. You will learn how two large technologies merged, what the pitfalls were, how they were overcome, and how these two large communities touched-base and look ahead together.
Talk given at the SensioLabs+eZ Roadshow, first stage in Cologne, Germany.
Details on the next stages of this roadshow at: http://ez.no/de/Ueber-eZ/Veranstaltungen-Neuigkeiten/Neuigkeiten/Roadshow-eZ-Publish-meets-Symfony
Talk given at International PHP Conference 13 in Munich.
Abstract:
This talk will present how inserting a REST layer on top of the world of Content and Features in eZ Publish allows for more than service-to-service usage. It will dig into the details of this content-oriented, RESTful API, hands-on, and illustrate how the REST principles were applied to eZ Publish 5 and its Symfony-based architecture.
Details:
http://phpconference.com/2013/en/sessions/rest-layer-top-world
Web performances : Is It not the right time to (re)consider CMS ?Kaliop-slide
During the last 5 years, many popular media players moved from CMS to low-level FrameWorks such as Symfony, Zend, Laravel. Some of them even dropped PHP in favor of new languages like Node or Python.
They all had the same motivation : “web performances”, understanding response time, scalability and stability.But is that the best solution?
In this talk, Gilles Guirand explains exactly why now is the time to reconsider PHP CMS, from the devOps culture to the metrics-centric approach, from the authenticated cache to CDN, from back-end to front-end optimization.
Plone through-the-web development is now powerful and allows complex sites to be created by learning a few simple rules. This could make Plone the most popular CMS on the planet.
Demystifying eZ Publish 5.x for eZ Publish 4.0 developersKaliop-slide
How and why to migrate eZ Publish 4 to eZ publish 5 : Limitations, benefits and complexity.
How eZ publish 5 may revolutionize the way you build websites with the new symfony2 stack
Talk given at the SensioLabs+eZ Roadshow, first stage in Cologne, Germany.
Details on the next stages of this roadshow at: http://ez.no/de/Ueber-eZ/Veranstaltungen-Neuigkeiten/Neuigkeiten/Roadshow-eZ-Publish-meets-Symfony
Talk given at International PHP Conference 13 in Munich.
Abstract:
This talk will present how inserting a REST layer on top of the world of Content and Features in eZ Publish allows for more than service-to-service usage. It will dig into the details of this content-oriented, RESTful API, hands-on, and illustrate how the REST principles were applied to eZ Publish 5 and its Symfony-based architecture.
Details:
http://phpconference.com/2013/en/sessions/rest-layer-top-world
Web performances : Is It not the right time to (re)consider CMS ?Kaliop-slide
During the last 5 years, many popular media players moved from CMS to low-level FrameWorks such as Symfony, Zend, Laravel. Some of them even dropped PHP in favor of new languages like Node or Python.
They all had the same motivation : “web performances”, understanding response time, scalability and stability.But is that the best solution?
In this talk, Gilles Guirand explains exactly why now is the time to reconsider PHP CMS, from the devOps culture to the metrics-centric approach, from the authenticated cache to CDN, from back-end to front-end optimization.
Plone through-the-web development is now powerful and allows complex sites to be created by learning a few simple rules. This could make Plone the most popular CMS on the planet.
Demystifying eZ Publish 5.x for eZ Publish 4.0 developersKaliop-slide
How and why to migrate eZ Publish 4 to eZ publish 5 : Limitations, benefits and complexity.
How eZ publish 5 may revolutionize the way you build websites with the new symfony2 stack
Comment créer, optimiser et monétiser vos contenus ?Kaliop-slide
Kaliop et eZ Systems ont animé une « Pause Digitale » 100% dédiée à la presse et aux médias. Le thème de la matinée : Comment créer, optimiser et monétiser vos contenus
Retrouvez dans les slides une partie de la présentation sur les nouveaux enjeux de fabrication des sites medias.
Introduction to CQRS and Event SourcingSamuel ROZE
Event Sourcing is the idea that every state of your application can be represented by a sequence of events. Using these two principles as the heart of a system or an application is quite common but can be challenging if we don’t use the right tools or architecture.
Creating hypermedia APIs in a few minutes using the API Platform frameworkLes-Tilleuls.coop
**Download the PPT to see screencasts**
API Platform is new open source PHP framework dedicated to the creation of modern web APIs.
It allows to bootstrap a fully featured API (pagination, validation, filtering, sorting, automatically generated documentation, HTTP cache, OAuth and JWT auth...) in just a few minutes.
It exposes out of the box popular API formats including Swagger, JSON-LD, Hydra, HAL, JSONAPI and Schema.org.
It is extensible and can be specialized with ease. Because it is built on top of the industry-leading Symfony framework, it already counts hundreds of available extensions (bundles).
In this talk, I'll show how to create a hypermedia API in just a few lines of codes, then take a look to the main features of the framework.
Utiliser Webpack dans une application SymfonyAlain Hippolyte
Depuis la version 2.8 de Symfony, Assetic le gestionnaire d'assets PHP n'est plus inclus par défaut dans la Standard Edition. Du coup, se pose la question, faut-il encore l'utiliser ? Quels sont les alternatives qui s'offrent à nous ?
Au cours de cette présentation, je vous présenterai l'outil Webpack, qui permet de packager nos assets via une configuration. Étape par étape, nous verrons comment migrer une application Symfony utilisant Assetic vers une application Symfony avec Webpack, du dev à la production.
Symfony, Twig, Backbone, Guzzle. What are these things?
A lot of new libraries and technologies have been added to Drupal 8. This session will go through the new libraries and provide a brief introduction to them by looking at some history, and the effects of including them in Drupal.
This will be a high-level introduction - not a deep technical walkthrough. It is suitable for everyone, regardless of skill level, who is interested in the building blocks of Drupal 8.
Comment créer, optimiser et monétiser vos contenus ?Kaliop-slide
Kaliop et eZ Systems ont animé une « Pause Digitale » 100% dédiée à la presse et aux médias. Le thème de la matinée : Comment créer, optimiser et monétiser vos contenus
Retrouvez dans les slides une partie de la présentation sur les nouveaux enjeux de fabrication des sites medias.
Introduction to CQRS and Event SourcingSamuel ROZE
Event Sourcing is the idea that every state of your application can be represented by a sequence of events. Using these two principles as the heart of a system or an application is quite common but can be challenging if we don’t use the right tools or architecture.
Creating hypermedia APIs in a few minutes using the API Platform frameworkLes-Tilleuls.coop
**Download the PPT to see screencasts**
API Platform is new open source PHP framework dedicated to the creation of modern web APIs.
It allows to bootstrap a fully featured API (pagination, validation, filtering, sorting, automatically generated documentation, HTTP cache, OAuth and JWT auth...) in just a few minutes.
It exposes out of the box popular API formats including Swagger, JSON-LD, Hydra, HAL, JSONAPI and Schema.org.
It is extensible and can be specialized with ease. Because it is built on top of the industry-leading Symfony framework, it already counts hundreds of available extensions (bundles).
In this talk, I'll show how to create a hypermedia API in just a few lines of codes, then take a look to the main features of the framework.
Utiliser Webpack dans une application SymfonyAlain Hippolyte
Depuis la version 2.8 de Symfony, Assetic le gestionnaire d'assets PHP n'est plus inclus par défaut dans la Standard Edition. Du coup, se pose la question, faut-il encore l'utiliser ? Quels sont les alternatives qui s'offrent à nous ?
Au cours de cette présentation, je vous présenterai l'outil Webpack, qui permet de packager nos assets via une configuration. Étape par étape, nous verrons comment migrer une application Symfony utilisant Assetic vers une application Symfony avec Webpack, du dev à la production.
Symfony, Twig, Backbone, Guzzle. What are these things?
A lot of new libraries and technologies have been added to Drupal 8. This session will go through the new libraries and provide a brief introduction to them by looking at some history, and the effects of including them in Drupal.
This will be a high-level introduction - not a deep technical walkthrough. It is suitable for everyone, regardless of skill level, who is interested in the building blocks of Drupal 8.
Kernel Development: Drawing Lessons from "Mistakes" (Japan Linux Symposium 2009)Toshiharu Harada, Ph.D
Every kernel developer knows that Linux comes with plenty of precious documentation as an integral part. From coding style to how to post patches, almost everything has been documented. However, history shows that error is human nature. Sometimes developers do not well know Don’ts, but there are also cases when they make mistakes despite being aware of such rules. Why this happen is unsolved, but a documentation, so far missing, of the consequences of this misbehavior could discourage it. The presenter is project manager of TOMOYO Linux, a security enhancement feature merged in version 2.6.30. Thinking open-minded, he decided to share the errors his project made, wishing it could be a helpful warning to other projects, especially newcomers. In this presentation, it will try to explain the mistake circumstances in TOMOYO Linux project, highlighting the thoughts of project members and the community reactions. No prior kernel development experiences are necessary.
presentation about indie game development using free and opensource tools I made for the Codemotion 2011.
The ODP file is available in English and Italian on our website: http://www.lowpoly-studios.com
First day of slides for @GAFFTA workshop http://www.gaffta.org/2012/07/24/hacking-the-kinect-with-openframeworks/
Part 1 of the live stream : http://www.youtube.com/watch?v=WXfy8Cuje-0&feature=plcp
Part 2 of the live stream :
http://www.youtube.com/watch?v=I80FsOlMPj8&feature=plcp
CocoaPods talk given at the RubyMotion Inspect 2013 conference.
There is another version that does not include speaker notes available at: https://www.slideshare.net/alloy020/ruby-motion-inspect-2013-without-notes-18676749
The videos that were shown on slide 5 and 6 are available at: https://vimeo.com/63891717 & https://vimeo.com/63891716.
Pilot Tech Talk #10 — Practical automation by Kamil CholewińskiPilot
See how Kamil Cholewiński talks about Practical automation in Tech Talk episode 10
Visit pilot.co — World’s best engineering and design talent on demand.
YouTube: https://youtu.be/x0eQ7x7xN8o
It covers the usual suspects: Clouds, Containers, Deployment, Continuous Integrations. It is nothing unusual today, but the interesting parts is the focus about building clouds for scala applications, using Scala as scripting language. Also it does the converse, so it is Scala for DevOps, too.
This workshop was given at FITC Toronto 2012. Most of the details were shared by browsing code and talking together, so there isn't very much "content" in the slides themselves.
Thumb.co.il is the best web-based video format inspector tool ever created. This is an overview of the reasons for creating thumbcoil and a peek into some of the cool technology contained therein.
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.
Key Trends Shaping the Future of Infrastructure.pdfCheryl Hung
Keynote at DIGIT West Expo, Glasgow on 29 May 2024.
Cheryl Hung, ochery.com
Sr Director, Infrastructure Ecosystem, Arm.
The key trends across hardware, cloud and open-source; exploring how these areas are likely to mature and develop over the short and long-term, and then considering how organisations can position themselves to adapt and thrive.
Slack (or Teams) Automation for Bonterra Impact Management (fka Social Soluti...Jeffrey Haguewood
Sidekick Solutions uses Bonterra Impact Management (fka Social Solutions Apricot) and automation solutions to integrate data for business workflows.
We believe integration and automation are essential to user experience and the promise of efficient work through technology. Automation is the critical ingredient to realizing that full vision. We develop integration products and services for Bonterra Case Management software to support the deployment of automations for a variety of use cases.
This video focuses on the notifications, alerts, and approval requests using Slack for Bonterra Impact Management. The solutions covered in this webinar can also be deployed for Microsoft Teams.
Interested in deploying notification automations for Bonterra Impact Management? Contact us at sales@sidekicksolutionsllc.com to discuss next steps.
Transcript: Selling digital books in 2024: Insights from industry leaders - T...BookNet Canada
The publishing industry has been selling digital audiobooks and ebooks for over a decade and has found its groove. What’s changed? What has stayed the same? Where do we go from here? Join a group of leading sales peers from across the industry for a conversation about the lessons learned since the popularization of digital books, best practices, digital book supply chain management, and more.
Link to video recording: https://bnctechforum.ca/sessions/selling-digital-books-in-2024-insights-from-industry-leaders/
Presented by BookNet Canada on May 28, 2024, with support from the Department of Canadian Heritage.
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Tobias Schneck
As AI technology is pushing into IT I was wondering myself, as an “infrastructure container kubernetes guy”, how get this fancy AI technology get managed from an infrastructure operational view? Is it possible to apply our lovely cloud native principals as well? What benefit’s both technologies could bring to each other?
Let me take this questions and provide you a short journey through existing deployment models and use cases for AI software. On practical examples, we discuss what cloud/on-premise strategy we may need for applying it to our own infrastructure to get it to work from an enterprise perspective. I want to give an overview about infrastructure requirements and technologies, what could be beneficial or limiting your AI use cases in an enterprise environment. An interactive Demo will give you some insides, what approaches I got already working for real.
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
DevOps and Testing slides at DASA ConnectKari Kakkonen
My and Rik Marselis slides at 30.5.2024 DASA Connect conference. We discuss about what is testing, then what is agile testing and finally what is Testing in DevOps. Finally we had lovely workshop with the participants trying to find out different ways to think about quality and testing in different parts of the DevOps infinity loop.
Encryption in Microsoft 365 - ExpertsLive Netherlands 2024Albert Hoitingh
In this session I delve into the encryption technology used in Microsoft 365 and Microsoft Purview. Including the concepts of Customer Key and Double Key Encryption.
GraphRAG is All You need? LLM & Knowledge GraphGuy Korland
Guy Korland, CEO and Co-founder of FalkorDB, will review two articles on the integration of language models with knowledge graphs.
1. Unifying Large Language Models and Knowledge Graphs: A Roadmap.
https://arxiv.org/abs/2306.08302
2. Microsoft Research's GraphRAG paper and a review paper on various uses of knowledge graphs:
https://www.microsoft.com/en-us/research/blog/graphrag-unlocking-llm-discovery-on-narrative-private-data/
2. Genesis of the Symfony aspects
vendredi 30 novembre 12
eZ Publish 4 released in 2007. More a PHP5 adaptation than a real rewrite.
We added features during these years of course, but the main base code
kept unchanged.
Several attempts were initiated for a complete rewrite (back in 2008 with eZ
Components) but the real project began in mid-2010 with a complete re-
thinking of our core business API.
3. Requirements
• Easily integrate our API
• HMVC (Hierarchical Model View Controller) stack
• Decoupled components
• Dependency injection
• New template engine
• Extensible, Open, Reliable ;-)
vendredi 30 novembre 12
API : Working on it for more than a year at that time. Complete rewrite of
what makes our core business logic. It’s using DI, but without any container
or any dependency from out there. Completely independent
HMVC : In our old model we kind of used MVC, but flawed by too much logic
in the view (fetch functions). We needed something that fixes both our
needs (trigger some logic from the view) and the MVC model
Decoupled + DI : Keep our independency (API is purely independent lib)
Templates : Our template engine was way too old, with edge case bugs,
very hard to maintain. Plus we wanted flexibility, like being able to easily
switch from one engine to another.
4. Get rid of the (old) monolith
vendredi 30 novembre 12
And of course our approach was monolithic (legacy PHP 4 ages, weak OO
model).
Lots of extension points, but interdependent, impossible to decouple,
impossible to test properly (singletons everywhere)
5. Get rid of the (old) monolith
vendredi 30 novembre 12
And of course our approach was monolithic (legacy PHP 4 ages, weak OO
model).
Lots of extension points, but interdependent, impossible to decouple,
impossible to test properly (singletons everywhere)
6. Useful things start in a bar
vendredi 30 novembre 12
Lisbon conference, almost all eZ engineering, in an informal beer meeting
(probably the best way to make meetings ever). Community guys were here
too. We became to chat about what would be eZ Publish 5 (after some more
beers, so that we were too drunk to fight).
Sharing one’s experiences with Twig, Symfony2, Zeta... We started to
imagine how would the paper gift around eZ Publish API would be
7. Options
• Home made
• Zeta Components
• Zend Framework 2
• Symfony 2
vendredi 30 novembre 12
Home made : Why would we do that ? Too much work for what ? Doing the
same mistakes than in the past, just because otherwise it would be «not
invented here» ? No
Zeta Components : eZ has a long story with them. Back in 2008-2009, their
destiny was to become the next generation of eZ Publish. For several
reasons it didn’t happen. And to be pragmatic, it would have been a lot of
work to adapt them to work with DI or HMVC
ZF2 : Still immature at that time
Then Symfony2 looked as an obvious and reasonnable choice. Furthermore
it’s heavily used, has a very active and nice community, and easy to learn.
Let’s do it !
8. Backwards Compatibility
*Knock knock*
devs: «Who's there ?»
«Product Management»
devs: «Product Management who ?»
«PM who wants to talk about BC»
devs: «Oh crap...»
vendredi 30 novembre 12
Then the trouble began. We could have picked any other choice, the same
problem would have come anyway.
9. BC: The challenge
• 100% data compatible (same database schema)
• Include legacy templates in new ones
• Routing fallback
• Load legacy content templates with legacy rules
• Settings
• Access Symfony services from legacy modules
vendredi 30 novembre 12
Data compatible : The most important. One can easily switch from a legacy
eZ Publish 4.x instance to 5.0
11. BC: The challenge
PM SCRUM Story:
«As an eZ Publish user, I don’t want to be
pissed off by a new #@!$% version!»
vendredi 30 novembre 12
eZ Publish 3 use case (2003). Major change => eZ Publish lost the 2/3rd of
its users, community members... Because there was no BC at all.
12. BC: The challenge
Challenge accepted
vendredi 30 novembre 12
Obviously we didn’t have choice...
It was basically trying to make a square fit inside a smaller triangle.
2 completely different systems, with 2 completely different approaches.
We got inspired of what guys from the Symfony community made when
Symfony 2 came out, to make their Symfony 1 application work with it.
13. BC: The challenge
Sandbox Legacy code
...in a Closure !
vendredi 30 novembre 12
Code speaks like a thousand words
14. BC: The challenge
vendredi 30 novembre 12
So yes of course, we needed to refactor a lot the old kernel (esp. the old
front index.php and reduce it from 1.000+ lines to a dozen.
Using runCallback, legacy code is completely isolated. We can keep high
cohesion and loose coupling. Of course it adds some overhead, but it’s fairly
minimal from what it represents.
This is the central feature on top of which we built all the requirements
asked. And guess what ? It works !
16. BC: Icing on the cake
eZ Publish legacy still works independently !
vendredi 30 novembre 12
17. From Symfony components to Full Stack
vendredi 30 novembre 12
When we started to do some prototyping, we needed to dive deep into the
Symfony components, to understand how they work together. We also
needed to be sure that they were loosely coupled.
So we started to use only some of them + Twig
18. From Symfony components to full stack
• HttpFoundation
• HttpKernel
• Routing
• Dependency Injection
• Bundles
• Templating + Twig
• Composer
vendredi 30 novembre 12
The more we moved forward, the more our prototype looked like Symfony
standard edition.
Of course we started our own glue to tie these components together, in our
own bundles. But we found out that we were doing exactly the same than in
base Symfony bundles (but not that good, because not that generic).
19. From Symfony components to full stack
vendredi 30 novembre 12
So yes, we had our wheel.
But compared to what we could have...
So why don’t we simply use and extend main Symfony bundles ? Because it’s
«not invented here» ? Let’s be serious.
So we took the decision to go for Symfony full stack.
Another decision we made was not to put everything in bundles, to be as
decoupled as possible, at least from the full stack framework, to keep our
independency. We actually realized that this concept already existed even in
the full stack framework as libs are integrated a 2 levels : bridges
(component level), and bundles.
20. From Symfony components to full stack
vendredi 30 novembre 12
So yes, we had our wheel.
But compared to what we could have...
So why don’t we simply use and extend main Symfony bundles ? Because it’s
«not invented here» ? Let’s be serious.
So we took the decision to go for Symfony full stack.
Another decision we made was not to put everything in bundles, to be as
decoupled as possible, at least from the full stack framework, to keep our
independency. We actually realized that this concept already existed even in
the full stack framework as libs are integrated a 2 levels : bridges
(component level), and bundles.
21. Cross communities
We all have something to share
vendredi 30 novembre 12
I can hear some of you saying «Hey, you just copied what Drupal guys did!»
or «But what about Symfony CMF ?»
We obviously share the same goal : Make our PHP applications the best
possible. Why couldn’t we share the same tools ?
Drupal/eZ Publish : Of course we are in competition for many projects. But
it’s a sane competition now, because we have something in common, so we
need to collaborate. And we already did ! Helping each other on IRC,
discussing on Symfony CMF pull requests... It creates an emulation, and now
we can really focus on features that make the difference between the
different systems available.
22. Now we’re part of the Symfony family
But not only...
vendredi 30 novembre 12
And we thus already started to contribute (through Symfony CMF, some PR
on Symfony main repository)
Not limited to the Symfony family. Don’t forget that eZ Publish’s core
business logic resides in its API, which can be virtually ported to any
framework. Why not imagine a port to work with ZF2 for instance ?
23. Fin
Twitter : @jvieilledent
https://joind.in/7563
http://github.com/lolautruche
http://share.ez.no/community/profile/11256
21
vendredi 30 novembre 12