orfenor a écrit 1699 commentaires

  • [^] # Re: Dans la langue de Jean-Baptiste Poquelin

    Posté par  . En réponse au lien Oh le beau bug (dans une rc1) (mais c'est un sacré bug). Évalué à 2. Dernière modification le 05 mars 2021 à 18:37.

    Méfie-toi quand même tu ne peux pas mettre en veille. Et si un jour, un processus part en sucette (ça m'arrive souvent sur le web), tu ne pourras éviter le crash brutal.

  • [^] # Re: Dans la langue de Jean-Baptiste Poquelin

    Posté par  . En réponse au lien Oh le beau bug (dans une rc1) (mais c'est un sacré bug). Évalué à 3.

    Et la fragmentation alors ?

    Franchement vu la taille des disques, une partition de swap c'est pas grand chose.

  • [^] # Re: gscan2pdf

    Posté par  . En réponse au journal Scanner et OCR sans passer par le cloud. Évalué à 2.

    Okular, le visualiseur pdf de kde peut recréer le tableau si on l'aide (Outils > Sélection de tableau).
    Il y a des OCR parfaitement capable de le faire sous winwin depuis au moins 25 ans. Je n'ai jamais essayé sous Linux, mais pourquoi ne serait-ce pas possible ? en ouvrant la doc de Tesseract, je vois un exemple de sortie CSV.
    Enfin il y a un outil conçu pour les journalistes, qui doivent récupérer des tableaux de partout. Il est certainement dans mes marque-pages mais là je ne trouve pas. Linuxfr a publié un article dessus il y a 5 ou 6 ans.

  • [^] # Re: Processus simple et rapide.

    Posté par  . En réponse au journal Scanner et OCR sans passer par le cloud. Évalué à 2.

    Les scans portaient tous le nom du livre (ou du chapitre) plus le numéro de la page impaire (quand on découd les cahiers de reliure, on obtient des feuilles imprimées recto-verso avec à gauche une page paire et a droite une impaire). La fonction orderedList met les noms dans un hash avec le numéro de page impaire en index.

    «13ème apôtre» dans les commentaires est le titre du livre, pas une instrucion secrête!

  • [^] # Re: Processus simple et rapide.

    Posté par  . En réponse au journal Scanner et OCR sans passer par le cloud. Évalué à 4. Dernière modification le 03 mars 2021 à 23:31.

    Ce script sert juste à lancer les différents outils. Rien d'extraordinaire. Il est un peu inutilement compliqué dans le but de me faire réapprendre Perl, plus pratiqué depuis 5 ans. Les commentaires mélangent anglais et français.

    #!/usr/bin/perl
    use strict; 
    use warnings; 
    
    # Le script prend les scans, les repagine (le livre 
    # est reliés en cahiers, décousus pour les scans), 
    # et met les pages dans un dossier temporaires. 
    # Les fichiers y sont retravaillés puis copiés dans 
    # un dossier pour l'OCR.
    #
    # Les paramètres fins sont à adapter au type de scan.
    #
    
    # reliure de latin religare
    # cahier de reliure = Section (bookbinding)
    # In bookbinding, a section, gathering, or signature is a group of sheets folded in half. 
    # In medieval manuscripts, a gathering, or quire, was most often formed of 4 folded sheets
    # La technique du cahier est née avec le développement de la forme codex. 
    
    use File::Basename; 
    use Image::Magick;
    # à utiliser pour gérer les chemins Win, Mac, Linux…
    # require File::Spec; 
    
    # TODO
    # Page dewarping if needed
    #    from https://mzucker.github.io/2016/08/15/page-dewarping.html
    # B&W binarisation  or TEXTCLEANER ?
    #   http://www.fmwconcepts.com/imagemagick/textcleaner/index.php
    
    #
    # front and back cover are named couv
    # unnecessary scanned files are named 
    # other scanned files are named with the page odd number
    #
    
    # taille des cahiers (feuilles x 2)
    my $sheetNumber = 8 ; # quire size x2
    # pourcentage pour redimensionner (maj ~= 33px)
    my $percent = 92;
    # scans directory (base directory)
    my $baseDir = '/home/toto/Projets/Livre'; # FIXME le choper avec 'pwd'
    # working dir
    my $tmpDir = '_tmp';
    # final dir (OCR ready)
    my $ocrDir = 'ocr';
    # FIXME access rights
    # $dirMode = 644;
    
    # se placer dans le bon répertoire
    # créer les répertoires temporaires et finaux
    chdir $baseDir || die "Could not go in dir $baseDir\n";
    mkdir ( $tmpDir ) unless -e $tmpDir;  # $dirMode ?
    mkdir ( $ocrDir ) unless -e $ocrDir;  # $dirMode ?
    
    # get the file list, all names are odd numbers
    # put it in a hash with key = page number, value = file name
    my @tmpList = listFiles( $baseDir,'jpg' );
    my %files = hashList( @tmpList );
    
    # create individual pages
    # Unfold();
    
    # improve quality with noteshrink, unpaper and further enhancement
    chdir $tmpDir;
    
    callUnpaper('ppm');
    # callNoteshrink('-U');
    # callSmallOperations('-N');
    
    # callNoteshrink('ppm');     # creates -N files
    # callSmallOperations('-N'); # creates -SO files
    # callUnpaper('-SO');        # creates -U files
    
    Ready('-SO');
    
    #
    # functions
    #
    
    # Noise Removal with noteshrink
    #   https://github.com/mzucker/noteshrink
    # -p % of pixels to sample for background( default 5)
    # -v background value threshold % (default 25)
    # -s background saturation threshold % (default 20)
    # -S do not saturate colors
    # -w make background white
    # -n number of output colors (default 8)
    # -b output PNG filename base
    sub callNoteshrink {
        my ( $match ) = @_;
        @tmpList = listFiles( "$baseDir/$tmpDir",$match );
        print scalar @tmpList . " files to optimize with noteshrink : \n\n";
    
        foreach my $file( @tmpList ) {
            # empty pages makes it crash, stupid hack
            next if $file eq '1.ppm';
            next if $file eq '2.ppm';
            next if $file eq '4.ppm';
            next if $file eq '176.ppm';
            # remove extension
            my $fileName  = fileName($file);
        #     '-v10', '-n12', '-S', 
            my @args      = ( "$baseDir/noteshrink-master/noteshrink.py", '-w', "-b$fileName", $file );
            system(@args) == 0 or die "system @args failed (file is $file): $?";
        }
        print scalar @tmpList . " png files created by noteshrink.\n";
    
        @tmpList = listFiles( "$baseDir/$tmpDir",'png' );
        print scalar @tmpList . " png files to convert in ppm \n";
        # convert files to ppm
        foreach my $file( @tmpList ) {
            my( $image, $x, $filename );
            $image = Image::Magick->new;
            $image->Read( $file );
    
            $filename = fileName($file);
            # remove 0000 from noteshrink
            $filename =~ s/0000$//;
            $x = $image->Write( "$filename-N.ppm" );
        }
        unlink @tmpList;
    
        print scalar @tmpList . " png files converted to ppm. All png deleted. \n\n";
    }
    
    # small operations
    sub callSmallOperations {
        my ( $match ) = @_;
        @tmpList = listFiles( "$baseDir/$tmpDir",$match );
        print "Around " . scalar @tmpList . " files to rework : \n\n";
    
        foreach my $file( @tmpList ) {        
            my( $image, $w, $h, $x, $filename );
    
            $image = Image::Magick->new;
            print "Opened $file \n";
            $image->Read( $file );
            ( $w,$h ) = $image->Get( 'width','height' );
            print "  size is $w x $h pixels, ";
    
            # rescale to get optimal capital letter size > 33 pixels
            # not automaticaly detected, gives manual percentage
            $w = $w * $percent/100;
            $h = $h * $percent/100;
            print "optimize capital letter size … \n";
            $x = $image->Resize( width=>$w, height=>$h );
    
            # remove Scanning border if any
            # FIXME   -trim avec +repage à cause des traitements suivants
    #         print "remove scanning border … ";
    #         $image->Set( fuzz=>'5%' );
    #         $x = $image->Trim();
    
            # add small white borde to help OCR 
            print "  add a 20 pixels white border … \n";
            $x = $image->Shave( geometry=>'20x20' );
            $x = $image->Border( geometry=>'20x20+20+20', bordercolor=>'white', compose=>'Over' );
    
            # write image
            $filename = fileName($file);
            $x = $image->Write( "$filename-SO.ppm" );
            print "  $filename.ppm saved. \n";
            undef $image;
        }
        print "\n" . scalar @tmpList . " ppm files reworked.\n\n";
    }
    
    # unpaper 
    # -ni intensity, -noisefilter-intensity intensity 
    #  Intensity with which to delete individual pixels  or tiny clusters of pixels. 
    # Any cluster which only contains intensity dark pixels together will be deleted. (default: 4)
    # -li ratio, --blurfilter-intensity ratio
    # Relative intensity with which to delete tiny clusters of pixels. 
    # Any blurred area which contains at most the ratio of dark pixels 
    # will be cleared. (default: 0.01)
    # -gt ratio, --grayfilter-threshold ratio
    # Relative intensity of grayness which is accepted 
    # before clearing the grayfilter mask in cases where 
    # no black pixel is found in the mask. (default: 0.5)
    # w threshold, --white-threshold threshold 
    #  Brightness ratio above which a pixel is considered white. (default: 0.9)
    sub callUnpaper {
        my ( $match ) = @_;
        @tmpList = listFiles( "$baseDir/$tmpDir",$match );
        print "Around " . scalar @tmpList . " files to optimize with unpaper : \n\n";
        foreach my $file( @tmpList ) {
            my $filename = fileName( $file );
            # unpaper can't overwrite, remove existing files
            $filename = "$filename-U.ppm";
            unlink $filename if -e $filename ;
            # TODO enlever plus
    #     '--blurfilter-intensity','1', 
    #     '--grayfilter-threshold','1',
    #     '--noisefilter-intensity','1',
    #     '--white-threshold','0.9',
            my @args = ( "unpaper", 
                         $file, $filename );
            system(@args) == 0 or die "system @args failed: $?";
        }
        print scalar @tmpList . " new ppm files created.\n\n";
    }
    
    
    # files ready to move in OCR
    sub Ready {
        my ( $match ) = @_;
        @tmpList = listFiles( "$baseDir/$tmpDir",$match );
        print "Around " . scalar @tmpList . " files to move to $ocrDir : \n";
    
        foreach my $file( @tmpList ) {        
            my( $image, $x );
            $image = Image::Magick->new;
            $image->Read( $file );
            # name update
            my $key = fileName($file);
            my $name = $files{$key};
            $x = $image->Write( "$baseDir/$ocrDir/$name" );
            print "  $name saved in $ocrDir folder. \n";
        }
        print "Finished. \n\n"
    }
    
    # Create temporary individual page's files. 
    # Don't forget all file's name are odd
    sub Unfold {
        print "\n\n" . scalar @tmpList . " files to unfold … ";
        # without cover files, loop is ((scalar @tmpList) / $sheetNumber) times 
        # remove unnecessary files from the loop first
        my $zeroFiles = ( scalar @tmpList ) % $sheetNumber;
        my $goodFiles = ( scalar @tmpList ) - $zeroFiles;
        print "$zeroFiles files not kept, $goodFiles files to paginate … \n";
    
        #
        # 13ème apôtre = in-4° de 11 cahiers
        # 11 cahiers -> 44 feuilles -> 88 fichiers + couverture + un scan à remonter = 90 fichiers
        # boucler 11 fois
        #  sur un cahier de 8 fichiers, 1er: $first impair, 8ème: $last pair
        #  boucler 8 fois :
        #   couper fichier en 2 : pair / impair
        #   écrire pair, impair
        #   pair = pair- 2 impair = impair + 2
        #
        # first page number from quire is odd
        my $first = 1;
        # start key in %files, all keys are odd numbers
        my $key   = $first;
        # every $sheetNumber files (11 times)
        for ( my $i=0;$i<$goodFiles/$sheetNumber;$i++ ) {
            # last page number from quire, even
            my $last  = $first + (2 * $sheetNumber) - 1;
            for ( my $i=0;$i<$sheetNumber;$i++ ) {
                my $file = $files{$key};
                print "Will paginate $file … ";
                ( $last, $first ) = paginate( $file, $last, $first );
                print "\n";
                $key = $key + 2;
            }
        }
    
        print "done, $goodFiles pages processed, " . $goodFiles*2 . " files created in $tmpDir. \n\n";
    }
    
    #
    # utilities
    #
    
    # remove extension and space
    sub fileName {
        my ( $f ) = @_;
        $f =~ s/\.[a-z]+$//g;
        $f =~ s/\-[A-Z]+$//g;
        $f =~ s/\s+//;
        return $f;
    }
    # coupe, nomme, écrit
    # read all file formats supported by IM, but write in ppm format
    sub paginate {
        my ( $file, $even, $odd ) = @_;
    
        my( $image, $image1, $w, $h, $x );
        $image = Image::Magick->new;
        $image->Read( $file );
        $image1   = $image->Clone();
        ( $w,$h ) = $image->Get( 'width','height' );
    
        $w  = $w / 2;
        # first half is even
        $x = $image->Crop ( geometry=>"$w x $h + 0 + 0" );
        $x = $image->Write( "$tmpDir/$even.ppm" );
        print "created $tmpDir/$even.ppm ";
        # second half is odd
        $x = $image1->Crop ( geometry=>"$w x $h + $w + 0" );
        $x = $image1->Write( "$tmpDir/$odd.ppm" );
        print "and $tmpDir/$odd.ppm";
        # empty memory
        undef $image; 
        undef $image1;
    
        $even = $even - 2;
        $odd  = $odd + 2;
        return $even, $odd;
    }
    
    # extract page number, hash with number => name of file
    sub hashList {
        my ( @list ) = @_;
        my %hash;
        foreach my $l ( @list ) {
             my $v = $l;
             $l =~ s/[^0-9]+//g;
             $hash{$l} = $v;
        }
        return %hash;
    }
    
    # extraire les nombres, créer un hash nombre => fichier,
    # sortir une liste triée par la clé du hash
    sub orderedList {
        my ( @list ) = @_;
        my %hash;
        foreach my $l ( @list ) {
             my $v = $l;
             $l =~ s/[^0-9]+//g;
             $hash{$l} = $v;
        }
        my @keys = sort { $a <=> $b } keys %hash;
        my @olist;
        foreach my $key ( @keys ) {
            next if $hash{$key} =~ m/\s0/;  # fichiers 00
            push (@olist, $hash{$key});
        }
        return @olist;
    }
    
    # directory content (not recursive)
    # FIXME should use file type instead of extension
    sub listFiles {
        my ( $dir, $ext )  = @_;
        opendir( D,$dir ) || die "Could not open dir $dir\n";
        # files and dir but (. and ..) 
        my @content = grep { !/^\.\.?$/ } readdir D;
        closedir D;
        # remove dir
        my @files; 
        foreach my $name (@content) {
            next if -d $name ;
            push @files, $name if $name =~ m/$ext/;
        }
        return @files;
    }
  • [^] # Re: Processus simple et rapide.

    Posté par  . En réponse au journal Scanner et OCR sans passer par le cloud. Évalué à 7. Dernière modification le 03 mars 2021 à 15:26.

    La solution smartphone est beaucoup plus efficace qu'un chargeur si on l'utilise avec OpenCamera et le script de page_dewarp, regarde la photo c'est parlant.

    Les scanners avec chargeurs de documents sont pour la plupart des chargeurs de bureau. Je n'ai eu sous la main que des Brother et des Ricoh (plus ses marques dérivées : NRG, Nashuatec, etc.), ils fonctionnent bien sous Linux avec des pilotes propriétaires. Mes modèles ont 10, 15 et 20 ans, et sont tous de la récup. Le pilote Brother a le bon goût de n'être qu'un petit binaire appuyé sur Sane. Il se script donc très facilement.

    Attention, les chargeurs ont la réputation d'abîmer les documents. Pour ma part, je viens de numériser sans aucun problème un livre des années 50, malgré son papier cassant (178 scans).

    Les scans avec le chargeur, déjà très propres, ont été améliorés avec Noteshrink, ImageMagick et unpaper. Il y a des optimisations minuscules qui ont de gros effet sur Tesseract, en particulier la taille optimisée des majuscules, le bord blanc autour de la page et le redressement («deskewing»)dont a parlé BoaTreize. Tout ça est fait par un petit script Perl que je peux t'envoyer.

    Et continues de poser des questions, ça va me faire le texte de la dépêche ! :-)

  • [^] # Re: SANE + ArgyllCMS + gImageReader + Tesseract OCR + noteshrink | ImageMagick

    Posté par  . En réponse au journal Scanner et OCR sans passer par le cloud. Évalué à 6.

    Pour redresser à la main, je préfère OCRFeeder (qui utilise unpaper pour ça) et surtout ScanTailor — Advanced ou legacy.

  • # Processus simple et rapide.

    Posté par  . En réponse au journal Scanner et OCR sans passer par le cloud. Évalué à 10. Dernière modification le 02 mars 2021 à 15:39.

    Ah zut, je viens de m'intéresser longuememnt à la question et j'ai un brouillon de dépêche à finir.

    Que cherches-tu vraiment ? Parce que la sortie en texte brut, c'est la fonction de base des OCR.

    Le processus est très simple : un scan de bonne qualité -> OCR -> relecture.

    C'est le premier point qui est compliqué : pour obtenir une bonne image il faut la retoucher. J'utilise un processus plus simple que Boa Treize, avec des outils conçus exprès pour ça. Le site de Tesseract contient une page merveilleuse avec des outils pour améliorer la qualité du scan que j'ai presque tous essayés. Il y a des scripts et des outils graphiques.

    Si tu as beaucoup de scans à faire, installe OpenCamera sur ton smartphone, pouse-le sur une pile de bouquins et lance le mode rafale. Tu dois pouvoir tourner à 20 pages minutes. Ensuite il te faudra le script de dewarping indiqué sur la page de tesseract.

    NB : le meilleur OCR actuel sous Windows c'est ReadIris. Il fait beaucoup moins de petites erreurs que Tesseract qui est le meilleur OCR libre actuel (IMHO).

  • [^] # Re: Bookeen, expérience perso

    Posté par  . En réponse au journal Liseuse, recherche conseils et retours d'expérience. Évalué à 0.

    (Quelqu'un la veut ? Je la donne avec plaisir [Est Parisien])

    je la veux bien pour essayer, comparer avec la mienne, après je la donne à quelqu'un d'autre (ou bien je donne la mienne).

  • [^] # Re: Mon expérience n'est pas toute jeunes elle non plus

    Posté par  . En réponse au journal Liseuse, recherche conseils et retours d'expérience. Évalué à 2.

    J'avais choisi une tablette Android pour y mettre mes outil libres préférés, dans l'idée d'interconnecter ordinateur, téléphone et tablette. Je voulais aussi travailler sur Wikipedia via la tablette. La tablette étant un peu faible (elle a 10 ans), ça n'est pas efficace et finalement… je lis avec l'application par défaut (la version proprio de fbreader) et c'est tout ce à quoi elle sert.

    Je viserai sensiblement la même chose, en plus puissant pour avoir un outil de travail, avec stylet peut-être. Ce serait sous Linux parce que le paysage a bien changé et qu'Android me laisse peu bidouiller.

  • [^] # Re: Mon expérience n'est pas toute jeunes elle non plus

    Posté par  . En réponse au journal Liseuse, recherche conseils et retours d'expérience. Évalué à 3.

    Pareil : j'éclaire dans le noir ou en plein soleil, j'active le Wifi au besoin. Ce dernier m'est très utile pour lire tranquillement des articles repérés dans la journée.

  • [^] # Re: Directeur de quoi ?

    Posté par  . En réponse au journal Google démantèle son éthique (et tout le monde s'en fout...). Évalué à 4.

    je me souviens des catalogues de prix des composants PC des boutiques de la rue Montgallet dans les magazines

    Arrête on va se sentir vieux !

  • [^] # Re: Ce qui manque aux nains du web

    Posté par  . En réponse au lien Cette extension imagine un Internet sans les géants du web . Évalué à 1.

    C'est pas une mauvaise idée… Il y a un tas de ressources moins visibles que les autres et pourtant plus riches.

  • [^] # Re: Évitez de faire de la pub pour de l'illégal

    Posté par  . En réponse au lien haro sur la fibre !. Évalué à 1.

    Es tu sûr de répondre dans le bon journal ? indymedia est bien connu, personne ne l'attaque ici, ni en dit du mal.

  • [^] # Re: Évitez de faire de la pub pour de l'illégal

    Posté par  . En réponse au lien haro sur la fibre !. Évalué à 7.

    Perso, j'apprécie le lien sans y voir de la pub. Ça m'a fait connaître ce groupe bien barré. Je ne savais pas que l'anti-technologie pouvait mener à ce genre d'action extrême et terroriste.

    PS : Tu fais deux erreurs de logique. En effet comment communiquer sans les médias et où commence la technologie ? D'une part necessité fait loi, d'autre part on peut décider d'une limite. Sans cette limite, on pourrait aussi bien leur reprocher l'impression de tracts (l'imprimerie est une technologie). Donc, proclamer que plus d'internet n'est pas bon n'empêche pas d'utiliser l'existant, il n'y a pas contradiction — et je pense aussi aux utilisateurs de gemini qui en discutent et font la promotion sur des sites web bien chargés en CSS et Javascript.

  • [^] # Re: Distribution

    Posté par  . En réponse au lien Java sur le bureau: parce que les webapps, ça va bien 5 minutes. Évalué à 5.

    Ce qui transparait de ton message, vu d'un développeur à la petite semaine, c'est que Java/Swing déployé avec JavaWebStart c'est incomplet avec des gros défauts à corriger. Comme ça n'est pas corrigé, on se tourne vers les applis Web, qui ont d'autres défauts, mais on ferme les yeux. Ai-je bien compris ?

  • [^] # Re: TLDR

    Posté par  . En réponse au lien Bill Gates, entretien exclusif pour La Terre au Carré. Évalué à 3.

    J'aimerai que tu aies raison. Les gens veulent du changements, voient que tout va mal, mais continuent à consommer, brûler des trucs, jeter dans la nature, etc. Il se considèrent à un petit niveau, peu influents et font peu confiance aux discours officiels (pas qu'en France). Sans compter tous ceux qui disent allègrement qu'on les fait chier avec tout ça. Pour ces raisons, je suis sceptique et pessimiste.

  • # EXCLUSIF ! eXXXXXclusif! Exclusif ? Excluuuusif !

    Posté par  . En réponse au lien Bill Gates, entretien exclusif pour La Terre au Carré. Évalué à 7.

    J'adore le terme « exclusif » pour un entretien de plus avec un type qui fait la promo de son livre dans tous les médias. La presse ne change pas.

  • [^] # Re: TLDR

    Posté par  . En réponse au lien Bill Gates, entretien exclusif pour La Terre au Carré. Évalué à 1.

    aucune communication/prévention n'est officiellement faite sur le sujet

    C'est bien ce qu'il dit : les gouvernements n'avancent pas, les gens ne veulent pas changer. Quand à tes questions j'en sais rien, je ne suis pas spécialiste de Bill Gates :-) Il faudrait lire son livre pour voir ce qu'il répond, mais ça ne m'intéresse pas du tout.

  • [^] # Re: TLDR

    Posté par  . En réponse au lien Bill Gates, entretien exclusif pour La Terre au Carré. Évalué à 5.

    Je crois que tu n'as pas bien lu ce que j'ai écrit. Je n'approuve pas la solution de Bill Gates, je l'expose.
    Le réalisme de Bill Gates c'est l'observation du comportement des gens qui n'acceptent pas de changer, ce qui pose problème. Sa solution a le mérite de satisfaire les industriels, ce qui lui donne une probabilité d'être mise en oeuvre. Problème : ces gens là n'ont pas de vertu.

  • [^] # Re: TLDR

    Posté par  . En réponse au lien Bill Gates, entretien exclusif pour La Terre au Carré. Évalué à 1.

    C'est un peu grossier.
    Bill Gates dit avec beaucoup de réalisme (dans d'autres entretiens) que trop peu de monde peut accepter un changement radical de mode de vie. Changement qu'on assimile à une reculade dans le progrès et le développement. Il propose d'utiliser la technologie pour rendre rapidement notre mode de vie moins dangereux pour le climat.
    Exemple : en occident, satisfaire l'appétit pour la viande de boeuf avec du boeuf synthétique, tandis que pour les pays pauvres la question ne se pose pas, leur consommation de boeuf est trop faible pour impacter le climat.
    Il a le mérite de poser le problème avec réalisme et d'avancer une solution qui ne mise pas sur la décroissance, ce qui satisfait l'industrie qui peut donc en l'espèce prendre la place des gouvernements pour faire avancer les choses — vu qu'on a déjà tous constater l'inertie des gouvernements.
    Je ne crois pas du tout à la vertu des industriels, mais d'un autre côté je ne crois pas beaucoup aux changements gouvernementaux.

  • [^] # Re: Une grande inconnue

    Posté par  . En réponse au journal Slackware 15 en approche ?. Évalué à 2.

    T'avais eu OS/2 grâce au Virus Informatique ou grâce à Dream ?  ;-)

  • [^] # Re: Bof

    Posté par  . En réponse au journal C'est foutu pour LibreOffice. Évalué à 1.

    [ OnlyOffice ] avec 95 % du code venant de MS, en ASP.NET

    D'où tu sors ça ? Tu m'as fait douter, le code source est rempli de C++ si j'en crois ma (rapide) inspection sur Github.

  • [^] # Re: Beaux documents

    Posté par  . En réponse au journal C'est foutu pour LibreOffice. Évalué à -2.

    J'ai écrit « rebutées », et vous avez compris « incapables » ? Apparemment c'est vous les sexistes, qui voyez du sexisme dans une critique voilée du machisme des années 80. Rebutées, c'est à dire que beaucoup de filles trouvaient ces machines compliquées déplaisantes. Les filles avaient bien raison, ces machines étaient conçues pour que les garçons montrent leur puissance et dominent par leur savoir faire. C'étaient aussi des machines que la publicité vendait à une classe intellectuelle et aisée : la société bourgeoise.

  • [^] # Re: Beaux documents

    Posté par  . En réponse au journal C'est foutu pour LibreOffice. Évalué à -3.

    Pour la plupart des gens un traitement de texte c'est une machine à écrire, c'est une machine simple, pas besoin d'apprendre. Sur les machines compliquées on a un autre mécanisme ; je suis sûr que tu connais ça très bien : tu as du voir comme moi la plupart des filles rebutées par les commandes d'une chaine Hi-Fi ou d'un magnétoscope, tandis que les garçons s'en sortaient en explorant, en tatonnant, sans lire la doc. Mais un traitement de texte, machine simple en apparence, c'est une machine complexe avec des tonnes d'options qui interagissent et qu'on ne peut pas vraiment comprendre en explorant sans lire la doc.
    Donc non, les gens ne se prennent pas en main. En 15 ans, j'ai un seul exemple d'une personne qui l'a fait. Et encore c'était après lui avoir donné le numéro spécial de Linux Mag' sur OpenOffice.

    Si les styles par défaut sont moches, ils vont dire que c'est moche sans imaginer ou sans pouvoir comprendre comment les changer. Vaut mieux avoir des bô styles par défaut.