BSoft&Co Humeurs et Rumeurs

20Jan/100

ACTA, ou la censure mondiale d’Internet!!

Après la loi débile Hadopi pour essayer de réguler le piratage (soi disant pour mieux rétribuer Johnny et les potes de Sarko ou de Mme carla..), après bientôt la loi de censure d'internet Loppsi qui sera débattu au parlement début Février (soi disant pour traquer les pédophiles.. On a vu ce que ca donne en Australie)...

Et bien, dans notre dos, à l'insu du plus grand nombre, se trame un projet similaire, mais à l'échelle mondiale!!!
Et au delà des "problèmes" sur le piratage, se pose un vrai débat, celui de la censure mondiale!
Car c'est bien de cela qu'il s'agit! Comment contrôler l'information et surtout sa diffusion. Goebbels l'avait très bien compris il n'y a pas si longtemps.

Internet permet presque de s'affranchir de ces censures, et de diffuser (trop?) rapidement de l'information.. Ce qui n'est pas du goût de tout le monde...

Je vous invite à lire cet article, et si vous voulez en savoir plus, n'hésitez pas à suivre un peu les liens ou faire quelques recherches. Mais surtout, faites circuler l'info!!

http://fr.readwriteweb.com/2010/01/20/a-la-une/traite-acta-censure-loppsi-hadopi/

10Aug/098

Tutorial HTML 5 et les bases de données embarquées

HTML5 commence à montrer le bout de son nez. Les navigateurs "modernes" dans leurs versions récentes prennent en charge de plus en plus des nouvelles fonctionnalités prévues.
Attention tout de même, HTML5 n'est qu'un brouillon! Une version "draft" du W3C .

Une des nouvelles fonctionnalités, très pratique pour les applis web et autres sites, est la possibilité de pouvoir embarquer une base de données SQLite directement dans la navigateur du client. Sans qu'il soit nécessaire de gérer une base de données en plus de votre site.

Remarque : concernant les bases de données embarquées, la dernière version de Safari (mobile et desktop) semble être celle qui le gère le mieux.

Une document HTML 5 commence par :
<!doctype html>

La base de données se manipule au sein de balises JavaScript.

<script type='text/javascript'>
  1. var db; // variable globale pour manipuler la bdd.
  2.  
  3. try {
  4. if (window.openDatabase) {
  5.     db = openDatabase("maBaseDeDonnees", "1.0", "Ex de bdd avec HTML5", 200000);
  6.     if (!db)
  7.         alert("Impossible d'ouvrir la bdd. Peut être un problème de version ou alors pas assez de quota d'espace disque disponible pour ce domaine.");
  8.     } else
  9.         alert("Impossible d'ouvrir la base de données. Merci d'essayer avec un autre navigateur.");
  10. } catch(err) { }

La méthode "openDatabase" comprend 4 arguments :
- Le nom de la base. Ce nom sera aussi la référence pour utiliser la base dans le code.
- La version de la base (optionnelle)
- une description
- La taille estimée de la base en octets. (1024 o = 1 ko!)

Pour requêter la base, nous allons utiliser les "transaction" et la méthode "executeSql" :
La méthode "executeSql" prend au minimum un paramètre, à savoir la requête à exécuter.

db.transaction(function(tx) {
  1.     tx.executeSql("select * from mabase where id=?", [56]);
  2. }

Le second paramètre, [56], permet de spécifier des valeurs à passer dans la requête à la place des '?'.

Pour récupérer les résultats de la requête, la méthode executeSql peut recevoir un 3e paramètre :

db.transaction(function(tx) {
  1.     tx.executeSql("select * from matable where id=?", [56], function(tx, resu){}, function(tx,error){});
  2. }

Le 4e paramètre permet quant à lui de gérer les erreurs.
La variable "resu" du 3e paramètre est un objet de type SQLResultSet qui permet ensuite d'accéder aux résultats de la requête.
Par exemple :

for( var i = 0; i < resu.rows.length; ++i ) {
  1.     var row = resu.rows.item(i);
  2.     // row.id, row.nom etc..
  3. }

Exemple de création d'une table :

db.transaction(function(tx) {
  1.     tx.executeSql("CREATE TABLE IF NOT EXISTS matable (id INTEGER PRIMARY KEY, nom TEXT, age NUMERIC)", [],
  2.         function(tx, rs) {},
  3.         function(tx, error) {
  4.             alert("Impossible de créer la table : " + error.message);
  5.             return;
  6.         }
  7.     );
  8. });

Insertion de données :

db.transaction(function(tx) {
  1.     tx.executeSql("INSERT INTO TABLE IF NOT EXISTS matable (nom, age) values (?,?)", ['Internet Explorer',72],
  2.         function(tx, rs) {},
  3.         function(tx, error) {
  4.             alert("Impossible d'ajouter des données : " + error.message);
  5.             return;
  6.         }
  7.     );
  8. });

Recherche de données :

db.transaction(function(tx) {
  1.     tx.executeSql("select * from matable where age = ?", [72],
  2.     function(tx, rs) {
  3.     // on travaille sur les résultats
  4.         if (!rs.rows.length) {
  5.             // Aucune ligne retournée
  6.             alert('aucun résultat');
  7.         }
  8.         else {
  9.             // je triche, on ne récupère ici que le 1er résultat. En même temps, c'est le seul Wink
  10.             var row = rs.rows.item(0);
  11.             var lenom = row['nom'];
  12.             var idnom = row['id'];
  13.         }
  14.     },
  15.     function(tx, error) {
  16.         alert("Problème d'accès aux données : " + error.message);
  17.         return;
  18.     }
  19.     );
  20. });

Voilà, bref aperçu de comment embarquer rapidement et facilement une base de données dans son application web sans devoir installer quoique ce soit sur son serveur.
La seule limitation actuelle est le (non) support par certains navigateurs. Mais cela va très rapidement changer!

24Apr/091

Tutoriel : comment générer une PHPDoc avec Eclipse

Exemple avec WAMP server sous Windows.
Il faut au préalable installer le paquet PEAR PHPDocumentor à votre PHP.
(ex d’installation PEAR avec WAMP server)
Retourner dans Eclipse, puis cliquer dans le menu sur : Run/External Tools/External Tools Configurations

exemple de configuration phpdoc dans eclipse

exemple de configuration phpdoc dans eclipse

Sélectionner "Program" puis créer un nouveau.
Dans la fenêtre qui s'ouvre, lui donner un nom (nom de votre phpDoc).
Dans "Location" il faut indiquer le chemin de l'exe de PHP5.

Puis dans argument :
"C:\wamp\bin\php\php5.2.9\PEAR\PhpDocumentor\phpDocumentor\phpdoc.inc" -t ${project_loc}/CHEMIN_OU_GENERER_LA_DOC -o HTML:SmartyRazzHP -d ${project_loc}

C:\wamp\bin\php\php5.2.9\PEAR\PhpDocumentor\phpDocumentor\phpdoc.inc = chemin du fichier de conf de la PHPDoc (ne pas omettre les guillements).

D'autres options peuvent être ajoutées (descriptif ici) à la suite des arguments.
Par ex : "-i test.php" pour ignorer le fichier test.php
Aussi "-pp" pour que la doc décrive aussi les méthodes privées.

Ce qui donne comme argument final par ex:
"C:\wamp\bin\php\php5.2.9\PEAR\PhpDocumentor\phpDocumentor\phpdoc.inc" -t ${project_loc}/SPIdoc -o HTML:SmartyRazzHP -d ${project_loc} -i test.php -pp

Ensuite, pour générer la PHPDoc du projet en cours, il suffit de cliquer dans le menu sur Run/External Tools/Nom de votre phpDoc.

21Apr/090

BSoftEditor utilisé par EBay!

Quelle surprise j'ai eu en regardant un peu les stats de mon site/blog cette semaine!

En effet, j'ai vu par hasard via un lien referer que mon application web BSoftEditor est utilisée jusque chez EBay en Australie!! Smile

BSoftEditor utilisé jusqu'en Australie chez Ebay!

BSoftEditor utilisé jusqu'en Australie chez Ebay!

Ca fait toujours plaisir de voir ce genre de choses! Smile