mercredi 6 novembre 2013

Servlets: Créer une page de connexion qui mène à une nouvelle page

Servlets: Créer une page de connexion qui mène à une nouvelle page


import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;
public class FormLogin extends HttpServlet {  

mercredi 8 mai 2013

Le Web 3.0



John Markoff du New York Times a récemment suggéré de nommer son troisième génération du Web, "Web 3.0". Cette suggestion a conduit à un peu de débat au sein de l'industrie. Ceux qui sont attachés à la 2.0 surnom Web ont réagi en affirmant que ce terme n'est pas justifié tandis que d'autres ont répondu positivement à terme, notant qu'il ya effectivement une différence caractéristique entre le nouveau stade venue du Web et ce que le Web 2.0 a viennent à représenter. L'expression Web 2.0 n'a jamais été clairement défini et, aujourd'hui encore, si l'on demande à dix personnes ce que signifie un obtiendrez probablement dix définitions différentes. Cependant, la plupart des gens dans l'industrie du Web seraient d'accord que le Web 2.0 met l'accent sur ​​plusieurs thèmes majeurs, y compris AJAX, réseaux sociaux, folksonomies , collaboration léger, bookmarking social, et le partage de médias. Alors que les innovations et les pratiques du Web 2.0 vont continuer à se développer, ils ne sont pas la dernière étape dans l'évolution du Web. En fait, il ya beaucoup plus en magasin pour le Web.

mardi 7 mai 2013

Définitions de l'e-réputation


L’e-réputation est l’image que les internautes se font d’une marque ou d’une personne. Cette notoriété numérique façonne l’identité d’une marque, la différenciant de ses concurrentes.
Afin de mesurer l’e-réputation d’une marque et d’évaluer sa présence sur les différents média sociaux, la mise en place d’une veille des conversations est nécessaire. 

samedi 9 mars 2013

Les Cahiers des Charges


Le cahier des charges est un document qui contient la liste des besoins, des exigences et des contraintes qu'il faut respecter lors de la réalisation d'un projet. Cette expression est ancienne ; elle était par exemple utilisée sous l'ancien régime pour préciser la manière dont le bois devait être coupé et sorti de la forêt. Il était défini par Chailland comme « détail des principales conditions de la vente et des obligations de l'adjudicataire, qui se lit aux marchands assemblés avant l'adjudication ».


jeudi 7 mars 2013

Sauvegarder ses favoris - Internet Explorer

Parmi les informations enregistrées par votre navigateur Web, vos favoris sont les données les plus importantes. Voici comment mettre en lieu sûr les favoris d'Internet Explorer. Vous pourrez ainsi les retrouver en cas de réinstallation de votre système ou sur un autre ordinateur par exemple. 
  1. Dans Internet Explorer, cliquez sur l'icône en forme d'étoile.

mardi 19 février 2013

Exercice en C appllication des structure alternative2

Ecrivez un programme qui lit trois valeurs entières (A, B et C) au clavier. Triez les valeurs A, B et C par échanges successifs de manière à obtenir :
val(A) val(B) val(C)
Affichez les trois valeurs.
Solution :

lundi 18 février 2013

Exercice en C appllication des structure alternative1


Ecrivez un programme qui lit trois valeurs entières (A, B et C) au clavier et qui affiche la plus grande des trois valeurs, en utilisant:
a) if - else et une variable d'aide MAX
b) if - else if - ... - else sans variable d'aide
c) les opérateurs conditionnels et une variable d'aide MAX
d) les opérateurs conditionnels sans variable d'aide
Solution:

samedi 9 février 2013

La sécurité de nos échanges dans le travail collaboratif :



Si les risques varient d'une fonction à l'autre, les solutions à mettre en œuvre pour mieux les maîtriser présentent certaines caractéristiques communes :
ü  Connaître ses risques, les répertorier et les évaluer, puis agir, vite mais sereinement.
ü  Garder en permanence l'œil sur les indicateurs liés aux risques potentiels, pour réévaluer très régulièrement leur niveau.

vendredi 8 février 2013

Définition du travail collaboratif



C’est un  Mode de travail non hiérarchisé dans lequel des personnes mettent en commun leur créativité et leurs compétences afin d'atteindre un objectif commun.

 Etymologiquement, c'est travailler ensemble. Qui dit travail, dit création, production. L'expression travail collaboratif s'emploie quand plusieurs personnes travaillent sur un même projet à la réalisation d'un produit unique.

De plus, il passe par la mise en œuvre d'un intranet composé de fonctions dites collaboratives, permettant de dématérialiser les processus, flux de communication, et tâches de collaboration entre plusieurs intervenants.
Les applications collaboratives qu’elles soient locales ou qu’elles passent par Internet, sont conçues pour relier en réseau des utilisateurs, et leur proposer des fonctions de messagerie, de partage d'agendas, de documents mais aussi de fonctions de gestion de projets, de workflow ou plus récemment de réseau social d'entreprise. 
 Définition de la Collaboration :

vendredi 18 janvier 2013

PHP – alternative à eval, comment et pourquoi s’en passer ?


3 raisons de ne pas utiliser eval

1) Risque d’insertion de code

Étant donné que c’est une chaine qui va être exécutée par PHP, il se peut que, d’une manière ou d’une autre, une personne mal intentionnée puisse insérer du code dans votre eval. Il suffit d’une simple configuration spécifique au niveau du serveur comme « register_globals » pour qu’une variable puisse être modifiée par un utilisateur, ce qui se répercutera sur votre eval :/ .

2) Un suivi des erreurs difficile

Les alternatives pour remplacer eval (PHP)


Modification d’une variable avec un nom variable

Parfois, on doit modifier une variable dont on ne connait pas le nom. En utilisant eval, on peut créer une chaine qui génère dynamiquement le nom de la variable à partir du contenu d’une autre (Oui, oui :P ). Cependant, sans eval, c’est aussi possible :) ! Pour cela il suffit de faire :

  1. // Variable dont on ne connait pas le nom  
  2. $article = "test";  
  3.   
  4. // Le nom de la variable est stocké dans celle-ci  
  5. $nomDeLaVariable = "article";  
  6.   
  7. // On va modifier la variable qui a un nom variable  
  8. $$nomDeLaVariable = "test2";  
  9.   
  10. // On affiche le resultat : "test2" !  
  11. echo $article;  
Effectivement, en utilisant un double dollar « $$ », on remplace le nom de la variable par le contenu de la variable « nomDeLaVariable ».

Appel d’une fonction avec un nom variable

Tout comme le point précédent, on va utiliser une méthode relativement similaire ; voici l’exemple :

  1. // Définition d'une fonction avec un nom que l'on ne connait pas  
  2. function plop() {  
  3.     echo "test";  
  4. }  
  5.   
  6. // Nom de la fonction stockée dans cette variable  
  7. $nomDeLaFonction = "plop";  
  8.   
  9. // Appel de la fonction avec le nom stocké dans $nomDeLaFonction  
  10. $nomDeLaFonction();  
Et voilà ! La fonction « plop() » sera exécutée ! Il faut savoir qu’il vous est aussi possible d’utiliser call_user_func de php. Vous pouvez aussi consulter call-user-func-array pour manipuler plus facilement les paramètres à envoyer à votre fonction.

Créer une instance d’une classe avec un nom variable

Comme pour les deux points précédents, vous pouvez faire :

  1. $Objet = new $nomObjet();  

Optimisation de vos requêtes MySQL


Réduisez le nombre de colonnes dans vos SELECT

Si vous êtes adeptes du SELECT *, soyez attentif à la quantité de données que vous retournent vos requêtes. Si votre script n’utilise que deux champs, utilisez plutot SELECT champ1, champ2 [...].

Limitez l’utilisation des jointures et préférerez les sous-requêtes

Installez des Index sur les colonnes qui font l’objet de tris (MySQL)



Index sous PhpmyadminLes champs des tables volumineuses qui font l’objet de conditions, filtrages ou tris (par exemple des « WHERE », « ORDER BY », etc…) doivent disposer d’un Index pour accroitre la rapidité d’execution des requêtes.
En quelque sorte un Index fonctionne comme le sommaire d’un livre. Il permet à MySQL d’avoir à portée de main toutes les valeurs sur lesquelles portes la recherche.

Optimisation de la structure de vos tables MySQL



Créez une clé primaire (simple ou multiple) pour chaque table

On ne le répètera jamais assez, pour identifier un enregistrement de façon unique, une table doit disposer d’une clé primaire. 

MySQL – Quelques règles simples d’optimisation


Lorsque l’on conçoit la base de données d’un site web, on ne pense pas toujours à son évolution dans le temps. 

JSON : Retourner une variable d’état à javascript


En complément avec l’arobase @, vous pouvez utiliser une chaine de retour qui spécifiera comment s’est passé l’exécution en arrière plan de votre script.
Personnellement j’ai l’habitude de stocker la chaîne de retour dans le tableau JSON à la clé « state » du tableau retourné. Lorsqu’il n’y a pas d’erreur, je retourne simplement « ok », sinon la chaine d’erreur à afficher. Voici un petit script d’exemple :
Appel ajax avec jQuery :

Cacher simplement les erreurs spécifiques


Si toutefois vous ne souhaitez pas mettre en place un système compliqué de suivi d’erreurs, vous pouvez simplement cacher la génération d’erreurs de certaines fonctions à l’aide de « @ » ; par exemple :

  1. $handle = @fopen("fichier.txt""r");  
… ou bien cacher toutes les erreurs de votre script en utilisant :

  1. error_reporting(0);  
Si vous voulez savoir si une fonction peut générer des erreurs ou non, consultez la documentation PHP à la section « Erreurs / Exceptions » de votre fonction. Par exemple, pour fopen : « Si l’ouverture échoue, une alerte E_WARNING sera générée. Vous pouvez utiliser le caractère @ pour supprimer cette alerte. ».

Gérer et prévoir les différentes erreurs PHP

Si vous effectuez un retour JSON et qu’une erreur PHP est affichée, jQuery ne pourra pas parser les données de retour et il vous affichera notre erreur « alert ». Cependant, il est quand même plus pratique d’éviter que ce type d’erreur ne survienne en gérant les erreurs de vos fonctions PHP.


Cacher et enregistrer les erreurs survenues

Afficher une erreur à l’internaute

La première des choses est d’afficher une erreur claire à l’internaute étant donné qu’il n’a aucun moyen de voir l’état d’avancement de votre requête (à part peut-être un petit loader en gif animé que vous aurez installé préalablement). Avouez que vous non plus vous n’aimez pas les temps d’attentes où vous ne savez pas si le chargement est planté ou non.

Voici donc une fonction callback d’erreur pour votre requête jQuery :

Les cas d’erreurs ajax


Généralement, les erreurs surviennent dans deux cas :
  • Une erreur de connexion (coupure internet, données invalides de retour etc…)
  • Une chaîne JSON mal formatée par une erreur PHP affichée avant ou après votre retour de données

(Tuto) PHP & jQuery – Gérer les erreurs Ajax en arrière plan

Il arrive que dans nos applications web on utilise Ajax pour dynamiser les pages afin de rendre l’utilisation de notre interface plus simple et plus facile. Cependant, tout ce qui se passe en Ajax est exécuté en arrière plan. Il n’est donc pas possible d’afficher les erreurs directement sur la page  (par exemple si vous utilisez un parsage JSON).

samedi 5 janvier 2013

Les graphes



La théorie des graphes est aujourd'hui un outil majeur de modélisation et de résolution de problèmes dans un très grand nombre de domaines, des sciences fondamentales aux applications technologiques les plus concrètes. Un graphe est défini par ses sommets et ses arcs. Les sommets forment un ensemble S quelconque (quoique fini en pratique), et les arcs un sous-ensemble A de $S\times S$ ; autrement dit, un graphe est le graphe d'une relation binaire. Si $a=(u,v)\in A$, on dit que a est un arc d'extrémité initiale u et d'extrémité finale v, on le note $a:
u\to v$ ; on dit aussi que v est un sommet adjacent à u, ou est un successeur de u.

Implémentation des graphes


Deux implémentations des graphes sont couramment utilisées ; le choix se fait en fonction des opérations que l'on veut faire, et de la densité du graphe, c'est-à-dire du rapport entre le nombre d'arcs et le nombre de sommets.
La matrice d'adjacence  MG d'un graphe G est une matrice carrée, indicée par les sommets (donc de dimension $\vert S\vert\times\vert S\vert$), dont les éléments indiquent l'existence d'un arc : MG[u][v] est différent de null si et seulement si $u\to v$. La représentation d'un graphe par sa matrice d'adjacence est préférée quand le graphe est dense (beaucoup d'arcs), car elle comporte toujours les |S|2 éléments d'un tableau bidimensionnel ; elle est bien adaptée aux algorithmes qui s'expriment à l'aide d'opérations matricielles.

public class GrapheParMatrice implements Graphe {
  private Arc[][] adjacence;

  public GrapheParMatrice(int taille) {
    adjacence = new boolean[taille][taille];
  }
  // ...
}