MorphOS au quotidien

15 sujets de 271 à 285 (sur un total de 883)

  • BatteMan

      #335293

      Vous allez me conspuer, mais j’utilise l’excellent TwinVNC pour afficher le Windows XP (et son vieux pack Office) d’un vieux PC portable TOSHIBA sur mon Ambient (et aussi pour partager clavier/souris).

      Comme ça, j’ai un tout petit peu moins l’impression d’utiliser un PC…

      Mais dès que j’ai le temps et la motivation, je tente d’utiliser Pagestream pour faire mes docs !


      /me essaie surtout de perdre le moins de temps possible…

      Only Amiga makes it possible !

      Anonyme

        #335341

        @ BatteMan :

        Tu es pardonné 😉 C’est super d’avoir un outil comme TwinVNC sur MorphOS 🙂

        Ca me fait penser qu’il va falloir que je teste aussi PageStream… argh, ça douille :

        https://www.warmup-asso.org/article.php?sid=263

        Bon, tu me feras une démo à l’occase, et si ça vaut le coup je l’achèterai peut-être (je ponds pas mal de documents et il fait l’export PDF, ce qui m’intéresse vu que je les diffuse toujours en PDF 😉 ).

        Sinon, j’en reviens au langage Perl disponible dans le SDK MorphOS :

        La semaine dernière chez un client, j’ai écrit sur Linux un petit script d’exemple Perl (gestion d’un fichier carnet d’adresses), et il a marché direct sur MorphOS 😎

        Vu que je le lance dans le Shell avec la commande « perl » même pas besoin de retirer le shebang Linux (#!/usr/bin/perl).

        Juste eu besoin de récupérer la commande « sed » que j’utilise pour supprimer facilement des contacts dans le carnet d’adresses (grand classique sur Unix / Linux pour tout ce qui est rechercher / remplacer / suppression-insertion-remplacement de lignes dans un fichier texte), et disponible sur :

        http://aminet.net/package/util/cli/SED

        (à copier ensuite dans « System:C/ » aka « C: »)

        Marche direct, content qu’elle soit dispo sur Amiga celle-là, mais je m’y attendais un peu 😉

        Et c’est là que j’ai découvert qu’il y avait aussi la commande « clear » (comme en Unix / Linux) en plus de la commande « CLS » sur MOS, pratique pour mes « system(« clear »); » d’effacement d’écran dans le Shell 🙂

        Juste eu un problème avec les accents, comme d’hab… mais vite rempacés.

        Donc à part les accents, rien eu à changer dans mon petit programme que voici (vu la longueur, je le colle, attention aux guillemets…) :

        #!/usr/bin/perl
        use warnings;
        use strict;

        my $fichier = « carnet-adresses.txt »;

        sub saisie
        {
        system(« clear »);
        print « SAISIE D’UN CONTACT\n\n »;
        print « Nom : « ;
        chomp(my $nom = <STDIN>);
        print « Prénom : « ;
        chomp(my $prenom = <STDIN>);
        print « Rue : « ;
        chomp(my $rue = <STDIN>);
        print « Code postal : « ;
        chomp(my $codepostal = <STDIN>);
        print « Commune : « ;
        chomp(my $commune = <STDIN>);
        print « Téléphone : « ;
        chomp(my $telephone = <STDIN>);
        open(my $fh, « >> », $fichier);
        my $contact= »$nom;$prenom;$rue;$codepostal;$commune;$telephone\n »;
        print $fh $contact;
        close($fh);
        print « \nContact enregistré.\n »;
        my $continuer = <STDIN>;
        }

        sub recherche
        {
        system(« clear »);
        print « RECHERCHE D’UN CONTACT\n\n »;
        print « Critère de recherche : « ;
        chomp(my $critere = <STDIN>);
        print « \nRésultat :\n\n »;
        # system(« grep -i $critere carnet-adresses.txt | sort | more »);
        open(my $fh, « <« , $fichier);
        while (defined(my $contact = <$fh>)) {
        if ($contact =~ /$critere/i) { print « $contact »; }
        }
        close($fh);
        my $continuer = <STDIN>;
        }

        sub liste
        {
        system(« clear »);
        print « LISTE DES CONTACTS\n\n »;
        # system(« cat carnet-adresses.txt | sort | more »);
        open(my $fh, « <« , $fichier);
        while (defined(my $contact = <$fh>)) { print « $contact »; }
        close($fh);
        my $continuer = <STDIN>;
        }

        sub suppression
        {
        system(« clear »);
        print « SUPPRESSION DE CONTACT\n\n »;
        print « Critère de suppression : « ;
        chomp(my $critere = <STDIN>);
        system(« sed -i \ »/$critere/d\ » carnet-adresses.txt »);
        print « \nContact(s) supprimé(s).\n »;
        my $continuer = <STDIN>;
        }

        sub quitte
        {
        exit;
        }

        sub erreur
        {
        print « \nERREUR\n »;
        my $continuer = <STDIN>;
        }

        while (my $choix ne ‘q’)
        {
        system(« clear »);
        print « CARNET D’ADRESSES\n\n »;
        print « MENU\n »;
        print « s – saisie\n »;
        print « r – recherche\n »;
        print « l – liste\n »;
        print « x – suppression\n »;
        print « q – quitter\n »;
        print « \nChoix> « ;
        chomp($choix = <STDIN>);

        if ($choix eq ‘s’) { &saisie; }
        elsif ($choix eq ‘r’) { &recherche; }
        elsif ($choix eq ‘l’) { &liste; }
        elsif ($choix eq ‘x’) { &suppression; }
        elsif ($choix eq ‘q’) { &quitte; }
        else { &erreur; }
        }

        Précision : la recherche de contacts dans le carnet fonctionne sans devoir respecter la casse, mais pas en suppression de contacts (respecter la casse, c’est dû à « sed » ça).

        Je pense que je l’améliorerai et que je rajouterai des fonctionnalités de temps en temps sur MorphOS, ça enrichira mes exemples / TPs en langage Perl sur Linux… 😉


        /me aime bien quand ce genre de solution marche direct 😎

        __sam__

          #335342

          En perl tu ne devrais pas avoir à appeler la commande externe SED vu que perl contient tout « sed » en fait. Remplace moi donc ce vilain [code]system(« sed -i \ »/$critere/d\ » carnet-adresses.txt »);[/code] qui va planter violemment si l’utilisateur saisit un truc contenant un guillemet (« ) dans critère en plus d’avoir des failles de sécurité énormes (pensez injection de code aussi les gars!) et remplace ca par du vrai code (qui est plus souple et compatible même avec les anciennes versions de perl):
          [code]
          my $file = « carnet-adresses.txt »;
          my @content = ();
          # ouverture ficher en lecture
          open(FILE, « <$file ») || die;
          # on lit le ficher et on ne garde que les lignes ne matchant pas $critere
          while(<FILE>) {push(@content, $_) unless /$critere/;}
          close(FILE);
          # ouverture du fichier en ecriture
          open(FILE, »>$file ») || die;
          # on ecrit les lignes gardees
          foreach (@content) {print FILE $_;}
          close(FILE);
          [/code]
          (c’est à peu près comme ca que j’aurais fait il y a 25ans du moins.)

          Sinon sur amiga, même 68k, tu retrouves toutes les commandes et environnements Gnu/Linux si tu t’installes un GeekGadget (https://archive.org/details/cdrom-geek-gadgets-2).

          Samuel.

          Amiga A500 + GVP530 (8Mo/fpu/mmu/scsi) - en panne 🙁
          A500 (+ 1Mo PPS), A1200 (Blizzard-IV/fpu/64Mo)
          A500 Vampire V2+ ^8^ 🙂
          (mais aussi TO8, TO8D, TO9. Groupe PULS.)

          Anonyme

            #335343

            Merci Sam ! 🙂

            En fait, pour l’instant et pour faire vite, j’avais laissé la commande « sed » mais je prevoyais de le faire proprement en Perl avec ses syntaxes qu’il inclut effectivement (ce script étant la transcription d’un autre script Shell Bash). Ce qui permettait aussi d’avoir un exemple d’appel de commandes système (même si c’est crade comme tu le rappelles).

            Merci aussi pour Geek Gadgets ! ça fait penser à Pif Gadget 😛

            henes

              #335365

              Tu n’aurais pas du avoir besoin d’installer sed.
              Il est déjà disponible à gg:bin/sed qui est dans le path.

              BatteMan

                #335367

                Yeah ! henes poste ici ! 🙂

                Pour avoir GG:, faut avoir installé le SDK, me trompé-je ?

                 

                Jedi :  La version 5 de Pagestream n’a jamais été finalisée/débuguée… (même si on avait vu à l’Alchimie d’il y a 2 ans… plutôt 4 ans en fait… voire 6…, une version MorphOS retravaillée de Pagestream par Franck Mariak et tournant sur X5000 qui faisait bien plaisir).

                Vaut mieux rechoper une version 4, qui fonctionne quant à elle parfaitement sous MorphOS (et AmigaOS 4).


                /me est content de voir tout ce beau monde réuni ici 😉

                Only Amiga makes it possible !

                henes

                  #335408

                  @batt, oui GG: est ajouté par le SDK.
                  Perso, je ne vois que des avantages à installer le SDK. Au pire, il prend de la place (beaucoup de place).

                  Anonyme

                    #335466

                    Rho !! On a réussi à faire sortir Henes de sa tanière ! 😎

                    Effectivement, j’ai dû merder mon 1er test, pas besoin de récupérer un « sed » ailleurs, tout est dans « gg:bin/ » du SDK MOS, qui est ultra-blindé de toutes les commandes nécessaires à la Unix / Linux… Excellent ça, y’a tout (même « awk ») ! 🙂

                    (c’est pour ça aussi que mon « system(« clear »); » a marché direct ^^)

                    Hop, le « sed » récupéré dans C: => viré.

                    @ BatteMan : ok pour PageStream, je vais voir ça 😉

                    Anonyme

                      #335546

                      Comme l’a précisé Henes, il n’y a que des avantages à installer le SDK MorphOS, pour rappel :

                      https://www.morphos-team.net/downloads

                      Sans être développeur, rien que le dossier « gg:bin/ » est blindé de commandes Shell utiles à tout ‘utilisateur système’ :

                      a2p, aclocal, aclocal-1.12, addftinfo, addr2line, afmtodit, apropos, ar, as, autoconf, autoheader, autom4te, automake, automake-1.12, autoreconf, autoscan, autoupdate, awk, base64, basename, bison, bugpoint, bunzip2, bzcat, bzdiff, bzgrep, bzip2, bzip2recover, bzmore, c++, c++filt, c-index-test, c2ph, cat, ccmake, chcon, chgrp, chmod, chown, chroot, cksum, clang, clang-3.8, clang-apply-replacements, clang-check, clang-format, clang-query, clang-rename, clang-tidy, clear, cmake, cmp, comm, cp, cpack, cpio, cpp, csplit, ctags, ctest, cut, cvinclude.pl, cvs, cvsbug, date, dd, df, dgawk, diff, diff3, dir, dircolors, dirname, dprofpp, du, echo, egrep, env, eqn, expand, expr, factor, false, fgrep, find, find2perl, flex, flex++, fmt, fold, ftp, g++, gasp, gawk, gcc, gcov, genfd.pl, git, git-clang-format, git-cvsserver, git-shell, git-upload-pack, gperf, gprof, grep, grodvi, groff, grog, grolj4, grops, grotty, groups, gunzip, gzexe, gzip, h2ph, h2xs, head, hostid, hpftodit, id, ifnames, igawk, indxbib, info, infocmp, infokey, install, install-info, ipcrm, ipcs, ixprefs, ixrun, ixstack, join, kill, ksh, ld, less, lessecho, lesskey, link, lkbib, llc, lli, llvm-ar, llvm-as, llvm-bcanalyzer, llvm-c-test, llvm-config, llvm-cov, llvm-cxxdump, llvm-diff, llvm-dis, llvm-dsymutil, llvm-dwarfdump, llvm-dwp, llvm-extract, llvm-link, llvm-mc, llvm-mcmarkup, llvm-nm, llvm-objdump, llvm-pdbdump, llvm-profdata, llvm-readobj, llvm-rtdyld, llvm-size, llvm-split, llvm-stress, llvm-symbolizer, llvm-tblgen, ln, locate, logname, lookbib, ls, lua, luac, m4, make, makedepend, makeinfo, makewhatis, man, man2dvi, md5sum, mkdir, mkfifo, mknod, mktemp, modularize, mv, neqn, nice, nl, nm, nohup, nproc, nroff, obj2yaml, objcopy, objdump, od, opt, paste, patch, pathchk, perl, perl5.6.2, perlbug, perlcc, perldoc, pfbtops, pgawk, pic, pinky, pl2pm, pod2html, pod2latex, pod2man, pod2text, pod2usage, podchecker, podselect, ppc-morphos-addr2line
                      ppc-morphos-ar, ppc-morphos-as, ppc-morphos-c++filt, ppc-morphos-clang, ppc-morphos-cpp, ppc-morphos-cpp-2.95.3, ppc-morphos-cpp-4, ppc-morphos-cpp-4.4.5, ppc-morphos-cpp-5, ppc-morphos-cpp-6, ppc-morphos-g++, ppc-morphos-g++-2.95.3, ppc-morphos-g++-4, ppc-morphos-g++-4.4.5, ppc-morphos-g++-5, ppc-morphos-g++-6, ppc-morphos-gasp, ppc-morphos-gcc, ppc-morphos-gcc-2.95.3, ppc-morphos-gcc-4, ppc-morphos-gcc-4.4.5, ppc-morphos-gcc-5, ppc-morphos-gcc-6, ppc-morphos-gcc-ar-5, ppc-morphos-gcc-ar-6, ppc-morphos-gcc-nm-5, ppc-morphos-gcc-nm-6, ppc-morphos-gcc-ranlib-5, ppc-morphos-gcc-ranlib-6, ppc-morphos-gccbug, ppc-morphos-gccbug-4.4.5, ppc-morphos-gcov, ppc-morphos-gcov-2.95.3, ppc-morphos-gcov-4, ppc-morphos-gcov-4.4.5, ppc-morphos-gcov-5, ppc-morphos-gcov-6, ppc-morphos-gcov-dump-5, ppc-morphos-gcov-dump-6, ppc-morphos-gcov-tool-5, ppc-morphos-gcov-tool-6, ppc-morphos-gprof, ppc-morphos-ld, ppc-morphos-nm, ppc-morphos-objcopy, ppc-morphos-objdump, ppc-morphos-protoize, ppc-morphos-protoize-2.95.3, ppc-morphos-protoize-4, ppc-morphos-protoize-4.4.5, ppc-morphos-ranlib, ppc-morphos-size, ppc-morphos-strings, ppc-morphos-strip, ppc-morphos-unprotoize, ppc-morphos-unprotoize-2.95.3, ppc-morphos-unprotoize-4, ppc-morphos-unprotoize-4.4.5, pr, printenv, printf, protoize, psbb, pstruct, pth-config, pthread-config, ptx, pwd, ranlib, readlink, realpath, refer, rm, rmdir, runcon, s2p, sancov, scan-build, scan-view, scp, sdiff, sed, seq, sftp, sh, sha1sum, sha224sum, sha256sum, sha384sum, sha512sum, shred, shuf, size, sleep, soelim, sort, splain, split, ssh, ssh-keygen, stat, strings, strip, stty, sum, sync, tac, tack, tail, tar, tbl, tee, telnet, test, texi2dvi, texi2pdf, texindex, tfmtodit, tftp, tic, toe, touch, tput, tr, troff, true, truncate, tset, tsort, tty, tzselect, uname, unexpand, uniq, unlink, unprotoize, updatedb, users, vdir, verify-uselistorder, wc, wget, whatis, who, whoami, xargs, yacc, yaml2obj, yes, zcat, zcmp, zdiff, zegrep, zfgrep, zforce, zgrep, zless, zmore, znew

                      La classe 🙂

                      (les habitués des commandes Unix / Linux se sentiront comme à la maison ^^)

                      Pour ma part « uname -a » :

                      MorphOS JediMOS 3.11 51.40 powerpc Morphos

                      😎

                      BatteMan

                        #335561

                        Jedi & Henes : Moi j’ai installé le SDK uniquement pour « compiler » des keyboards, je ne connaissais pas tout ça ^^ M’ci !

                        MorphOS BatteMini 3.11 51.40 powerpc Morphos


                        /me ira peut-être fouiller à l’occasion dans GG: du coup !

                        Only Amiga makes it possible !

                        Anonyme

                          #335566

                          @ BatteMan : 😉

                          Ces commandes étant majoritairement issues (portées) du monde Unix / Linux, on trouve de l’aide partout sur le Web 🙂

                          Sinon, il y a aussi le grand classique : « man commande »

                          (qui apparemment n’a pas de l’aide pour toutes les commandes sur MOS, mais normalement facilement ajoutables…)

                          BatteMan

                            #335580

                            Alors dans le genre « man commande » il y a l’excellent « Help » de Leo ! (marrant, je viens de voir que c’est moi qui avait uploadé la dernière mise à jour sur Aminet, j’avais complètement oublié ^^)

                            Help détaille les commandes Shell de MorphOS et possède même un catalogue français.

                            Oui ma bonne dame ! Vous pouvez avoir des informations sur vos commandes Shell en français, c’est-y pas beau ça ? 😉


                            /me ne l’utilise pas tous les jours mais c’est ‘achement pratique !

                            Only Amiga makes it possible !

                            leo

                              #335581

                              @BatteMan: content que Help serve encore. Je rebondis pour dire que le code source complet de Help est disponible sur GitHub 😉

                              Si vous tombez sur des fautes ou des commandes manquantes (ça a dû bouger depuis que j’ai écrit la commande), c’est tout simple pour les rajouter maintenant 🙂

                              Anonyme

                                #335635

                                @ Leo & BatteMan :

                                Merci pour « Help », récupéré ! Génial avec le catalog français 🙂 Je vais l’utiliser aussi 😉

                                Sinon, je voulais rappeler ce truc depuis un moment déjà (ayant cherché un peu à mon retour sur MOS, complètement oublié où ça se passait ^^) :

                                Comment associer certains types de fichiers (vidéos, audios, etc…) avec le lancement d’une application particulière ?

                                Issu de la FAQ « WArMUp Association MorphOS » :

                                https://www.warmup-asso.org/faq.php?id_cat=4&myfaq=yes&categories=Ambient

                                « Il vous suffit de suivre le tutoriel suivant, ici on associe tous les formats videos avec MPlayer:
                                – Aller dans le menu : Préférences Ambient -> types MIME
                                – Double cliquer sur le noeud « video » (éditer directement la famille permet d’éviter l’édition de chaque feuille de l’arbre, grâce au concept d’héritage)
                                – Cliquer sur ajouter (pour ajouter une action)
                                – Remplir le champ « nom » avec « Jouer avec MPlayer » par exemple
                                – Cliquer sur ajouter (pour ajouter une commande)
                                – Choisir le mode Workbench pour le type de commande
                                – Remplir le champ de texte à côté avec quelque chose du genre:
                                « Work:MPlayer/gmplayer %sp » (%sp désigne le chemin du fichier sélectionné, c’est décrit dans la bulle d’aide)
                                – Si vous voulez que votre action se déclenche sur un doubleclic, choisissez « DoubleClic » pour le type d’évènement (l’autre choix étant de laisser l’action dans le menu contextuel, utile si vous désirez avoir plusieurs choix d’actions pour un mimetype donné)
                                – Cocher la première checkmark « changer le répertoire courant vers la source ». Facultatif, mais comme ça, MPlayer s’ouvrira sur le répertoire en question si vous ouvrez un nouveau fichier depuis MPlayer
                                – Cocher la dernière checkmark « fusionner la sélection ». C’est facultatif aussi, mais pratique pour les multisélections qui s’ajouteront à la playlist de Mplayer au lieu de lancer un mplayer par fichier sélectionné.

                                Voili voilà. Toute la famille des video/truc s’ouvrira avec mplayer de cette façon. (par Fab) »

                                Je l’ai refait récemment pour lancer automatiquement les PDF avec RNOPDF 😎

                                Anonyme

                                  #335750

                                  Je profite que Tarzin en ait parlé dans la dernière semaine d’actualité pour les partager aussi ici…

                                  Les démos Elude tournant également sur MorphOS (versions RTG), parmi celles que je préfère sur MOS, dans le pur style démos Amiga classique (forcément, des démos 68k à la base ^^) :

                                  (vidéos issues de YouTube indifféremment prises sur Amiga)

                                  Elude – Dust :

                                  Elude – Kakao :

                                  Elude – Lightshaft :

                                  Elude – Machinist :

                                  Elude – Reboxer :

                                  Elude – Shake Off The Dust :

                                  Elude – Soliloquy :

                                  Elude – Step By Step :

                                  Elude – We Come In Peace :

                                  Toutes présentes dans l’excellent « MorphOS Demopack 1.0 » :

                                  http://amiga.bbs.fi/demopack_morphos/

                                  😎

                                15 sujets de 271 à 285 (sur un total de 883)

                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Général MorphOS au quotidien

                                Amiga Impact