This document provides an installation guide for OpenStack on Ubuntu 14.04. It describes installing and configuring the core OpenStack services including Identity, Compute, Image, Block Storage, Object Storage, Networking, Dashboard, Orchestration, and Telemetry. The guide walks through setting up the basic environment, installing each service on controller and compute nodes, and verifying their operation. It also discusses legacy networking and provides next steps after the initial installation.
The document discusses the opportunities and challenges that lesbian and gay assignees face in international assignments. While this group represents an important part of the global talent pool, their experiences have not been well understood. Lesbian and gay assignees may face challenges in being selected for assignments or while on assignment abroad due to lack of support, discrimination, or legal issues in some host countries. Companies can better support these assignees by implementing inclusive policies, providing resources and connections, and carefully considering safety issues for placements in dangerous locations where homosexuality is punishable.
La Familia Trabajo De Computacion Alejandro Puruncajas 1 CcaAlejo P
El documento define la familia y describe su evolución histórica. Explica que la familia moderna ha variado en sus funciones, composición y roles en comparación con la familia tradicional. También describe las diferentes etapas del ciclo vital de la familia nuclear, incluyendo el desprendimiento, encuentro, llegada de hijos, adolescencia de los hijos, reencuentro y vejez.
Kursus Kejurulatihan Permainan Tenis ini bertujuan untuk menambah pengetahuan guru mengenai peraturan dan teknik tenis serta membantu mereka menjadi jurulatih yang lebih mahir. Program ini akan diadakan pada 10 Januari 2014 di IPGK Kampus Temenggong Ibrahim dan akan dilengkapi dengan kursus, bengkel latihan, dan sumber daya untuk meningkatkan kemahiran mengajar tenis.
This document provides an installation guide for OpenStack on Ubuntu 14.04. It describes installing and configuring the core OpenStack services including Identity, Compute, Image, Block Storage, Object Storage, Networking, Dashboard, Orchestration, and Telemetry. The guide walks through setting up the basic environment, installing each service on controller and compute nodes, and verifying their operation. It also discusses legacy networking and provides next steps after the initial installation.
The document discusses the opportunities and challenges that lesbian and gay assignees face in international assignments. While this group represents an important part of the global talent pool, their experiences have not been well understood. Lesbian and gay assignees may face challenges in being selected for assignments or while on assignment abroad due to lack of support, discrimination, or legal issues in some host countries. Companies can better support these assignees by implementing inclusive policies, providing resources and connections, and carefully considering safety issues for placements in dangerous locations where homosexuality is punishable.
La Familia Trabajo De Computacion Alejandro Puruncajas 1 CcaAlejo P
El documento define la familia y describe su evolución histórica. Explica que la familia moderna ha variado en sus funciones, composición y roles en comparación con la familia tradicional. También describe las diferentes etapas del ciclo vital de la familia nuclear, incluyendo el desprendimiento, encuentro, llegada de hijos, adolescencia de los hijos, reencuentro y vejez.
Kursus Kejurulatihan Permainan Tenis ini bertujuan untuk menambah pengetahuan guru mengenai peraturan dan teknik tenis serta membantu mereka menjadi jurulatih yang lebih mahir. Program ini akan diadakan pada 10 Januari 2014 di IPGK Kampus Temenggong Ibrahim dan akan dilengkapi dengan kursus, bengkel latihan, dan sumber daya untuk meningkatkan kemahiran mengajar tenis.
What I call multi-homed applications are cloud-based applications that don't reside solely on the web, the desktop or in the phone, but work across all of these platforms, exploiting the advantages and coping with the disadvantages of each. This is, in my view, an emerging characteristic that is common for many of the apps we use every day and become really attached to, and hence something that users will increasingly require from new apps
There is also a video of the presentation: http://disruptivemedia.23video.com/video/840598/multihomed-applications
Ebook ini memberikan strategi untuk membangun kebiasaan shalat berjamaah, yang merupakan sunnah Nabi yang paling utama. Strategi yang dibahas antara lain meningkatkan kesadaran akan pentingnya shalat berjamaah dan dampak positifnya, serta cara-cara praktis untuk membangun kebiasaan tersebut secara bertahap.
Native Americans were the first inhabitants of North America, arriving thousands of years ago from Asia. There were hundreds of distinct Native American cultures that spread across the continent and adapted to various regions. They hunted and gathered food but later began farming crops, establishing permanent villages. Various tribes lived in structures like tepees and participated in traditions like dancing that were important parts of their religious and cultural practices. As white settlers colonized North America, they forced Native Americans onto reservations and claimed their lands.
Valery Bassenko has over 20 years of experience as a software developer and database administrator. He is proficient in many programming languages including .NET, C#, C++, SQL, JAVA, JavaScript, and more. Bassenko has a Master's Degree in Computer Systems Analysis and certificates in Internet Programming and Development. He is currently working as a developer for networktv.co since July 2014.
Trauma surgeons treat critically ill emergency room patients through surgery and consultation with other specialists. Their goal is patient survival in the immediate future, with more delicate procedures performed later if needed. Trauma surgeons follow patients in the ICU and also practice general surgery. The author wishes to attend the Medical University of South Carolina for medical school and then complete a trauma fellowship at the University of Florida to become a trauma surgeon, potentially specializing in pediatric trauma.
This short document promotes creating presentations using Haiku Deck, a tool for making slideshows. It encourages the reader to get started making their own Haiku Deck presentation and sharing it on SlideShare. In just one sentence, it pitches the idea of using Haiku Deck to easily create engaging slideshow presentations.
The Sun is our closest star and the center of our solar system. It is made up of hot plasma and nuclear fusion reactions at its core provide its energy. The Sun is essential to life on Earth by providing light and thermal energy through photosynthesis and climate regulation.
Caching involves temporarily storing data that is likely to be used again to improve performance. In web applications, caching can occur at different levels: page caching caches entire pages, action caching caches actions along with filters, and fragment caching caches parts of views. Ruby on Rails provides built-in support for caching through page, action, and fragment caching. Page caching is fastest but ignores parameters, action caching runs filters before caching, and fragment caching is used when parts of pages change independently. Caching improves performance by reducing load on application servers.
Keynote lors du Moodlemoot FR / Mahara Hui FR 2016 à Sierre (CH). La présentation porte sur l'état de la communauté francophone Mahara en 2016 et sur une matrice SWOT pour bien réussir son projet ePortfolio.
12 04 03 Présentation réunion espace de travail partagé CharlyJean Pouly
Document de présentation réalisé par Coop Alternatives le 3 avril 2012 pour la visite du futur centre de cotravail du Domaine Melchior Philibert à Charly.
Agile Tour Nantes 2011 - Frédéric molle, xavier torpe, benjamin lecardeux r...Association Agile Nantes
Un leader du transport souhaite équiper ses chefs de bord d’une application Smartphone permettant d’ améliorer l’information communiquée aux voyageurs et leur prise en charge en situation perturbée . La mise en œuvre du projet, en méthode Agile Scrum, est le 1er projet Agile réalisé avec un prestataire externe et non des ressources internes comme cette société avait l'habitude de faire sur ce type de projet . Elle permet une conception et une modélisation de l’application de manière itérative en intégrant au plus prêt et de façon efficace les équipes clientes et fournisseur pour un résultat répondant aux attentes utilisateurs et dans un planning contraint.
What I call multi-homed applications are cloud-based applications that don't reside solely on the web, the desktop or in the phone, but work across all of these platforms, exploiting the advantages and coping with the disadvantages of each. This is, in my view, an emerging characteristic that is common for many of the apps we use every day and become really attached to, and hence something that users will increasingly require from new apps
There is also a video of the presentation: http://disruptivemedia.23video.com/video/840598/multihomed-applications
Ebook ini memberikan strategi untuk membangun kebiasaan shalat berjamaah, yang merupakan sunnah Nabi yang paling utama. Strategi yang dibahas antara lain meningkatkan kesadaran akan pentingnya shalat berjamaah dan dampak positifnya, serta cara-cara praktis untuk membangun kebiasaan tersebut secara bertahap.
Native Americans were the first inhabitants of North America, arriving thousands of years ago from Asia. There were hundreds of distinct Native American cultures that spread across the continent and adapted to various regions. They hunted and gathered food but later began farming crops, establishing permanent villages. Various tribes lived in structures like tepees and participated in traditions like dancing that were important parts of their religious and cultural practices. As white settlers colonized North America, they forced Native Americans onto reservations and claimed their lands.
Valery Bassenko has over 20 years of experience as a software developer and database administrator. He is proficient in many programming languages including .NET, C#, C++, SQL, JAVA, JavaScript, and more. Bassenko has a Master's Degree in Computer Systems Analysis and certificates in Internet Programming and Development. He is currently working as a developer for networktv.co since July 2014.
Trauma surgeons treat critically ill emergency room patients through surgery and consultation with other specialists. Their goal is patient survival in the immediate future, with more delicate procedures performed later if needed. Trauma surgeons follow patients in the ICU and also practice general surgery. The author wishes to attend the Medical University of South Carolina for medical school and then complete a trauma fellowship at the University of Florida to become a trauma surgeon, potentially specializing in pediatric trauma.
This short document promotes creating presentations using Haiku Deck, a tool for making slideshows. It encourages the reader to get started making their own Haiku Deck presentation and sharing it on SlideShare. In just one sentence, it pitches the idea of using Haiku Deck to easily create engaging slideshow presentations.
The Sun is our closest star and the center of our solar system. It is made up of hot plasma and nuclear fusion reactions at its core provide its energy. The Sun is essential to life on Earth by providing light and thermal energy through photosynthesis and climate regulation.
Caching involves temporarily storing data that is likely to be used again to improve performance. In web applications, caching can occur at different levels: page caching caches entire pages, action caching caches actions along with filters, and fragment caching caches parts of views. Ruby on Rails provides built-in support for caching through page, action, and fragment caching. Page caching is fastest but ignores parameters, action caching runs filters before caching, and fragment caching is used when parts of pages change independently. Caching improves performance by reducing load on application servers.
Keynote lors du Moodlemoot FR / Mahara Hui FR 2016 à Sierre (CH). La présentation porte sur l'état de la communauté francophone Mahara en 2016 et sur une matrice SWOT pour bien réussir son projet ePortfolio.
12 04 03 Présentation réunion espace de travail partagé CharlyJean Pouly
Document de présentation réalisé par Coop Alternatives le 3 avril 2012 pour la visite du futur centre de cotravail du Domaine Melchior Philibert à Charly.
Agile Tour Nantes 2011 - Frédéric molle, xavier torpe, benjamin lecardeux r...Association Agile Nantes
Un leader du transport souhaite équiper ses chefs de bord d’une application Smartphone permettant d’ améliorer l’information communiquée aux voyageurs et leur prise en charge en situation perturbée . La mise en œuvre du projet, en méthode Agile Scrum, est le 1er projet Agile réalisé avec un prestataire externe et non des ressources internes comme cette société avait l'habitude de faire sur ce type de projet . Elle permet une conception et une modélisation de l’application de manière itérative en intégrant au plus prêt et de façon efficace les équipes clientes et fournisseur pour un résultat répondant aux attentes utilisateurs et dans un planning contraint.
Reflexive learning, socio-cognitive conflict and peer- assessment to improve ...Franck Silvestre
This document discusses a new approach called NP-Q (Notes as Peer-assessed Questions) to improve feedback quality in online self-assessment tests. NP-Q allows students to submit answers in phases, receive peer feedback, and have their contributions peer-assessed. Only the highest rated contributions are selected as feedback. An experiment found high student participation rates in writing explanations and peer assessment. NP-Q shows potential to efficiently generate qualitative, student-provided feedback at scale. Future work includes handling faulty peer reviews and open-ended questions.
Tsaap-Notes - Développer et valoriser l’activité des étudiants pendant le cours pour la constitution de feedback dans les évaluations informatisées
Nos travaux précédents ont introduit la plateforme Tsaap-Notes dédiée à la génération semi-automatique de questionnaires à choix multiples pourvus de feedbacks en recyclant (1) les questions interactives posées pendant le cours par l’enseignant, et (2) les notes prises par les étudiants pour constituer les feedbacks présentés aux étudiants durant les tests. Dans cet article nous présentons un nouveau dispositif (NP-Q) qui vise à augmenter considérablement le nombre de contributions des étudiants afin d’améliorer de manière significative la qualité des feedbacks restitués au sein des tests générés par Tsaap-Notes. Ce dispositif repose sur le découpage en plusieurs phases du processus de soumission d’une réponse à une question, ainsi que sur un algorithme d’identification et de filtrage des contributions à inclure dans les tests. Notre approche a été validée par une première expérimentation sur un groupe de 51 étudiants inscrits en Master Informatique.
MongoDB in a scale-up: how to get away from a monolithic hell — MongoDB Paris...Horgix
This is the slide deck of a talk by Alexis "Horgix" Chotard and Laurentiu Capatina presented at the MongoDB Paris User Group in June 2024 about the feedback on how PayFit move away from a monolithic hell of a self-hosted MongoDB cluster to managed alternatives. Pitch below.
March 15, 2023, 6:59 AM: a MongoDB cluster collapses. Tough luck, this cluster contains 95% of user data and is absolutely vital for even minimal operation of our application. To worsen matters, this cluster is 7 years behind on versions, is not scalable, and barely observable. Furthermore, even the data model would quickly raise eyebrows: applications communicating with each other by reading/writing in the same MongoDB documents, documents reaching the maximum limit of 16MiB with hundreds of levels of nesting, and so forth. The incident will last several days and result in the loss of many users. We've seen better scenarios.
Let's explore how PayFit found itself in this hellish situation and, more importantly, how we managed to overcome it!
On the agenda: technical stabilization, untangling data models, breaking apart a Single Point of Failure (SPOF) into several elements with a more restricted blast radius, transitioning to managed services, improving internal accesses, regaining control over risky operations, and ultimately, approaching a technical migration when it impacts all development teams.
Ouvrez la porte ou prenez un mur (Agile Tour Genève 2024)Laurent Speyser
(Conférence dessinée)
Vous êtes certainement à l’origine, ou impliqué, dans un changement au sein de votre organisation. Et peut être que cela ne se passe pas aussi bien qu’attendu…
Depuis plusieurs années, je fais régulièrement le constat de l’échec de l’adoption de l’Agilité, et plus globalement de grands changements, dans les organisations. Je vais tenter de vous expliquer pourquoi ils suscitent peu d'adhésion, peu d’engagement, et ils ne tiennent pas dans le temps.
Heureusement, il existe un autre chemin. Pour l'emprunter il s'agira de cultiver l'invitation, l'intelligence collective , la mécanique des jeux, les rites de passages, .... afin que l'agilité prenne racine.
Vous repartirez de cette conférence en ayant pris du recul sur le changement tel qu‘il est généralement opéré aujourd’hui, et en ayant découvert (ou redécouvert) le seul guide valable à suivre, à mon sens, pour un changement authentique, durable, et respectueux des individus! Et en bonus, 2 ou 3 trucs pratiques!
Le Comptoir OCTO - Qu’apporte l’analyse de cycle de vie lors d’un audit d’éco...OCTO Technology
Par Nicolas Bordier (Consultant numérique responsable @OCTO Technology) et Alaric Rougnon-Glasson (Sustainable Tech Consultant @OCTO Technology)
Sur un exemple très concret d’audit d’éco-conception de l’outil de bilan carbone C’Bilan développé par ICDC (Caisse des dépôts et consignations) nous allons expliquer en quoi l’ACV (analyse de cycle de vie) a été déterminante pour identifier les pistes d’actions pour réduire jusqu'à 82% de l’empreinte environnementale du service.
Vidéo Youtube : https://www.youtube.com/watch?v=7R8oL2P_DkU
Compte-rendu :
L'IA connaît une croissance rapide et son intégration dans le domaine éducatif soulève de nombreuses questions. Aujourd'hui, nous explorerons comment les étudiants utilisent l'IA, les perceptions des enseignants à ce sujet, et les mesures possibles pour encadrer ces usages.
Constat Actuel
L'IA est de plus en plus présente dans notre quotidien, y compris dans l'éducation. Certaines universités, comme Science Po en janvier 2023, ont interdit l'utilisation de l'IA, tandis que d'autres, comme l'Université de Prague, la considèrent comme du plagiat. Cette diversité de positions souligne la nécessité urgente d'une réponse institutionnelle pour encadrer ces usages et prévenir les risques de triche et de plagiat.
Enquête Nationale
Pour mieux comprendre ces dynamiques, une enquête nationale intitulée "L'IA dans l'enseignement" a été réalisée. Les auteurs de cette enquête sont Le Sphynx (sondage) et Compilatio (fraude académique). Elle a été diffusée dans les universités de Lyon et d'Aix-Marseille entre le 21 juin et le 15 août 2023, touchant 1242 enseignants et 4443 étudiants. Les questionnaires, conçus pour étudier les usages de l'IA et les représentations de ces usages, abordaient des thèmes comme les craintes, les opportunités et l'acceptabilité.
Résultats de l'Enquête
Les résultats montrent que 55 % des étudiants utilisent l'IA de manière occasionnelle ou fréquente, contre 34 % des enseignants. Cependant, 88 % des enseignants pensent que leurs étudiants utilisent l'IA, ce qui pourrait indiquer une surestimation des usages. Les usages identifiés incluent la recherche d'informations et la rédaction de textes, bien que ces réponses ne puissent pas être cumulées dans les choix proposés.
Analyse Critique
Une analyse plus approfondie révèle que les enseignants peinent à percevoir les bénéfices de l'IA pour l'apprentissage, contrairement aux étudiants. La question de savoir si l'IA améliore les notes sans développer les compétences reste débattue. Est-ce un dopage académique ou une opportunité pour un apprentissage plus efficace ?
Acceptabilité et Éthique
L'enquête révèle que beaucoup d'étudiants jugent acceptable d'utiliser l'IA pour rédiger leurs devoirs, et même un quart des enseignants partagent cet avis. Cela pose des questions éthiques cruciales : copier-coller est-il tricher ? Utiliser l'IA sous supervision ou pour des traductions est-il acceptable ? La réponse n'est pas simple et nécessite un débat ouvert.
Propositions et Solutions
Pour encadrer ces usages, plusieurs solutions sont proposées. Plutôt que d'interdire l'IA, il est suggéré de fixer des règles pour une utilisation responsable. Des innovations pédagogiques peuvent également être explorées, comme la création de situations de concurrence professionnelle ou l'utilisation de détecteurs d'IA.
Conclusion
En conclusion, bien que l'étude présente des limites, elle souligne un besoin urgent de régulation. Une charte institutionnelle pourrait fournir un cadre pour une utilisation éthique.
1. L’ENT Libre
Retour d’expérience Grails
Franck Silvestre
Toulouse JUG
19/01/2012
Franck Silvestre - 2012, tous droits réservés
2. Qui suis-je ? Où vais je ? ...
Création Fylab ENT Eliot Création Ticetime
1998 2009 2012
1994 2000 2006 2011
Disponibilité Directeur technique
Prof. de maths OMT/Fylab
Maître de Conférence Associé
Université Paul Sabatier
Laboratoire IRIT - équipe SIERA - EIAH
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
3. Qui suis-je ? Où vais je ? ...
Création Fylab ENT Eliot Création Ticetime
1998 2009 2012
1994 2000 2006 2011
Disponibilité Directeur technique
Prof. de maths OMT/Fylab
Maître de Conférence Associé
Université Paul Sabatier
Laboratoire IRIT - équipe SIERA - EIAH
franck.silvestre@ticetime.com
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
4. Sommaire
• Contexte du projet ENT Libre
- Contexte général
- Éliot
• Introduction technique
- Pourquoi Grails ?
- Architecture du projet
• Focus 2.x
- Grails & Maven, Jackrabbit
• Focus 3.x
- Grails & le Cloud : GitHub, Cloudbees
- Grails & Spring Security, Liquibase, les ressources statiques,
• Sur la productivité, les performances
• Q&R
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
5. Sommaire
• Contexte du projet ENT Libre
- Contexte général
- Éliot
• Introduction technique
- Pourquoi Grails ?
- Architecture du projet
• Focus 2.x
- Grails & Maven, Jackrabbit
• Focus 3.x
- Grails & le Cloud : GitHub, Cloudbees
- Grails & Spring Security, Liquibase, les ressources statiques,
• Sur la productivité, les performances
• Q&R
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
7. Contexte général
• Environnement Numérique de Travail
• Appel d’offre de la Région Île-de-France en 2009
- 12 à 24 M€ sur 6 ans
- environ 475 lycées
- 1 300 000 comptes ciblés
- Projet Open Source
• Consortium Fylab / Logica / Prosodie / Education &
Territoire
• Depuis 2009
- Région Rhône-Alpes
- CG93, ...
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
8. Contexte général
• Environnement Numérique de Travail
• Appel d’offre de la Région Île-de-France en 2009
- 12 à 24 M€ sur 6 ans
- environ 475 lycées
- 1 300 000 comptes ciblés
- Projet Open Source
• Consortium Fylab / Logica / Prosodie / Education &
Territoire
• Depuis 2009
- Région Rhône-Alpes
- CG93, ...
http://lilie.iledefrance.fr/fr/accueil
http://www.lilie.org/
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
9. Éliot
• La composante Fylab : l’ENT Eliot
• Services métiers
- cahier de textes
- notes et absences
- espaces de travail
- agenda partagés, emploi du temps
• Quelques chiffres
- environ 20 années hommes
- environ 100 000 LOC Groovy (hors Js, GSP !)
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
10. Sommaire
• Contexte du projet ENT Libre
- Contexte général
- Éliot
• Introduction technique
- Pourquoi Grails ?
- Architecture du projet
• Focus 2.x
- Grails & Maven, Jackrabbit
• Focus 3.x
- Grails & le Cloud : GitHub, Cloudbees
- Grails & Spring Security, Liquibase, les ressources statiques,
• Sur la productivité, les performances
• Q&R
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
12. Pourquoi Grails ?
Année 2000 +
Java +
Web +
productivité +
=
fun
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
13. Pourquoi Grails ?
Année 2000 +
Java +
Web +
productivité +
=
fun
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
14. Pourquoi Grails ?
Année 2000 +
Java +
Web +
productivité +
=
fun
Année 2005 +
Open Source +
Web +
productivité +
=
fun
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
15. Pourquoi Grails ?
Année 2000 +
Java +
Web +
productivité +
=
fun
Année 2005 +
Open Source +
Web +
productivité +
=
fun
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
16. Pourquoi Grails ?
Année 2000 +
Java +
Web +
productivité +
=
fun
Année 2005 +
Open Source +
Web +
productivité +
=
fun
Année 2008 +
=
Java +
Open Source +
Web +
productivité +
fun
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
17. Pourquoi Grails ?
Année 2000 +
Java +
Web +
productivité +
=
fun
Année 2005 +
Open Source +
Web +
productivité +
=
fun
Année 2008 +
=
Java +
Open Source +
Web +
productivité +
fun
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
18. Pourquoi Grails ?
Année 2000 +
Java +
Web +
productivité +
=
fun
Année 2005 +
Open Source +
Web +
productivité +
=
fun
Année 2008 +
=
Java +
Open Source +
Web +
productivité +
fun
+
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
19. Architecture du projet
Éliot- Modules Éliot
Éliot-textes Éliot-docs Éliot-temps Éliot- ...
messagerie
Services commun
Socle Éliot
Accès au socle Lilie Accès aux référentiels Éliot
Référentiel Référentiel
Référentiel
Socle Lilie Éliot Éliot
Éliot métier
messages documents
http://ticetime-blog.blogspot.com/2011/02/presentation-generale-de-grails-et-de.html
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
20. Sommaire
• Contexte du projet ENT Libre
- Contexte général
- Éliot
• Introduction technique
- Pourquoi Grails ?
- Architecture du projet
• Focus 2.x
- Grails & Maven, Jackrabbit
• Focus 3.x
- Grails & le Cloud : GitHub, Cloudbees
- Grails & Spring Security, Liquibase, les ressources statiques,
• Sur la productivité, les performances
• Q&R
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
22. The mvn «hell»
! Objet : ! question sur le patch de grails-maven-plugin
! Date : ! 13 janvier 2012 12:05:43 HNEC
! À : !Franck Silvestre
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
23. The mvn «hell»
! Objet : ! question sur le patch de grails-maven-plugin
! Date : ! 13 janvier 2012 12:05:43 HNEC
! À : !Franck Silvestre
salut franck,
ca va ?
tiens, j'ai une question sur le patch de grails-maven-plugin que t'as fait.
on s'est rendu compte que quand on lance mvn test sur eliot-app-plugin, les testes d'integration se
lancent deux fois (sous la condition que tous les tests passent). sur la console on voit:
[INFO] [grails:maven-test {execution: default-maven-test}]
...
[INFO] [grails:maven-test {execution: default}]
bizarrement ce comportement se manifeste seulement avec le plugin, pas avec les applis eliot.
on a creuse et on a trouve que si on lance mvn grails:test-app, les testes ne se lancent qu'une seule
fois comme il faut. mais cette fois, les testes qui utilisent itext tombent, car il prennent la version
ancienne 2.0.8.
saurais-tu comment patcher le patch, pour qu'il s'applique quand on lance mvn grails:test-app aussi ?
j'ai cherche comment mvn test est lie avec grails-maven-plugin/grails:test-app et je ne l'ai pas trouve.
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
24. The mvn «goodbye»
• Migration build Ivy + Gradle + Grails en cours
- Repository et artefacts compatibles Maven conservés
- Plugin Jenkins, Sonar OK
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
25. Grails et Jackrabbit - le build
Plugin Grails : Spring DSL
pour injection conditionnelle des
services
Un projet Java/Groovy
«standard»
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
26. Jackrabbit - le run
• Stratégie initiale d’exploitation
- «repository server» : accès WebDav
- Résultats catastrophiques : bugs, perfs,...
• Stratégie en cours d’exploitation
- embarqué clusterisé
- Performances aux RDV
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
27. Sommaire
• Contexte du projet ENT Libre
- Contexte général
- Éliot
• Introduction technique
- Pourquoi Grails ?
- Architecture du projet
• Focus 2.x
- Grails & Maven, Jackrabbit
• Focus 3.x
- Grails & le Cloud : GitHub, Cloudbees
- Grails & Spring Security, Liquibase, les ressources statiques,
• Sur la productivité, les performances
• Q&R
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
28. eliot-tdbase
• Service pédagogique
• Développement Ticetime
• Évolutions
- PIC : Git, Github, Jenkins as a Service, abandon de Maven
- Architecture : découpage plugins plus fin
- Plugins externes utilisés : Spring Security, Resources
- Plugin technique maison : Liquibase
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
29. Git, Github et Jenkins As A Service
Github : Repository Git «principal» +
gestion des issues
https://github.com/ticetime/eliot-tdbase
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
30. Git, Github et Jenkins As A Service
Github : Repository Git «principal» +
gestion des issues
https://github.com/ticetime/eliot-tdbase
Cloudbees : Jenkins As AService
Build et déploie
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
31. Git, Github et Jenkins As A Service
Github : Repository Git «principal» +
gestion des issues
https://github.com/ticetime/eliot-tdbase
Cloudbees : Jenkins As AService
Build et déploie
environnement de démonstration et
repository Maven
http://www.ticetime.com/eliot-tdbase
http://www.ticetime.com/nexus
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
32. Découpages plugins
Éliot-tdbase Éliot-...
Éliot-textes- Éliot-notes- Éliot-tdbase-
Eliot-tice-plugin
plugin plugin plugin
Accès aux référentiels Éliot
Référentiel
Référentiel Éliot
Référentiel Éliot métier Éliot
documents
messages
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
33. Intégration Spring Security
• Plugin supporté par Spring Source
• Le besoin
- approche RBAC
- gestion d’une authentification par défaut
pouvant évoluer
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
34. Spring Security - Concepts clés
• UserDetail
• GrantedAuthority
• UserDetailsService
• SecurityContext
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
35. Spring Security - Concepts clés
utilisateur accédant à l’application
• UserDetail
• GrantedAuthority
• UserDetailsService Notion de rôle
• SecurityContext
En charge de la création
d’un UserDetail après
authentification
Encapsule UserDetail et
GrantedAuthority(s) au sein du
thread de traitement de la requête en
cours
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
36. Le plugin Spring Security Core
• Installation
• Lancement du script «s2-quickstart»
- créé les classes User, Role et UserRole
- crée les vue et les contrôleurs pour la gestion de
l’authentification
• Utilisation
- configuration des URLs via annotations, mapping statique, mapping
dynamique
- Helper classes SecurityTagLib, SpringSecurityService,
SpringSecurityUtils
- Méthodes ajoutées aux contrôleurs : isLoggedIn, getPrincipal(),
getAutenticatedUser()
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
37. L’intégration dans Eliot
• eliot-tice-plugin dépend du plugin spring-security-core
• Pas d’utilisation des classes User, Role et UserRole
• Implémentation d’un UserDetailService ad-hoc
org.lilie.services.eliot.tice.securite.rbac.EliotTiceUser
implémente l'interface UserDetail définie dans Spring Security
org.lilie.services.eliot.tice.securite.rbac.EliotTiceUserDetailsService
implémente l'interface UserDetailService définie dans Spring Security
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
38. L’intégration dans Eliot
• Méthodes ajoutées dans les contrôleurs par le plugin eliot
- getAuthenticatedPersonne()
- getAuthenticatedCompteUtilisateur()
- getAuthenticatedAutorite()
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
39. L’intégration dans Eliot
• Méthodes ajoutées dans les contrôleurs par le plugin eliot
- getAuthenticatedPersonne()
- getAuthenticatedCompteUtilisateur()
- getAuthenticatedAutorite()
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
40. Mise en oeuvre
• Règles de sécurité dans
Config.groovy
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
41. Mise en oeuvre
• Règles de sécurité dans
Config.groovy
• Exemple d’utilisation méthode
contrôleur
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
42. Grails & Liquibase
• Plugin non retenu au final pour Eliot car
- trop contraignant sur la localisation des fichiers de migration
- trop «lié» à Grails (framework applicatif) pour de la gestion de
structure de base de données
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
43. Grails et Liquibase - Approche retenue
• Un projet Gradle dédié à la
gestion de DB migration
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
44. Grails et Liquibase - Approche retenue
• Un projet Gradle dédié à la
gestion de DB migration
liquibase
SpringLiquibase
dataSource
changeLog
• Un Service injecté dans les
...
createLiquibase()
...
applications Grails
eliot-tice-plugin
DbMigrationService LiquibaseWrapper
liquibase * 1
updateDb() createLiquibase()
runUpdate()
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
45. Grails et Liquibase - Approche retenue
• Exemple dans eliot-tdbase
Dans le fichier «conf/spring/resources.groovy»
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
46. Grails et Liquibase - Approche retenue
• Exemple dans eliot-tdbase
Dans le fichier «conf/spring/resources.groovy»
Dans le fichier «conf/BootStrap.groovy»
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
47. Grails et la gestion des ressources statiques
• Le plugin «Resources»
• Simple et terriblement efficace
• Optimise la mise à disposition des ressources
statiques
- placement des javascript
- «bundle» de javascript
- ...
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
48. Grails et la gestion des ressources statiques
• Le plugin «Resources»
• Simple et terriblement efficace
• Optimise la mise à disposition des ressources
statiques
- placement des javascript
- «bundle» de javascript
- ...
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
49. Sommaire
• Contexte du projet ENT Libre
- Contexte général
- Éliot
• Introduction technique
- Pourquoi Grails ?
- Architecture du projet
• Focus 2.x
- Grails & Maven, Jackrabbit
• Focus 3.x
- Grails & le Cloud : GitHub, Cloudbees
- Grails & Spring Security, Liquibase, les ressources statiques,
• Sur la productivité, les performances
• Q&R
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
50. Sur la productivité
• Contexte opérationnel ENT Libre extrêmement contraint
- L’opérationnel est «plus fort» que la technique
• Grails augmente la productivité des seniors et des juniors
• Mais
- si pas de senior très présent dans l’équipe qui encadre : «Vietnam Hibernate»
garanti !
• Un framework «full stack», quel qu’il soit, nécessite
- la compréhension et éventuellement la maîtrise des six couches applicatives
- investissement colossal pour tout développeur
- Grails/Play/ WebObjects ne résoudront jamais le problème du N+1 Select...
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
51. Sur les performances
• Les performances vis à vis de Grails ont été un «non sujet»
• Les optimisations nécessaires ont portées sur
- les vues ExtJs
- l’exploitation Jackrabbit
- Le problème du N+1 Select
• Grails n’a jamais été mis en cause directement
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
52. Idées en vrac
• Statique vs Dynamique
- critère négligeable concernant la question de la qualité
- Rappel: RoR, WebObjects, Application MacOs, IOs natives,... c’est
du dynamique !
- Un langage de programmation est un moyen d’expression
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
53. Idées en vrac
• Statique vs Dynamique
- critère négligeable concernant la question de la qualité
- Rappel: RoR, WebObjects, Application MacOs, IOs natives,... c’est
du dynamique !
- Un langage de programmation est un moyen d’expression
« Les limites de mon langage signifient les limites de mon propre monde »
Wittgenstein
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com
54. Sommaire
• Contexte du projet ENT Libre
- Contexte général
- Éliot
• Introduction technique
- Pourquoi Grails ?
- Architecture du projet
• Focus 2.x
- Grails & Maven, Jackrabbit
• Focus 3.x
- Grails & le Cloud : GitHub, Cloudbees
- Grails & Spring Security, Liquibase, les ressources statiques,
• Sur la productivité, les performances
• Q&R
Franck Silvestre - 2012, tous droits réservés w w w.ticetime.com