Obsidian a écrit 5291 commentaires

  • # Les commentaires ?

    Posté par  . En réponse au message script sed qui ne fonctionne pas. Évalué à 2.

    Voir le commentaire sur les commentaires :

    Most versions of sed only allow one line as a comment, and it must be the first line. SunOS allows more than one comment, and these comments don't have to be first.

    Et pour les non-anglophones :

    La plupart des versions de sed n'autorisent qu'une seule ligne de commentaire, et celle-ci doit être la première. SunOS autorise plus d'un commentaire, et ces commentaires n'ont pas besoin d'être en premier.

    Maintenant, j'ai pas encore essayé avec GNU sed ...
  • [^] # Re: Virtuelle ?

    Posté par  . En réponse au message resize console avec virtualbox. Évalué à 2.

    Les modes texte des cartes vidéos sont capables de plusieurs résolutions, mais en nombre fixe et défini. Ta Debian a toujours l'impression d'initialiser une carte. Tu ne peux pas lui préciser un nombre arbitraire de colonnes et de lignes.

    Maintenant, si ça te saoule de lancer un X dans une machine virtuelle, tu actives un pont réseau, et tu ouvres une session depuis Windows avec un terminal, comme tu le ferais si ta Debian se trouvait réellement sur une machine distante.
  • # Ah ! Et, au fait ...

    Posté par  . En réponse au message Un script. Évalué à 3.

    C'est à rendre pour quand ?
  • # À la place d'Henry, que feriez-vous?

    Posté par  . En réponse au journal Henry III. Évalué à -5.

    42.
  • # Virtuelle ?

    Posté par  . En réponse au message resize console avec virtualbox. Évalué à 2.

    C'est quoi une virtuelle ?

    Une console virtuelle du kernel ? Une session linux entière tournant dans un vmware-like ? Un shell linux ouvert depuis un terminal logiciel (en ssh ou en telnet) depuis ton Windows vers une machine distante ? Une session X dans Exceed ?

    A priori, soit ta session émule une console censée être en mode texte sous Linux et dans ce cas, il faut que le noyau ait l'impression d'initialiser une carte graphique, donc ça se fait avec l'option "vga=" au démarrage (ou rdev -v), soit c'est juste un shell ouvert en réseau et dans ces cas-là, tous les xterms sont capables de redimensionnement. Si tu as une marge grise, c'est que c'est ton application Windows qui y met de la mauvaise volonté, et c'est donc elle qu'il faut configurer.
  • [^] # Re: e sais pas pourquoi

    Posté par  . En réponse au journal Mandriva Linux 2008.1 "Spring" is out !. Évalué à 2.

    On aurait quand même pu attendre vendredi, n'empêche ...
  • [^] # Re: Wikipédia, par exemple

    Posté par  . En réponse au message Manipulation de clé. Évalué à 2.

    Regarde bien l'article sur le MD5, par exemple : tout y est expliqué : l'algorithme, le synoptique, et même un bout de pseudo-code. Cela n'a rien à voir avec la description d'une API.

    Gérer une clé de 1024 bits se fait de la même manière que pour une clé de 128. Dès lors que l'on dépasse la taille d'un registre (ou des types prédéfinis), il faut vectoriser. Le plus simple est effectivement d'utiliser un tableau d'octets consécutifs.

    La plupart du temps, il s'agit de décalage et d'opération bit à bits, et de quelques opérations arithmétiques (domaines dans lesquels le jeu d'instruction d'un CPU excelle, généralement).

    Si ce qui te préoccupe en premier lieu est la manière de traiter de grands objets, cela se fait généralement comme à l'école, en arithmétique, avec une retenue du format des blocs que l'on traite. Cela peut être un bit, un octet, un long de 32 bits, etc. Par exemple, lorsque l'on calcule des CRC, on est amené à considérer tout un bloc de données comme un immense nombre qu'il faudrait diviser par une valeur fixe. Pour ce faire, le plus simple est d'utiliser l'approche habituelle : tu commences par le premier octet (ou plus précisément le premier bloc du format de ton diviseur), tu soustrais, tu décale, et tu "fais descendre" le bloc suivant simplement en allant le lire en mémoire.

    En fait, il faut se souvenir que ce qui est applicable en base 10 l'est généralement dans les autres aussi. Tu peux travailler en base 2, s'il le faut, comme en base 256,
  • [^] # Re: e sais pas pourquoi

    Posté par  . En réponse au journal Mandriva Linux 2008.1 "Spring" is out !. Évalué à 5.

    Je crois qu'on y est pas encore...

    Y avait Edith Cresson ...
    (ok, cette fois, le troll est sauf :-)
  • [^] # Re: e sais pas pourquoi

    Posté par  . En réponse au journal Mandriva Linux 2008.1 "Spring" is out !. Évalué à 4.

    Je vis près d'Evry, dans le 91, et on a effectivement un boulevard des Champs-Elysees, aussi ! Mais il n'y a pas d'arc de Triomphe au bout ...
  • [^] # Re: e sais pas pourquoi

    Posté par  . En réponse au journal Mandriva Linux 2008.1 "Spring" is out !. Évalué à 4.

    D'une manière générale, la parité s'installe doucement dans les corps de métier et c'est pour notre plus grand bonheur, parce que l'on manque vraiment de filles dans l'informatique, domaine où elles excellent pourtant quand elles le veulent, et ça ne s'est pas arrêté à Ada Lovelace.

    On a des femmes chauffeuses de bus (un certain nombre près chez moi, chez TICE), conductrices de métro, et de plus en plus de geekettes.

    D'une manière générale, je trouve que les femmes apportent souvent un grand bol d'air frais chaque fois qu'il s'agit "d'humaniser" une structure quelle qu'elle soit. Un ordinateur, une distrib', un service d'une entreprise, une conférence de presse, etc (et pas seulement par leur présence, je précise).

    Etant donné le temps que l'on passe tous désormais derrière un PC, et que celui remplace peu à peu tous les guichets dans nos vies quotidiennes, les ordinateurs ont désormais besoin d'être pensés au delà de la simple considération technique, et il semblerait que Mandriva suive la bonne voie. Puissent-ils être précurseurs.
  • # Wikipédia, par exemple

    Posté par  . En réponse au message Manipulation de clé. Évalué à 2.

    Les principaux algorithmes sont tous documentés, tu en trouveras toute la description sur le Wikipédia. Je te conseille de commencer par MD5, c'est probablement ce qu'il y a de plus simple. La procédure complète est décrite dans un petit synoptique.

    C'est très adapté à l'assembleur, également, si tes orientations sont la concision, l'indépendance et la performance du code.

    http://fr.wikipedia.org/wiki/MD5
    http://fr.wikipedia.org/wiki/Rivest_Shamir_Adleman
    http://fr.wikipedia.org/wiki/Digital_Signature_Algorithm
    http://fr.wikipedia.org/wiki/SHA-256
  • [^] # Re: Pointeur fou.

    Posté par  . En réponse au message prob serveur apache. Évalué à 2.

    Addendum : le code ci-dessus plante quand même parce que l'adresse en question reste en dehors de l'espace du processus et déclenche l'exception avant que free() n'entre en action. Celui-ci est mieux :

    int main (void) { char a=1; free (&a); return 0; }
  • [^] # Re: Nous sommes à l'étape 3 sur 4

    Posté par  . En réponse au journal La vie en rose. Évalué à 2.

    bg && top && killall ghandi &&
    Connection reset by peer
  • # Pointeur fou.

    Posté par  . En réponse au message prob serveur apache. Évalué à 5.

    C'est la libc standard qui se plaint parce que quelque chose (httpd) a essayé de faire un free() sur une zone qui n'est pas allouée. Ça évite les segfaults et permet de repérer plus facilement une fuite mémoire (enfin, au moins les distinguer des pointeurs fous ordinaires). Tu peux facilement reproduire le phénomène avec une ligne de C :

    int main (void) { free ((char *)0x12345); return 0; }

    Sur des programmes déjà compilés, cela se produit généralement lorsqu'un binaire se lie avec la mauvaise version d'une bibliothèque, spécialement lorsque des structures ont été modifiées et qu'elles ne font plus la même taille.

    Vois si tu n'as pas fait un upgrade un peu trop expérimental, ou si deux versions concurrentes d'une même lib ne cohabitent pas sur ton système (genre OpenClient vs FreeTDS).
  • [^] # Re: Oh, juste un doigt...

    Posté par  . En réponse à la dépêche La guerre des formats de bureautique normalisés ISO commence. Évalué à 2.

    (+1 rien que pour la conclusion ! :-)
  • [^] # Re: Avec sed

    Posté par  . En réponse au message commande Cat avec un arret prècis. Évalué à 7.

    Je plussoie.

    On peut faire plus court en virant l'option n (donc affichage implicite), et donc virer p aussi.

    Et tant que l'on y est, on peut donner la commande pour faire l'inverse, soit tout afficher à partir du motif :

    sed -ne '/TIMESTAMP 12\/31\/2007/,$ p' < fichier

    Voila, comme ça, ça restera dans Google Aide-mémoire ! :-)
  • [^] # Re: grep?

    Posté par  . En réponse au message commande Cat avec un arret prècis. Évalué à 2.

    Je me réponds à moi-même : la même réponse a été donnée plus bas (il me semblait bien avoir lu tous les commentaires pourtant). Ca vaudrait le coup de refaire une petite page de formation à sed, parce que ça tombe dans l'oubli ...
  • [^] # Re: grep?

    Posté par  . En réponse au message commande Cat avec un arret prècis. Évalué à 4.

    Tout simplement :

    sed -e '/TIMESTAMP 12\/31\/2007/ q' < fichier

    Sed, ça ne sert pas qu'aux substitutions ...
  • [^] # Re: résolu !, Mais ...

    Posté par  . En réponse au message KDE ne se lance plus, sauf en root.... Évalué à 3.

    T'aurais pas installé les pilotes Samsung, des fois ? /o\

    Sinon, est-ce que ton /tmp est situé sur une partition qui lui est propre ou bien fait-il partie de celle de / ? Dans ce cas, un / plein empêche a fortiori d'écrire dans /tmp ...

    Enfin, lorsqu'une partition est presque pleine, il faut se souvenir qu'il reste toujours quelques % utilisables seulement par root, spécialement pour que celui-ci puisse faire le ménage ...
  • # Sockets C - C++

    Posté par  . En réponse au message choix pour l'écriture d'un serveur en C++. Évalué à 6.

    J'ai eu le même problème et franchement, j'ai fini par refaire mes propres classes. Pour deux raisons :

    - Les libs que l'on trouve sur la toile sont soit des APIs Windows, soit des outils qui ont été faits dans les mêmes conditions que les tiennes. Il n'y a donc aucune garantie que ces trucs soient plus propres ni plus faciles à utiliser que ce que tu vas produire. Honnêtement, je n'ai pas cherché plus longtemps que çà non plus, mais si ce n'est pas destiné à un gros projet open-source servant de référence et repris par des dizaines de personnes, la recherche et l'investissement personnel deviennent plus importants que la rédaction de son propre code (ce n'est évidemment pas vrai pour tous les cas de figure).

    - L'API des sockets BSD est à s'arracher les cheveux car c'était à la base une tentative d'universalisation de tous les modes de communication, et il ont essayé de couvrir large dès le départ. C'était une bonne idée, mais maintenant on se traîne depuis des décenies des choses qui ne servent à rien.

    D'autre part, il y avait clairement une notion d'abstraction et de classification qui sont aujourd'hui caractéristiques de la programmation objet. Citons par exemple la notion d'adresse réseau sockaddr étendue en sockaddr_in mais par redéfinition. Même pas un union de structures puisque les familles de protocoles sont déclarées à postériori. Dans cette structure, une autre structure pour l'adresse en particulier, in_addr, laquelle ne contient en tout et pour tout qu'un seul et unique membre, un long de 32 bits !

    A l'utilisation, on est obligé d'utiliser des cast explicites pour transformer un sockaddr_in en sockaddr général pour ne pas prendre de warnings à la compilation. Coté init, c'est pas triste non plus : le modèle a beau être cohérent, il est implémenté de telle manière que tout est à la charge du développeur : hton{sl}() à tout bout de champ à chaque fois qu'il faut changer une adresse, et obligé de spécifier à l'intérieur de chaque structure pourtant déjà spécialisé le type d'adresse (AF_INET), simplement pour que les fonctions dont on a dû abstraire les paramètres puisse les recaster dans l'autre sens en connaissance de cause. Au secours !

    Par contre ...

    ... par contre, encapsuler tout ce merdier dans des classes n'est pas plus compliqué que d'écrire un programme réseau classique en C pour quelqu'un qui s'y est déjà collé, et on se retrouve au final avec trois ou quatre objets maximum, lequels ne sont pas dérivés plus loin. Du coup, la programmation des sockets qui a l'air si difficile en C semble très simple même avec ses propres objets.


    Donc, d'expérience, ce qui est utile pour écrire un daemon text-based est :

    - Ses propres sockets (ci-dessus).
    - Un analyseur de regexp (en encapsulant encore les routines C système).
    - Un mini-parser. Pas besoin de réécrire yacc, mais il n'y a rien de mieux qu'une grammaire BNF pour décrire la syntaxe d'une ligne valide.
    - Un petit automate à pile. On trouve les classes, cette fois, mais ce n'est pas bien dur non plus de refaire le sien une fois pour toutes.

    A partir de là, tu peux déclencher un événement sur n'importe quel flux d'entrée. En te démerdant bien, tu peux faire un programme complètement coopératif sans avoir besoin de pondre un thread.

    Bon courage.
  • [^] # Re: Tu sors

    Posté par  . En réponse au message Diffusion de vidéos en flash. Évalué à 2.

  • [^] # Re: Tu sors

    Posté par  . En réponse au message Diffusion de vidéos en flash. Évalué à 4.

    Hélas

    Can I use the File Format Specification to create a SWF interpreter or player?
    - No, the File Format Specification is provided for the specific purpose of enabling software applications to export to the SWF file format.

    Can I use the File Format Specification to create a FLV encoder or an FLV streaming service?
    - No, the File Format Specification is provided for the specific purpose of enabling software applications to export to the SWF file format.


    Gnash violerait donc bien les termes de cette licence d'utilisation.
  • [^] # Re: Tu sors

    Posté par  . En réponse au message Diffusion de vidéos en flash. Évalué à 3.

    On est vendredi, c'est permis.

    Pareil, je ne comprends pas les gens qui sont partis en croisade contre le Flash. Certes, ça pourrait être encore mieux, mais il y a quand même bien pire.

    Le format est - presque - ouvert, le plug-in est disponible sous Linux même si, à ce que j'en ai entendu, il ne fonctionne que sur x86, et surtout le produit en lui-même est très bien réalisé. Et puis dans le domaine, c'est-à-dire un client léger d'animations vectorielles, il est de fait qu'il n'y a pas grand chose de disponibles non plus (surtout à l'époque où c'est sorti). Alors, évidemment, il faut laisser disponible la source de la vidéo, et pas faire n'importe quoi avec (sites tout-en-flash), mais c'est pas pire qu'un site qui dit "votre navigateur est incompatible" ou autre bêtise.

    Par contre, je regrette d'une part que Macromédia soit devenue Adobe. On passe d'une boîte dynamique et innovante (à l'origine de ce genre de projets), à un poids lourd de l'informatique qui a fait une acquisition stratégique et qui va rendre ce genre d'initiative beaucoup plus compliqué, à mon goût.

    D'autre part, je ne comprends pas la politique de leurs spécos : On a le droit de faire un logiciel qui exporte en Flash, mais pas de réaliser un lecteur, alors que leur composeur est hors de prix mais que l'Adobe Flash Player ne coûte rien. La seule raison plausible qui me vienne à l'esprit est la volonté d'éviter les forks, et l'évolution d'un format plus abouti à partir du SWF de base ...
  • # Avec su

    Posté par  . En réponse au message compte utilisateur. Évalué à 4.

    Question à 2,50 balles. Ton utilisateur est-il réel et doit-il pouvoir se logguer quand même ?

    Si non, tu mets soit un setuid bit sur l'exécutable si c'en est un, soit tu passes par su si c'est vraiment un script.

    Si oui, tu définis le script ou l'exécutable comme shell de l'utilisateur. Il sera automatiquement exécuté à la connexion à l'exclusion de tout le reste et la session se referma avec lui.
  • # La vache

    Posté par  . En réponse au journal technicien recherché :). Évalué à 10.

    Bac+5 pour être technicien d'exploitation ! Je pensais qu'il y avait de l'emploi dans l'informatique ...

    Sérieusement, le candidat a-t-il une chance de faire un peu d'administration système lui-même ou est-ce qu'il ne sera que le faire valoir des informaticiens titulaires ?

    Etant donné que j'ai déjà occupé ce genre de poste (pour aujourd'hui bosser dans le milieu de la recherche, ouf !), je voudrais savoir s'il y a possibilité d'évoluer, s'il y a des chances d'être chargé de mettre en oeuvre les "solutions proposées", ou si, comme c'est déjà arrivé, le techos va être grosso-modo chargé de vérifier que le daemon ne plante pas ?

    Maintenant, les questions pragmatiques :

    - Quel pourcentage de Linux (et UNIX) dans le job ?
    - Quel salaire approximatif ?