Looking for Computer Science  & Information Technology online courses ?
Check my new web site: https://www.yesik.it !

Apache Derby permet de créer des tables virtuelles. C'est à dire des tables dont le contenu n'est pas stocké par Derby, mais dynamiquement généré par du code Java.

Concrètement, il s'agit d'écrire une méthode Java publique statique renvoyant une instance de ResultSet. Si le principe n'est pas compliqué en soi, la mise en oeuvre à partir de zéro est un peu fastidieuse, ne serait-ce que par le nombre de méthodes à coder pour satisfaire l'interface ResultSet de Java.En savoir plus...

Scala (pour Scalable Language) est un langage pour la plate-forme Java (et .NET) dont l'objectif principal est de pouvoir s'adapter à la complexité des tâches que l'on réalise avec. Pour atteindre ce but, Scala mêle des concepts liés à la programmation orientée objets et à la programmation fonctionnelle.En savoir plus...

Tables virtuelles.png

Tables virtuelles — Dans l'approche traditionnelle, pour manipuler des données externes dans une base, il est nécessaire de passer par une phase d'import. L'utilisateur qui fait des requêtes travaille donc sur des données qui ne sont pas synchronisées avec la réalité.

Avec les tables virtuelles les données seront récupérées à la demande lors des requêtes.


En savoir plus...

Le répertoire /etc/profile.d est un répertoire qui contient des fragments (snippets) de scripts d'initialisation. L'objectif de ce dossier est d'avoir une approche plus modulaire qu'en allant modifier directement des scripts d'initialisation monolithiques. En savoir plus...

JBoss Application Server (JBoss AS – ou plus simplement JBoss) est un serveur d'application Java très populaire dans le monde Linux/Unix. Cette popularité tient tant au fait que ce soit un logiciel libre, qu'à la fiabilité et la souplesse de cet outil.

Nous allons voir dans cet article comment installer JBoss AS 5 en environnement Linux. Les manipulations décrites ici ont été testées sur une distribution Debian/Lenny – mais le tout devrait pouvoir s'adapter quasiment sans modification à une autre distribution Linux – ou à un autre système Unix-like. En savoir plus...

Sur certaines distributions Unix-like, le fichier /etc/environment permet de définir des variables d'environnement à l'échelle du système.

Mais /etc/environment ne fait pas partie des fichiers standards à proprement parler: en effet, sur la plupart des systèmes, son chargement est lié à la présence du module PAM ( Pluggable Authentication Modules – Un mécanisme flexible pour gérer l'authentification des utilisateurs en environnement Unix-like. Plus... ) . Celui-ci permet une gestion modulable (plugable) de l'authentification des utilisateurs. C'est lorsqu'un logiciel utilise PAM (et plus précisément pam_env), que ce dernier procède au chargement de /etc/environment. Et à l'initialisation dans le contexte du logiciel appelant des variables d'environnement qui y sont définies. En savoir plus...

Un session bean est un objet métier Java destiné à être déployé sur un serveur d'application. Il existe deux sortes de session beans:

stateful session beans
session bean avec état – ceux-ci conservent leur état entre deux appels de méthodes.
stateless session beans
session beans sans état – leur état n'est pas garanti entre deux appels de méthodes.

Dans cet article, nous allons voir comment créer un session bean sans état géré par JBoss AS, et y accéder à partir d'une application Java distante. En savoir plus...

Les compréhensions de listes (list comprehensions – en anglais) sont à la fois un outil très pratique et puissant offert par Python – et une des constructions dont la syntaxe est la plus difficile à appréhender.

L'idée de cette construction est de pouvoir facilement effectuer des projections de listes. C'est à dire créer une nouvelle liste dont les éléments sont construits à partir des éléments individuels d'une liste originale.En savoir plus...

Jython est livré avec le module xzJDBC qui permet d'accéder à une base de données à partir d'une API (Application Programming Interface – L'ensemble des spécifications de classes, méthodes, fonctions, constantes, etc. qui permettent d'utiliser une technologie dans un programme.) compatible avec Python DB API 2.0. Néanmoins, il est aussi possible d'utiliser JDBC à partir de Jython pour accéder à une base de données. C'est utile, par exemple si vous êtes déjà familier de JDBC. Ainsi, vous pouvez accéder à la simplicité du langage Python – sans pour autant devoir apprendre une nouvelle API. Et c'est justement ce que nous allons faire ici.En savoir plus...

Commande PAM-aware.png

PAM — Quand une commande PAM-aware est invoquée – que ce soit par un utilisateur ou le système – elle charge le module PAM ( Pluggable Authentication Modules – Un mécanisme flexible pour gérer l'authentification des utilisateurs en environnement Unix-like. Plus... ) . Celui-ci examine le dossier /etc/pam.d ou à défaut /etc/pam.conf à la recherche de la configuration associée à ce programme.
La configuration précise quels modules enfichables doivent être chargés. Ces modules offrent diverses fonctionnalités pour assurer l'authentification des utilisateurs, la gestion de leurs droits ou encore la configuration de leur environnement. Par exemple, pam_time(8) permet de restreindre les horaires d'accès au système. Ou encore pam_env(8) permet d'initaliser les variables d'environnement à partir d'un fichier comme /etc/environment.


En savoir plus...

PostgreSQL est un système de gestion de bases de données relationnelles (SGBD-R) des plus évolués. Bien qu'étant un logiciel libre, PostgreSQL peut rivaliser avec ses cousins commerciaux. Mais toutes ses fonctionnalités viennent aussi avec leur lot de complexité. Dans cet article, nous allons voir comment installer PostgreSQL. Par ailleurs, nous verrons comment créer une première base pour valider l'installation de ce serveur de bases de données. Enfin, nous terminerons en jetant les bases de la gestion des utilisateurs sous PostgreSQL. En savoir plus...

Il est possible d'appeler n'importe quelle méthode Java publique statique à partir de Derby.

C'est utile pour définir vos propres fonctions. Mais aussi pour appeler les méthodes Java standards. Ainsi, pour accéder aux propriétés Java à partir de Derby, il suffit de déclarer une fonction SQL qui correspond à java.lang.System.getProperty... En savoir plus...

Apache James est un serveur de courrier électronique écrit en Java. Mais c'est aussi un container de mailet. Qu'est-ce que ça veut dire? Simplement que James peut charger des classes Java que vous avez écrites pour associer un traitement personnalisé à la réception d'un courrier électronique. Autrement dit, une mailet est l'équivalent pour le mail d'une servlet pour les requêtes web. Tout un monde de possibilités s'ouvre à nous, non? Dans cet article, nous allons voir comment créer une mailet et configurer Apache James pour l'utiliser.En savoir plus...
La base de données est un élément critique dans l'architecture d'une application d'entreprise. Celle-ci se doit de pouvoir traiter efficacement de grandes quantités de données. Et elle peut être interrogée simultanément par de nombreux clients – éventuellement au travers d'un réseau public comme internet. Dans ces conditions on comprend qu'il est plus que nécessaire de pouvoir protéger les informations qui transitent entre la base de données et ses clients. Nous allons voir dans cet article comment utiliser SSL pour sécuriser la communication avec un serveur de bases de données MySQL.En savoir plus...
Depuis 2006, Oracle propose une version gratuite de son produit phare. Il est donc possible de librement télécharger une version du SGBD Oracle appelé Oracle Express Edition (Oracle XE). Il s'agit en fait d'une version limitée de Oracle 10g. Limitée, certes, mais très bien pour découvrir cet outil ou pour travailler à la maison.

Dans cet article, nous allons voir comment installer Oracle XE en environnement Linux/Debian. Par ailleurs nous découvrirons aussi deux clients fournis avec le serveur, à savoir Oracle Application Express et SQL*Plus. En savoir plus...

CouchDB est une base de données orientée documents. En simplifiant, on pourrait dire qu'une base CouchDB n'est rien de plus qu'une collection d'objets hétérogènes, dotés chacun de leurs propres attributs. Dans le vocabulaire officiel de CouchDB, ces objets sont appelés des documents. Mais vous pouvez bien sûr mettre tout ce que vous voulez dans une base CouchDB: des utilisateurs, des informations clients, votre inventaire, etc.

Pour ce premier article, nous allons voir comment installer CouchDB en environnement Linux Debian/Lenny à partir des sources. Ce dernier point est important, si comme moi vous souhaitez installer la toute dernière version stable de CouchDB. Et non pas celle disponible dans votre gestionnaire de paquet.En savoir plus...

Il vous est sans doute déjà arrivé de devoir renommer une base de données. Par exemple, parce que vous constatez après l'avoir créée que vous vous êtes trompé dans son nom. Ou parce qu'au cours du développement votre base a évolué et que son nom ne reflète plus la réalité de votre projet. Ou pour plein d'autres raisons qui vous sont personnelles…

Malheureusement, MySQL ne supporte pas la commande ALTER DATABASE ... RENAME TO ... Mais il existe d'autres solutions. Afin de vous aider, cet article présente non pas une mais quatre techniques – enfin trois sérieuses et une à éviter – pour renommer une base MySQL. En savoir plus...

Vous est-il déjà arrivé de devoir exporter des données d'une base à une autre? Entre deux bases gérées par le même serveur, c'est facile. Entre deux bases gérées par deux instances différentes du même SGBD-R (Système de Gestion de Bases de Données Relationnelles) , c'est faisable. Mais en environnement hétérogène, c'est une autre histoire! Et la solution consiste souvent à installer spécifiquement un outil de gestion multi-base – voire à écrire en vitesse un utilitaire pour effectuer le transfert.

Or, depuis sa version 10.6, ij, l'interface en ligne de commande d'Apache Derby, permet d'effectuer de tels transferts en quelques lignes de script. Et cela entre n'importe quelles bases compatibles avec JDBC! C'est ce que nous allons voir maintenant. En savoir plus...

Au sens strict, User Mode Linux (UML) est un portage du noyau Linux vers Linux. L'idée peut sembler saugrenue au premier abord, mais ouvre des perspectives intéressantes en offrant la possibilité de démarrer un nouveau noyau comme un processus utilisateur ordinaire.

Vous l'avez compris, ce principe s'apparente à la notion de virtualisation tellement à la mode ces temps-ci. Comparativement à d'autres technologies comme Xen ou VMWare, UML a l'inconvénient de ne pouvoir lancer que des noyaux Linux. Pas d'autres OS. Par contre, une instance du noyau Linux lancée par UML tourne entièrement en mode utilisateur. Et n'exige pas d'avoir un noyau spécial sur la machine physique qui sert d'hôte. C'est pratique quand vous ne pouvez pas – ou ne voulez pas – installer un noyau spécifiquement patché pour faire tourner un système de virtualisation. Ou encore, comme c'est le cas avec mon portable, quand le hardware ne supporte pas ces solutions ou que vous ne voulez pas vous priver de fonctionnalités incompatibles comme la gestion d'énergie ACPI.

Dans cet article, nous allons faire nos premiers pas avec User Mode Linux en créant et démarrant notre toute première machine virtuelle UML. Il s'agira ici d'une machine virtuelle sous Debian/Lenny – sans accès au réseau. En savoir plus...

Aujourd'hui WEP est déprécié au profit de son successeur Wi-Fi Protected Access (WPA ou mieux WPA2). Pour fonctionner correctement, WPA suppose que le client et son point d'accès soient tous deux configurés pour utiliser ce protocole. Configurer la borne ne pose généralement pas de problème – et se limite souvent à activer l'option adéquate et à définir une passphrase dans l'interface d'administration. Par contre, configurer votre ordinateur sous Linux peut être plus problématique. Surtout si vous ne souhaitez pas utiliser les outils avancés livrés avec des environnements graphiques lourds comme Gnome. Si vous êtes dans ce cas, voici donc comment établir une connexion à un réseau WiFi sécurisé par WPA sous Debian. En savoir plus...

Cet article décrit comment compiler un noyau Linux sous Debian. Il y a de nombreuses raisons pour lesquelles vous pourriez avoir envie de vous frotter à cet exercice: Pour optimiser votre système, parce que le noyau standard de votre distribution est incompatible avec votre matériel. Ou tout simplement par curiosité. Et ce ne sont là que quelques exemples.

Mais, si l'exercice est parfois redouté, vous allez voir qu'avec les outils disponibles dans une distribution comme Debian, c'est en fait une tâche presque triviale! En savoir plus...

Avec un système de virtualisation comme User Mode Linux, chaque machine virtuelle possède son propre disque – généralement sous la forme d'un fichier image. Or, une image typique fait de quelques centaines de méga-octets à plusieurs giga-octets. Même si aujourd'hui l'espace disque est relativement bon marché, il n'en reste pas moins que la consommation augmente vite. Et c'est d'autant plus dommage qu'une bonne partie de cet espace est en réalité gaspillé: En effet, il n'est pas rare que plusieurs images aient en commun une part importante de leur contenu. Ne serait-ce que le système de base...

Pour palier à cet inconvénient, UML propose un mécanisme de copie en écriture (Copy On WriteCOW). Avec ce système, une image peut être partagée par plusieurs machines virtuelles, et seules les modifications (les écritures) qui les distinguent sont stockées dans le fichier COW spécifiques la machine.En savoir plus...

User Mode Linux vous permet de créer des machines virtuelles Linux qui tournent en mode utilisateur sur votre machine réelle. Si pouvoir lancer une machine de manière isolée peut être utile, à un moment ou un autre, vous souhaiterez sans doute connecter une machine virtuelle User Mode Linux au réseau physique. Non seulement, c'est possible, mais il existe plusieurs manières de faire.

Ici, nous commencerons par créer un tunnel pour connecter la machine virtuelle à son hôte. Puis nous établirons un pont qui permettra de relier ce tunnel au réseau externe. Chose intéressante, ces techniques ne sont pas propres à UML – et peuvent être recyclées dans d'autres contextes. En savoir plus...

Un des avantages que je trouve à User Mode Linux est de pouvoir emmener sur mon portable différents serveurs sous la forme de machines virtuelles que je peux démarrer au gré de mes besoins. Par ailleurs, la totale isolation entre ces machines me permet d'éviter toute interférence ou conflit de configuration. Enfin, j'y vois aussi la possibilité de fournir des serveurs clé en main sous la forme d'images disques pour permettre à mes étudiants d'effectuer des manipulations sur un système, sans devoir nécessairement l'installer eux-même, ni même être root sur leur machine.

D'un point de vue opérationnel, je suis amené à connecter mon portable sur différents réseaux. Donc avec une adresse IP susceptible de changer. Et pourtant, je souhaiterais conserver des adresses IP fixes pour mes serveurs virtuels. Le tout en leur permettant d'accéder tout de même au réseau physique.

Une véritable quadrature du cercle! Heureusement, User Mode Linux – et Linux en général – offrent des possibilités de configuration qui vont me permettre de mettre en place ce réseau User Mode Linux sur machine nomade En savoir plus...

Ça y est? Vous avez installé CouchDB? Il est temps maintenant de s'en servir! Dans cet article, nous allons aborder les concepts de base et voir comment accéder à une base CouchDB via l'interface REST.En savoir plus...

Dans MediaWiki, il est possible d'avoir plusieurs pages qui mènent au même article. C'est un comportement que vous avez peut-être déjà eu l'occasion d'observer sur Wikipedia où, par exemple, les pages Wiki concept, WikiWiki ou Wiki-wiki mènent toutes à l'article Wiki. De telles pages sont appelées pages de redirection. Or s'il est possible à un éditeur de créer des redirections vers un autre article du même wiki, pour prévenir les abus MediaWiki n'accepte pas directement les redirections vers un site externe.

Occasionnellement, c'est une limitation que vous pouvez souhaiter contourner. Ainsi, dans mon cas particulier, suite à la migration de certaines pages d'un wiki à un autre, je souhaitais pouvoir rediriger de façon transparente les utilisateurs vers le nouveau site. Ici, le site destination était aussi sous MediaWiki. Mais ça n'est pas une obligation. Le même principe serait donc applicable pour rediriger vos visiteurs vers un forum, un blog ou n'importe quel autre site.

Nous allons donc voir ici comment faire une redirection sur un site externe avec MediaWiki. En savoir plus...

Les pickles sont une spécialité anglaise. Il s'agit de petits légumes conservés dans du vinaigre à la manière des cornichons. Ce n'est pas du tout de cela que nous allons parler ici. Mais plutôt du module Python pickle dont le rôle est de conserver et retrouver des objets python entre deux exécutions d'un programme.

En utilisant un vocabulaire un peu plus formel, pickle est une solution de sérialisation/désérialisation des objets Python. Et c'est ce mécanisme que nous allons brièvement introduire ici. En savoir plus...

Une des grandes forces de Debian est sa robustesse. Surtout si vous installez la version stable. Le prix à payer pour cette robustesse est d'accepter de ne pas disposer des versions les plus récentes des logiciels. Voire, d'être contraint d'utiliser des versions datant parfois de plusieurs années.

Ce n'est pas nécessairement un problème sur un serveur, où il est souvent plus souhaitable de faire tourner des logiciels éprouvés, plutôt que de disposer des toutes dernières nouveautés. D'autant plus que les mises à jour de sécurité, elles, sont régulièrement diffusées.

Par contre, c'est plus gênant si vous désirez essayer une version plus récente de votre logiciel préféré sur votre machine personnelle. Ou si vous voulez exploiter les nouveautés d'une bibliothèque dans vos développements.

Traditionnellement, la solution serait de dire "tant pis pour les paquets, j'installe à partir des sources...". Si cela reste sans doute nécessaire quand vous voulez le nightly build d'un produit – il y a tout de même de grandes chances que vous trouviez une version adaptée à vos besoins dans les dépôts Debian testing ou unstable. D'un autre côté, sacrifier la stabilité de l'ensemble de votre système Debian juste pour une bibliothèque ou une application, c'est un peu dommage.

Heureusement, une solution intermédiaire existe: en effet, apt(8), le gestionnaire de paquets de Debian, accepte d'installer des logiciels issus de différentes versions de Debian. C'est ce que nous allons voir maintenant. En savoir plus...

Dans un article précédent [1], je suggérais d'utiliser dnsmasq comme relais DNS pour un réseau virtuel de machines User Mode Linux.

Ici je vais pousser un peu plus loin l'exploration de cet outil en vous montrant comment l'utilisation conjointe de ses services DNS et DHCP dans Dnsmasq permet de faciliter encore plus la mise en place d'un réseau. Si je m'appuie dans cet article sur un réseau virtuel basé sur User Mode Linux, cette solution peut très bien s'appliquer à d'autres technologies de virtualisation, ou encore à des réseaux physiques de taille modeste (disons jusqu'à un millier d'hôtes). En savoir plus...

Il existe deux grandes familles de systèmes GNU/Linux. Ceux basés sur Debian et ceux basés sur RedHat. Dans ma pratique quotidienne, j'utilise Debian. Mais à l'occasion, j'ai besoin d'aller voir ce qui se passe de l'autre côte du miroir. Malheureusement, mon portable ne s'entend pas bien avec Xen. Ce qui m'a amené à utiliser User Mode Linux à la place. Cette solution est sans conteste moins performante, mais a aussi ses avantages. Notamment sa simplicité de mise en œuvre. Voici donc comment faire tourner une distribution CentOS sous User Mode Linux sur un hôte tournant sous Debian.En savoir plus...

Il vous est peut-être déjà arrivé de devoir récupérer des listes de contacts à partir d'un tableur pour les importer dans le logiciel de messagerie comme Thunderbird. Si importer au coup par coup quelques contacts peut se faire à la main, l'opération devient vite fastidieuse dès que leur nombre excède quelques unités. Heureusement, il y a moyen d'importer en masse des contacts dans Thunderbird. Et comme nous allons le voir, la manipulation n'a rien de trop compliqué. Et repose essentiellement sur la connaissance du format d'échange CSV... En savoir plus...

Image:Angry (Smiley).png

Il n'y a rien qui m'énerve plus que les gens qui se sentent obligés d'envoyer en pièce jointe un document Word pour transmettre un message de trois lignes! Pourquoi? Tout d'abord parce que cela impose que je puisse relire ce format propriétaire. Ensuite, c'est me faire prendre un risque, puisque les .doc sont susceptibles de contenir du code malveillant. Par ailleurs, toujours au chapitre du manque de respect pour son correspondant, quid des destinataires ayant un handicap nécessitant une technologie d'assitance pour lire vos messages? Ou qui les consultent sur leur téléphone portable? Enfin, ce genre de message a une taille qui peut atteindre des centaines – voire des milliers – de kilo-octets juste pour transmettre quelques mots. A titre de rappel, un caractère de texte occupe un octet. Et un kilo-octets, c'est un millier d'octets. Or, quand je reçois en attachement un .doc de 800ko, il contient rarement 800000 caractères de texte...

[...]

Image:Funny (Smiley).png

Bref, vous l'avez compris, pour mon courrier quotidien, j'utilise systématiquement le format texte brut (plain text en anglais). C'est simple, rapide et efficace. Malheureusement, il arrive parfois que cette simplicité ne soit trop austère. En particulier pour les documents commerciaux. J'ai été confronté à ce cas récemment pour l'envoi d'une newsletter. Évidemment, celle-ci doit être attractive. Et celle-ci doit pouvoir être lue immédiatement – sans imposer au destinataire de télécharger un document ou d'ouvrir une pièce jointe (les mauvaises langues diront « sans lui en laisser l'opportunité »). Si l'on se reporte au tableau précédent, le meilleur compromis serait d'utiliser le format HTML. D'autant plus que la plupart des clients de messagerie actuels sont capables de l'afficher. L'idéal étant même d'inclure une copie du document sur votre site web. Et de fournir un lien vers ce document pour les destinataires utilisant un client de messagerie incapable de lire le HTML – ou configuré pour ne pas le lire. Avec toutes les réserves émises plus haut, voici donc comment envoyer une page web avec Thunderbird.En savoir plus...

Il est de bon ton aujourd'hui de distinguer la plate-forme Java du langage Java. En effet, si les deux étaient intimement liés dans le modèle initial proposé par Sun en 1995, il faut bien avouer que les choses ont bien changé depuis! De nos jours, on peut développer pour la plate-forme Java avec des dizaines – voire des centaines – de langages. Certains interprétés, d'autres compilés. Certains génériques, d'autres spécialisés. Bref, il y en a pour tous les goûts!

A titre personnel, je trouve cette situation rafraîchissante. Surtout après des années de concentration (de crispation?) autour de quelques langages aux concepts et à la syntaxe presque identiques... Et puis, c'est toujours un exercice intellectuel profitable – et dans mon cas agréable – que de découvrir un nouveau langage. D'autant plus quand c'est l'occasion de (re-)mettre en lumière un paradigme de programmation occulté par le bulldozer de l'orienté objets impératif à la C++.

D'un point de vue plus pragmatique, disposer de tous ces langages pour la plate-forme Java offre la possibilité de pouvoir choisir le langage le plus adapté à un domaine ou une pratique. Sans pour autant oblitérer la compatibilité avec le code existant ou d'autres parties du projet écrites dans un autre langage, puisque l'interropérabilité est garantie par la plate-forme Java.

Ici, nous allons nous intéresser à un langage qui monte en cette année 2010. A savoir Clojure. En savoir plus...

A l'occasion de mon passage à l'ADSL, je découvre avec joie le monde de la téléphonie. C'est l'occasion de comprendre ce qui se cache derrière des termes comme RTC, ADSL et dégroupage...En savoir plus...
Le ZyXEL Prestige P-660H-D1 [ Voir sur Amazon.fr] est un routeur-modem ADSL destiné au marché SOHO (Small Office/Home Office – Un segment de marché qui correspond aux entreprises de 1 à 10 employés.) . Malgré un prix abordable entre 50€ et 80€ c'est un appareil bourré de fonctionnalités et capable de s'adapter à de nombreuses situations. Comme beaucoup de produits ZyXEL (tous?) ce routeur est équipé de l'OS propriétaire ZyNOS, et il est possible de l'administrer à distance par telnet. C'est à dire sans passer par l'interface web. Pour moi, c'est un plus, car cela me permet d'accéder à l'ensemble des commandes – y compris les fonctionnalités avancées – sans perdre du temps à les rechercher au travers des différents écrans de l'interface web. En outre, la ligne de commande se révèle encore plus pratique quand on a plusieurs routeurs à administrer: en effet il est bien plus efficace de transférer un fichier contenant quelques commandes plutôt que cliquer à droite et à gauche dans l'interface graphique! Bref, c'est un argument qui m'a incité à tester ce routeur pour mon usage personnel...En savoir plus...
Vous venez d'acheter un nouveau matériel réseau. Et comme il se doit, son adresse factory est 192.168.1.1. Comme il se doit également, le manuel suggère de changer l'adresse IP de votre machine pour pouvoir accéder facilement à sa configuration. Mais ce n'est peut-être pas souhaitable...

Pour ceux qui comme moi ne veulent pas changer systématiquement leur adresse IP pour configurer un nouveau matériel, voici donc comment router des paquets IPv4 vers une machine dont l'adresse est sur un autre réseau.En savoir plus...

Sous Debian, le fichier /usr/sbin/policy-rc.d permet à l'administrateur de définir une politique pour le démarrage automatique des services du système. Ce script, s'il est présent, est invoqué par invoke-rc.d(8) pour déterminer si un service peut être démarré ou pas.En savoir plus...
Techniquement, il est possible d'installer un système Debian sur une clé USB, et de s'en servir comme s'il s'agissait d'un disque dur. Mais c'est sans compter qu'une mémoire flash (comme celle qui équipe les clés USB) a un nombre de cycles de lecture/écriture limité. Or, en fonctionnement normal, un système Unix sollicite beaucoup le disque. Bref, ce n'est pas l'idéal pour la durée de vie de votre clé.

Face à ce problème, quand on désire disposer d'un Linux bootable sur une clé, une approche plus viable consiste à appliquer la même technique que pour un Live CD. A savoir faire une installation capable de fonctionner en sollicitant au minimum le média contenant le système – et surtout sans requérir la possibilité d'y écrire. Une installation Live atteint ce but en utilisant un RAM disk, souvent couplé à un système de fichiers Copy on Write comme AuFS ou UnionFS, afin de simuler l'existence d'un média disponible en écriture. Le corollaire étant que, dans ce mode de fonctionnement, toutes les modifications effectuées sur un système Live sont perdues à l'arrêt de ce système. Ce qui peut aussi être vu comme un avantage, puisqu'ainsi on peut raisonnablement supposer qu'à chaque démarrage le système est propre et non compromis. Par contre, dans un contexte où la sécurité est importante, on veillera quand même à utiliser un média Write Once Read Many ou équipé d'un dispositif physique pour prévenir l'écriture sur celui-ci. Mais ce n'est pas mon contexte ici...

D'un point de vue pratique, faire une installation Live CD – ou dans notre cas Live USB – est une tâche relativement fastidieuse. Mais Debian Lenny nous facilite le travail grâce à l'outil live-helper(7), dont je vais maintenant me servir pour installer Debian Live sur une clé USB.En savoir plus...

Si vous avez déjà consulté des pages scientifiques sur Wikipedia, vous avez peut-être constaté que MediaWiki est capable d'afficher des formules mathématiques.

Par défaut, sur une installation de MediaWiki cette possibilité est désactivée. En effet, elle repose sur LaTeX pour la génération d'images contenant les formules. Et sur texvc, un programme spécifique écrit en OCaml pour valider les formules avant leur traitement. Autant dire que ce ne sont pas des conditions faciles à remplir en hébergement mutualisé.

Heureusement, il existe des solutions alternatives. Ainsi, nous allons voir ici qu'il est aussi possible d'utiliser mimeTex pour afficher des formules mathématiques dans MediaWiki.En savoir plus...

Zenity.jpg

Zenity — Zenity est une dépendance de nombreux paquets. A l'occasion vous verrez peut-être apparaître son nom lors de l'installation d'un logiciel.

Quand on installe un paquet avec le gestionnaire de paquets apt(8), celui-ci indique la liste des dépendances nécessaires. Or, l'examen de cette liste est parfois l'occasion de découvrir un paquet mystère. Un de ceux dont le nom ne vous dit rien – mais qui vous intrigue au point de vouloir en savoir plus. C'est ainsi que j'ai découvert Zenity.

Après une rapide recherche, une partie du voile est levée: en deux mots, Zenity permet d'afficher des boîtes de dialogues Gtk+ à partir de la ligne de commande ou de scripts shell [2]. Voici qui mérite de s'y attarder quelques minutes... En savoir plus...

File:PDF.png

Le format PDF (Portable Document Format) est le standard de facto pour l'échange de documents numériques établi par la société Adobe depuis 1993.

Parmi les avantages des fichiers PDF, il y a la possibilité de visualiser un document sans avoir à posséder le logiciel qui a servi à le produire. De plus, le document apparaîtra identique à l'original – ou très proche – et cela indépendemment du système d'exploitation, l'environnement (polices de caractères) ou les caractéristiques matérielles de la machine sur laquelle il est visualisé.

Le format PDF est d'autant plus répandu que depuis 2008 il est devenu un standard ouvert normalisé par l'ISO sous la référence ISO/IEC 32000-1:2008.

Historiquement, un pseudo-pilote d'impression était nécessaire pour générer un PDF à partir de n'importe quelle application capable d'imprimer. Mais, aujourd'hui de plus en plus de logiciels sont directement capables d'exporter leurs documents au format PDF. Pour toutes ces raisons, le format PDF est très commun pour l'échange de documents.

Par contre, un problème se pose quand plusieurs documents PDF doivent être réunis. En effet, un simple copier-coller n'est pas possible – contrairement à ce que l'on pourrait faire avec des fichiers de traitement de texte, par exemple.

Une solution est d'utiliser GhostScript. Il s'agit d'un interpréteur capable de relire des documents PDF (et PostScript) pour les convertir ensuite dans un autre format graphique. Par exemple, pour les imprimer sur une imprimante incapable de gérer le PDF en natif. Mais ce n'est pas là le seul usage de GhostScript, comme nous allons le voir maintenant.En savoir plus...

Il vous est peut-être déjà arrivé de vous retrouver avec une collection d'images pleine page – par exemple issues d'un scan – et de souhaiter les (ré)assembler en un seul document PDF.

La solution réside dans l'utilitaire convert de la suite de logiciels ImageMagick. En deux mots, ImageMagick est un ensemble d'outils en ligne de commande (donc sans interface graphique) destinés à manipuler des images. Et, parmi tous ces utilitaires, convert est chargé de la conversion d'un format de fichier graphique à l'autre. Ainsi, convert peut être utilisé pour convertir des PNG en JPEG, des GIF en TIFF, ou n'importe quelle autre combinaison parmi une centaine de formats différents.En savoir plus...

En standard Debian, comme de nombreuses autres distributions Linux ou Unix-like est livrée avec différents outils qui permettent de graver un CD en ligne de commande. D'un autre côté, si ces outils sont présents, il n'est pas toujours facile de se souvenir lequel utiliser ni dans quelles conditions. J'espère qu'à la lecture de cet article les choses seront plus claires.En savoir plus...
Python dispose en standard de fonctions pour la résolution de noms comme socket.gethostbyname ou socket.getaddrinfo. Pour beaucoup d'applications, c'est suffisant. Mais le DNS permet bien plus de choses que simplement associer une adresse IP à un nom. Si vous voulez exploiter toutes les possibilités offertes par le DNS, il faudra aller au delà. Et c'est exactement cela que permet la bibliothèque Python dnspython.En savoir plus...