Slides remis en forme d'une conférence "Coder propre" afin de montrer que c'est possible, à la portée de chacun et, surtout, INDISPENSABLE pour profiter de son code !
Bref, l'idée est de convaincre et de donner les premières pierres pour que tout un chacun puisse construire son paradis :)
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.
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiquesSylvie Clément
Conférence que j'ai donnée au WordCamp Paris 2015 le 23 janvier 2015.
Sujet : le pragmatisme du développeur freelance Wordpress versus les bonnes pratiques des agences ou des développeurs de plugins et de thèmes
Présentation effectuée le 25 Novembre 2015 au Toulouse Data Science.
Les ingénieurs de Google avaient du mal à suivre le rythme de croissance de leurs données. Le nombre d’utilisateurs de Gmail augmentait constamment et était de l’ordre de centaines de millions; Il y avait plus de 100 milliards de recherches Google effectuées chaque mois.
Essayer de donner un sens à toutes ces données prenait un temps fou et était une expérience très frustrante pour les équipes de Google.
Ce problème de données a conduit l’élaboration en 2008 d’un outil interne appelé Dremel, qui a permis aux employés de Google d’exécuter des requêtes SQL extrêmement rapides sur un grand ensemble de données.
En 2012 lors de la Google I/O, Google à annoncé la sortie de Google BigQuery, l'implémentation externe de Dremel...
Slides remis en forme d'une conférence "Coder propre" afin de montrer que c'est possible, à la portée de chacun et, surtout, INDISPENSABLE pour profiter de son code !
Bref, l'idée est de convaincre et de donner les premières pierres pour que tout un chacun puisse construire son paradis :)
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.
Wordcamp paris 2015 dev-pragmatique-bonnes-pratiquesSylvie Clément
Conférence que j'ai donnée au WordCamp Paris 2015 le 23 janvier 2015.
Sujet : le pragmatisme du développeur freelance Wordpress versus les bonnes pratiques des agences ou des développeurs de plugins et de thèmes
Présentation effectuée le 25 Novembre 2015 au Toulouse Data Science.
Les ingénieurs de Google avaient du mal à suivre le rythme de croissance de leurs données. Le nombre d’utilisateurs de Gmail augmentait constamment et était de l’ordre de centaines de millions; Il y avait plus de 100 milliards de recherches Google effectuées chaque mois.
Essayer de donner un sens à toutes ces données prenait un temps fou et était une expérience très frustrante pour les équipes de Google.
Ce problème de données a conduit l’élaboration en 2008 d’un outil interne appelé Dremel, qui a permis aux employés de Google d’exécuter des requêtes SQL extrêmement rapides sur un grand ensemble de données.
En 2012 lors de la Google I/O, Google à annoncé la sortie de Google BigQuery, l'implémentation externe de Dremel...
Spark-HandsOn
In this Hands-On, we are going to show how you can use Apache Spark and some components of it ecosystem for data processing. This workshop is split in four parts. We will use a dataset that consists of tweets containing just a few fields like id, user, text, country and place.
In the first one, you will play with the Spark API for basic operations like counting, filtering, aggregating.
After that, you will get to know Spark SQL to query structured data (here in json) using SQL.
In the third part, you will use Spark Streaming and the twitter streaming API to analyse a live stream of Tweets.
To finish we will build a simple model to identify the language in a text. For that you will use MLLib.
Let's go and have fun !
Prerequisites
Java > 6 (8 is better to use the lambdas)
IDE
Some links
Apache Spark https://spark.apache.org
https://speakerdeck.com/nivdul/lightning-fast-machine-learning-with-spark
https://speakerdeck.com/samklr/scalable-machine-learning-with-spark
Slide deck de la présentation de Duchess France et du bilan de l'année en ouverture de l'anniversaire des 2 ans de Duchess France.
La capture video de la présentation avec les animations se trouve ici http://www.youtube.com/my_videos_edit?ns=1&video_id=xU-3_-LaJuo
1. Principes de la conception objet L'enjeu du design Les Design Patterns Agnès CREPET @agnes_crepet Cyril LACÔTE @clacote 13 aout 2011 TogoJUG - Lomé
2.
3.
4.
5.
6.
7. Approche top-down Ouverture fichier Traitement fichier Fermeture fichier Tant qu ’il y a des enregistrements Traitement Facture Traitement Avoir Traitement du solde ReadCompte Calcul Solde UpdateCompte Traitement du solde ...
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27. Encapsulation : exemple SANS AVEC class Adresse { public String nom; … . } class Adresse { private String nom public setNom (String aNom) { nom = aNom; } // Saisie des livraisons Adresse adrLiv = new Adresse(); ... adrLiv.nom = « Dupond »; // Saisie des livraisons Adresse adrLiv = new Adresse(); ... adrLiv.setNom (« Dupond »); // Saisie de facturation Adresse adrFac = new Adresse(); ... adrFac.nom = « Dupond »; // Saisie de facturation Adresse adrFac = new Adresse(); ... adrFac.setNom (« Dupond »);
28. Encapsulation : exemple SANS AVEC class Adresse { public String nom; … . } class Adresse { private String nom public setNom (String aNom) { nom = aNom .toUpperCase() ; } // Saisie des livraisons Adresse adrLiv = new Adresse(); ... adrLiv.nom = « Dupond » .toUpperCase() ; // Saisie des livraisons Adresse adrLiv = new Adresse(); ... adrLiv.setNom (« Dupond »); // Saisie de facturation Adresse adrFac = new Adresse(); ... adrFac.nom = « Dupond ». toUpperCase() ; // Saisie de facturation Adresse adrFac = new Adresse(); ... adrFac.setNom (« Dupond »);
76. Exemples d'architecture applicative Application Java web Couches Applicatives (présentation, service, métier… HTML/ JavaScript HTTP … et persistance) JDBC Navigateur web Serveur d’application (ex : JBoss) Serveur de base de données (Ex: Oracle) Exterieur de l'application (Système d'information de l'entreprise ) ? SGBDR
77. Des couches logicielles Présentation Façade Service Persistance Page JSP Contrôleur Logique applicative Façades Services métier Objets du domaine Repository accès aux données Objets du domaine Http SGBDR
Dijkstra : « plus court chemin » dans un graphe, algorithme du banquier, sémaphore.
Polymorphisme d'héritage = Polymorphisme d'inclusion redéfinition/spécialisation de méthodes durant l'héritage (overriding) Polymorphisme paramétrable Les types génériques, introduits avec Java 5, donnent la possibilité de ne pas devoir contrôler le type d'une valeur lors de l'exécution, ils permettent de définir des comportements communs sur des objets sans devoir les typer Polymorphisme ad hoc = surcharge de méthodes (overloading) capacité de distinguer des opérations par la signature (avec types et arguments différents) plutôt que par le seul nom
une configuration par défaut (convention par règle de nommage) mais permettront aussi la substitution des valeurs par défaut via la configuration (à partir des fichiers ou une autre source de données).
Expliquer l’origine historique du concept : issu de l’architecture de bâtiments.
Creational patterns These patterns have to do with class instantiation. They can be further divided into class-creation patterns and object-creational patterns. While class-creation patterns use inheritance effectively in the instantiation process, object-creation patterns use delegation to get the job done. Abstract Factory groups object factories that have a common theme. Builder constructs complex objects by separating construction and representation. Factory Method creates objects without specifying the exact class to create. Prototype creates objects by cloning an existing object. Singleton restricts object creation for a class to only one instance.