Les nouveautés du projet Dolibarr ERP CRM dans la version 3.7 et 3.8
Présentation réalisée par TecLib pour le DevCamp internationnal Dolibarr de Pau 2015
Les outils d'un projet Open Source, illustré avec le projet Dolibarr ERP CRM ...Laurent Destailleur
Cette présentation offre une vue des différents outils (gestion de source, wikis, cms, traduction, communication) dont a besoin un projet Open Source pour fonctionner.
Le choix du projet internationnal Dolibarr ERP CRM est utilisé comme exemple.
Réalisation teclib: http://www.teclib.com
Cette présentation a été utilisé dans le cadre de formation aux modules Open Source à la faculté ainsi que lors de devcamp.
- The document summarizes new features in version 5.0 of the Dolibarr ERP CRM software, including new modules for multi-currency and double party accounting, common banners for tabs, dynamic lists and filtering, document attachments on bank accounts, and enhancements to direct debit payments and email sending. It also notes improvements for developers including not evolving the SOAP interface and a new REST API explorer.
PARTIE 2 : Développez une application web dynamique et interactive : Comprendre les Sessions et les Cookies. Manipuler les formulaires et leurs éléments. Présenter Mysql, définir une BD, Comprendre le langage SQL et Apprendre à manipuler phpMyadmin. Faire la connexion avec la base de données et réaliser des opérations CRUD. Tout ceci accompagné avec des exemples et exercices.
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
Introduction au langage de programmation PHP.
Présentation réalisée la première fois le lundi 10 mars 2014 à l'IIM : Institut de l'Internet et du Multimédia pour les années préparatoires.
Cette présentation a pour but d'approfondir les compétences PHP des élèves : utiliser des bases de données, comprendre PDO et le modèle MVC (basique).
Après présentation orale de ces slides, des exercices de mise en pratique ont été réalisés en Atelier avec les élèves.
L'exercice principal était de construire une plateforme similaire à twitter selon un modèle MVC.
Voici le plan de la présentation :
• Les bases de données : MySQL
- Principe
- phpMyAdmin
- Interagir avec une BDD
• Les fonctions
- La machine à carottes
- Exemple avec MySQL
- Les fonctions PHP
• Modèle Vue Contrôleur - MVC
- Principe
- Mise en pratique
• Quelques trucs à savoir a.$_FILES et $_POST
- $_SESSION
- L’indentation
- PHP + HTML = ?
Dolibarr information for developers and partners - devcamp orléans 2017Philippe GRAND
The document provides information for developers and partners of the Dolibarr ERP CRM software, including tips for repairing corrupted data, using triggers and properties in modules, testing module deployment, and best practices for links, screenshots, and reviews. It also reminds readers of partnership practices.
Les nouveautés du projet Dolibarr ERP CRM dans la version 3.7 et 3.8
Présentation réalisée par TecLib pour le DevCamp internationnal Dolibarr de Pau 2015
Les outils d'un projet Open Source, illustré avec le projet Dolibarr ERP CRM ...Laurent Destailleur
Cette présentation offre une vue des différents outils (gestion de source, wikis, cms, traduction, communication) dont a besoin un projet Open Source pour fonctionner.
Le choix du projet internationnal Dolibarr ERP CRM est utilisé comme exemple.
Réalisation teclib: http://www.teclib.com
Cette présentation a été utilisé dans le cadre de formation aux modules Open Source à la faculté ainsi que lors de devcamp.
- The document summarizes new features in version 5.0 of the Dolibarr ERP CRM software, including new modules for multi-currency and double party accounting, common banners for tabs, dynamic lists and filtering, document attachments on bank accounts, and enhancements to direct debit payments and email sending. It also notes improvements for developers including not evolving the SOAP interface and a new REST API explorer.
PARTIE 2 : Développez une application web dynamique et interactive : Comprendre les Sessions et les Cookies. Manipuler les formulaires et leurs éléments. Présenter Mysql, définir une BD, Comprendre le langage SQL et Apprendre à manipuler phpMyadmin. Faire la connexion avec la base de données et réaliser des opérations CRUD. Tout ceci accompagné avec des exemples et exercices.
Php 2 - Approfondissement MySQL, PDO et MVCPierre Faure
Introduction au langage de programmation PHP.
Présentation réalisée la première fois le lundi 10 mars 2014 à l'IIM : Institut de l'Internet et du Multimédia pour les années préparatoires.
Cette présentation a pour but d'approfondir les compétences PHP des élèves : utiliser des bases de données, comprendre PDO et le modèle MVC (basique).
Après présentation orale de ces slides, des exercices de mise en pratique ont été réalisés en Atelier avec les élèves.
L'exercice principal était de construire une plateforme similaire à twitter selon un modèle MVC.
Voici le plan de la présentation :
• Les bases de données : MySQL
- Principe
- phpMyAdmin
- Interagir avec une BDD
• Les fonctions
- La machine à carottes
- Exemple avec MySQL
- Les fonctions PHP
• Modèle Vue Contrôleur - MVC
- Principe
- Mise en pratique
• Quelques trucs à savoir a.$_FILES et $_POST
- $_SESSION
- L’indentation
- PHP + HTML = ?
Dolibarr information for developers and partners - devcamp orléans 2017Philippe GRAND
The document provides information for developers and partners of the Dolibarr ERP CRM software, including tips for repairing corrupted data, using triggers and properties in modules, testing module deployment, and best practices for links, screenshots, and reviews. It also reminds readers of partnership practices.
Peun 相片 is a short untitled document written in Chinese characters. It does not provide enough contextual information to generate a meaningful 3 sentence summary. The document title "Peun 相片" and lack of other details prevents understanding of its key ideas or content in order to write an informative abstracted summary.
Un cortafuegos es un elemento de hardware o software que controla las comunicaciones entre una red interna y externa, como Internet, permitiendo o prohibiendo el tráfico según las políticas de seguridad. Se ubica usualmente en el punto de conexión entre ambas redes para proteger la red interna de accesos no autorizados. Existe en tipos de capa de red, capa de aplicación y personales. Proporciona protección contra intrusiones y optimiza el acceso entre elementos internos, aunque tiene limitaciones como no poder proteger contra ataques internos o de ingenier
El documento describe la evolución de Internet y la web, desde su creación como red militar descentralizada hasta la actual web 2.0 social y colaborativa. Explica cómo la web 2.0 ha permitido nuevas formas de creación colectiva como wikis, blogs y redes sociales, y analiza ejemplos como Wikipedia y proyectos de ficción colaborativa. Finalmente, plantea cuestiones sobre la autoría y los derechos de autor en la creación digital colectiva.
El poema narra el encuentro de un niño con la luna, que representa a la muerte. Al principio la luna duda en llevarse al niño, pero finalmente accede y se lo lleva mientras los gitanos buscan al niño enfurecidos.
El documento describe las diferentes fases del entrenamiento de fútbol para diferentes edades de jugadores juveniles. La primera fase se centra en el desarrollo de la motricidad general y la relación del niño con su entorno. La segunda fase se enfoca en la relación individual con el balón. La tercera fase introduce el juego con compañeros y contrincantes. Finalmente, la cuarta fase desarrolla nociones de espacio y tiempo relacionadas con el juego de equipo.
El documento habla sobre la calidad de la información cartográfica digital. Discute aspectos como la exactitud temática, consistencia, completitud, escala, objetivos, precisión y documentación. Luego presenta diapositivas que intentan abrir el debate sobre cómo la calidad de la información impacta a la sociedad, mostrando ejemplos de errores en mapas digitales que podrían haber causado accidentes o incluso una invasión internacional. Finalmente, plantea preguntas sobre la responsabilidad institucional en la recolección y uso de datos con instrumentación inadecuada
Este cronograma describe las 8 semanas de un curso en línea sobre diseño instruccional. Cada semana se centrará en un tema como inducción, diseño instruccional, herramientas y recursos educativos abiertos, evaluación en línea y desarrollo de un proyecto personal. El curso incluirá videos, lecturas, actividades y foros para que los estudiantes dediquen de 1 a 2 horas diarias y presenten un prototipo final en la semana 7.
Lingway était présent au salon Documation qui a eu lieu le 23/24 Mars 2011 au CNIT La Défense.
Notre conférence avait lieu sur le thème "Opinion Mining : Exemples d'applications" voici notre présentation.
La persona que escribió el documento le pide a Dios que derrame su misericordia sobre alguien especial para él, que llene su corazón de amor, paz y alegría, cure sus heridas del pasado, ilumine su vida y le enseñe a amar, y que bendiga su hogar y familia.
Kosovo declaró su independencia de Serbia en 2008 mediante un acto unilateral del Parlamento kosovar. Estados Unidos y la Unión Europea apoyaron la independencia de Kosovo, mientras que Rusia y Serbia se opusieron a reconocer a Kosovo como un estado independiente. Desde 1999 hasta su declaración de independencia, Kosovo fue administrado de forma interina por las Naciones Unidas como resultado de la guerra entre Serbia y Kosovo.
Manolo vivía en América mientras su esposa María se quedó en España. María le pedía repetidamente a Manolo que le enviara esperma por correo para quedar embarazada, lo que él hizo durante 10 años y tuvieron 5 hijos. Cansado de esto, Manolo le envió una mezcla de maicena, clara de huevo y leche en lugar de esperma. Tres semanas después, María le informó que estaba embarazada, lo que llevó a Manolo a exclamar que había inventado el esperma.
Este documento presenta deseos para el año nuevo de 2011, incluyendo más fiestas, besos, música, poesía y coraje, así como menos duelos, bofetadas, silencios, discursos y miedo. También desea más justicia, riqueza, ternura y sueños, y menos juicios, dinero, maltratos y pesadillas. Finalmente, desea más libertad, trabajo, paz y colores, y menos cárcel, paro, guerras y grises.
Situation assessment and priority actions in 5 countries in West AfricaEveryWomanEveryChild
Ties Boerma. “Situation assessment and priority actions in 5 countries in West Africa”. (English/French)
Presentations to the Second Stakeholders Meeting on Implementing the Recommendations of the Commission on Information and Accountability for Women's and Children's Health Ottawa.
Session 1 - General Perspectives Plenary Panel
21-22 November 2011
Peun 相片 is a short untitled document written in Chinese characters. It does not provide enough contextual information to generate a meaningful 3 sentence summary. The document title "Peun 相片" and lack of other details prevents understanding of its key ideas or content in order to write an informative abstracted summary.
Un cortafuegos es un elemento de hardware o software que controla las comunicaciones entre una red interna y externa, como Internet, permitiendo o prohibiendo el tráfico según las políticas de seguridad. Se ubica usualmente en el punto de conexión entre ambas redes para proteger la red interna de accesos no autorizados. Existe en tipos de capa de red, capa de aplicación y personales. Proporciona protección contra intrusiones y optimiza el acceso entre elementos internos, aunque tiene limitaciones como no poder proteger contra ataques internos o de ingenier
El documento describe la evolución de Internet y la web, desde su creación como red militar descentralizada hasta la actual web 2.0 social y colaborativa. Explica cómo la web 2.0 ha permitido nuevas formas de creación colectiva como wikis, blogs y redes sociales, y analiza ejemplos como Wikipedia y proyectos de ficción colaborativa. Finalmente, plantea cuestiones sobre la autoría y los derechos de autor en la creación digital colectiva.
El poema narra el encuentro de un niño con la luna, que representa a la muerte. Al principio la luna duda en llevarse al niño, pero finalmente accede y se lo lleva mientras los gitanos buscan al niño enfurecidos.
El documento describe las diferentes fases del entrenamiento de fútbol para diferentes edades de jugadores juveniles. La primera fase se centra en el desarrollo de la motricidad general y la relación del niño con su entorno. La segunda fase se enfoca en la relación individual con el balón. La tercera fase introduce el juego con compañeros y contrincantes. Finalmente, la cuarta fase desarrolla nociones de espacio y tiempo relacionadas con el juego de equipo.
El documento habla sobre la calidad de la información cartográfica digital. Discute aspectos como la exactitud temática, consistencia, completitud, escala, objetivos, precisión y documentación. Luego presenta diapositivas que intentan abrir el debate sobre cómo la calidad de la información impacta a la sociedad, mostrando ejemplos de errores en mapas digitales que podrían haber causado accidentes o incluso una invasión internacional. Finalmente, plantea preguntas sobre la responsabilidad institucional en la recolección y uso de datos con instrumentación inadecuada
Este cronograma describe las 8 semanas de un curso en línea sobre diseño instruccional. Cada semana se centrará en un tema como inducción, diseño instruccional, herramientas y recursos educativos abiertos, evaluación en línea y desarrollo de un proyecto personal. El curso incluirá videos, lecturas, actividades y foros para que los estudiantes dediquen de 1 a 2 horas diarias y presenten un prototipo final en la semana 7.
Lingway était présent au salon Documation qui a eu lieu le 23/24 Mars 2011 au CNIT La Défense.
Notre conférence avait lieu sur le thème "Opinion Mining : Exemples d'applications" voici notre présentation.
La persona que escribió el documento le pide a Dios que derrame su misericordia sobre alguien especial para él, que llene su corazón de amor, paz y alegría, cure sus heridas del pasado, ilumine su vida y le enseñe a amar, y que bendiga su hogar y familia.
Kosovo declaró su independencia de Serbia en 2008 mediante un acto unilateral del Parlamento kosovar. Estados Unidos y la Unión Europea apoyaron la independencia de Kosovo, mientras que Rusia y Serbia se opusieron a reconocer a Kosovo como un estado independiente. Desde 1999 hasta su declaración de independencia, Kosovo fue administrado de forma interina por las Naciones Unidas como resultado de la guerra entre Serbia y Kosovo.
Manolo vivía en América mientras su esposa María se quedó en España. María le pedía repetidamente a Manolo que le enviara esperma por correo para quedar embarazada, lo que él hizo durante 10 años y tuvieron 5 hijos. Cansado de esto, Manolo le envió una mezcla de maicena, clara de huevo y leche en lugar de esperma. Tres semanas después, María le informó que estaba embarazada, lo que llevó a Manolo a exclamar que había inventado el esperma.
Este documento presenta deseos para el año nuevo de 2011, incluyendo más fiestas, besos, música, poesía y coraje, así como menos duelos, bofetadas, silencios, discursos y miedo. También desea más justicia, riqueza, ternura y sueños, y menos juicios, dinero, maltratos y pesadillas. Finalmente, desea más libertad, trabajo, paz y colores, y menos cárcel, paro, guerras y grises.
Situation assessment and priority actions in 5 countries in West AfricaEveryWomanEveryChild
Ties Boerma. “Situation assessment and priority actions in 5 countries in West Africa”. (English/French)
Presentations to the Second Stakeholders Meeting on Implementing the Recommendations of the Commission on Information and Accountability for Women's and Children's Health Ottawa.
Session 1 - General Perspectives Plenary Panel
21-22 November 2011
La préservation numérique de la collection d'une bibliothèque à l'aide de logiciels libres
par Thomas Ledoux (Chef de projet SPAR de la BnF) et Laurent Sollier (AtosOrigin) donnée lors des conférences administration électronique au Salon Solutions Linux 2009
Comment récupérer un projet Web pourri ... et réussir à travailler dessus.Guillaume RICHARD
Présentation pour Blendwebmix 2017, sur le thème de la récupération de projet Web.
Je présente les principales raisons de fails de projets, et comment réussir quand même à travailler dessus.
Cegos et Learn eXact : retour d’expérience sur l’usage d’un LCMS pour créer et gérer les contenus de formation en ligne.
Atelier "La montée en puissance des formations numériques" lors des 9es rencontres du fffod, le 15/11/11 à Orléans, présenté par Thierry Josselin, "e-learning support and services project manager" chez CEGOS.
Implémentation d’un atelier agile de génération de code d\'une application riche Spring basé sur l\'approche MDSD.
Mots clés: Eclipse, MDSD, DSL, EMF, GMF, Acceleo, Hibernate, Spring, JSF, JBoss Richfaces, Spring Security.
Présentation chez Neuros pour nos nAcademy des bonnes pratiques pour étudier les problématiques de performance essentillement sur des applications ou sites webs développés en PhP.
Mockito - Design + tests par Brice DuteilNormandy JUG
rice Dutheil est indépendant, membre du groupe des Zindeps. Comiteur sur Mockito.Son blog est le “TheCoffeeWorkshop“. Son Twitter est @BriceDutheil.
Le design par le test
Le TDD est aujourd’hui une pratique reconnue pour permettre la production de code avec peu d’anomalies. Mais ce n’est pas le seul interet du TDD ; le design du code peut en etre le grand gagnant. Ces quelques slides vont essayer de donner un apercu des opportunites à saisir et des pieges à eviter ; Mockito inside.
FRAMEWORK PHP – notre dernier « cahier techno » !
PHP est aujourd’hui le langage de développement Web le plus populaire. Au cours de son ascension un certain nombre de Frameworks ont émergés afin d’aider les développeurs et de standardiser certaines bonnes pratiques.
David Négrier, notre CTO, explique l’intérêt des Frameworks dans un projet Web et réalise un test en « temps réel » sur des Frameworks majeurs du marché.
- Dolibarr v15 includes over 118 new features and fixes reported in the changelog, including improvements to responsiveness, date filters, and form positioning.
- Security fixes from a bug bounty campaign were added, including read-only database access and strengthened CSRF protection.
- New features were added for various modules including expanded point-of-sale, stock, and expense report management capabilities.
- Developers should test with PHP 8.0 as compatibility is improved though not complete.
- Early prototypes were introduced for knowledge management, event organization, partnerships, and other modules seeking testers and feedback.
- Dolibarr v14 includes over 118 new features and fixes 28 issues for developers
- The look and feel was improved with changes like standardized styling for amounts and placeholders
- Security and performance were enhanced through fixes identified in bug bounty campaigns and new admin tools
- New prototype modules were introduced for recruiting, event organization, partnerships, knowledge management, and workstation management, with testers needed
This document summarizes the new features and changes in version 13 of the Dolibarr ERP CRM software. Key highlights include over 200 new features and fixes, improved security following a bug bounty campaign, new features for the TakePOS module including support for foreign currencies, and new modules for credit transfers, job recruitment, and interfacing with Zapier. It also notes compatibility with PHP 5.6+ and migration support from older versions.
- The webinar covered new features in version 12 of the Dolibarr ERP CRM software, including updates to the look and feel, new features for the TakePOS point-of-sale module, and new modules.
- New features in TakePOS include the ability to set VAT rates for free-text products, cash drawer functionality, support for parallel sales and barcode readers.
- Additional new features include easier tax setup, multi-currency column visibility, developer tools like REST APIs and hooks, and a new stable MRP manufacturing module.
- A full list of changes can be found at the provided URL.
Présentation Logiciels Libres et Open Source - Philosophie et Concepts.pdfLaurent Destailleur
Ce document présente ce que sont les logiciels libres:
Principe, historique, vocabulaire, philosophie, concept, licences, les 4 libertés, les effets sur l'économie du logiciel, notion de copyright et copyleft.
Réalisation Laurent Destailleur - Dolicloud: https://www.dolicloud.com
Cette présentation a été utilisé dans le cadre de formation aux modules Open Source en université ou cycles ingénieurs ainsi que lors de devcamp ou manifestations sur le logiciel libre.
Dolibarr ERP CRM version 11 includes over 175 new features, including improvements to the user interface and responsiveness, new modules for bills of materials (BOM) and manufacturing resource planning (MRP), and expanded API and developer capabilities. Key updates involve a new dashboard for documents, conversation views for lists, more flexible payments and amounts, and social network profile field extensions. The BOM module allows defining product structures while the potential new MRP module can manage manufacturing orders.
Dolibarr - information for developers and partners - devcamp Pau 2019Laurent Destailleur
This document provides information for developers and partners of the Dolibarr ERP CRM project. It discusses exporting courses to the Dolibarr Academy, editing videos with blender, testing modules, migrating code to follow coding standards, and desired new features like editing reminder fields and importing the dolibarr.org website into the foundation's CMS. It also provides links to documentation and announces that translations are now pushed to Transifex weekly.
Dolibarr - information for developers and partners - devcamp lyon 2019Laurent Destailleur
This document provides information for developers and partners of the Dolibarr ERP CRM software. It outlines several things that should be better known, including tracking bugs introduced by developers, files added to describe development organization, and testing modules using the online deployer. It also mentions future deprecations like only minimum files being generated at module creation. The document requests developers to work on some long awaited features and changes to the software. It directs readers to a GitHub link listing the top 10 strategic features for the future of Dolibarr.
This document summarizes the new features in version 10.0 of the Dolibarr ERP/CRM software. Key updates include improvements to the user interface and responsiveness, new features for expense reports and projects, enhanced payment integration, and new modules for debugging, email processing, ticketing, and point-of-sale. It also provides links to the full changelog detailing all changes.
This document summarizes the new features in version 9.0 of the Dolibarr ERP CRM software. There were 94 new features added, including enhancements to default values, accounting interfaces, extra fields, and Stripe payment integration. New modules were also introduced, such as ones for DAV, social networks, a module builder, and a website module to build a website with dynamic ERP content. The full changelog lists all changes and Dolibarr 9.0 provides improved performance and compatibility.
Presentation Dolibarr - information for developers and partners - devcamp Nan...Laurent Destailleur
This document provides information for developers and partners on Dolibarr ERP CRM including:
- Tips for developing modules such as using scheduled jobs, README/Changelog files, translation and variable substitutions.
- Details like using save/restore search values, repositioning links, and making modules compatible with default values/sort orders and searches.
- Information on including main.inc.php to load the Dolibarr framework for external modules regardless of installation method.
The document also mentions upcoming demos of the Website and Module Builder modules.
The document summarizes planned enhancements for the Dolibarr ERP CRM software discussed at the DevCamp - Valence 2016 conference. Key areas of focus include improving list filters, adding more mass actions features, enhancing the responsive design for different devices, other interface improvements like new entry menus and field validation, expanding the REST APIs, and addressing top missing features as identified on the GitHub issues page.
The document summarizes the new features of Dolibarr versions 3.9 and 4.0. Version 3.9 introduced a more modern look, ability to edit email templates using WYSIWYG editor, and new modules for loan management and dynamic pricing. Version 4.0 continued improving the responsive design, added ability to customize the footer in PDFs, and made recurring invoices and REST APIs stable features. It also improved developer tools and ensured compatibility with PHP7.
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!
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.
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.
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 :
2. {
Bonnes pratiques PHP … Par l'exemple
Objectifs et plan de la présentation
Présenter les pratiques PHP et règles de l'art du développement PHP, avec retour d'expérience
Principe de la présentation
8 thèmes abordés
Pour chaque thème, 3 paragraphes évoqués :
Pourquoi
Comment
– Résultats et retours d'expérience
Thèmes abordés
Thème 1: Documentation technique
Thème 2: Design pattern Accès aux données (DAO et ORM)
Thème 3: Design pattern MVC et moteurs de templates
Thème 4: Performances
Thème 5: Traduction
Thème 6: Portabilité
Thème 7: Sécurité
Thème 8: Tests unitaires/non régression
3. {
Bonnes pratiques PHP … Par l'exemple
Choix de l'exemple
Un EPR/CRM de 8 ans d'expérience et 800 000 lignes de code:
Couverture fonctionnelle
ERP/CRM (Facturation, Commandes, Produits, Stock, Annuaire, Agenda, Projet, etc...)
Couverture technique
PHP 4 à 5.3
MySql 3+ / PostgreSql 8.3+
LDAP, RSS, SOAP, …
Historique
Début des développements en 2003 (PHP 4 / MySql 3)
800 000 lignes de codes (commentaires exclus), une vingtaine de développeurs actifs
4. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 1/8 : Documentation technique
Pourquoi ?
Faciliter la lecture de code issus d'autres développeurs
Etude d'impacts
Accélérer le développement en bénéficiant d'auto-complétion lors de l'écriture du
code.
5. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 1/8 : Documentation technique
Pourquoi ?
Faciliter la lecture de code issus d'autres développeurs
Etude d'impacts
Accélérer le développement en bénéficiant d'auto-complétion lors de l'écriture du
code.
6. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 1/8 : Documentation technique
Comment ?
Utilisation d'outils et conventions de documentation (JavaDoc, phpDocumentor, Doxygen)
Conventions Doxygen
Conventions JavaDoc
7. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 1/8 : Documentation technique
Résultats et retour d'expérience
Plusieurs conventions/outils testés => Le choix final est la convention JavaDoc complétée
de tags Doxygen (Entêtes fichier).
Génération de la documentation faite avec Doxygen.
8. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 2/8 : Design patterns DAO et ORM
Pourquoi ?
Définir un cadre de développement homogénéisant la production de code
Faciliter la lecture de code issus d'autres développeur.
Permettre l'accélération du développement par génération de code
9. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 2/8 : Design patterns DAO et ORM
Comment ?
Martin Fowler a identifié 3 patterns d'accès aux données pour un langage Objet :
Le Table And Row Data Gateway
Une classe par table, voir une classe par ligne de table. La classe ne contient que du code d'accès
aux lignes ou colonnes de tables. Le code métier doit alors être ajouté dans d'autres classes. Les
classes possèdent juste les méthodes CRUD.
Exemple: Certains Frameworks d'ORM comme Prado
Le Active Record
Identique au précédent, mais on se permet d'ajouter aux méthodes CRUD quelques fonctions
métiers dans les classes, à conditions que ces fonctions aient un rapport avec la table ou ses
lignes.
Le Data Mapper
Les classes représentent les entités du problème et non les données. Il faut donc doubler, tripler...
ces classes avec des classes Mapper pour accéder aux données. Plus "puriste" sur le papier car
plus proche du métier, ce mode a aussi l'inconvénient d'être plus complexe sur le plan pratique.
Exemple: Certains Frameworks d'ORM comme Propel
10. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 2/8 : Design patterns DAO et ORM
Résultats et retours d'expérience
Le Pattern Table And Row Data est trop limité en terme d'accès aux donnée.
Le Pattern Data Mapper crée une forte abstraction qui, à l'usage, génère aussi de l'obscurité
de code.
Le Pattern Active Record a finalement été
généralisé car offrant le meilleur facteur
productivité * lisibilité.
Exemple sur la classe Commande =>
Cela a de plus permis le développement
d'un script générateur de classe.
11. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 3/8 : Design patterns MVC
Pourquoi ?
Définir un cadre de développement homogénéisant la production de code
Faciliter la lecture de code issus d'autres développeurs
Permettre l'accélération du développement par génération de code
Permettre la personnalisation du visuel sans compétences PHP
12. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 3/8 : Design patterns MVC
Comment ?
Le design pattern MVC « by file », « by framework »
Chaque écran possède un fichier de template et un fichier de code actions.
Exemple: La plupart des Frameworks de présentation (Smarty, ...)
Le design pattern MVC « by file », « by PHP »
Identique au précédent, mais le moteur de templates est en fait un simple include d'un
fichier template.tpl.php qui manipule les variables PHP.
Le design pattern MVC « by part », « by PHP »
C'est le même fichier qui contient le code action et la présentation. La séparation se
fait dans le découpage du fichier (le haut contient le code, le bas la présentation)
13. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 3/8 : Design patterns MVC
Comment ?
Avantage/Inconvénient
MVC by file
by Framework
MVC by file
by PHP
MVC by part
by PHP
Garantie technique
d'isolation code/présentation
+
-
-
Lisibilité HTML
+
+
-
Lisibilité Code
-
+/-
+
Évolutivité IHM
complexes/Ajax...
-
+
+
Fonctionnalités
+/-
-/+
-/+
Performances
- (120% smarty)
+ (101%)
+ (100%)
14. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 3/8 : Design patterns MVC
Résultats et retours d'expérience
Abandon de Smarty :
→ La dégradation de maintenabilité sur le code et limitations dues à la complexité
des IHM ont été jugés non compensés par le gain sur la maintenabilité de la
présentation.
→ Les performances de Smarty très inférieures.
MVC by file with framework
Without cache (Smarty)
MVC by file with framework
With cache (Smarty)
MVC by file with PHP
MVC by part with PHP
Utilisation du MVC by part with PHP en général, utilisation du MVC by file with PHP
sur les portions d'écrans répétitives uniquement.
→ Autonomie très rapide des développeurs
15. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 4/8 : Performances
Pourquoi ?
Parce que le temps de réponse est le deuxième facteur (après
l'ergonomie) de productivité des utilisateurs.
Parce qu'une application Web (client léger) doit être aussi rapide qu'une
application Client-Serveur.
Parce que ne bénéficiant pas de fonction natives de serveurs applicatifs,
les développeurs PHP ne cherchent pas à optimiser l'usage des
ressources.
16. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 4/8 : Performances
Comment ?
Optimisation du côté du navigateur et réseau
Optimisation du code
Utilisation de serveur de cache
17. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 4/8 : Performances
Comment ? (Optimisation navigateur)
Utilisation du plugin Firebug + PageSpeed (Google) ou Yspeed (Yahoo)
Un bouton pour activer
l'analyse de la page.
Une liste de résultat
avec conseils correctifs
18. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 4/8 : Performances
Résultats et retours d'expérience (Optimisation navigateur)
Modification de l'ordre des js et css augmente
le nombre de threads // du navigateur
Forçage du cache navigateur par directives serveur
Fusion des js propres au projet
Compression gz + Minification js
+
+
$mini='';$ext='.js';
if (isset($OPTIMIZE)) { $mini='.min'; $ext='.jgz'; }
print '<script src="/jquery/js/jquery-1.4.3'.$min.$ext.'"></script>';
→ Gain de 20% (dans la vue Réseau de Firebug) sur le rendu navigateur
→ Passage de la note PageSpeed de 46/100 à 76/100
19. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 4/8 : Performances
Comment ? (Le coding)
Utilisation de Xdebug et XcacheGrind
- Activation du mode trace de xdebug dans un fichier cachegrind.
- Analyse du fichier cachegrind avec un lecteur (KcacheGrind ou WinCacheGrind)
Liste des fonctions et temps
Vue descendante dans les fonctions
20. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 4/8 : Performances
Résultats et retours d'expérience (Le coding)
Passage du temps de réponse des pages d'un indice 100 à un indice 70
Réduction de l'empreinte mémoire d'un indice 100 à un indice 80
Mise en évidence que 50% du temps était consacré à une tache de lecture des fichiers .lang
(Fichier des traductions Dolibarr).
Temps de réponses Mémoire
21. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 4/8 : Performances
Comment ? (Le serveur de cache)
Utilisation du serveur MemCache (A ne pas confondre avec le cache OpCode PHP ou le cache
des moteurs de templates)
Utilisation de l'implémentation PHP du client (Memcache ou Memcached)
22. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 4/8 : Performances
Résultats et retours d'expérience (Le serveur de cache)
Utiliser sur la seule phase de lecture des fichiers de paramètres et traduction =>
Remplacement de fonctions d'I/O disques en I/O mémoire.
Réduction par 10 du temps de la phase de lecture des fichiers traduction, d'où une réduction
de presque 50% du temps de traitement.
Temps de réponses Mémoire
23. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 5/8 : Traductions
Pourquoi ?
Permettre une internationalisation et étendre sa base potentielle
d'utilisateur.
Gérer les spécificités locales (utilisateurs en DOMTOM, autres pays
francophones, ...)
24. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 5/8 : Traductions
Comment ?
Localisation des dates :
Utilisation de la fonction PHP setlocale() + strftime(), mktime(), gmtime() ?
ou
Utilisation d'un fichier de configuration du format de date ?
Localisation des symboles numériques + monnaies :
Utilisation de la fonction PHP setlocale() + number_format() ?
ou
Utilisation d'un fichier de configuration du format de date ?
Localisation des chaines de traductions :
Utilisation des fonctions de conversion des pages codes ?
Utilisation de GetText et le standard po ?
ou
Utilisation d'une méthode maison ?
25. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 5/8 : Traductions
Résultats et retours d'expérience
Localisation des dates :
Utilisation de la fonction PHP setlocale() + strftime(), mktime(), gmtime()
→ Fonctions dépendant de la configuration système (variable UTC) et PHP (php.ini).
Non modifiable par thread mais global (process)..
Utilisation d'un fichier de configuration du format de date
Localisation des symboles numériques + monnaies :
Utilisation de la fonction PHP setlocale() + number_format() ?
→ Fonction dépendant de la configuration système (variable LANG) et PHP (php.ini).
Non modifiable par thread mais global (par process).
Utilisation d'un fichier de configuration du format de date ?
Localisation des chaines de traductions :
Utilisation des fonctions de convertion des pages codes ?
→ Partir sur du full UTF-8 (Code source, Output HTML, Base de données)
Utilisation de GetText et le standard po ?
→ GetText dépendant de la configuration système (variable LANG, UTC) et PHP
(php.ini). Non modifiable par thread mais global (par process).
→ Standard po se base sur une chaine source et non une clé.
Utilisation d'une méthode maison
26. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 6/8 : Portabilité
Pourquoi ?
Avoir une application indépendante de l'OS, base de données, paramétrage PHP...
Pouvoir développer sous un OS (Windows, MAC...) et mettre en production sous un autre
(Linux, ...) sans surprise.
3 grandes problématiques de portabilité :
- Base de données
- Système de fichiers
- Paramétrage PHP
27. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 6/8 : Portabilité
Comment ?
Base de données :
PDO, DAO autre framework ORM, autre ?
Systèmes de fichiers :
Rien à faire pour la gestion de / ou (Natif PHP)
Pas de solution native pour une compatibilité du code sur tout systèmes de fichiers
(Windows ISO – Linux UTF8)
Paramétrage PHP :
La gestion des écarts des options PHP (error_reporting, register_global, magic_quotes)
doit se faire de manière programmative.
28. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 6/8 : Portabilité
Résultats et retours d'expérience (Base de données)
Trop de lacunes à PDO, un classe de conversion ordres SQL mysql → base x et de conversion
code erreur mysql → code générique a été développée.
Couche de portabilité
Avantage/Inconvénient
PDO
Dolibarr
Autre
frameworks
Portabilité ordres DDL (insert,
update, select, delete)
Oui
Oui
?
Portabilité ordres DML (create, Non
truncate, ...)
Oui
?
Portabilité des codes erreurs
Incomplète
Oui
?
Gestion des transactions
imbriquées
Non
Oui
?
29. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 6/8 : Portabilité
Résultats et retours d'expérience (Système de fichier)
Les fonctions de manipulation fichiers de PHP ne tiennent pas compte de la page de
code du système de fichier (FAT, NTFS, ext3, ext4, ...).
Exemple :
$monfichier='fichier accentué.txt'; fopen($monfichier, 'w') ;
ne stockera pas correctement le ficher si le source manipule des données UTF-8 et que le système
de fichier est en ISO (et vis-versa).
→ Toutes les fonctions fichiers ont donc été surchargées :
$monfichier='fichier accentué.txt'; dol_fopen($monfichier, 'w') ;
function dol_fopen($monfichier) { return fopen(dol_osencode($dir)); }
function dol_osencode($str) {
$tmp=ini_get("unicode.filesystem_encoding");
if (empty($tmp) && ! empty($_SERVER["WINDIR"])) $tmp='iso-8859-1';
if (empty($tmp)) $tmp='utf-8';
if (! empty($globalforceosencoding)) $tmp=$globalforceoencoding ;;
if ($tmp == 'iso-8859-1') return utf8_decode($str);
return $str; }
// Disponible PHP 6.0
// Par défaut Windows
// Par défaut autre
30. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 6/8 : Portabilité
Résultats et retours d'expérience (Paramétrage PHP)
Solutions pour éviter que le paramétrage PHP impacte le comportement de l'application :
error_reporting → Forcer le choix par instruction PHP dans un include d'en-tête.
error_reporting(E_ALL ^ E_NOTICE);
register_globals → Utilisation d'une fonction GETPOST()
function GETPOST($paramname) {
return isset($_GET[$paramname])?$_GET[$paramname]:(isset($_POST[$paramname])?
$_POST[$paramname]:''); }
magic_quotes → Compensation par instructions PHP dans un include d'en-tête.
if (function_exists('get_magic_quotes_gpc')) { // magic_quotes_* removed in PHP6
if (get_magic_quotes_gpc()) {
$_GET = array_map('stripslashes_deep', $_GET);
$_POST = array_map('stripslashes_deep', $_POST);
$_REQUEST = array_map('stripslashes_deep', $_REQUEST);
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);
}
@set_magic_quotes_runtime(0); }) ;
function stripslashes_deep($value) {
return (is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value)); }
31. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 7/8 : Sécurité
Pourquoi ?
Éviter les failles de sécurité. S'armer contre les dangers.
L'OWASP recense et classifie ces dangers (http://www.owasp.org).
Il convient d'avoir une solution pour chacun d'eux.
A1: Injection (SQL, HTTP)
A2: Cross-Site Scripting (XSS)
A3: Broken Authentication and Session Management
A4: Insecure Direct Object References
A5: Cross-Site Request Forgery (CSRF)
A6: Security Misconfiguration
A7: Insecure Cryptographic Storage
A8: Failure to Restrict URL Access
A9: Insufficient Transport Layer Protection
A10: Unvalidated Redirects and Forwards
Voir page (http://www.owasp.org/index.php/Top_10_2010-Main)
32. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 7/8 : Sécurité
Comment ?
A1: Injection (SQL, HTTP) → Instructions PHP dans un include d'en-tête
if (test_sql_and_script_inject($_GET)) die('hack non permis'); // A faire sur POST, REQUEST, COOKIE
function test_sql_and_script_inject($val) { $sql_inj = 0;
$sql_inj += preg_match('/delete[s]+from|update.+set|.../i', $val);
return $sql_inj; }
A2: Cross-Site Scripting (XSS) → Instructions PHP dans un include d'en-tête
$sql_inj += preg_match('/<script/i', $val);
A3: Broken Authentication and Session Management → Utiliser les sessions PHP dans un
include d'en-tête
A4: Insecure Direct Object References → Instructions PHP dans pages
$result = restrictedArea($user, 'facture', $facid,'','','fk_soc',$fieldid);
function restrictedArea($user, $features='societe', $objectid=0...) {
...test conformité de l'id et du user...
If (nonconforme) die('hack non permis'); }
A5: Cross-Site Request Forgery (CSRF)→ Instructions PHP dans un include d'en-tête
$token = md5(uniqid(mt_rand(),TRUE)); // Nouveau jeton à chaque accès
if (isset($_SESSION['newtoken'])) $_SESSION['token'] = $_SESSION['newtoken'];
$_SESSION['newtoken'] = $token;
if (isset($_POST['token']) && isset($_SESSION['token'])) {
if (($_POST['token'] != $_SESSION['token'])) { die('hack non permis'); } }
33. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 7/8 : Sécurité
Comment ?
A6: Security Misconfiguration → Utilisation des bonnes options PHP
En production :
safe_mode=on (même si sera abandonné), open_basedir, expose_php=off,
display_errors = off, allow_url_fopen=off, allow_url_include=off
A7: Insecure Cryptographic Storage → Stockage en base du md5(motdepasse)
Pour valider, ne pas faire :
mot_de_passe_saisie=fdecryptage(mot_de_passe_crypte_en_base)
mais faire :
fcryptage(mot_de_passe_saisie)=mot_de_passe_crypte_en_base
Et utiliser une fonction fcryptage non réversible (exemple md5)
A8: Failure to Restrict URL Access → Même solution que A4
A9: Insufficient Transport Layer Protection → Activation du HTTPS
A10: Unvalidated Redirects and Forwards → Ne pas faire de redirect depuis une
valeur issu d'un paramètre utilisateur.
34. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 7/8 : Sécurité
Résultats et retours d'expérience
Euh... ?!?!
Quand on parle de sécurité, n'est-ce pas un retour ?
35. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 8/8 : Tests unitaires
Pourquoi ?
Améliorer la qualité
Réduire le travail répétitif des tests
Éviter les régressions
36. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 8/8 : Tests unitaires
Comment ?
Utilisation de PHPUnit via l'utilisation du plugin Eclipse PTI
(http://www.phpsrc.org/eclipse/pti/) qui intègre dans Eclipse PHPUnit (entre autres)
Utilisation de xDebug
Stockage des classes de tests unitaires dans le projet SVN ou CVS.
Bouton de bascule classes
Bouton déclenchement test
Liste des classes PHPUnit
Vue résultats des tests
37. {
Bonnes pratiques PHP … Par l'exemple
Thèmes 8/8 : Tests unitaires
Résultats et retours d'expérience
Une couverture de code des classes métiers passant de 0 à 22% en 4j de développement,
pour une exécution des tests automatisés en 30 secondes.
Une vision graphique HTML de couverture de test à la ligne de code prêt grâce à PHPUnit
et xDebug (en ligne de commande)
38. {
Bonnes pratiques PHP … Par l'exemple
Conclusion
Merci...
De nombreux autres thèmes non évoqués...
Utilisation de Framework PHP clés en main (Symphony, Zend...)
Utilisation de la génération de code (MDA)
Les outils d'intégration continue
Pour d'autres retour du projet...
Le socle de développement de Dolibarr:
http://wiki.dolibarr.org/index.php/Environment_and_development_tools
Le portail officiel du projet: http://www.dolibarr.org
et la documentation : http://wiki.dolibarr.org
ou le stand Dolibarr sur le salon Forum PHP 2010...