Archive pour la catégorie ‘Informatique’

Asus A8V Deluxe et disque dur SATA2

Mardi 22 janvier 2008

Galère de disque dur : ma carte mère Asus A8V Deluxe refusait de reconnaitre mon nouveau disque dur Hitachi SATA2. Après quelques recherches, il s’avère que les contrôleurs SATA1 basés sur le chipset VIA VT6420 ne sont pas compatibles avec les disques SATA2 (alors que la norme SATA2 est prévue pour que les contrôleurs anciens puissent reconnaitre les disque dur récents).

La solution dans le cas présent est la suivante :

La carte mère A8V possède un deuxième controleur SATA/RAID de chez Promise - celui-çi est fonctionnel. Il faut donc brancher le disque sur les prises SATA/RAID, et activer dans le BIOS l’option Promise Raid Controler. Ceci fait apparaitre une nouvelle option que j’ai mis sur IDE, mais je ne suis pas certain de l’utilité de la chose.

Pour que le disque apparaisse sous linux, il suffit d’avoir les options SATA activées - le module du contrôleur se nomme sata_promise.

A noter que je n’ai pas cherché à booter sur mon disque SATA - mon système est toujours sur l’autre.

Dites non à la certification ISO de OOXML

Jeudi 30 août 2007

Depuis quelques années, le milieu de l’informatique de bureautique change, petit à petit. En effet, jusqu’à il y a encore peu de temps, les de fichier de la suite Office de Microsoft (les fichiers word et excel, entre autres) se posaient en standard de l’industrie, étant donné la domination écrasante de MS Office sur ses concurents. Qui n’a pas eu des galères avec ces formats de fichier, qui devenaient illisibles à chaque nouvelle version de Word … Mais comme je le disais, les choses bougent. De l’agacement généralisé est né une alternative : l’initiative OpenDocuments.

OpenDocuments offre un ensemble de formats de fichiers ouverts pour la bureautique. Dans les faits, ca signifie que si tous les éditeurs de type “word” supportent les formats OpenDocuments, vous pouvez ouvrir, éditer et sauvegarder un même fichier dans tous ces éditeurs. Fini le cauchemar du “ah, t’as pas la dernière version de Word, tu peux pas lire le fichier que je t’ai envoyé ?”

Les formats OpenDocuments ont été certifiés “standards ouverts” par l’ISO (l’organisation internationale de normalisation) en mai dernier, ce qui est un grand pas en avant pour la popularisation de ces derniers. Depuis quelques années, de plus en plus d’administrations dans le monde se tournent vers ces formats ouverts et OpenOffice, la suite bureautique de référence dans le domaine.

Quelle est la position de Microsoft dans tout ca ? Assez facile de deviner : l’adoption de formats ouverts met fin à leur monopole sur le monde de la bureautique. Quelle est donc leur réponse ? Proposer leur propre standard ouvert, naturellement ! Ce standard “ouvert”, c’est OOXML. Sauf qu’il n’a d’ouvert que le nom. Sa description est complexe, obscure, et fait souvent appel à des technologies Microsoft, que des tiers ne pourront donc pas développer. En clair OOXML est une sorte de Cheval de Troie visant à pourrir ou ralentir l’avancée des standards ouverts.

En ce moment, l’ISO est en train de statuer si oui ou non OOXML sera certifié “standard ouvert” ou non. Microsoft a fait du pressing pour que le tout passe en “Fasttrack”, l’examination rapide. La bonne nouvelle, c’est que dans plusieurs pays le vote s’est soldé par un NON.

La mauvaise nouvelle, c’est ce qu’il s’est passé il y a quelques jours en Suède : à la veille du vote, 23 entreprises ont payé les 2400$ de frais d’inscription leur permettant de participer au vote, et ont voté favorablement à OOXML. Naturellement, lesdites entreprises n’avaient jamais participé aux débats sur le sujet auparavant ; en revanche, toutes ces entreprises étaient en affaire avec Microsoft. Oui, l’argent achète l’influence …

Alors voila, ce n’est qu’une pétition en ligne, je doute que ca fasse des masses de remous dans un milieu corporatiste, mais allons y tout de même …

Non à OOXML

PS : aux dernières nouvelles, OOXML n’a **pas** obtenu la certification ISO ! :D

Jeudi 23 août 2007

Merci au grand *Loukoum* pour le lien. C’est totalement bluffant.

UNIX haters

Lundi 30 juillet 2007

Je viens de tomber sur ce bouquin : UNIX Haters. Quelques citations :

A propos du C++ (j’adore ce chapitre, qui détruit ce langage que je hais tant) :

Syntactic sugar causes cancer of the semi-colon.

–Alan Perlis

A propos de l’origine du langage C (qui, contrairement au C++, possède au moins une grammaire définie) :

Dennis and Brian worked on a truly warped version of Pascal, called “A.” When we found others were actually trying to create real programs with A, we quickly added additional cryptic features and evolved into B, BCPL, and finally C. We stopped when we got a lean compile on the following syntax:

for(;P(”\n”),R=;P(”|”))for(e=C;e=P(”_”+(*u++/
8)%2))P(”|”+(*u/4)%2);

–Ken Thompson

Après l’avoir survolé, ce bouquin fait beaucoup rire (pour peu qu’on soit informaticien), mais parfois franchement peur sur certains points.

Imprimer une brochure

Mercredi 30 mai 2007

Ma douce doit prochainement rendre un projet pour lequel elle a besoin d’imprimer des textes sous formes de brochures - des petits carnets format A5 constitués de pages A4 agraffées. Ca veut dire :

  • imprimer 4 pages par feuille : 2 au recto, 2 au verso
  • disposer les pages de manières à ce qu’en pliant et agraffant les feuilles au milieu, les pages soient dans l’ordre.

Sous linux, il y a pleins de petits outils bien pratiques. Pour faire tout ca, j’ai simplement eu besoin du package psutils, qui contiens tout ce qu’il faut. Voici comment, après quelques recherches, voici comment j’ai procédé.

Tout d’abord, les fichiers à imprimer doivent être au format postscript (.ps). Dans openoffice, il suffit de faire Imprimer, puis de sélectionner imprimer dans un fichier.

Le nombre total de pages (pages blanches comprises) doit être un multiple de 4. De plus, les pages doivent être dans un ordre bien précis. Par chance, il existe un petit programme qui permet de gérer tout ca : psbook.

psbook fichier.ps fichier.book.ps

fichier.book.ps contiens les pages mises dans le bon ordre, ainsi qu’autant de pages blanches que nécessaire (pour atteindre un multiple de 4).

Ensuite, on va disposer les pages deux par deux - et donc les passer au format A5 :

psnup -2 fichier.book.ps fichier.a5.ps

A partir de ce point, deux options s’offrent à vous :

vous n’avez pas accès à une imprimante recto-verso

il vous suffit alors :

  • d’imprimer les pages impaires de votre fichier
  • de les récupérer en sortie et les remettre en entrée à l’envers (attention, suivant la manière dont votre imprimante prend les feuilles, ca peut être à l’envers à l’endroit, ou à l’envers à l’envers - enfin je me comprends)
  • d’imprimer les paires du document

Et voila ! Il ne reste plus qu’à plier et relier avec quelques agraffes.

vous avez accès à une imprimante recto-verso

là il y a une étape intermédiaire de plus, mais c’est tellement plus gratifiant quand c’est terminé !

Il y a un petit problème que je vais essayer d’expliquer de manière imagée. Imaginez que votre main est une feuille. Posez là à plat. Au premier passage, l’imprimante écrit sur le dos de votre main. Mainteant, retournez votre main (dans l’axe du poignet, forcément) et l’imprimante écrit sur l’intérieur de votre main.

Si vous imprimez des pages A4 en disposition “portrait”, il n’y aura pas de problèmes. En revanche, si vous imprimez des pages en disposition “paysage”, votre verso sera dans le sens inverse. Donc, pour palier à ce problème, il faut inverser une page sur deux dans le fichier postscript. Attention, je vais faire un tour de magie.

pstops ‘2:0,1U(21cm,29.7cm)’ fichier.a5.ps fichier.final.ps

Grâce au programme pstops, on inverse une page sur deux. Grosso modo, ca veut dire :

  • “2:” = notre commande va traiter les pages modulo 2
  • “2:0″ = toutes les pages telles que page modulo 2 = 0
  • U(21cm,29.7cm) = retourner la page. On précise le format de la page car la rotation se fait autour du coin haut/gauche de la feuille. Du coup, il faut faire une translation à l’autre bout de la feuille.
  • “2:0,1 …” = pour les pages “modulo = 0″ on ne fait rien, pour les pages modulo = 1, on fait ce qui est marqué après. Ainsi, avec les virgules, on peut définir un comportement particulier pour chaque page

Et voila ! Avec ca, une page sur deux est inversée. Il ne reste donc plus qu’à imprimer.

Extraire le son d’un DVD

Jeudi 17 mai 2007

A l’époque ou je faisais des remixes amateurs de Björk, une des tâches les plues ardues était de trouver du matériel à remixer. J’entends par là obtenir une piste vocale propre sur laquelle on faire sa soupe.

Sauf qu’extraire la voix à partir d’un enregistrement sur CD (ou autre), ca ne se fait pas comme ca. En fait, c’est techniquement impossible, sauf si le morceau original s’y prête vraiment. Du coup, il y avait plusieurs astuces dont j’ai déjà parlé dans ce post - pour résumer, partir d’un remix aussi épuré que possible, ne prendre que des petits morceaux des paroles, et utiliser des filtres pour couper certaines fréquences.

Dans le post sus-mentionné,  je parles brièvement d’une autre technique, qui consiste à prendre un CD ou un DVD 5.1 - c’est à dire qui contiens 6 pistes sonores plutot que les deux canaux d’un enregistrement stéréo. L’intérêt, c’est que dans ce genre de mixages, on se retrouve parfois avec la voix (ou le truc qui nous intéresse) plus ou moins isolé sur un canal. C’est particulièrement flagrant dans les DVD de films, qui ont le plus souvent les voix sur le canal central.

Ainsi, en extrayant un seul canal du DVD, on peut parfois se retrouver avec une piste chant super propre, prête au remix. A l’époque, quelqu’un l’avait fait sur le DVD de Dancer in the Dark, ce qui nous avait permis d’avoir du matériel sympa pour les remixes.

Aujourd’hui, j’ai fouillé un peu et je viens de trouver la technique pour extraire les six canaux séparés d’un DVD en une ligne de commande :

mplayer -vo null -vc null -ao pcm -channels 6 dvd://0

avec ca, vous récupérez un fichier audiodump.wav a six canaux. On notera que c’est du 48khz, et pas du 44.1khz comme un CD audio. A partir de là, munissez vous de votre éditeur son préféré pour voir quel canal est le plus intéressant et l’isoler.

Gentoo + envy24control

Jeudi 17 mai 2007

Un jour, il faudra que je fasse un post complet sur la configuration de Gentoo pour la musique. Mais en attendant …

Je viens de découvrir un flag important à mettre dans make.conf :

ALSA_CARD=”le flag de la carte”

En l’occurence, pour moi, c’est ice1712. L’intérêt, par exemple, c’est que quand on compile media-sound/alsa-tools,  ca permet d’avoir automatiquement envy24control, le programme pour contrôler la delta44.

Détection de plagiat

Vendredi 27 avril 2007

Un collègue m’a parlé d’une application de la théorie de l’information il y a quelques jours. Je devrai récupérer des références plus précises prochainement - j’actualiserai donc cet article plus tard.

La technique est la suivante :

  1. prennez toutes les copies de vos élèves et zippez les.
  2. Zippez chaque copie séparément.
  3. Comparez la taille du zip contenant toutes les copies avec la somme des tailles des zips contenant une seule copie.
    • Si il n’y a pas de redondances entre les copies, la somme des zip sera environ égale au zip de la somme.
    • Plus il y a de redondances entre les copies, plus le zip de la somme est inférieur à la somme des zip.

La raison derrière cette propriété ? La compression zip utilise un algorithme qui recherche des schémas qui se répètent dans les fichiers compressés. Si une copie est plagiée sur une autre, la compression des deux fichiers ensembles sera plus efficace que la compression des deux fichiers séparés.

EDIT : voici l’article scientifique (en français) décrivant la technique en détail.

firefox : lancer une recherche dans un nouvel onglet

Vendredi 30 mars 2007

petite astuce en provenance de ce site. Dans firefo, il y a une barre de dialogue qui permet d’effectuer une recherche dans google, ou autre - ce qui est fort partique. Pour un usage d’autant plus facile :

  • CTRL-k déplace le curseur vers le champ de saisie de la recherche (ca évite de perdre son temps à cliquer).
  • Entrée exécute la recherche et envoie le résultat de la recherche dans l’onglet courant (pas toujours pratique).
  • Alt-entrée fait pareil, mais ouvre un nouvel onglet pour afficher le résultat de la recherche.

Si vous voulez que le nouvel onglet s’ouvre automatiquement (sans taper Alt, donc), il suffit d’aller sur la page about:config (à taper dans la barre d’adresse), de rechercher la clef browser.search.openintab, et de la passer à true.

Ce que je reproche au CSS

Mardi 30 janvier 2007

Suite à un commentaire de ce très cher François Samin (longue vie à lui), j’ai tapé un commentaire de trois kilomètres. A tel point qu’en fait, j’en fais un article - que dis-je, une profession de foi.

Je ne sais pas trop ce que tu as voulu faire, mais au boulot j’en manipule assez souvent sans trop de probleme. Il faut juste connaitre les limitations des navigateurs et de faire des choses simples.

Il y a plusieurs avantages à s’emmerder à faire ça:
- c’est classe
- c’est à la mode
- dans un gros projet MVC2, ça te permet dans tes JSP (ou autres) de t’abstraire de la mise en forme. Finalement ça ressemble à un découpage MVC dans la partie “Vue” de ton projet, par exemple:
1. la CSS c’est la “vue” : la disposition, le visuel de ta page
2. la JSP c’est le “modèle” : la logique d’affichage
3. le JS c’est le “controleur” : le coté “dynamique” de ta page

Permet moi de ne pas partager cette vue aussi optimiste ;)

Le langage CSS en lui même te permet de définir tout un tas de propriétés applicable à N éléments de ta page, certes. Cependant, le rendu de ta page est extrêmement dépendant de l’ordre dans lequel les éléments apparaissent au sein de ton code HTML. C’est particulièrement flagrant dès qu’il s’agit de gérer du positionnement d’éléments un tant soit peu avancé.

De plus, l’héritage entre les classes CSS n’est pas dépendant du code CSS en lui même, mais de l’imbrication des éléments auxquels ces classes sont appliquées. C’est quelque chose que je trouve profondément contre-intuitif, mais c’est surement dû à mon passif en programmation objet.

Et pour finir, le CSS est au final un langage de programmation batardisé, qui ne s’assume pas. Par exemple, le CSS se targue de permettre la redéfinition du style de tout un site en ne modifiant que le fichier de style. Cependant, si j’utilise un code couleur particulier dans plusieurs classes CSS, je vais devoir modifier ce code couleur à plusieurs endroits dans mon CSS. Quid de la définition d’une simple variable globale ? Non surtout pas ce serait trop compliqué …

Au final, le soit-disant contrôle sur l’apparence de la page est extrêmement réduit car contraint par les choix de design du code HTML qui fait appel au CSS.

Une alternative : si il était possible de définir les classes CSS comme des classes en programmation objet, avec des schémas d’héritage directement entre les classes au sein du fichier CSS, alors il pourrait y avoir une plus grande indépendance à l’aide d’un schéma de déclaration particulier :

- d’un coté, des classes définissant les styles graphiques (eg couleur1, couleur2, couleur3, bordure1, bordure2 …)
- de l’autre, des classes servant de “pont sémantique” avec les éléments de la page (titre, surtitre, imporant, paragraphe …) ; la définition de ces classes se faisant uniquement par le biais d’un héritage multiple des classes de styles graphiques.

Et encore, la technique que je présente ici serait bancale pour tout ce qui touche au positionnement des éléments, vu qu’il est relatif à l’imbrication des balises HTML.

Après, si quelqu’un me dit qu’on peut faire de l’héritage directement entre les classes CSS et définir des variables, je veux bien retirer tout ce que j’ai dit … après tout, je suis loin d’être un pro du CSS ;)

EDIT : j’ajouterai qu’au final, le problème repose sur le fait qu’avec le design CSS, on tente de donner un role de structuration de l’information au code HTML, alors qu’à la base il a été étudié pour gérer la forme de l’information. Si à la place du HTML on avait des fichiers dont les balises servent le fond et non la forme, alors les feuilles de styles pourraient réellement s’occuper de la forme. Oh mais tiens, ca ressemblerait t’y pas au couple XML/XSLT, tout ca ?