samedi 8 avril 2006

Configurer son clavier multimédia sous Linux


CONFIGURER SON CLAVIER MULTIMÉDIA SOUS LINUX

La technique qui sera présentée emploie les touches Fx du clavier. Les claviers possèdent habituellement 12 touches Fx, mais d'autres sont gérés par le système. Il est donc possible d'assigner une action à ses touches.
Il faut lancer xev afin de connaitre le code des touches.



Appuyez sur une de vos touches multimédias. Un bloc de texte similaire à ci-dessus devrait s'afficher. Prenez en note la valeur après «keycode».

KeyRelease event, serial 15, synthetic NO, window 0x3c00001,
    root 0x135, subw 0x0, time 44273600, (656,558), root:(660,585),
    state 0x10, keycode 36 (keysym 0xff0d, Return), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "

Effectuez cette opération pour chacune de vos touches multimédias.
Prenez chacune des valeurs des «keycode» trouvées et assignez-les à une touche Fxx. Voici un petit exemple pour mon clavier multimédia.

#!/bin/bash
###########################################
# keycodes.sh
# FORMAT: keycode=Fxx
###########################################
xmodmap -e 'keycode 236=F13' # e-mail
xmodmap -e 'keycode 178=F14' # www
xmodmap -e 'keycode 230=F15' # home folder
xmodmap -e 'keycode 162=F16' # play-pause
xmodmap -e 'keycode 176=F17' # raise volume
xmodmap -e 'keycode 174=F18' # lower volume
xmodmap -e 'keycode 160=F19' # mute
xmodmap -e 'keycode 237=F20' # media
xmodmap -e 'keycode 235=F21' # computer
xmodmap -e 'keycode 161=F22' # calculator
exit 0

Exécutez ce script lors du démarrage de Kde. Vous pouvez mettre ce script dans le répertoire /home/~/.kde/Autostart/ de kde. Il est aussi possible de le lancer à partir du fichier .xinit de l'usager.

Démarrez le centre de configuration de Kde, allez dans régionalisation et accessibilité ensuite cliquer sur raccourcis clavier ensuite cliquer sur l'onglet raccourci commande. Choissisez le programme que vous voulez démarrer pour une certaine touche. Dans la section «Raccourcis pour la commande sélectionnée», cliquée sur «Personnalisé». Une petite fenêtre apparaîtra, vous n'avez qu'à cliquer sur la touche multimédia.



Effectuez cette opération pour chacune de vos touches. N'oubliez pas d'exécuter le script ci-dessus afin que Kde puisse reconnaitre vos touches multimédias.
Nous avons jusqu'à maintenant assigner que des programmes à des touches, il est aussi possible d'assigner des scripts à des touches. Certaines touches tel l'augmentation, diminution ou l'arrêt sonore devront utiliser cette approche.

Démarrez le centre de configuration de Kde, allez dans régionalisation et accessibilité et cliquez sur Actions d'entrées. Créer un nouveau groupe et ensuite créer une nouvelle action.

Choissisez Raccourci clavier -> Commande / URL. Dans le raccourci clavier, assigner la touche multimédia voulue. Ensuite cliquez sur l'onglet Paramètres de la commande / de l'URL. Sélectionner le script qui sera exécuté lorsque la touche choisie précédemment sera enfoncée.



Les scripts ci-dessus permettent d'augmenter le volume, diminuer le volume et de couper le son.
 
#!/bin/bash
amixer set PCM +1

#!/bin/bash
amixer set PCM 1-
#!/bin/bash
declare -r TMPVOLFILE="/tmp/kde-${USER}/vol.tmp"
declare -r CRTVOLUME=$(amixer get PCM | grep \
'Front Left:' | cut -d' ' -f6)
declare -i NEWVOLUME

if [ "${CRTVOLUME}" == "0" ]
then
  if [ -f ${TMPVOLFILE} ]
  then
 NEWVOLUME=$(cat ${TMPVOLFILE})
  else
 NEWVOLUME=20
  fi
  amixer set PCM ${TMPVOLFILE}
else
  echo ${CRTVOLUME} > ${TMPVOLFILE}
  amixer set PCM 0
fi

Nous avons vu deux façons de configurer les touches de son clavier multimédia. Elles ont l'avantage d'être faciles à mettre en oeuvre.

samedi 14 janvier 2006

Vmware player


Vmware player

Vmware, bien connu pour ses machines virtuelles, a sorti en décembre 2005 le logiciel vmware player.

Ce logiciel est gratuit et permet d'utiliser les machines virtuelles créées avec leurs autres produits. Il est par contre possible d'installer un système d'exploitation avec la machine virtuelle fournie.

Préparation

Vous pouvez vous procurer vmware-player à l'adresse vmware
Il est possible d'installer le système d'exploitation qu'on désire avec ce logiciel.
Téléchargez la machine virtuelle vide.
Munissez-vous du CD du système désirant être installé.
Il est nécessaire d'avoir les sources du kernel ainsi que le nécessaire pour compiler, si vmware-player n'a pas de module pour votre noyau.

Installation et configuration de vmware-player

Vous devez être root pour effectuer les prochaines opérations
rpm -i VMware-player-1.0.1-19317.i386
Le script ci-dessous configurera vmware-player, il vous posera différentes questions.
vmware-config.pl

Making sure services for VMware Player are stopped.

Stopping VMware services:
   Virtual machine monitor                                             done

You must read and accept the End User License Agreement to continue.
Press enter to display it.


Do you accept? (yes/no) [no] yes

Thank you.

Configuring fallback GTK+ 2.4 libraries.

In which directory do you want to install the mime type icons?
[/usr/share/icons]

What directory contains your desktop menu entry files? These files have a
.desktop file extension. [/usr/share/applications]

In which directory do you want to install the application's icon?
[/usr/share/pixmaps]

Trying to find a suitable vmmon module for your running kernel.

None of the pre-built vmmon modules for VMware Player is suitable for your
running kernel.  Do you want this program to try to build the vmmon module for
your system (you need to have a C compiler installed on your system)? [yes] yes

Using compiler "/usr/bin/gcc". Use environment variable CC to override.

What is the location of the directory of C header files that match your running
kernel? [/lib/modules/2.6.13-15.7-default/build/include]

Extracting the sources of the vmmon module.

Building the vmmon module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmmon-only'
make -C /lib/modules/2.6.13-15.7-default/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.13-15.7-obj/i386/default'
make -C ../../../linux-2.6.13-15.7 O=../linux-2.6.13-15.7-obj/i386/default modules
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/driver.o
  CC [M]  /tmp/vmware-config0/vmmon-only/linux/hostif.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/cpuid.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/hash.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/memtrack.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/phystrack.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/task.o
  CC [M]  /tmp/vmware-config0/vmmon-only/common/vmx86.o
  CC [M]  /tmp/vmware-config0/vmmon-only/vmcore/moduleloop.o
  LD [M]  /tmp/vmware-config0/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST
  CC      /tmp/vmware-config0/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/vmware-config0/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/linux-2.6.13-15.7-obj/i386/default'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/vmware-config0/vmmon-only'
The module loads perfectly in the running kernel.

Do you want networking for your virtual machines? (yes/no/help) [yes]

Configuring a bridged network for vmnet0.

The following bridged networks have been defined:

All your ethernet interfaces are already bridged.

Do you want to be able to use NAT networking in your virtual machines? (yes/no)
[yes]

Configuring a NAT network for vmnet8.

Do you want this program to probe for an unused private subnet? (yes/no/help)
[yes]

Probing for an unused private subnet (this can take some time)...

The subnet 172.16.177.0/255.255.255.0 appears to be unused.

The following NAT networks have been defined:

Do you wish to configure another NAT network? (yes/no) [no]

Do you want to be able to use host-only networking in your virtual machines?
[yes]

Configuring a host-only network for vmnet1.

Do you want this program to probe for an unused private subnet? (yes/no/help)
[yes]

Probing for an unused private subnet (this can take some time)...

The subnet 172.16.216.0/255.255.255.0 appears to be unused.

The following host-only networks have been defined:

Do you wish to configure another host-only network? (yes/no) [no]

Extracting the sources of the vmnet module.

Building the vmnet module.

Using 2.6.x kernel build system.
make: Entering directory `/tmp/vmware-config0/vmnet-only'
make -C /lib/modules/2.6.13-15.7-default/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entering directory `/usr/src/linux-2.6.13-15.7-obj/i386/default'
make -C ../../../linux-2.6.13-15.7 O=../linux-2.6.13-15.7-obj/i386/default modules
  CC [M]  /tmp/vmware-config0/vmnet-only/driver.o
  CC [M]  /tmp/vmware-config0/vmnet-only/hub.o
  CC [M]  /tmp/vmware-config0/vmnet-only/userif.o
  CC [M]  /tmp/vmware-config0/vmnet-only/netif.o
  CC [M]  /tmp/vmware-config0/vmnet-only/bridge.o
  CC [M]  /tmp/vmware-config0/vmnet-only/procfs.o
  CC [M]  /tmp/vmware-config0/vmnet-only/smac_compat.o
  SHIPPED /tmp/vmware-config0/vmnet-only/smac_linux.x386.o
  LD [M]  /tmp/vmware-config0/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST
Warning: could not open /tmp/vmware-config0/vmnet-only/includeCheck.h: Invalid argument
  CC      /tmp/vmware-config0/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/vmware-config0/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/linux-2.6.13-15.7-obj/i386/default'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/vmware-config0/vmnet-only'
The module loads perfectly in the running kernel.

Would you like to enable the Google searchbar? (yes/no) [no]

Starting VMware services:
   Virtual machine monitor                                             done
   Virtual ethernet                                                    done
   Bridged networking on /dev/vmnet0                                   done
   Host-only networking on /dev/vmnet1 (background)                    done
   Host-only networking on /dev/vmnet8 (background)                    done
   NAT service on /dev/vmnet8                                          done

The configuration of VMware Player 1.0.1 build-19317 for Linux for this running
kernel completed successfully.

You can now run VMware Player by invoking the following command:
"/usr/bin/vmplayer".

Enjoy,

--the VMware team
Si vous avez des problèmes avec ce script, il est fort possible que votre noyau soit plus récent que ceux supportés par vmware. Téléchargez le fichier vmware-any-any-update. Vous devez le fichier runme.pl qui se trouve à l'intérieur de cette archive.
Insérez le cd du système d'exploitation voulant être installé.
Pour ce test, j'ai employé Windows 98 second edition.
Démarrer vmware-player et cliquer sur Esc, sélectionnez cdrom
Sélectionné l'image vide, télécharger plutôt




Répondez "Create" au message suivant


L'installation du système débute


Une fois l'installation terminée, lorsque vous démarrez vmware-player, il suffit d'indiquer où se trouve la machine virtuelle désirant être démarrée.

Conclusion

L'installation du système a bien fonctionner. Windows 98 SE s'est avéré beaucoup trop lent d'emploi avec un athlon 1800+ et 512 meg de ram, 168meg de ram était associé au système.

À l'installation, la configuration du matériel est très longue (tout le reste se fait rapidement). Toute action prenait beaucoup de temps. À ce niveau, même qemu faisait mieux. Le plus rapide étant win4lin pour cet os (étant donné qu'il utilise le système de fichier de linux, au lieu de créer qu'un seul gros fichier comme vmware. Ce problème n’existe pas avec Windows 2000 et Windows XP.

Vous savez maintenant quels outils utilisés en fonction de du système d'exploitation voulant à être exécuté.

mercredi 2 novembre 2005

Configuration de Suse


Configuration de Suse

Suse est pleinement fonctionnelle après son installation. Voici quelques opérations pour rendre cette distribution encore plus agréable à l'utilisation, plus rapide et moins énergivore au niveau de la mémoire vive.

Ajout de source d'installation

Dans yast, allez dans système et changez le support d'installation. Les sources présentés dans cet articles sont pour la 10.2.Afin de ne pas saturé la bande passante des serveur de suse, il est conseillé de prendre un site mirroir. Sélectionnez une source près de chez vous, les addresses devant être ajouté dans yast sont: Installation Repository et Addon-NonOSS-Installation Repository. La première équivaut au dvd en plus de quelques programme. L'autre source contient des logiciels propriétaire tel que real player, flash...Ce lien ainsi que celuici contient quelques sources qui sont utilisé plus bas. Ces sites possèdent aussi les liens pour les anciennes version de suse.
N'oubliez pas que l'ordre dans lesquelles sont affiché les sources dans Yast est importante. Si vous avez deux sources qui propose des logiciels similaires, ils est fort probable que ce soit la première qui soit utilisé

Mise à jour de kde

Cette source permet d'obtenir les toutes dernières versions des logiciels de Kde. Ils sont fait par l'équipe de Novell.
  Protocole: http
  Source: software.opensuse.org/
  Répertoire: download/KDE:/KDE3/openSUSE_10.2
  Protocole: http
  Source: software.opensuse.org/
  Répertoire: download/KDE:/Backports/openSUSE_10.2/
Une autre source est disponible, mais non maintenant par les employés de Novelle, donc rien ne garantie qu'ils ne causeront pas problème
  Protocole: http
  Source: software.opensuse.org/
  Répertoire: download/KDE:/Community/openSUSE_10.2/

Multimédia

À moins de prendre la version dvd, aucun support des mp3 n'est inclus. Avec le dvd, real player est inclus. Afin de remédier à la situation, il est nécessaire d'ajoute la source packman.
  Protocole: ftp
  souce: packman.iu-bremen.de
  Répertoire: suse/10.2

La source packman doit être ajouté afin de pouvoir écouter des films.Les fichier libdvdread,libdvdnav et kaffeine rendue disponible par Suse sont convenable. Les fichiers libxine1 et w32codec-all sont disponibles via la source de packman. Il faut en plus se procurer les fichiers libdvdcss2, libdvdplay qui sont disponible sur le site de videolan. La version k3b, logiciel de gravure, provenant de packman gère aussi les mp3 et autre type de format musicaux. Si vous l'utilisez pas cette version, vous ne serez pas en mesure de graver des mp3, ogg... sur des cd. Cette version les décodes à la volée
libdvdcss2 est disponible ici et libdvdplay est disponible ici. Il suffit de double cliquer sur le fichier pour l'installer, sinon rpm -i nom_du_fichier permettra de le faire en monde console.
Avant d'installer un logiciel via yast, sélectionner toujours vérification automatique. Ainsi si des problèmes de dépendances surviennent, vous en serez avisé.

Matériel et logiciel

KDE

Par défaut, les dimensions du menu de KDE sont par défaut assez grandes, il en résulte un menu très large et haut. Changer la valeur de MenuEntryHeight du fichier /home/nom_usager/.kde/share/config/kickerrc.
[menus]
  MenuEntryHeight=32
Diminuez la valeur.

Augmentez la vitesse sur internet

Par défaut, ipv6 est activé sous Suse. Vous pouvez le désactiver. Allez dans yast, système et finalement éditeur pour fichier /etc/sysconfig.
Faite une recherche sur: ipv6
Quelques variables devraient être trouvées. KDE_USE_IPV6, IPV6_PRIVACY, IPV6_FORWARD doivent être à no.
Dans le fichier: /etc/modprobe.conf ajouter un # devant les lignes contenant ipv6. Les lignes seront ainsi en commentaires.

Module

De nombreux modules sont chargés, certains ne sont pas utiles à tous. Regardez dans le fichier /etc/modprobe.conf et mettez ceux en commentaire qui vous semble inutile (3dfx, bluetooth...)

Ajout et supression logiciel

Le logiciel KdirStat indique graphiquement ce qui prend de la place, findutils-locate (index les fichiers), flash-player et Java. Si vous avez un peu d'expérience, vous pouvez passer quelque temps à regarder les logiciels que vous ne vous servirais pas, effacez avec yast. Une installation de base installe beaucoup de logiciels que nous n’utilisons pas nécessairement.

Pare-feux

Dans yast au niveau du pare-feu, si vous comptez accéder à votre machine à distance, activer ssh pour la zone externe.

Processeur

Vous pouvez mettre la variable CPUFREQD_MODULE du fichier /etc/sysconfig/powersave/cpufreq à off si vous n'avez pas un processeur qui ajuste sa fréquence.

Chargement de module

Il peut être utile d'ajouter certains modules au démarrage. Si vous prévoyez faire du packet writing comme incd sous Windows. Ce principe permet d'utiliser un CD-RW ou DVD-RW comme un disque dur. Vous devez ajouter dans le fichier /etc/init.d/boot.local les lignes suivantes:

modprobe udf
modprobe pktcdvd

vendredi 16 septembre 2005

Structure d'un site


STRUCTURE

Un site web n'est pas si long à créer. Du temps doit quand même être pris pour bien bâtir la structure du site afin de faciliter la maintenance. Un site bien conçu dès le départ permettra d'ajouter de nouvelle section, changer l'apparence du site... plus aisément. Dès le départ, nous devons penser comment on va découper notre site web: un en-tête, un menu, un sondage, un pied de page, la zone principale... Ensuite, nous devons penser où que ses zones soient affichées et quelles dimensions elles prendront.

Chaque zone devrait être défini à l'aide de la balise <div>. La mise en page à l'aide de tableau est à proscrire. Tant qu'à faire un site web, autant respecter les standards. L'utilisation de div, permet d'alléger le code.
Notre exemple comporte 4 zones: un en-tête, un menu, une zone principale et un pied de page.

Entête

L'entête présenté ci-dessous est celui utilisé pour le site web actuel. Ce script est utilisé pour toutes les pages du site web. Deux variables sont passées au script afin de modifier le tag titre et description.

<?php
function entete($sec_nomsection,$tmp){
?>
  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  <html xmlns="http://www.w3.org/1999/xhtml" lang="fr" xml:lang="fr">
    <head>
      <title><?php  echo $sec_nomsection; ?> - La boîte à prog </title>
      <link rel="stylesheet" type="text/css" href="/screen.css" />
      <meta http-equiv="Content-Language" content="fr" />
      <meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
      <meta name="description" content="Site web d'apprentisassge - Cours, tutoriels et lien en programmation ainsi que des critiques de livres: Delphi, Pascal, PHP, Génie logiciel"/>
      <meta name="Keywords" content="<?php  echo $tmp.","; ?> Borland rulez, Delphi, cours, La boite à prog, Tutoriels, Tutoriaux, Système d'exploitation, Tutoriel, Génie logiciel, Interbase, Firebird, Optimisation, Bash" />
    </head>
    <body>
      <div class="conteneur">
        <div id="header">
          <div class="left">
            <img src="/img/logo.gif" alt="logo du site web" />
          </div>
          <div class="right">
            <a href="index">Accueil</a> | <a href="contact">Contact</a> | <a href="contribution">Contribution</a> | <a href="forum">Forum</a><br/>
            <form method="post" action="resultat" id="recherche">
              <div>
              <input class="txtsub" type="text" id="motsclef" name="motsclef" />
              <input type="hidden" name="form" value="recherche" />
              <input class="butsub" type="submit" name="resultat" value="Rechercher" />
              </div>
            </form>
          </div>
          <div class="pied"></div>
        </div>
 <?php
}
?>

Pied de page

Tel que l'entête, le pied de page présenté ci-dessous est celui utilisé pour le site web actuel.
<?php
function piedpage(){
  ?>   
    <br/>
    <div id="footer">   
      <div class="left">
        Webmestre: <a href="mailto:collinm@laboîteaprog.com" title="Courriel du webmestre">Marc Collin</a>
      </div>
      <div class="center">
        <a href="http://validator.w3.org/check?uri=referer"><img src="http://www.w3.org/Icons/valid-xhtml10" alt="Valid XHTML 1.0!" height="31" width="88" /></a>
        <a href="http://jigsaw.w3.org/css-validator/"><img width="88" height="31" src="http://jigsaw.w3.org/css-validator/images/vcss" alt="Valid CSS!"/></a>
      </div>
    </div>   
  </div>
</body>
</html>
<?php
}
?>

Menu

Pour un menu, plusieurs options peuvent être envisagées, vertical, horizontal, utilisation de liste, javascript... Dans un site web, plusieurs sections peuvent exister, ces sections peuvent être mises dans une base de donnée. Lorsqu'une section sera ajoutée dans la base de donnée, le changement aura lieu directement sur le site web.
function topmenu()
{
  echo'<br/><br/><div class="framemenu"><div class="menu">';
  // Obtient les noms des section de la bd
  $requete = mysql_query("SELECT sec_nosection, sec_nomsection FROM section");
  if ( mysql_num_rows($requete) != 0 )
  {
    // li les sous-sections dispo dans la bd et les affiche - delphi/kylix, asm -->
    while ($ligne = mysql_fetch_assoc($requete))
    {
      $tmp=htmlentities(''.$ligne["sec_nomsection"].'');
      echo'<a href="news'.$ligne["sec_nosection"].'">'.$ligne["sec_nomsection"].'</a>';
    }
  }
  echo'</div></div><br/>';
}

Zone principal

La zone principale est la zone où la majorité de l'information est affichée. C'est la zone qui change le plus... les autres : en-tête, pied de page... changent moins fréquemment. Par exemple sur ce site, la page principale affiche les nouveautés du site. Ensuite si on se dirige dans une section, les nouveautés de la section sont affichées. Les tutoriels, description de livre... sont affiché dans cette section.

Nous avons vu comment structure un site web. Il est possible de diviser les zones de notre site web afin d'avoir différentes zones. Cette pratique est mieux qu'utiliser des frame. Cette approche à l'avantage de fonctionner dans tout navigateur web. L'exemple montré était celui de ce site web.

Cycle du développement du logiciel


CYCLE DU DÉVELOPPEMENT DU LOGICIEL

Le développement d'un programme se résume souvent pour beaucoup de personnes à une phase de codage. Cette étape représente pourtant qu'une petite partie du cycle de vie d'un logiciel. Un programme ne pourrait bien sûr pas exister sans son écriture. Il est tout à fait possible de réaliser un logiciel sans utiliser d'autres étapes, mais des problèmes peuvent rapidement survenir si nous devons y apporter des modifications, ajouter des fonctionnalités...

Dès les années 70, le développement de logiciels connaissait des problèmes. Il n'y avait pas de méthodologie et de norme ce qui donna bien souvent des systèmes de qualité douteuse.

Les systèmes d'aujourd'hui sont encore plus complexes qu'à cette époque, imaginer alors les problèmes pouvant être rencontrés de nos jours. Le génie logiciel tente à l'aide de processus, analyse, méthode et norme de corriger ce problème. Les dépassements de budget et de temps sont monnaie courante dans le développement d'application. Nous allons voir les principes de base du génie logiciel qui tente de corriger ces problèmes.

Le but du développement de logiciel est de produire un logiciel de qualité. De nombreux critères existent afin de définir la qualité d'un logiciel.

Exactitude

C'est l'obtention des résultats escomptés. Si un logiciel doit effectuer des calculs sur des matrices, on s'attend à ce qu'il le fasse. Obtenir tout autre résultat ne nous intéresse pas et ne répond pas à nos besoins.

Portabilité

C'est la facilité à porter un logiciel sur un autre système d'exploitation. Par exemple, on pourrait citer Mozilla et Apache qui ont cette qualité, car ils existent pour divers systèmes.

Extensibilité

C'est la facilité qu'un logiciel peut être adapté pour de nouveaux besoins. Un système mal conçu pourrait faire en sorte que tout le système doit être refait afin d'ajouter quelques fonctionnalités que les utilisateurs désirent. Un système ne serait alors pas extensible.

Réutilisabilité

C'est la capacité à utiliser certaine partie du logiciel pour créer d'autre logiciel. Une telle approche permet de diminuer les coûts et risques lors de la construction d'un système.

Vérifiabilité

C'est la facilité à créer des tests pour un logiciel.

Intégrité

C'est l'aptitude d'un logiciel à se protéger contre les accès interdits au niveau du code et des données

Robustesse

C'est la capacité du logiciel à bien répondre lorsque ses conditions d'utilisation sont anormales. Un logiciel pourrait être conçu pour qu'environ 100 utilisateurs puissent l'utiliser simultanément. Des tests avec 1000 utilisateurs pourraient être faits afin de savoir si le logiciel est encore capable de répondre convenablement aux usagers.
D'autres qualités peuvent exister pour un système. Un logiciel ne peut combler toutes ces qualités.

Cycle du développement du logiciel

Le développement de logiciel, peut se résumer en 7 étapes :
  • Déterminer les besoins
  • Conception préliminaires
  • Conception détaillée
  • Implémentation
  • Intégration
  • Test
  • Maintenance
Ces étapes peuvent bien sûr varier d'une entreprise à l'autre. Elles constituent néanmoins le squelette du cycle logiciel. Il est tout à fait possible de retrouver plus ou moins d'étapes dans une entreprise donnée. Il y a plusieurs variantes.

Déterminer les besoins

La communication est primordiale afin d'arriver au résultat escompté par le client. Le client doit bien être identifié. Le client n'est pas nécessairement un connaisseur en informatique, c'est pourquoi que la communication est bien importante. Les deux parties doivent bien s'attendre sur ce qui doit être réalisé.

Cette section doit spécifier les fonctions nécessaires pour répondre aux besoins du client. Les besoins existants doivent être traduits en besoin logiciel. Les connaissances informatiques qu'ont les utilisateurs. Les performances requises. Les contraintes de réalisation. Le nombre de fois que l'usager doit utiliser le système. Les caractéristiques clés, obligatoires.

Plusieurs moyens sont disponibles pour obtenir ces informations. Il est possible d'effectuer un entretien avec les clients, les utilisateurs. L'utilisation d'un questionnaire ainsi que l'observation du client dans ses tâches, peuvent aussi contribuer à répondre à ces questions.
Les besoins du client au niveau des interfaces, performances contraintes, qualités... doivent être traduit. Les deux parties doivent bien s'attendre afin que la suite puisse fonctionner.

Conception préliminaire

Cette section décrit de façon globale le produit. Les résultats de l'étape précédente sont utilisés afin de produire ce que le système doit faire. Cette section doit permettre de savoir si le projet est faisable au niveau informatique, l'estimation de travail à faire. On doit pouvoir savoir comment réaliser le logiciel à la fin de cette section. La solution doit être décomposée en une architecture modulaire. Tous les besoins doivent être définis et décomposé en fonction.C'est l'étape du «quoi».

Conception détaillée

La description du logiciel est faite. Maintenant, on doit spécifier davantage les détails du système afin d'arriver à une description très proche du programme. C'est l'étape du «comment». Les modules de la section précédente doivent être décrits minutieusement. Les fonctions doivent être décomposées en élément plus petit. Les données et algorithme doivent être décrits pour chaque élément. Les données d'entrée et de sortie doivent être précisées. Un plan de test doit être fait pour chaque module. Une bonne estimation du temps et du nombre de personnes nécessaires peut-être fait à la suite de cette section.

Implémentation

Les modules de la section précédente doivent être codés, réalisés dans un langage de programmation. C'est souvent cette étape que les gens s'attardent le plus. Les autres étant souvent très négligés, pour ne pas dire oublié. Des tests des modules séparés sont effectués. (test unitaire).

Intégration

Cette étape vérifie si que l'architecture spécifiée dans la conception préliminaire est bien respectée. On rassemble les modules entre eux et on fait des tests Progressivement en vérifiant les résultats obtenus à ceux attendus. Un travail de modification doit être fait si les résultats ne concordent pas avec ceux escomptés.

Test

Cette étape permet de savoir si on a bien écrit le système que le client désirait, de savoir si on a répondu à ces besoins. Des tests de validation doivent être faits afin de vérifier si le logiciel est conforme aux spécifications déjà établies du logiciel. Le système doit être testé par d'autres personnes que ceux qui l'ont conçu et sur d'autres machines. Le système est installé chez le client. La formation est donnée. Cette formation peut être faite à l'aide de documentation,vidéo ou cours.

Maintenance

Des anomalies peuvent être trouvées et une ou des personnes sont en charge de modifier les modules, documentations... afin de résoudre ces problèmes. Des nouvelles fonctionnalités peuvent être ajoutées. Des tests peuvent être refaits afin de s'assurer que les corrections n'apportent pas d'autre problème sur le système.
Chaque étape à un temps approximatif. Très souvent la majorité du temps est passé à l'implémentation. Même si aucun problème n'était trouvé, rien ne garantit, que le système est bien, celui que le client désirait.
  • Déterminer les besoins environ 15%
  • Conception préliminaire environ 10%
  • Conception détaillée environ 15%
  • Implémentation environ 20%
  • Intégration environ 10%
  • Test environ 30%
Les temps présentés ici peuvent varier, mais ils devraient être près de ces valeurs. Si l'implémentation dure 80% de la durée du projet, il y a un problème. Les autres étapes vont en subir les conséquences et le projet risque d'avoir quelques difficultés.

Selon des études (Standish Group par exemple), seulement 30 % des projets informatiques des entreprises connaissent la réussite. C'est très peu. Environ 15 % d'entre eux sont purement et simplement des échecs et 50 % ne répondent pas aux contraintes qui leur avaient été imposées, d'où la nécessité de bien s'attendre avec le client sur ce qui doit être fait.

Le cycle présenté ici ne garantit pas que le projet soit une réussite, mais il diminue les risques d'avoir un échec.

Une étape ne doit pas être nécessairement être terminé pour en entamer une autre. Le modèle présenté ici est général. Nous allons voir plus en détail des modèles de développement qui existe.

mercredi 7 septembre 2005

Compiler le kernel


COMPILER LE KERNEL

Nous allons voir comment compiler un kernel Linux. Dans ce tutoriel, nous utiliserons suse 10. Nous compilerons le kernel 2.6.13-15.7. Les commandes montres dans cet article fonctionnent néanmoins avec n''importe quel kernel 2.6.

Installez les sources du kernel
rpm -i kernel-source-2.6.13-15.7.i586.rpm

déplacez-vous dans le répertoire du kernel (/usr/src/linux) pour effectuer les prochaines opérations.

Modifiez la ligne contenant EXTRAVERSION dans le fichier Makefile. N'importe quelle valeur peut être mise, mais le premier caractère doit être un trait d'union.

Si vous ne voulez pas utiliser le fichier de config de ce kernel faite
make mrproper

Cette commande permet de choisir les options du kernel
make xconfig

Pour débuter, il peut être intéressant de rien changer afin de s''assurer que ça fonctionne. Par la suite, vous pouvez enlevez des fonctionnalités que vous n''utilisez pas.

Ouvrez le fichier: .config et modifiez la ligne concernant: CONFIG_LOCALVERSION, changez sa valeur. La valeur mise pour cet exemple est: -default_collinm_1. Ce changement permettra de ne pas écraser les modules. Ainsi, ce noyau et ses modules seront totalement indépendants du noyau que vous avez.

Cette commande compile le kernel
make bzImage

Cette commande compile les modules
make modules

Cette commande installe les modules
make modules_install

La commande ci-dessous copie le bzimage, System-map et modifie grub pour vous
make install

Ensuite, vous devez modifier votre fichier grub ou lilo. Ici nous allons modifier le menu de grub
Avant les modifications menu.lst ressemblait à
# Modified by YaST2. Last modification on Tue Jan 17 02:34:27 EST 2006

color white/blue black/light-gray
default 0
timeout 8
gfxmenu (hd0,4)/message

###Don't change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 10.0
    root (hd0,4)
    kernel /vmlinuz root=/dev/sda6 vga=0x317 selinux=0    resume=/dev/sda9  splash=silent showopts
    initrd /initrd

###Don't change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 10.0
    root (hd0,4)
    kernel /vmlinuz root=/dev/sda6 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off 3
    initrd /initrd

Le fichier après les modifications fait par make install ressemble à
# Modified by YaST2. Last modification on mer fév  8 22:53:52 EST 2006
color white/blue black/light-gray
default 1
timeout 8
gfxmenu (hd0,4)/message
title Linux-2.6.13-test1-15.7-default_collinm_1
 root (hd0,4)
 kernel /vmlinuz-2.6.13-test1-15.7-default_collinm_1 root=/dev/sda6 vga=0x317 selinux=0    resume=/dev/sda9  splash=silent showopts
 initrd /initrd-2.6.13-test1-15.7-default_collinm_1

###Don''t change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 10.0
 root (hd0,4)
 kernel /vmlinuz root=/dev/sda6 vga=0x317 selinux=0    resume=/dev/sda9  splash=silent showopts
 initrd /initrd-2.6.13-15.7-default
###Don''t change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 10.0
 root (hd0,4)
 kernel /vmlinuz root=/dev/sda6 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off 3
 initrd /initrd-2.6.13-15.7-default

Si vous regarder dans votre répertoire /boot, il est fort probable que vmlinuz pointe sur la nouvelle valeur ici: vmlinuz-2.6.13-test1-15.7-default_collinm_1. Il faut donc modifier cela.
# Modified by YaST2. Last modification on mer fév  8 22:53:52 EST 2006
color white/blue black/light-gray
default 1
timeout 8
gfxmenu (hd0,4)/message
title Linux-2.6.13-test1-15.7-default_collinm_1
 root (hd0,4)
 kernel /vmlinuz-2.6.13-test1-15.7-default_collinm_1 root=/dev/sda6 vga=0x317 selinux=0    resume=/dev/sda9  splash=silent showopts
 initrd /initrd-2.6.13-test1-15.7-default_collinm_1

###Don''t change this comment - YaST2 identifier: Original name: linux###
title SUSE LINUX 10.0
 root (hd0,4)
 kernel /vmlinuz-2.6.13-15.7-default root=/dev/sda6 vga=0x317 selinux=0    resume=/dev/sda9  splash=silent showopts
 initrd /initrd-2.6.13-15.7-default

###Don''t change this comment - YaST2 identifier: Original name: failsafe###
title Failsafe -- SUSE LINUX 10.0
 root (hd0,4)
 kernel /vmlinuz-2.6.13-15.7-default root=/dev/sda6 vga=normal showopts ide=nodma apm=off acpi=off noresume selinux=0 nosmp noapic maxcpus=0 edd=off 3
 initrd /initrd-2.6.13-15.7-default

Il est maintenant possible de démarrer sur un et l''autre des noyaux. Les modules sont indépendants.

Si vous utilisez les pilotes Nvidia, une fois qu'ils sont installés vous pouvez démarré sur vos autres noyaux. Lancez NVIDIA-Linux-x86-1.0-xxxx-pkg1.run avec l'option -K. Vous allez ainsi avoir les pilotes pour le noyau en cours. Cette commande doit être faite pour chacun de vos noyaux.

dimanche 28 août 2005

3D DESKTOP


3D DESKTOP

3D DESKTOP est un programme OpenGL qui sert à changer de bureau virtuel. Quelques effets sont disponibles. Plus de plus amples renseignements consultés leur site web.
Installez le paquet: 3d Desktop dans votre distribution préférée. Nous allons maintenant modifier le fichier: 3ddesktop.conf. Sous SuSE ce fichier ce trouve dans: /etc/ . Si vous ne désirez pas que tous les usagers puisent l'utiliser, créer un fichier 3ddesktop.conf dans le répertoire : .3ddesktop. Écrivez le manager que vous utilisez ainsi que le mode que vous désirez utilisé. Les modes disponibles sont: carousel, cylinder, linear, viewmaster,priceisright, flip, et random. Des effets de zoom, couleur... sont disponibles.
wm           kde3
mode         random

Pour connaitre toutes les options:
3ddesk --help
Inscrivez: 3ddeskd dans un script telle que .xinitrc, .bashrc. Ainsi à chaque démarrage de votre serveur X, le serveur de 3d desk démarrera. J'ai mis le code ci-dessous dans un script nommé 3d.sh que j'ai mis dans .kde/Autostart/
if [ ! -f ~/.3ddesktop/pid ]; then
  echo Starting 3D-Desktop Server...
  3ddeskd --acquire=1000 --kde3
fi

Maintenant que le serveur de 3ddesk est exécuté au démarrage, il manque qu'à assigner des touches pour que 3ddesk fonctionne. Sous Kde, il faut démarrer le centre de configuration de kde,cliquer sur l'onglet: Régionalisation et accessibilité et ensuite sur KHotKeys. Nous allons maintenant devoir créer une action pour 3ddesk.
  • Créez une nouvelle action (bouton Nouvelle action), donnez-lui un nom
  • Créez un nouveau déclencheur (bouton Nouveau -> Déclencheur par raccourci), il faut choisir des touches pour changer de bureau virtuel.
  • Dans l'onglet action, cliquez sur Nouveau -> Commande / URL. Indiquez où se trouve: 3ddesk. (/usr/bin/3ddesk sous SuSE)
Maintenant lorsque vous allez appuyez sur les touches que vous avez assigné à 3ddesk, vous allez obtenir une image similaire à:





Le numéro en vert indique le bureau sélectionné.
Maintenant il reste plus qu'à épater les copains avec ces jolis effets graphiques.