Archive

Archives pour la catégorie ‘Informatique’

Google lance Go

12/11/2009

On discutait le weekend dernier avec Liz de l’apparition des langages de programmation. Et bien c’est aujourd’hui Google qui lance le sien. Le dernier s’appelle « Go » pour le moment. Je précise pour le moment car ce nom est déjà utilisé pour un langage de programmation. Il semble que « Go » soit un mix des langages de programmation Python et C++. Connaissant la puissance de Google, il faudra donc suivre l’évolution de ce langage qui ne peut être utilisé à grande échelle pour le moment

Source Le Monde

Tharkun Informatique

Exclure les fichiers svn dans WinMerge

02/11/2009

Lorsqu’on utilise WinMerge pour comparer un répertoire à un projet lié à SVN, un problème se pose très rapidement. Tous les fichiers svn apparaissent dans les rapports et ainsi polluent la comparaison. Il existe un moyen très simple de corriger ce problème : le filtre.

Exclure les fichiers svn sous WinMerge

Exclure les fichiers svn sous WinMerge

Il est possible de créer des filtres afin de modifier le comportement de WinMerge lors de la comparaison. Pour cela il faut créer un fichier winmerge-svn.flt (seul l’extension est importante). Le contenu de ce fichier est :

## This is a directory/file filter for WinMerge
## This filter suppresses various binaries found in SVN source trees
name: SVN loose

## This is an inclusive (loose) filter
## (it lets through everything not specified)
def: include

## Filters for filenames begin with f:
## Filters for directories begin with d:
## (Inline comments begin with " ##" and extend to the end of the line)

f: \..svn$ ## SVN control file

d: \\cvs$ ## CVS control directory
d: \\.svn$ ## SVN control directory

Il suffit ensuite d’installer le filtre et les fichiers svn n’apparaitront plus.

Tharkun Informatique

Internet a 40 ans

29/10/2009

Il y a quarante ans s’échangeait un message entre deux ordinateurs distants. Situés à l’université de Los Angeles pour l’un et Stanford pour l’autre, ces deux pc utilisaient à l’époque le réseau Arpanet, l’ancêtre d’Internet. A l’origine destiné à une utilisation militaire, il en a dépassé les applications prévues à l’origine.

Source Le Monde

Tharkun Informatique, Internet

La Maison Blanche en open source

27/10/2009

Depuis ce week end, le monde de l’open source a une fois de plus pris une part de marché aux logiciels payants. On assiste depuis quelques années à une montée en puissance des logiciels open source pour plusieurs raisons :

  • L’open source s’est professionnalisé. La notion de « gratuité » est de moins en moins associé aux problèmes de sécurité.
  • L’écart dans de nombreux domaines entre l’open source et le payant s’est réduit.

De très nombreuses administrations migrent vers l’open source, de Microsoft Office vers Open Office par exemple. Ce week end, c’est le site de la Maison Blanche qui est entrée dans le monde du libre en migrant son site web vers Drupal.

Source Le Monde

Tharkun Informatique, Internet

eZ Publish 4.2

07/10/2009

La dernière version du CMS eZ Publish vient tout juste de sortir. Un peu plus de 250 bugs ont été corrigés par rapport à la version 4.1 dans le kernel mais aussi dans les extensions basiques fournies par défaut. De nouvelles extensions sont désormais inclues dans le package de base, ce qui n’était pas le cas de la précédente version. Certaines fonctionnalités ont été ajoutées.

Compatibilité PHP 5.3

Vraie bonne nouvelle, eZ Publish est désormais compatible avec la dernière version de PHP, la 5.3. Celle-ci permet un réel gain de performance comme le montre l’article au lien suivant « eZ Publish performance with PHP 5.3.0″. Cet article a été fait lors de la sortie de la release 4.1.3 d’eZ Publish, la version 4.2 devrait donc être encore plus rapide.

Traduction française

J’annonçais il y a peu la mise en ligne dans les contributions l’arrivée de la traduction française pour la release 4.1.3. Celle-ci n’était cependant pas incluse dans le package de base. Ceci est désormais chose faite pour la version 4.2.

Tharkun Informatique

French translation – eZ Publish 4.1.3

22/09/2009

French translation are now available for eZ Publish 4.1.3 release. You can download it on eZ Publish website on the contribution translations page. To use it, you have to

  • Download the file
  • Replace the existing file in share/translations/fre-FR/translation.ts

Les traductions françaises sont disponibles pour la version 4.1.3 du CMS eZ Publish. Il est possible de les télécharger sur le site d’eZ Publish dans la rubrique « Contributions > Internationalization ». Pour les utiliser, il vous faut

  • Télécharger le fichier
  • Remplacer le fichier existant dans share/translations/fre-FR/translation.ts

Tharkun Boulot, Informatique

Créer un objet eZ Publish en 15 lignes

28/08/2009

Lors d’une lecture d’un article sur un blog consacré à une des techno sur laquelle je travaille, j’ai découvert qu’il est possible de créer un objet eZ Publish très simplement et rapidement. En effet avant nous étions obligés de gérer la création d’objet en suivant les étapes ci-dessous :

  • Instancier un objet à partir d’une classe
  • Créer un nœud
  • Lier l’objet à ce nœud
  • Stocker le tout
  • Publier l’objet

En réalité, il existe une méthode beaucoup plus rapide, et plus intuitive aussi. La voici

<?php
$params = array();
// node id of /Media/Files
$params['parent_node_id'] = 52;
$params['class_identifier'] = 'file';
// admin
$params['creator_id'] = 14;
// don't forget the ended /
$params['storage_dir'] = '/tmp/data/';
// section media
$params['section_id'] = 3;

$attributesData = array();
$attributesData['name'] = 'My file';
$attributesData['file'] = 'my_file.txt';

$params['attributes'] = $attributesData;
$contentObject = eZContentFunctions::createAndPublishObject( $params );
?>

Désormais plus personne ne pourra dire qu’il est compliqué d’importer du contenu dans eZ Publish.

Source Pwet.fr

Tharkun Boulot, Informatique

Migration Dékio réussie

17/08/2009

Prévue depuis la semaine dernière, la migration de version eZ Publish pour les sites www.dekio.fr, www.art-decoration.fr, www.maison-travaux.fr s’est très bien passée ce matin. Les sites utilisent donc aujourd’hui la dernière version (4.1.3) du CMS eZ Publish, l’extension ezoe ( »online editor ») ainsi que la dernière version des eZ Components.

Tharkun Boulot, Informatique , ,

Migration WordPress

12/08/2009

Cela faisait un moment que je voulais faire ma première migration de version sur le CMS WordPress. Auparavant en version 2.7.3, le blog est désormais à jour avec la dernière version 2.8.4. Cela s’est très bien passé. Je n’ai pas eu besoin de faire la moindre intervention manuel pour corriger un problème, c’est agréable.

Cette dernière version corrige qui plus est une faille récemment mise à jour permettant de changer le mot de passe admin…

Tharkun Informatique, Le blog ,

Astuces PHP

14/07/2009

A heure tardive post orienté informatique. Aujourd’hui je vais vous présenter quelques astuces (tips en anglais) de langage permettant de gagner de la place, de ne pas rallonger inutilement le code, d’éviter des erreurs basiques… La liste n’est évidemment pas exhaustive mais cela pourra toujours vous aider de les connaître. Ces astuces ne s’appliquent d’ailleurs pas uniquement au PHP.

Bien utiliser les expressions booléennes

Que l’informaticien, développeur… qui n’a pas eu un jour à abuser des if/elseif/else lève le doigt. Il est nécessaire d’optimiser ces codes pour éviter qu’ils prennent trois kilomètres de long.

/*Boolean Expressions optimization*/
if ($a == true) {
    if ($a == true) {
        print "coucou";
    }
    else if($b == true) {
        print "coucou";
    }
}

Le code ci-dessus devrait être le suivant.

/*Boolean Expressions optimization*/
if ($a && ($b || $c)) {
    print "coucou";
}

Utiliser for à la place de while

/*Use for instead of while*/
$i = 0;
while($i < 18) {
    /*SOMETHING TODO*/
    $i++;
}
/*Shorter*/
for($i = 0; $i < 18; $i++) {
    /*SOMETHING TODO*/
}

Utiliser la récursivité

La récursivité n’est pas toujours bien comprise ni utilisée. Une mauvaise utilisation amène très vite à des programmes qui tournent en boucle dans le vide. Le principe de la récursivité est d’effectuer le même traitement sur un élément. Ci-dessous se trouve la célèbre suite de Fibonaci

/*Write recursively*/
function fibonacci($n) {
    $f1 = 1;
    $f2 = 0;
    $total = 0;
    if( $n == 0 || $n == 1)
        return $n;
    for($i = 2; $i <= $n; $i++) {
        $fib = $f1 + $f2;
        $f2 = $f1;
        $f1 = $fib;
    }
    return $fib;
}
/*Shorter*/
function fibonacci($n) {
    if ($n <= 2) return 1;
    else return fibonacci($n-1) + fibonacci($n-2);
}

L’opérateur ternaire

Je parlais plus haut de réduction du nombre de lignes de code lors de l’utilisation des if. Il est possible de réduire encore plus avec l’opérateur ternaire. Celui permet d’écrire un if/else sur un seule et unique ligne.

/*Ternary Operator*/
if ($iCompteur > 550)
    $bBool = true;
else
    $bBool = false;
/*Shorter*/
$bBool = $iCompteur > 550 ? true : false;
/*Even shorter*/
$bBool = $iCompteur > 550;

Combinaison arithmétique et opérateurs

Il s’agit sans doute de l’astuce la plus connue et utilisée. Elle permet d’identifier tout de suite ce qui est effectué.

/*Combination Arithmetic and Assignment Operators*/
$iCompteur = $iCompteur + 1000;
/*Shorter*/
$iCompteur += 1000;

Il en existe d’ailleurs un certain nombre qu’il faut connaître.

/*Combination Arithmetic and Assignment Operators*/
+= Addition
-= Soustraction
/= Division
*= Multiplication
%= Modulo
.= Concatènation
++ Incrémentation de 1
-- Diminution de 1
|= Opérateur logique ou
&= Opérateur logique et
^= Opérateur logique ou exclusif

Sens d’écriture du if

Entre le test et l’assignation à une variable, il n’existe dans la plupart des langages qu’un caractère de différence. Il est très facile de l’oublier et ainsi de générer une assignation alors qu’on voulait écrire une expression booléenne.

/*Test*/
if ($a == 1) echo "coucou";
/*Setting the variable $a to 1*/
if ($a = 1) echo "coucou";
/*Could be written this way to avoid the mistake */
if (1 == $a) echo "coucou";
/*The following code would generate a fatal error you would detect*/
if (1 = $a) echo "coucou";

Tharkun Informatique