Besoin de gouvernance
Externaliser l'internalisation !
Vraiment pas satisfaisant
Not Invented Here (NIH)
Et arrive le crowd sourcing
Babili Crowdin.net
Aides à la traduction
Le sommet de l'iceberg
La formation multimédia « Pas-à-pas à l’internationalisation » vise à aider les entreprises canadiennes à mieux
connaître les marchés internationaux et à y prospérer. Axé sur les principes généraux
régissant l’exportation et l’importation, elle décrit les processus couramment utilisés par ces
dernières pour définir des stratégies d’internationalisation adaptées à leurs besoins.
ISO-8859-1 Au secours !
Téléphone japonais
Gruyère international
i18n ?
i18n ou l10n
Le champ d'action
Pour le fun: les guillemets
i18n en java
MessageFormat
Démo : Old style i18n
Exemples
The absolute minimum
Le minimum
Encodings
Idées au passage
Des outils
Comme son nom l'indique, le Web se veut mondial. Mais pour remplir cette promesse, l'internationalisation de toutes ses parties constituantes s'impose. Pas acquise au début, cette internationalisation s'est réalisée petit à petit et est encore en cours. Nous passerons en revue les progrès accomplis, les chantiers d'aujourd'hui et les perspectives d'avenir.
Conference drupal 8 au Forum PHP 2013 à ParisChipway
Conférence sur les nouveautés de Drupal 8 lors du Forum PHP 2013 à Paris.
Léon Cros a parlé de Views, Symfony2, Editeur CKEditor, Édition directe, HTML5, Mobile et smartphones, services web, ...
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
Nombreuses sont les directions digitales ayant aussi bien des besoins éditoriaux que métiers. D'un point de vue business, il n'est pas possible de séparer les deux.
Basiquement, quels choix avons-nous ?
- partir sur un CMS et coder en "CMS"...
- partir sur un framework et réinventer le CMS...
Aujourd'hui, une des solutions est d'alier le meilleur des 2 mondes, mais a aussi ses problématiques :
- comment faire communiquer les 2 solutions ?
- où trouver les bons profils compte tenu de expertise différentes ?
- comment ne pas complexifier la maintenance et l'exploitation ?
Bref, pour ce qui est d'aujourd'hui, c'est possible, mais difficile... Mais demain ?
La formation multimédia « Pas-à-pas à l’internationalisation » vise à aider les entreprises canadiennes à mieux
connaître les marchés internationaux et à y prospérer. Axé sur les principes généraux
régissant l’exportation et l’importation, elle décrit les processus couramment utilisés par ces
dernières pour définir des stratégies d’internationalisation adaptées à leurs besoins.
ISO-8859-1 Au secours !
Téléphone japonais
Gruyère international
i18n ?
i18n ou l10n
Le champ d'action
Pour le fun: les guillemets
i18n en java
MessageFormat
Démo : Old style i18n
Exemples
The absolute minimum
Le minimum
Encodings
Idées au passage
Des outils
Comme son nom l'indique, le Web se veut mondial. Mais pour remplir cette promesse, l'internationalisation de toutes ses parties constituantes s'impose. Pas acquise au début, cette internationalisation s'est réalisée petit à petit et est encore en cours. Nous passerons en revue les progrès accomplis, les chantiers d'aujourd'hui et les perspectives d'avenir.
Conference drupal 8 au Forum PHP 2013 à ParisChipway
Conférence sur les nouveautés de Drupal 8 lors du Forum PHP 2013 à Paris.
Léon Cros a parlé de Views, Symfony2, Editeur CKEditor, Édition directe, HTML5, Mobile et smartphones, services web, ...
Drupagora 2013 : Drupal8 et Symfony2, quel impact ?ekino
Nombreuses sont les directions digitales ayant aussi bien des besoins éditoriaux que métiers. D'un point de vue business, il n'est pas possible de séparer les deux.
Basiquement, quels choix avons-nous ?
- partir sur un CMS et coder en "CMS"...
- partir sur un framework et réinventer le CMS...
Aujourd'hui, une des solutions est d'alier le meilleur des 2 mondes, mais a aussi ses problématiques :
- comment faire communiquer les 2 solutions ?
- où trouver les bons profils compte tenu de expertise différentes ?
- comment ne pas complexifier la maintenance et l'exploitation ?
Bref, pour ce qui est d'aujourd'hui, c'est possible, mais difficile... Mais demain ?
La revue de code : agile, lean, indispensable !Lucian Precup
Présentation faite à Agile France en 2010 :
La revue de code : agile, lean, indispensable !
Alors que l’intégration continue ou les tests unitaires commencent à rentrer dans les "standards", la revue de code est souvent considérée comme optionnelle. Pourtant, les avantages d’une revue de code systématique sont multiples : détection des anomalies très tôt dans le cycle de développement, formation des membres de l’équipe, partage de la connaissance, meilleures solutions techniques par la conjonction des perspectives développeur/examinateur.
Cette présentation mettra en évidence les avantages de la revue du code en répondant aux idées reçues comme "la revue du code augmente la durée des développements", ou "nos développeurs sont très bons, ils n’ont pas besoin de revue de code" ou encore "il n’y a personne dans l’équipe qui puisse examiner mon code car je suis le seul à connaître Bash et Ant". En évoquant la revue de code dans l’univers open source, les différents moyens de la mettre en œuvre, ses compléments, les différents outils ; et terminant par une démonstration concrète en utilisant Eclipse, Bugzilla et Mylyn, cette présentation vous convaincra de mettre en place la revue de code systématique dans votre équipe sans attendre.
Déroulement :
1/ Avantages
2/ Idées reçues
3/ La revue de code dans l’univers open-source : de la revue du patch par le committeur aux procédures très élaborées comme celles de Mozilla Developer Center.
4/ Moyens de mise en œuvre : à partir de quelle taille des projets, par qui, comment, avant l’intégration ou après, ...
5/ Les compléments de la revue du code : analyse de la qualité du code, scripts pour les normes internes, ...
6/ Comparaison avec d’autres techniques : pair programming, ...
7/ Outils et intégration avec les autres outils de développement ou de gestion du cycle de vie (intégration continue, gestion des anomalies, ...)
8/ Démonstration des avantages sur un exemple concret en utilisant Eclipse, Bugzilla et Mylyn comme outils.
9/ Conclusion : comment la revue de code supporte une démarche agile et lean
Pourquoi rédiger un guide de bonnes pratiques drupal pour les projets de mon entreprise/groupe ? Eléments de méthode pour le créer. Quels avantages pour le donneur d'ordres, les prestataires, développeurs, ...
"Trucs et astuces sur le dévelopment Android"
Thierry-Dimitri Roy
Programmeur principale de La Presse Mobile et La Presse Hockey sur Android
Présentation donnée pour Android Montréal le 7 décembre 2011
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetesFrederic Leger
Slides du meetup du 08/12/17 montrant un workflow d'intégration et déploiement continue basé sur gitlab et les nouvelles fonctionnalités autodevops intégrées depuis la version 10.0
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
NodeJs, GruntJs, Bower, Karma, ... des buzzwords dont nous entendons parler, que nous voyons passer dans les blogs/articles. Mais à quoi servent-ils ?
Comment industrialiser nos développements Javascript ? Mettre en place des tests unitaires dans une application Web ? Générer de la documentation ? Des métriques qualités ? La couverture de code ? Comme avec Maven ? Nous verrons concrètement comment articuler tous ces outils autour d'une application école, pour démystifier tout ça.
Présentation donnée lors du Global Azure Bootcamp Paris 2018 sur la mise en place de solutions afin d'intégrer les projets data (bases de données, etl, BI...) à une chaine d'intégration et de déploiement continue.
Améliorer l'implémentation du feature flippingDorra BARTAGUIZ
Vous utilisez peut-être le feature flipping dans vos projets et vous considérez cette technique indispensable.
Mais les devs s'arrachent les cheveux à la moindre évolution avec toutes les combinaisons de feature flips à gérer. Tout ça combiné fait que le feature flipping devient dur à maintenir voire détesté par les devs.
On finit par avoir des if/else envahissants dans le code, sans prendre le temps de faire le ménage pour éliminer les feature flips devenus inutiles.
Je vous propose d'autres alternatives au feature flipping traditionnel, comme une priorisation différente, un design par l'injection ou un design pour un slicing plus malin.
Traduire une application n'est pas facile.
GetText est une solution efficace et robuste, souvent ignorée.
Ces slides datent un peu mais restent pertinents. J'y mentionne quelques casse-têtes récurrents : avant de choisir une solution d'I18N, vérifiez bien que vos alternatives gèrent ces cas.
Translations are hard.
GetText is an often overlooked solution, but it has many advantages.
These slides are a bit old but still relevant. They have some details about translations horror stories: before choosing any I18N solution, match these against your prospective answers.
Pourquoi rails est génial? (version longue)Camille Roux
Camille Roux vous explique pourquoi Ruby et Ruby on Rails peuvent être un choix fantastique pour vos prochains projets. Pendant une heure vous aurez le plaisir de faire un tour en orbite autour de la planète Ruby. Après un bref voyage dans le temps pour comprendre son histoire, vous découvrirez ce qui rend ce monde si magique.
Présentation effectuée par Charles-André Bouchard, dans le cadre du cours LOG3000 conduit par Mathieu Lavallée, à Polytechnique, mardi le 22 novembre 2016.
Analyse de logs SEO : pour qui, pour quoi, comment ?Julien Deneuville
Conférence du 20 février 2016 au SEO Campus de Nantes.
En quoi consiste l'analyse de logs pour le SEO ?
A qui cela s'adresse-t-il ?
Comment s'y prendre ?
Quelles analyses effectuer, et comment réagir ?
Plus d'infos : http://blog.1-clic.info/referencement/analyse-de-logs-seocampus-nantes/
The perfect representation for data manipulation is based on collections, lists or maps but most applications are designed based on an object domain model.
We solved this issue by implementing a KVM (Key Value Mapping) at the core level of our application. Data manipulation became very easy after implementing the bi-directional mapping of our entities to a key/value model. It took significant time before being able to leverage this new ecosystem and it started with a wide refactoring of the entities in order to fix our model key space.
Rock solid UI modeling using annotation processing - CodeGeneration 2013gdigugli
We work a long time to reverse engineer some complex UI forms of our insurance aggregator web site. We provide some models that explain all the dependencies between UI fields (with various semantics) and start to imagine some new design to rewrite a new generation of UI.
We decide to never lose again that knowledge and choose to translate that model as a UI meta model written in java. The model is essentially based on enumerations, annotations and relations between various literals. We translate the direct dependencies between fields with the same pattern.
The adventure was still at the beginning:
It was quickly necessary to visualize the field graph to understand cycle and to fix dependencies issues: we process the UI java model to export some XMI and display in a UML modeler. Quickly we start to validate the model dependencies during the JAVA compilation and we generate statically the set of deep dependencies for each field to improve the runtime performances and avoid graph cycles.
We start to implement the UI using a 'pure' MVC pattern to link the widget and the data model: each widget is instantiated dynamically at runtime based on the UI meta model and we plug the MVC glue between the widget and the data model with some injection patterns. The injection is statically resolved to target AJAX runtimes. In the same way, we inject labels, placeholders, helps, tips and other i18n text resources.
The rework of our forms was progressing quickly and we decide to add some layout information at the UI meta model level: it aggregates fields together in screens, blocks and groups. The structure allows checking the topology of the graph during the compilation: the layout is compliant with the dependency model of fields.
Actually we are experimenting some AB testing using multiple permutations of our field model to optimize the user experience and our conversion rate.
Our project is available on github with a full sample and all the tooling. We will show patterns, code and demo during the presentation.
La revue de code : agile, lean, indispensable !Lucian Precup
Présentation faite à Agile France en 2010 :
La revue de code : agile, lean, indispensable !
Alors que l’intégration continue ou les tests unitaires commencent à rentrer dans les "standards", la revue de code est souvent considérée comme optionnelle. Pourtant, les avantages d’une revue de code systématique sont multiples : détection des anomalies très tôt dans le cycle de développement, formation des membres de l’équipe, partage de la connaissance, meilleures solutions techniques par la conjonction des perspectives développeur/examinateur.
Cette présentation mettra en évidence les avantages de la revue du code en répondant aux idées reçues comme "la revue du code augmente la durée des développements", ou "nos développeurs sont très bons, ils n’ont pas besoin de revue de code" ou encore "il n’y a personne dans l’équipe qui puisse examiner mon code car je suis le seul à connaître Bash et Ant". En évoquant la revue de code dans l’univers open source, les différents moyens de la mettre en œuvre, ses compléments, les différents outils ; et terminant par une démonstration concrète en utilisant Eclipse, Bugzilla et Mylyn, cette présentation vous convaincra de mettre en place la revue de code systématique dans votre équipe sans attendre.
Déroulement :
1/ Avantages
2/ Idées reçues
3/ La revue de code dans l’univers open-source : de la revue du patch par le committeur aux procédures très élaborées comme celles de Mozilla Developer Center.
4/ Moyens de mise en œuvre : à partir de quelle taille des projets, par qui, comment, avant l’intégration ou après, ...
5/ Les compléments de la revue du code : analyse de la qualité du code, scripts pour les normes internes, ...
6/ Comparaison avec d’autres techniques : pair programming, ...
7/ Outils et intégration avec les autres outils de développement ou de gestion du cycle de vie (intégration continue, gestion des anomalies, ...)
8/ Démonstration des avantages sur un exemple concret en utilisant Eclipse, Bugzilla et Mylyn comme outils.
9/ Conclusion : comment la revue de code supporte une démarche agile et lean
Pourquoi rédiger un guide de bonnes pratiques drupal pour les projets de mon entreprise/groupe ? Eléments de méthode pour le créer. Quels avantages pour le donneur d'ordres, les prestataires, développeurs, ...
"Trucs et astuces sur le dévelopment Android"
Thierry-Dimitri Roy
Programmeur principale de La Presse Mobile et La Presse Hockey sur Android
Présentation donnée pour Android Montréal le 7 décembre 2011
meetup - Workflow complet de CI/CD pour les geeks avec gitlab et kubernetesFrederic Leger
Slides du meetup du 08/12/17 montrant un workflow d'intégration et déploiement continue basé sur gitlab et les nouvelles fonctionnalités autodevops intégrées depuis la version 10.0
Javascript as a first programming language : votre IC prête pour la révolution !VISEO
NodeJs, GruntJs, Bower, Karma, ... des buzzwords dont nous entendons parler, que nous voyons passer dans les blogs/articles. Mais à quoi servent-ils ?
Comment industrialiser nos développements Javascript ? Mettre en place des tests unitaires dans une application Web ? Générer de la documentation ? Des métriques qualités ? La couverture de code ? Comme avec Maven ? Nous verrons concrètement comment articuler tous ces outils autour d'une application école, pour démystifier tout ça.
Présentation donnée lors du Global Azure Bootcamp Paris 2018 sur la mise en place de solutions afin d'intégrer les projets data (bases de données, etl, BI...) à une chaine d'intégration et de déploiement continue.
Améliorer l'implémentation du feature flippingDorra BARTAGUIZ
Vous utilisez peut-être le feature flipping dans vos projets et vous considérez cette technique indispensable.
Mais les devs s'arrachent les cheveux à la moindre évolution avec toutes les combinaisons de feature flips à gérer. Tout ça combiné fait que le feature flipping devient dur à maintenir voire détesté par les devs.
On finit par avoir des if/else envahissants dans le code, sans prendre le temps de faire le ménage pour éliminer les feature flips devenus inutiles.
Je vous propose d'autres alternatives au feature flipping traditionnel, comme une priorisation différente, un design par l'injection ou un design pour un slicing plus malin.
Traduire une application n'est pas facile.
GetText est une solution efficace et robuste, souvent ignorée.
Ces slides datent un peu mais restent pertinents. J'y mentionne quelques casse-têtes récurrents : avant de choisir une solution d'I18N, vérifiez bien que vos alternatives gèrent ces cas.
Translations are hard.
GetText is an often overlooked solution, but it has many advantages.
These slides are a bit old but still relevant. They have some details about translations horror stories: before choosing any I18N solution, match these against your prospective answers.
Pourquoi rails est génial? (version longue)Camille Roux
Camille Roux vous explique pourquoi Ruby et Ruby on Rails peuvent être un choix fantastique pour vos prochains projets. Pendant une heure vous aurez le plaisir de faire un tour en orbite autour de la planète Ruby. Après un bref voyage dans le temps pour comprendre son histoire, vous découvrirez ce qui rend ce monde si magique.
Présentation effectuée par Charles-André Bouchard, dans le cadre du cours LOG3000 conduit par Mathieu Lavallée, à Polytechnique, mardi le 22 novembre 2016.
Analyse de logs SEO : pour qui, pour quoi, comment ?Julien Deneuville
Conférence du 20 février 2016 au SEO Campus de Nantes.
En quoi consiste l'analyse de logs pour le SEO ?
A qui cela s'adresse-t-il ?
Comment s'y prendre ?
Quelles analyses effectuer, et comment réagir ?
Plus d'infos : http://blog.1-clic.info/referencement/analyse-de-logs-seocampus-nantes/
The perfect representation for data manipulation is based on collections, lists or maps but most applications are designed based on an object domain model.
We solved this issue by implementing a KVM (Key Value Mapping) at the core level of our application. Data manipulation became very easy after implementing the bi-directional mapping of our entities to a key/value model. It took significant time before being able to leverage this new ecosystem and it started with a wide refactoring of the entities in order to fix our model key space.
Rock solid UI modeling using annotation processing - CodeGeneration 2013gdigugli
We work a long time to reverse engineer some complex UI forms of our insurance aggregator web site. We provide some models that explain all the dependencies between UI fields (with various semantics) and start to imagine some new design to rewrite a new generation of UI.
We decide to never lose again that knowledge and choose to translate that model as a UI meta model written in java. The model is essentially based on enumerations, annotations and relations between various literals. We translate the direct dependencies between fields with the same pattern.
The adventure was still at the beginning:
It was quickly necessary to visualize the field graph to understand cycle and to fix dependencies issues: we process the UI java model to export some XMI and display in a UML modeler. Quickly we start to validate the model dependencies during the JAVA compilation and we generate statically the set of deep dependencies for each field to improve the runtime performances and avoid graph cycles.
We start to implement the UI using a 'pure' MVC pattern to link the widget and the data model: each widget is instantiated dynamically at runtime based on the UI meta model and we plug the MVC glue between the widget and the data model with some injection patterns. The injection is statically resolved to target AJAX runtimes. In the same way, we inject labels, placeholders, helps, tips and other i18n text resources.
The rework of our forms was progressing quickly and we decide to add some layout information at the UI meta model level: it aggregates fields together in screens, blocks and groups. The structure allows checking the topology of the graph during the compilation: the layout is compliant with the dependency model of fields.
Actually we are experimenting some AB testing using multiple permutations of our field model to optimize the user experience and our conversion rate.
Our project is available on github with a full sample and all the tooling. We will show patterns, code and demo during the presentation.
JavaOne 2012 - CON11234 - Multi device Content Display and a Smart Use of Ann...gdigugli
This session presents a multidevice content display survivor guide and discusses smart use of annotation processing. Based on some real-life stories and best practices collected while coding Java applications, it includes the following stories for you:
1. Mr. Apt loves you! APT processing explained
2. Embedded i18n and encoding survivor guide
3. Mobile Me : the ez18n project
Ez18n hands on - Annotation Processing Tool par l'exemplegdigugli
Introduction à i18n avec GWT
les ResourceBundle du JDK
les MessageFormats du JDK
Comment aligner les 2 mondes ?
Bénéfices d'une approche unifiée
Injection à la CDI des bundles
Testes unitaires
Rapport CSV des clés i18n
Application multi écran
Demo slideware : LesFurets.com mobile/desktop
On enrichit encore un peu le pattern !
Deffered binding GWT kesako ?
Une nouvelle permutation GWT pour les clients mobiles
Injection des resources mobile et desktop avec GWT
Demo StockWatcher
Idée 1 : des tests JUnit pour l'orthographe
Idée 2 : un JSR pour les ResourceBundle 2.0
Ez18n Annotation Processing Tool in a nutshellgdigugli
APT qu'est ce que c'est
appeler en ligne de commande
appeler APT depuis maven
l'API javax.tools - hierarchie des classes
Processor
meta model d'un fichier source java
comparaison avec java.lang.reflect
limitation par rapport à java.lang.reflect
ca sert à quoi ?
pattern avec injection - je fais un framework
analyse et transformation de code vers des fichiers plats
DSL avec des annotations
no limit ... attention aux dépendances
compilation une ou deux passes ?
APT dans mon IDE
DevOps illustré : la jungle de la configuration d'une applicationgdigugli
L'approche DevOps essaie de rapprocher les développeurs et les administrateurs système, ce Quickie illustre le cas de la configuration des applications en présentant le besoin d'amélioration de la gestion des paramètres de configuration d'une application, avec une solution possible.
Notre codes contient beaucoup de paramètres : des options, des URL, des Emails, ... ces valeurs changent fréquemment entre l'environnement de production, de recette, le poste de développeur. Gérés manuellement ils causent beaucoup de bugs évitables.
Quels sont les principes d'une bonne gouvernance des paramètres ?
Comment éviter un bricolage manuel et voué à générer des erreurs d'utilisation ?
Comment avoir une documentation du paramétrage de votre application toujours à jour ?
Comment connaitre l'origine de la valeur utilisée (paramètre JVM, variable d'environnement, valeur par défaut) ?
Le but est une prise de conscience sur le sujet, et la présentation d'une mise en oeuvre simple.
2. Speakers
@dbaeli @gdigugli
• Chien de berger Agile pour • Développeur java depuis 1999
• Architecte pour
• Développeur de plus de 30 ans
• Usine logicielles & DevOps • ILOG - IBM
• Qualité Logicielle librairie graphique 2D
moteur de règles
• Prima-Solutions
plate-forme de services pour J2EE
code génération de modèle métier
2
3. Besoin de gouvernance
• Gestion de plusieurs langues
• Maintenance par les développeurs
• Externalisation à des traducteurs
• Intégration et synchronisation
• Accepter corrections tardives
4. Externaliser l’Internalisation!
• Les langues non maitrisées par l’équipe
• Fichier excel ?
– Ok mais on intègre comment ?
– Gestion de source ?
• Outils de gestion de localisation
– http://www.i18nguy.com/TranslationTools.html
– Built-in IDE
– Edition simultanée de .properties
5. Vraiment pas satisfaisant
• Trop proche du code source
• Cycle de vie très différent
• Perturbations de l’équipe R&D
• Il faut trouver autre chose !
8. Et arrive le crowd sourcing
• Site web ouvert
• Contribution simple
• Workflow de validation (editeurs, contributeurs)
• Statistiques
– % de couverture
– Traductions validées
– Qualité de la traduction