Ce support de cours contient les concepts fondamentaux de la sécurité des applications Web Statless avec Json Web Token. Des applications de mise en oeuvre de JWT et Spring Security pour les applications basées sur les Micro-services sont publiées ma chaîne vidéo Youtube :
https://www.youtube.com/user/mohamedYoussfi
Le code source des applications est publié sur mon compte GitHUB:
https://github.com/mohamedYoussfi/
Bon apprentissage
Ce cours vise à présenter le JDBC (Java Database Connectivity) et comment utiliser JDBC à travers des applications Java à d'accéder à des bases de données.
Depuis son origine, Java fournit plusieurs classes et interfaces destinées à la programmation réseau, à cause de son API qui a été bien conçu et riche d'une côté, et traité la plupart des interfaces, protocoles et plateformes d'autres côté; la programmation des applications réseaux en JAVA est devenue un choix primordial.
Ce support de cours contient les concepts fondamentaux de la sécurité des applications Web Statless avec Json Web Token. Des applications de mise en oeuvre de JWT et Spring Security pour les applications basées sur les Micro-services sont publiées ma chaîne vidéo Youtube :
https://www.youtube.com/user/mohamedYoussfi
Le code source des applications est publié sur mon compte GitHUB:
https://github.com/mohamedYoussfi/
Bon apprentissage
Ce cours vise à présenter le JDBC (Java Database Connectivity) et comment utiliser JDBC à travers des applications Java à d'accéder à des bases de données.
Depuis son origine, Java fournit plusieurs classes et interfaces destinées à la programmation réseau, à cause de son API qui a été bien conçu et riche d'une côté, et traité la plupart des interfaces, protocoles et plateformes d'autres côté; la programmation des applications réseaux en JAVA est devenue un choix primordial.
Ce mini tuto pour vous montrer comment installer gwt et maven anisi que le plugin gwt-maven
pour crée facilement des application web avec l'api Gwt et facil
un document qui vous montre les etapes pour configure maven et gwt et aussi de creer un nouveau projet afin de se familiariser avec l'outils maven et gwt pour vos application RIA
Scilab/Xcos pour l'enseignement des sciences de l'ingénieurScilab
Ce livret, réalisé avec le soutien d'Inria et co-écrit par Scilab Enterprises et des enseignants, est une introduction pratique et didactique à l’utilisation de Scilab / Xcos pour l’enseignement et l’apprentissage des sciences de l’ingénieur en section S-SI ou STIDD, au lycée et dans l'enseignement supérieur.
Scilab/Xcos pour l'enseignement des sciences de l'ingénieurScilab
Ce livret, réalisé avec le soutien d'Inria et co-écrit par Scilab Enterprises et des enseignants, est une introduction pratique et didactique à l’utilisation de Scilab / Xcos pour l’enseignement et l’apprentissage des sciences de l’ingénieur en section S-SI ou STIDD, au lycée et dans l'enseignement supérieur.
Ce fascicule de TP est destiné aux étudiants. Il est conforme au programme de première année Licence Appliquée : Technologies des communications..
Cet ouvrage est construit essentiellement autour de l’activité de l’étudiant. Son intention est de favoriser, chez l’étudiant, la maîtrise de la notion de résolution de problème à travers une démarche algorithmique suivi d’une traduction au langage C. Il comporte 8 TPs qui couvrent le programme de module Atelier Informatique I.
Débuter avec phonegap (APACHE CORDOVA) dans eclipse pour androidBosco Basabana
PhoneGap permet de créer des applications multi plates-formes mobiles. Il prend actuellement en charge iOS, Android, HP webOS, BlackBerry et Symbian. Celles-ci sont développées en HTML5, Javascript et CSS et sont hybrides, ce qui signifie qu'elles ne sont ni vraiment natives, ni purement basées sur le Web.
Cette outil permet ainsi de construire des applications sur chacune des plates-formes, sans avoir à apprendre l'Objective-C, Java ou autre langage de programmation. PhoneGap prend également en charge tous les cadres ouverts avec lesquels on a l'habitude de travailler, comme jQuery, Sencha,....
PhoneGap a été développé par Nitobi lors d'un événement (l'iOSDevCamp à San Francisco) et va continuer à avoir du succès à la conférence O'Reilly Média. Ce Software fut ensuite racheté le 4 octobre 2011 par Adobe Systems.
Désormais connu depuis son rachat sous le nom de Apache Callback et plus récent sous le nom de Apache Cordova (le nom "Callback" ayant été jugé comme trop générique), ce dernier continue encore à attirer les développeurs.
Eclipse est un environnement de développement intégré libre (IDE), supportant de nombreux langages de programmation. Il produit et fournit des outils pour la réalisation de logiciels, englobant les activités de programmation, de modélisation, de conception, de test et de reporting.
Android quant à lui est un système d'exploitation Open Source utilisant le noyau Linux, pour smartphones, PDA, terminaux mobiles ainsi que de nombreux autres appareils. Il a été conçu par Android, une startup rachetée par Google et son support est réalisé en Java.
Le développement d'applications Android fait cependant appel à un certain nombre de pré-requis en programmation:
- Graph databases like Neo4j use a graph structure with nodes and relationships to represent data. Nodes can represent entities and relationships can represent connections between nodes.
- The example database models movies, people, and their relationships. Movies and people are represented as nodes with labels. Relationships like "ACTED_IN" connect actors to movies they appeared in.
- Cypher is the query language used to interact with Neo4j. Queries can read and modify data, traverse paths in the graph, and use filters to find specific nodes/relationships.
This document provides an overview of using MongoDB with examples of common operations like inserting documents, querying, updating, and indexing. It demonstrates how to:
- Set up and connect to a MongoDB database using Docker
- Insert, find, update, and remove documents from a collection
- Query documents using equality, greater/less than, AND/OR operators
- Sort and limit output with projections
- Create indexes on fields for improved performance
This document provides instructions for using Cassandra with Docker and examples of Cassandra queries for creating and interacting with keyspaces, tables, rows, columns and different data types including sets, lists, and maps. It demonstrates how to create and query tables with a single primary key or composite primary keys, add and modify columns, insert, update, select and delete data. The document concludes with an activity to design and implement an enrollment example using Cassandra.
This document discusses fragments, menus, and contextual modes in Android. It defines fragments as reusable parts of an activity's user interface that have their own lifecycles. The document provides instructions for creating fragments, adding them to activities, and replacing them dynamically. It also discusses using the action bar to define options menus and handling menu item selections. Finally, it covers activating a contextual mode for long presses on an element and defining actions for the contextual menu bar.
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 :
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.
1.
Institut Supérieur d’Informatique
Université de Tunis el Manar
TP1 : Initiation à Java et Eclipse
Programmation Mobile – 2ème Licence – Systèmes Embarqués
Année Universitaire : 2011/2012
MME. LILIA SFAXI
2. 1
TP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse
Programmation Mobile
I. Objectif du TP
Initiation à l’environnement Eclipse et aux notions de base du langage Java.
II. Environnement de Développement : Eclipse
Eclipse est un environnement de développement intégré libre extensible, universel et polyvalent, permettant de
créer des projets de développement mettant en œuvre n'ʹimporte quel langage de programmation. Eclipse IDE est
principalement écrit en Java (à l'ʹaide de la bibliothèque graphique SWT, d'ʹIBM), et ce langage, grâce à des bibliothèques
spécifiques, est également utilisé pour écrire des extensions.
La spécificité d'ʹEclipse IDE (Integrated Development Environement) vient du fait de son architecture totalement
développée autour de la notion de plugin (en conformité avec la norme OSGi) : toutes les fonctionnalités de cet atelier
logiciel sont développées en tant que plug-‐‑in.
Plusieurs logiciels commerciaux sont basés sur ce logiciel libre, comme par exemple IBM Lotus Notes 8, IBM
Symphony ou WebSphere Studio Application Developer.
II. 1. Création d'ʹun Projet sur Eclipse
Ouvrez l'ʹIDE Eclipse, on vous demandera de choisir l'ʹespace de travail dans lequel vous allez trouver vos projets.
Tapez le chemin du répertoire que vous avez créé sur le bureau. Si vous n'ʹavez pas encore créé d'ʹespace de
travail, Eclipse le créera pour vous.
Fermez la fenêtre de bienvenue qui apparaît.
Vous vous trouvez actuellement dans votre espace de travail. La figure suivante vous indique les différentes vues
disponibles.
MME. LILIA SFAXI
2011/2012
3. TP1 : Initiation à Java et Eclipse
2
Créez un nouveau projet Java. Pour cela, appuyez sur File → New → Java Project. La fenêtre suivante apparaîtra:
Tapez comme indiqué le nom de votre projet. Conservez les réglages par défaut, et appuyez sur Finish.
MME. LILIA SFAXI
2011/2012
4. 3
TP1 : Initiation à Java et Eclipse
Dans l'ʹespace de travail, sous l'ʹonglet Packages, vous verrez que le projet est créé, et qu'ʹil contient déjà un
répertoire src (qui doit contenir tous les fichiers source que vous créez), et JRE System Library, qui est utilisée pour
compiler votre code.
Pour créer un package sous le répertoire src, cliquer sur celui-‐‑ci, puis sur l'ʹicône , ou clic-‐‑droit sur src, et
choisir New -‐‑> Package. Choisissez un nom pour le package.
Pour créer une classe :
–
Cliquer sur le package qui doit contenir la classe puis sur l'ʹicône , ou clic-‐‑droit sur le package, et choisir
New -‐‑> Class. Dans la fenêtre qui apparaît, choisissez le nom de la classe.
–
Si la classe n'ʹest pas définie dans un package (ce qui est déconseillé), refaites l'ʹopération ci-‐‑dessus à partir du
répertoire src.
–
Vous pouvez générer automatiquement la méthode main en cliquant sur la case public static void main(String[]
args).
La classe générée apparaîtra sous le package que vous avez choisi. Double-‐‑cliquez dessus pour modifier son code
dans la partie édition. Vous verrez qu'ʹun squelette de la classe vous est proposé. Vous n'ʹaurez qu'ʹà terminer le
reste du code.
Avec Eclipse, vous n'ʹavez pas besoin de compiler explicitement votre code : la compilation se fait en temps réel.
De plus, les erreurs de syntaxe seront affichées pendant l'ʹécriture du code, avec des propositions de corrections.
II. 2. Nouveau projet : Helloworld
II. 2. 1. Helloworld – Version simplifiée
Créer un nouveau projet Helloworld comme indiqué dans la partie précédente. Créer un package
nommé helloPack, contenant une classe Helloworld qui contient une méthode main.
Dans la méthode main, écrire "System.out.println("Hello World!");"
Exécuter votre programme en cliquant directement sur l'icône
. L'affichage apparaîtra dans la
partie inférieure, sous l'onglet Console.
II. 2. 2. Helloworld – Ajout d'ʹarguments
Dans cette partie, nous allons ajouter des arguments à la classe.
Créer dans le même projet Helloworld, un nouveau package nommé argsPack, contenant une
classe Helloworld avec une méthode main.
MME. LILIA SFAXI
2011/2012
5. TP1 : Initiation à Java et Eclipse
4
Dans le code de la méthode main, écrire : "System.out.println("Hello "+args[0]+"!");"
Pour définir des arguments à la classe, cliquer sur la flèche à côté de l'icône d'exécution
et
sélectionner Run Configurations, ou cliquer sur la classe que vous voulez exécuter, et aller à Run
Run Configurations... La fenêtre suivante va apparaître.
Dans la partie de gauche, sélectionner Java Application, puis cliquer sur l'icône
(en haut, à
gauche), pour ajouter une nouvelle configuration. Vous verrez que votre classe Helloworld a été
ajoutée sous Java Application.
Sélectionner l'onglet Arguments (ci-dessus encadré en rouge) et, dans le cadre Program
Arguments, tapez simplement votre nom.
MME. LILIA SFAXI
2011/2012
6. TP1 : Initiation à Java et Eclipse
5
Cliquer ensuite sur Run. Vous verrez dans la console l'affichage "Hello votre_nom!".
MME. LILIA SFAXI
2011/2012
7. TP1 : Initiation à Java et Eclipse
6
III. Initiation à Java
Le langage Java est un langage de programmation informatique orienté objet créé par James Gosling et Patrick
Naughton, employés de Sun Microsystems, avec le soutien de Bill Joy (cofondateur de Sun Microsystems en 1982),
présenté officiellement le 23 mai 1995 au SunWorld.
Consulter http://mobile.tutsplus.com/series/learn-‐‑java-‐‑android-‐‑development/ pour un cours introductif à Java
pour Android.
Cas d’étude : Gestion des cours
Nous allons dans cette partie vous initier aux concepts en base de Java en réalisant une petite application de
gestion des cours. Cette application permet de gérer l’affectation des étudiants et enseignants à une ou plusieurs matières.
TAF-‐‑1 : Pour commencer, créer un projet qui s’appelle GestionCours sur Eclipse. Dans le répertoire src, créer un
package appelé cours et un package appelé main. Dans le package main, créer une classe Main contenant une méthode
main qu’on laissera vide pour l’instant.
TAF-‐‑2 : Sous le package cours, créer une classe Etudiant, une classe Enseignant et une classe Matiere, qui
respectent le diagramme de classes suivant (pour l’instant, seuls les constructeurs sont à implémenter. Les autres
méthodes restent vides).
TAF-‐‑3 : Ajouter les modificateurs de visibilité aux classes que vous avez créé de manière à ce que les méthodes
soient visibles par tout le monde et les attributs privés.
TAF-‐‑4 : Ajouter une classe Personne dont héritent les classes Etudiant et Enseignant, comme défini dans le
diagramme suivant. Modifier les constructeurs des classes filles pour qu’ils prennent en considération celui de sa classe
mère.
MME. LILIA SFAXI
2011/2012
8. 7
TP1 : Initiation à Java et Eclipse
TAF-‐‑5 :
1.
Réaliser une association entre les classes Etudiant et Matière, puis entre les classes Enseignant et Matière,
comme l’indique le diagramme suivant.
2.
Implémenter toutes les méthodes manquantes dans les classes Etudiant, Enseignant et Matiere. Définition
d’une variable partagée
MME. LILIA SFAXI
2011/2012
9. TP1 : Initiation à Java et Eclipse
8
IV. Homework
Soit un programme simple permettant la gestion d’un compte bancaire. On définit dans ce programme
principalement trois objets : Personne, Banque et Compte.
-‐‑
Personne :
o
Une personne a un nom, prénom, numéro de carte d’identité
o
Une personne peut avoir un seul compte bancaire.
o
Une personne peut déposer ou retirer une somme d’argent de son compte.
o
Une personne peut consulter son compte. La consultation affiche simplement la somme existant dans
son compte bancaire.
-‐‑
Compte :
o
Un compte bancaire a un identifiant, est associé à une seule personne et appartient à une seule
banque.
o
-‐‑
Au moment de la création d’un compte bancaire, on précise obligatoirement son propriétaire.
Banque :
o
Une banque a une adresse et un nom,
o
Une banque peut contenir jusqu'ʹà 100 comptes bancaires, et peut avoir jusqu’à 100 clients.
o
Une banque peut créer ou supprimer un compte.
Réaliser cette application en Java sur Eclipse. La méthode main principale permet de créer une nouvelle banque,
deux personnes (Ali et Hedia) et leurs comptes bancaires. Les étapes suivantes sont réalisées :
-‐‑
Ali dépose 500 dt.
-‐‑
Hedia dépose 300 dt.
-‐‑
Ali retire 100 dt.
-‐‑
Ali consulte son compte.
-‐‑
Hedia consulte son compte.
MME. LILIA SFAXI
2011/2012