samedi 19 mars 2005

Espace membre

ESPACE MEMBRE

Dans cet article, nous allons voir comment créer un espace membre. Il y a plusieurs raisons de créer un espace membre, la première peut être la sécurité. Il peut être intéressant de laisser tout le monde lire des messages sur notre forum, mais seulement ceux qui sont membres d'y écrire. Nous avons ainsi de moyen de savoir qui a écrit le message, son adresse IP...
Dans cet article, nous allons voir:
  • Inscription
  • Authentification
  • Oublie de mot de passe
  • Déconnection

Inscription

L'inscription d'un membre est l'occasion d'obtenir diverses informations sur l'usager. Voici une structure de table possible :

DROP TABLE IF EXISTS `membre`;
CREATE TABLE `membre` (
  `MEM_NOMEMBRE` int(11) NOT NULL auto_increment,
  `MEM_NOM` varchar(30) NOT NULL default '',
  `MEM_PRENOM` varchar(30) NOT NULL default '',
  `MEM_NOMUSAGER` varchar(30) NOT NULL default '',
  `MEM_MOTPASSE` varchar(30) NOT NULL default '',
  `MEM_COURRIEL` varchar(30) NOT NULL default '',
  `MEM_TYPE` int(11) NOT NULL default '0',
  `MEM_SITEWEB` varchar(100) default NULL,
  `MEM_SIGNATURE` varchar(50) default NULL,
  `MEM_NBMESSAGE` int(11) default '0',
  `MEM_ENREGISTRE` int(11) default '0',
  PRIMARY KEY  (`MEM_NOMEMBRE`)
) TYPE=MyISAM AUTO_INCREMENT=9 ;
Au niveau du code, il suffit de créer un formulaire. Afin de limiter les inscriptions automatiques par des scripts malicieux, il est possible d'ajouter une série de lettres dans une image. L'usager devra taper ces lettres. De nombreux sites utilisent cette technique.

Protection

Tel que dit précédemment, il est important d'ajouter une protection afin d'éviter des inscriptions multiples. Afin de mettre en oeuvre cette protection, nous allons générer une suite de lettre de façon aléatoire et ensuite créer une image avec ces lettres. Il est ainsi beaucoup plus complexe d'obtenir la valeur des lettres.
function gen_reg_key() {

   //on initialise la variable $key à "vide"

   $key = "";

   //on définit la taille de la chaine (6 caractères ca suffit ;))

   $max_length_reg_key = 6;

   //on définit le type de caractères ascii de la chaine (l'alphabet suffit amplement, mais libre a vous)

   $chars = array(

      "a","b","c","d","e","f","g","h","i","j","k","l","m",

      "n","o","p","q","r","s","t","u","v","w","x","y","z");

   //on comptabilise le nombre total de caractères possibles (26 pour l'alphabet)

   $count = count($chars) - 1;

   //on initialise la fonction rand pour le tirage aléatoire

   srand((double)microtime()*1000000);

   //on tire aléatoirement les $max_length_reg_key caracteres de la chaine

   for($i = 0; $i < $max_length_reg_key; $i++) $key .= $chars[rand(0, $count)];

   //on renvois la clé générée

   return($key);

} 
Maintenant que la chaîne est générée, nous allons créer une image cette chaîne. Noter que la source ci-dessus provient d'une source inconnue.
//En-tête définissant le format png header

header ("Content-type: image/png"); 

//Crée une nouvelle image à palette d'une taille de 100 pixels de largeur par 50 pixels de hauteur

$im = @ImageCreate (100, 50) or die ("Erreur lors de la création de l'image");

//Alloue une couleur pour le fond de l'image

$bgcolor = ImageColorAllocate ($im, 0xC0, 0xC0, 0xC0); //Ca correspond à #C0C0C0

//Alloue une couleur pour le texte de l'image

$font = ImageColorAllocate ($im, 0x00, 0x00, 0x00);

ImageString ($im, 5, 20, 15,base64_decode($_GET['code']),$font);

//Envoie l'image PNG vers le navigateur

ImagePng ($im);

//Désalloue la mémoire de l'image
ImageDestroy($im);

La chaîne générée est passée à ce script d'où le $_Get. La protection ainsi que les données entrées par l'usager doivent être validées afin d'insérer des données uniquement valides dans la base de données. Au niveau des validations, vous pouvez vérifier si le courriel est valide, si le nom de l'utilisateur est déjà présent.

Envoie du courriel

Il est très aisé d'envoyer un courrier en PHP. Le code ci-dessous est employé pour activer le mot compte de l'usager lors de son inscription. Il faut s'assurer d'avoir la fonction PHP mail().
function envoiecourrielvalidation($nom, $nomusager, $to, $motpasse, $nomembre)
  {
    /* sujet */
    $subject = "Inscription: La boîte à prog";
  
    /* message */
    $message = "Bonjour, ".$nom." ! \n\nMerci de vous être enregistré.   Vous êtes priés de conserver cet e-mail dans vos archives. \nVoici les informations concernant votre compte : \n \nNom d'utilisation : ".$nomusager." \nMot de passe: ".$motpasse." \n \nPour activer votre compte, veuillez cliquer sur ce lien :  http://www.laboiteaprog.com/activation.php?mem_nomembre=$nomembre  \n\nL'équipe Forum La boîte à prog";
  
    $headers = "From: La boite à prog <collinm@laboiteaprog.com>\r\n";
    /* and now mail it */
    mail($to, $subject, $message, $headers);
 }

Validation du courriel

Une manière de limiter les abus est de valider le compte de l'usager en lui envoyant un courriel. Cette façon permet de savoir si le courriel inscrit par l'usager est valide et assure de pouvoir retracer l'usager si nécessaire. La validation du courriel se fait si toutes les données entrées par l'usager sont valides. Utiliser la fonction mail de PHP pour envoyer un courriel. Utiliser un gabarit tel que:

Bonjour, Paul Newman !
Merci de vous être enregistré.   
Vous êtes priés de conserver ce courriel dans vos archives.

Voici les informations concernant votre compte : 
Nom d'utilisation : pauln
Mot de passe: arlvlr

Pour activer votre compte, veuillez cliquer sur ce lien :  http://www.laboiteaprog.com/activation.php?mem_nomembre=1

L'équipe Forum La boîte à prog";

Dans le script activation, on vérifie si l'usager à déjà activer son compte. Le champ MEM_ENREGISTRE sert à savoir si l'usager a déjà activé son compte. Si la valeur est 0, son compte n’est pas actif.

connectionbd();
    entete("Activation","");
    
    $mem_nomembre = $_GET['mem_nomembre'];
    
    
    $requete = mysql_query("SELECT mem_nomembre, mem_motpasse, mem_type, mem_enregistre from membre where mem_nomembre=$mem_nomembre ");
    
    $ligne = mysql_fetch_assoc($requete);
    
    //verifier dans la bd si le compte est déjà actif... si oui on affiche un message
    if($ligne["mem_enregistre"] == 1){
    
      echo '<div>Activation</div>';
      echo'<div>';
        
      echo"Votre compte a déjà été activé. Merci";
        
      echo'</div>';
    
    }
    else{
    
      $_SESSION['username'] = $username;
      $_SESSION['password'] = $password;
      $_SESSION['mem_nomembre'] = $mem_nomembre;
      
      mysql_query("update membre set mem_enregistre = 1 where  mem_nomembre= $mem_nomembre ");
      
      echo '<div >Activation</div>';
      echo'<br/><div>';
      echo"Vous venez d'activer votre compte, vous pouvez maintenant envoyez des messages et participer au site. Merci";
        
      echo'</div>';
      
    }
    closebd();
    piedpage();
  }
Si le compte de l'usager n'est pas encore actif, il le devient et on enregistre des variables de session afin que l'usager puise avoir accès aux fonctions réservées au membre.

Authentification

Cette partie consiste à vérifier le nom d'utilisateur ainsi que le mot de passe entrée par l'usager, si les informations sont valides, l'usager à accès au site et on enregistre dans des variables de session quelques informations (tel que vue précédemment). Le code nécessaire pour vérifier les données est identique à celui montré précédemment. Si les données sont valides, nous pouvons rediriger l'usager par exemple dans une section spéciale du site.

Oublie de mot de passe

Il est possible, qu'un usager oublie son mot de passe pour de multiples raisons. Un script qui génèrera un mot de passe aléatoire permettra de nouveau à l'usager de se connecter au site.

Le script pour générer un mot aléatoire qui a été utilisé lors d'un l'inscription de l'usager peut être réutilisé de nouveau pour l'oublie d'un mot de passe. Le nouveau mot de passe est envoyé par courriel à l'usager. Un gabarit qui pourrait ressembler à celui montré dans la section Validation du courriel peut être utilisé.

Déconnection

Cette fonctionnalité supprime les variables de session créée lors de la connexion de l'usager et redirige l'usager sur la page principale du site.

session_start();
if(session_is_registered("username")){
  session_destroy();
$url="/index";
header("location: $url");

Fonctionnalité

Une fois que l'utilisateur est connecté, tous vous est permis. Prenons exemple sur ce site, une fois connecté, vous pouvez participer au site, modifiez votre profil...
Nous avons vu quelques fonctionnalités de base pour gérer un espace membre sur un site.

D'autres fonctionnalités peuvent être ajoutées, un chat en ligne, amélioration de la sécurité... afin d'avoir un espace membre encore plus riche.

lundi 28 février 2005

KQemu


KQEMU

Une nouvelle étape a été franchie dans le projet d'émulation de processeur Qemu (QEMU Accelerator Module). Kqemu est un module qui permet d'utiliser le processeur hôte au lieu d'utiliser le processeur de la cible. Par exemple, nous sommes sous Linux et on utilise Windows à l'aide de Qemu. Windows fonctionne à l'aide du processeur émulé par Qemu, ça fonctionne très bien, mais le système d'opération Windows fonctionne lentement. Lorsqu'on utilise Kqemu, le système Windows utilise directement notre processeur ainsi les performances sont bien meilleur. Kqemu fonctionne que de PC à PC, donc n'espérer pas d'avoir de meilleure performance sur votre G5 en tentant d'émuler Beos. En utilisant ce module, les performances sont très près de Win4lin.

Préalable

  • Kqemu
  • une version supérieure à 0.6.1 de Qemu
  • les sources du noyau
  • la sdl
  • la sdl-devel
  • textinfo
Notez que j'ai dû installer les paquets et logiciels ci-dessus (suse 9.2). Il est possible que vous deviez en installer d'autres si vous utilisez une autre distribution.

Installation

Vous devez télécharger le code source de Qemu à partir du cvs. Pour de plus amples renseignements concernant cvs, allez lire le tutoriel que j'ai créé.
Vous pouvez obtenir les sources avec une commande similaire à:
cvs -z3 -d:ext:anoncvs@savannah.gnu.org:/cvsroot/qemu co qemu

Ensuite téléchargez Kqemu et décompressez-le dans le répertoire de qemu. Dans l'exemple ci-dessous, on supposera que:
/home/collinm/Documents/qemu
contient les sources de qemu et kqemu. En mode console:
cd /home/collinm/Documents/qemu

./configure --target-list=i386-softmmu

make
Connectez vous en root
make install

Qemu est maintenant installé, si vous désirez utiliser Kqemu, vous devez taper:
modprobe kqemu

Démarré qemu et vous pouvez vérifier si kqemu est réellement utilisé en tapant:
/sbin/lsmod | grep kqemu
Cette commande devrait vous retourner
kqemu                  43272  2

Si 2 n'est pas là, kqemu n'est pas chargé.

Notez qu'actuellement, Kqemu ne fonctionne pas encore avec la série de Windows 9x.
Vous pouvez maintenant démarrer une installation de beos, qnx, solaris Windows.... Insérez-le cd du système voulu
dd of=hd.img bs=2048 seek=3000000 count=0

L'installation du système voulu démarrera. Ce module permet de faire fonctionner Windows 2000 et Windows 98 avec de bonnes performances sous un 1800+ et 512 megs de RAM.

lundi 7 février 2005

Gestion de BB-Code


GESTION DE BB-CODE

Le bb-code est utilisé afin de simplifier l'utilisation de diverses fonctionnalités pour un usager. Souvent sur les sites lorsqu'on inscrit :), c'est une image avec un sourire... plusieurs images existent pour s'exprimer. Le bb-code consiste donc à taper un code qui sera transformé en une image ou en un autre code.

L'usager pourrait toujours taper http://www.yahoo.com, mais c'est beaucoup plus simple pour lui de faire [url]www.yahoo.com[/url]. En fait, on n'a qu'à filtrer le code que l'usager entre.

function bbcode($m) {
    switch($m[1]) {
        // balise <code>
        case 'code' :
           return '<div class="code"><pre>'.htmlentities($m[2]).'</pre></div>'; 
        break;
        // balise <url>
        case 'url' :
          if (preg_match ('`^http://`', $m[2]))
            return '<a href="'.$m[2].'" class="machin">'.$m[2].'</a>';
          else
            return '<a href="http://'.$m[2].'" class="machin">'.$m[2].'</a>'; 
        break;
        // balsie <img>
        case 'img' :
        return '<img src="'.$m[2].'" alt="mon image"/>';
    }
}
La fonction ci-dessus est appelée avec:
$st4="mon site web préféré est: [url]www.laboiteaprog.com[/url]
$str = preg_replace_callback('`\[(code|url|img)\](.+?)\[/\1\]`si', 'bbcode', $str);

Chaque fois que les mots: code, url ou img se retrouveront en [], la fonction bbcode est appelée. Pour avoir cet effet, preg_replace_callback est utilisé. $m[1] contient les mots et $m[2] contient ce qui entre les tags. Par exemple avec <url>www.yahoo.com</url>, url est le mot et www.yahoo.com est ce qui entre les deux. Lorsque le mot code est trouvé, ce qui est entre les balises sera affiché dans un div. Tel que montré, nous pouvons convertir le code aisément, ce qui permet d'utiliser des fichiers css et de personnaliser davantage ce qui est écrit sans trop de difficulté pour l'usager. Pour le mot url, on vérifie si la chaîne contient http://, si elle le contient pas, on l'ajoute.

Nous avons vu comment créer le bb-code, dans l'exemple montré, les balises s'écrivaient: [tag]. Cette fonction retourne la chaîne après les changements effectués. C'est donc cette chaîne qui doit être insérée dans la BD ou fichier si vous désirez sauvegarder le tout. Le script montré ci-dessus a été inspiré à partir d'un autre de source inconnue.

jeudi 6 janvier 2005

Gambas


GAMBAS

Les environnements de développent intégré (rad) tel que Delphi, Visual basic ne sont pas légion sous Linux surtout en opensource. On retrouve bien sûr Kylix de Borland, mais il comporte de nombreuses erreurs et coûte très cher. Sinon il y a Netbeans pour le Java. En commerciale il y a Jbuilder, IntelliJ. Les fanatiques de Visual basic ou de Delphi étaient un peu oublié sous Linux. Gambas tente de combler cette lacune.

Gambas est un rad qui utilise le langage Basic. Il a de forte ressemblance avec Visual basic. Gambas vient d'arriver à la version 1. Il est enfin stable. Même si Gambas n'atteint pas le niveau de son confrère, il permettra de créer des applications très aisément. Il est possible d'obtenir Gambas à l'adresse : http://gambas.sourceforge.net/

Fonctionnalité Gambas

  • Présentement la librairie graphique utilisée est qt, mais puisque l'interface est un composant, il serait possible d'utiliser d'autres librairies.
  • Traducteur linguistique(manuel)
  • Gestionnaire de base de données
  • Création de programme graphique ou non
  • Les fichiers sont compilés et ensuite exécutés par un interpréteur
  • Débuggeur

Problème Gambas

Il y a peu de composant graphique disponible. Les fonctionnalités ne sont pas nombreuses si on compare ce produit à Delphi. Néanmoins, il permettra surement à des admirateurs de rad sous Windows de débuter à programmer sous Linux.
Le départ de l'application nous affiche une fenêtre pour nous guider.


Cet environnement de développement intégré possède déjà le minimum de ce qu'on peut attendre de ce genre d'outils. Quelques exemples sont inclus afin de familiariser avec le langage Basic et Gambas.




La création de l'interface est très simple, mais surement différente des autres rad que vous avez pu utiliser. On doit cliquer sur un composant, ensuite on doit cliquer sur le formulaire et faire un agrandissement avec la souris... faut essayer si on comprend pas réellement. Le projet est ouvert donc si vous voulez y contribuer, n'hésiter pas. C'est un outil qui peut s'avérer très intéressant pour ceux désirant s'initier à la programmation.

mercredi 22 décembre 2004

Comment connaître la liste de carte pci d'installé?


Comment connaître la liste de carte pci d'installé?

/sbin/lspci

Il existe aussi la commande

scanpci
0000:00:00.0 Host bridge: VIA Technologies, Inc. VT8375 [KM266/KL266] Host Bridge
0000:00:01.0 PCI bridge: VIA Technologies, Inc. VT8633 [Apollo Pro266 AGP]
0000:00:09.0 SCSI storage controller: Adaptec AHA-3960D / AIC-7899A U160/m (rev 01)
0000:00:09.1 SCSI storage controller: Adaptec AHA-3960D / AIC-7899A U160/m (rev 01)
0000:00:11.0 ISA bridge: VIA Technologies, Inc. VT8233 PCI to ISA Bridge
0000:00:11.1 IDE interface: VIA Technologies, Inc. VT82C586A/B/VT82C686/A/B/VT823x/A/C PIPC Bus Master IDE (rev 06)
0000:00:11.2 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1b)
0000:00:11.3 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1b)
0000:00:11.4 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 1b)
0000:00:11.5 Multimedia audio controller: VIA Technologies, Inc. VT8233/A/8235/8237 AC97 Audio Controller (rev 30)
0000:00:11.6 Communication controller: VIA Technologies, Inc. AC'97 Modem Controller (rev 70)
0000:00:12.0 Ethernet controller: VIA Technologies, Inc. VT6102 [Rhine-II] (rev 70)
0000:01:00.0 VGA compatible controller: nVidia Corporation NV25 [GeForce4 Ti 4200] (rev a3)

mardi 21 décembre 2004

OpenOffice 2


OPENOFFICE 2

OpenOffice est une suite bureautique open source qui provient de StarOffice. C'est l'alternative de Microsoft Office. OpenOffice fonctionne sous Linux, Mac, Solaris et Windows. Cette suite bureautique peut survenir à la majorité des besoins. C'est une des raisons pour laquelle diverses administrations gouvernementales et publiques l'emploient. Il arrivait souvent qu'on reprochait à Openoffice sa lenteur d'ouverture et sa compatibilité discutable avec les documents Microsoft Office. De plus, il n'y avait pas de module facile d'accès pour les bases de données. Openoffice 2 vient combler ces lacunes.

Nouveauté Openoffice 2

 Performance


Openoffice a été beaucoup critiquée concernant sa vitesse de démarrage. Quelques secondes étaient grignotées à chaque version. Pour une version non finale, cette version est la plus rapide que j'ai pu essayer. Les menus sont plus réactifs. Il y a très peu d'écart maintenant au niveau de la vitesse avec Microsoft Office.

Interface d'Openoffice 2

Pour certains habitués de Microsoft Office, il n'était toujours évident de s'y retrouver. À chaque version, des progrès ont été faits à ce niveau. On remarque qu'avec cette version, beaucoup d'efforts ont été mis pour augmenter l'ergonomie. Les couleurs sont plus claires. Les icônes ont bien été sélectionnées, ils sont très représentatifs. Il y a plus d'icônes dans les menus, cependant ils pourraient y en avoir encore plus. Ainsi, c'est la mémoire visuelle qui est sollicitée. Une association d'une image à un mot est faite. C'est ce qu'on appelle une sémaphore.







Compatibilité avec Microsoft Office

La compatibilité avec la suite bureautique la plus utilisée présentement ne pourra jamais être exempte de défaut. Déjà que la compatibilité entre les différentes versions de Microsoft Office n'est pas parfaite. Avec les anciennes versions d'Openoffice, aussitôt qu'un document était moindrement complexe, Openoffice rendait le document inutilisable. C'était néanmoins très suffisant pour une bonne partie des utilisateurs. Openoffice 2 corrige cette lacune.

La compatibilité est vraiment très bonne. L'édition de fichier Word généré par les produits Rational Rose rendait le document illisible sous Openoffice. La mise en page était complètement sabotée. Les textes n'étaient plus centrés. Les tableaux étaient élargis. Les en-têtes et pied de page étaient souvent perdus. Souvent du textes en gras ou italique étaient mis de façon aléatoire dans le document. Avec les documents de PowerPoint, des images étaient perdues, les transitions animées étaient enlevées. Maintenant avec la dernière version d'Openoffice, j'ai eu aucune difficulté à voir les transitions animées, elles fonctionnaient sans problèmes.

Pour les documents Excel, les graphiques étaient mal rendus, les calculs étaient faussés et même les plus simples macros ne fonctionnaient pas. Les quelques macros qui étaient présentes dans le document fonctionnaient. Openoffice intègre un nouveau format de fichier soutenu par OASIS. Ce format va être utilisé dans Koffice, Openoffice et StarOffice. Corel (WordPerfect) et Microsoft sont membres de cet organisme.

Modules de base de donnée

Openoffice 2 intègre maintenant un module de base de données. Il y a de fortes ressemblances avec Access. Il utilise la base de données HSQLDB. Cette base de données utilise un moteur écrit en Java. Il est possible de créer des tables, requêtes, formulaires et rapports. L'application a beaucoup de potentiel.




































Stabilité

J'utilise OpenOffice 2 depuis plusieurs mois avec des documents variant de quelques pages à une cinquantaine et aucun arrêt de l'application n'est survenu. Idem pour l'outil du tableur. J'ai utilisé diverses fonctions afin d'effectuer des statistiques et générer des tableaux. Bref une utilisation que l'utilisateur moyen ne fera pas tous les jours.

Conclusion

Openoffice a fait d'énormes progrès. Cette version vient corriger les problèmes de vitesse et d'ergonomie qu'on retrouvait avec les anciennes versions.

dimanche 28 novembre 2004

Novell Linux Desktop


NOVELL LINUX DESKTOP

Novell Linux desktop est la première tentative d'imposer Linux sur le bureau en entreprise. Cette version est basée sur la version entreprise de Suse. Avec cette version, Novell met la barre haute. Ici point de froufrou, Novell est resté conservateur et a misé sur l'ergonomie et la productivité. Novell s'attaque directement au bureau en entreprise qui est jusqu'à maintenant largement dominé par Microsoft Windows. NLD est basé sur la version 9.1 de Suse.

Préliminaire d'installation

L'installation s'est réalisée avec le logiciel qemu. Pour de plus amples renseignements sur ce logiciel, consultez l'article s'y référant.
Création de l'espace disque pour l'installation
dd of=hd.img bs=2048 seek=1000000 count=0

Démarrage de qemu
qemu -hda hd.img -boot d -cdrom nomfichier.iso -user-net

La NLD possède 3 CD. L'installation démarre à partir du CD 1. Lorsque l'installation demandera le cd 2 et 3, dans la console de qemu il faudra taper
change -cdrom nomfichier.iso

Installation

Ceux qui ont déjà installé une Suse, trouveront de nombreuses ressemblances. NLD y emprunte beaucoup.
L'installation débute avec une image que je trouve beaucoup plus professionnel que celle qu'on pouvait retrouver dans les versions de Suse.


On choisir la langue d'installation.




On choisir notre bureau de travail. On doit sélectionner un ou l'autre ce qui est différent des autres distributions Linux. Ce choix permet d'avoir un parc informatique uniforme.



On paramètrise l'installation, cette étape est semblable à celle de suse.


Les packages s'installes.








Enfin une distinction par rapport à suse, on demande comment au s'authentifiera au système.


 Tout est sauvegardé.




Le bureau est simple et clair. Le nombre d'icônes créées par défaut est limité.


Le contenu du menu est beaucoup moins rempli que suse. Le nombre d'application par défaut est limité tout comme un système Windows ou Mac OS. Novell a par défaut choisi une application par type d'application. Si on désire écouter un mp3, on a pas le choix entre 6 programmes... idem pour à peu près n'importe autre type de programme. Cette méthode peut s'avérer contraignante pour un usager expert, mais permet de maintenir et de faciliter le support technique informatique d'une entreprise.




Tel que dit plutôt, il n'y a vraiment de choix d'application. Il y a par contre quelques applications qu'on ne retrouve pas en standard dans Suse habituellement. Ce sont des applications d'administration.









Novell est maintenant le propriétaire de l'outil Red carpet. Cet outil provient de son achat de ximian. Ce logiciel permet de gérer l'installation, mise à jour... des logiciels. Cet outil gère diverses distributions dont suse, mandrake et red hat. L'outil détecte l'os et s'adapte en conséquence. Ce logiciel pourrait être un bon moyen de gérer les logiciels des nombreuses distributions Linux qu'on retrouve. On démarrage de la NLD, on remarque que plusieurs services fonctionnent tel que: nfs, samba, cups, ssh ce qui n'est pas nécessairement le cas lors d'une distribution pour un particulier.. NLD coûte 50$ par poste, j'ai utilisé la version démo pour faire cet article. Ceux voulant un support pour iFolder ou Groupwise seront très satisfaits d'utiliser cette distribution. Elle s'intègre bien à l'environnement Novell.

Conclusion

Nous avons vu ce que Novell avait à offrir au niveau du bureau pour l'entreprise. Cette distribution est très similaire à une Suse. Le choix d'application a cependant été limité afin d'avoir un meilleur contrôle du contenu des ordinateurs installés dans notre parc. On se retrouve au final avec une Suse 9.2 avec le logo Novell un peu partout.

Quand JPA rencontre ses limites, pensez à jOOQ et au MULTISET

Une seule requête, un graphe d'objets complet — ce n'est pas de la magie, c'est du SQL. La base du problème Dans le monde JPA, q...