Journal Démarrage (usplash) : Une barre de progression "continue" (smooth)

Posté par .
Tags : aucun
9
23
nov.
2008
Ça nous rajeunit pas, mais il y a 4 ans j'avais proposé dans ces colonnes l'idée de ce que je considère comme une amélioration de la barre de progression : la baser sur le temps des précédents démarrages et non sur l'état des services lancés pour qu'au final la barre de progression soit représentative du temps de démarrage restant.

http://linuxfr.org/~plagiats/9164.html

Et bien 4 ans plus tard, un ubuntero nommé "volanin" a eu exactement la même idée et l'a implémentée, lui :

http://ubuntuforums.org/showthread.php?t=985390

A quand le retour des brevets logiciels, que je puisse lui intenter un procès ?! ;-)
  • # On n'arrête pas le progrès.

    Posté par . Évalué à 10.

    Tu veux dire qu'il t'a plagié ? :-)
  • # Mauvaise idée (enfin probablement).

    Posté par . Évalué à 6.

    Ça nous rajeunit pas, mais il y a 4 ans j'avais proposé dans ces colonnes l'idée de ce que je considère comme une amélioration de la barre de progression : la baser sur le temps des précédents démarrages et non sur l'état des services lancés pour qu'au final la barre de progression soit représentative du temps de démarrage restant.

    Il faudrait pour cela garantir que ce temps soit réellement constant d'un démarrage à l'autre, sinon on va se retrouver avec des barres à la Windows, qui freezent à 99%. Ou alors, prévoir une marge, quitte à accélérer en fin de parcours, comme on le disait ici : https://linuxfr.org//~NedFlanders/26261.html

    Les plus grosses difficultés venant de ce qui est extérieur. Si tu consommes tout ton temps à attendre une adresse DHCP qui ne vient pas, il faudra payer des pénalités de retard à l'utilisateur. :-)
    • [^] # A mais non !

      Posté par . Évalué à 3.

      Cela avait déjà été discuté à l'époque, si ton temps de chargement est exceptionnellement long, tu appuies sur F2 pour voir ce qui se passe ("verbose mode"). Le temps de démarrage étant recalculé à chaque fois, si tu parles d'une modification de ta configuration la barre de progression ne sera pas représentative que lors du premier boot avec cette configuration.

      Hors pépin, et hors changement de configuration, pourquoi le temps de démarrage serait il sensiblement différent ?
      • [^] # Re: A mais non !

        Posté par . Évalué à 9.

        fsck ?
        périphérique installé sur un port usb ?
        pb dhcp ?

        Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

        • [^] # Re: A mais non !

          Posté par . Évalué à 6.

          en fait je me rends compte que je n'ai cité que des cas de figure que tu avais envisagés (pépins ou changement de configuration). Désolé, c'est vrai que dans la plupart des cas le temps de démarrage est similaire d'une fois sur l'autre.

          Only wimps use tape backup: real men just upload their important stuff on megaupload, and let the rest of the world ~~mirror~~ link to it

          • [^] # Re: A mais non !

            Posté par (page perso) . Évalué à 5.

            Sauf que si c'est un portable, il peut démarrer une fois sur deux avec un réseau ethernet, un ensemble de périphériques usb, un deuxième écran, un adaptateur secteur et l'autre fois sur deux sur wifi et autonome (configurations bureau/maison par exemple).
            Et donc, il ne fera pas deux fois de suite le même boot.
            • [^] # Re: A mais non !

              Posté par (page perso) . Évalué à 5.

              Ok, la solution proposée n'est pas parfaite : parfois, ça ne marchera pas bien.

              À comparer avec la situation actuelle où au moins c'est constant : ça ne marche jamais.

              => au pire, on retombera dans la situation actuelle.
              => c'est une bonne amélioration
              => Je ne vois pas l'intérêt de lui expliquer que c'est une mauvaise idée. Essayez plutôt de trouver comment faire mieux.
              • [^] # Re: A mais non !

                Posté par (page perso) . Évalué à 3.

                > Je ne vois pas l'intérêt de lui expliquer que c'est une mauvaise idée. Essayez plutôt de trouver comment faire mieux.

                Je ne trouve pas que c'est une mauvaise idée, au contraire, ce serait mieux que la barre de windows XP qui se remplit parfois plusieurs fois, le bibiche d'osx qui tourne et tourne et tourne sans indication de la fin du début ni de la progression (quoique des fois il s'arrête, mais c'est plutôt mauvais signe) ou de celle d'ubuntu qui avance par à coups mais montre des choses.

                Mais il faut être réaliste, il est impossible de faire quelque chose qui marchera à chaque fois pour tout le monde, et il est important de s'en rendre compte avant d'essayer de patcher chaque cas particulier (du style un comportement pour fsck, un comportement pour le nouveau périphérique, un comportement pour les périphériques en moins, un comportement pour le réseau qui ne connecte pas ou lentement, ... Ça dure moins de 30 secondes de booter, c'est pas la peine d'écrire plus de 1000 lignes de code pour que la barre soit tout le temps lisse).

                Les preuves d'impossibilité sont aussi importantes que les constructions d'approximation.
                • [^] # Re: A mais non !

                  Posté par (page perso) . Évalué à 7.

                  "Le sage savait que c'était impossible. Est arrivé un idiot qui ne le savait pas et qui l'a fait."

                  (voir aussi la parabole de la course de grenouilles)
                • [^] # Re: A mais non !

                  Posté par (page perso) . Évalué à 0.

                  Ce qui peut être fait aussi, c'est afficher textuellement ce que l'ordinateur fait au temps présent, comme ça, l'utilisateur il sait ce qui se passe, et il peut (ou pas) savoir que ça peut (ou pas) prendre du temps. Ah? c'est déjà ce qui se fait? Oups...
      • [^] # Re: A mais non !

        Posté par . Évalué à 7.

        Ben ce qu'il faudrait faire, c'est une phase de calcul préliminaire, qui estime le temps de démarrage des services avant de les lancer.
        Ensuite, une fois qu'on a bien estimé le temps pour démarrer chaque service, on a grosso-modo le total, et on peut afficher une barre avec progression linéaire.

        Bon, forcément, par la suite, il faudra une autre barre de démarrage pour indiquer à l'utilisateur où en est le calcul du temps de démarrage...

        ----------------> [ ]
        • [^] # Re: A mais non !

          Posté par (page perso) . Évalué à 10.

          >Bon, forcément, par la suite, il faudra une autre barre de démarrage pour indiquer à
          > l'utilisateur où en est le calcul du temps de démarrage...

          Ca existe déjà sous Vista, quand tu fais un copier/coller sur un fichier, tu as un message "calcul du temps nécéssaire à la copie" et qui, windows oblige, peut être assez long ! ^^
    • [^] # Re: Mauvaise idée (enfin probablement).

      Posté par (page perso) . Évalué à 1.

      Si je devais faire ce genre de trucs, je me baserais sur les PID.

      Normalement, le nombre de processus démarrés est constant.

      Mais ce n'est peut-être pas possible :)
      • [^] # Re: Mauvaise idée (enfin probablement).

        Posté par . Évalué à 2.

        C'est déjà plus ou moins le cas (c'est basé sur le nombre de services lancés). C'est pas pour cela que le temps total que cela va prendre est décidable.
  • # Et si ?

    Posté par (page perso) . Évalué à 3.

    Une idée de néophyte:
    Si cela restait basé sur les processus à démarrer, comme j'ai cru comprendre que c'était actuellement, mais qu'on ne faisait pas sauter la progression au cran suivant.
    En fait, à chaque nouveau processus démarré, on donne un nouveau point "d'arrivée" à la barre, qu'elle continue d'essayer d'atteindre doucement.
    Elle ne pourra pas rattrapper son retard puisque les processus vont souvent se lancer plus vite qu'elle n'avancera, sauf si on recalcule sa vitesse de temps à autre pour la faire accélérer.
    C'est vraiment pas facile de s'exprimer sur quelque chose d'aussi "virtuel", j'espère avoir été assez clair.
    De mon niveau le seul inconvénient que je vois à cette solution, c'est le calcul à faire qui doit bouffer un peu de proc, mais je n'ai aucune idée dans quelle mesure il le ferait.
    Vous trouverez peut-être plus d'éléments à cette idée.
    • [^] # Re: Et si ?

      Posté par (page perso) . Évalué à 3.

      À mon avis, c'est une mauvaise idée. Ça n'apporte qu'un peu plus de douceur, en revanche, ça retire très nettement de l'information, puisqu'il s'agit de déformer les vitesses de progression.
      • [^] # Re: Et si ?

        Posté par (page perso) . Évalué à 6.

        Ef effet, je n'avais pas pensé à ça.
        Donc au final on est très bien avec la barre qui indique réellement les processus démarrés avant de pouvoir se servir de la machine :)
  • # Copieurs.

    Posté par (page perso) . Évalué à 2.

    C'est ce qu'il se fait (il me semble) sous os x.

    Par contre, impossible de retrouver la source de l'info, mais ça marche plus tot pas mal (à part après une mise a jour du système, et alors là, ca se vautre severe).

    On dira que l'information donnée par la barre est pertinente 95% du temps...
    • [^] # Re: Copieurs.

      Posté par (page perso) . Évalué à 2.

      C'était le cas à une époque.

      Maintenant, plus de barre de progression. Une roue qui tourne pendant plus ou moins longtemps et c'est tout. C'est pas trop gênant, le matériel étant bien maîtrisé, ça démarre vite.

      Envoyé depuis mon lapin.

  • # charge supplémentaire

    Posté par . Évalué à 8.

    Il me semble qu'au moment où l'accent est mis sur la lenteur -réelle- des phases de démarrage, ce n'est peut être pas le top d'en rajouter une couche...
  • # Meilleure idée

    Posté par (page perso) . Évalué à 10.

    Moi j'ai une meilleure idée. A chaque tâche du processus de démarrage, on afficherait une phrase du style :
    "Démarrage du service XXX"
    Avec une petite animation pour dire que c'est en cours, puis on rajouterai OK à la fin de la ligne quand ce serait fait.

    -------------->
    • [^] # Re: Meilleure idée

      Posté par . Évalué à 4.

      Aucun intérêt.
      Ce genre de truc n'intéressera jamais quiconque.
      J'aurais eu ce genre d'idée, je ne l'aurais pas rendue publique...
    • [^] # Re: Meilleure idée

      Posté par (page perso) . Évalué à 5.

      Et pourquoi pas un truc qui serve vraiment, genre un casse brique, où un bouton «faire le café» si la cafetière usb est détecté. Évidemment il faudrait du coups démarrer le service de gestion de la machine à café en priorité.
  • # Encore plus meilleur idée

    Posté par . Évalué à 5.

    Un démarrage avec des symboles comme /-\| qui se remplacent les uns les autres (pour faire une sorte de rotation) et qui remplissent petit à petit une ligne.

    C'est vachement joli, progressif, et puis ça nécessite pas de graphique on peut commencer dès le début du chargement du noyau.
  • # ça ne sert à rien de toute manière

    Posté par . Évalué à 9.

    c'est quoi ce besoin de lissage à la con ? L'intérêt ne serait-il pas plutôt de savoir ce qui se passe et si on y est rendu ?

    Alors je comprends que des tonnes de lignes en anglais, c'est pas forcément la panacée pour celui qui n'y connait rien.

    Pourquoi ne pas faire plutôt une système qui indique le nombre de service/tâche à démarrer, une icône (le logo du projet si c'est un serveur par exemple) le numéro et le nom du service en cours de démarrage ainsi qu'une estimation du temps nécessaire, basé sur le précédent boot et/ou un éventuel timeout (exemple pour le dhcp ou autre).

    Au moins si ça coince pour une raison x ou y, l'utilisateur peut dire à son dépanneur préféré "j'en étais arrivé au démarrage du réseau (tâche 15 sur 22) quand ça s'est coincé" et celui-ci pourra ainsi faire un début de diagnostique.
    • [^] # Re: ça ne sert à rien de toute manière

      Posté par . Évalué à 2.

      Dans le même genre (mais dans une moindre mesure), KDE 4 fait la même chose[1].
      Chaque icône apparait tour à tour.
      Par contre, j'ignore totalement comment c'est implémenté : est-ce un simple délai défini entre chaque image (du coup, c'est régulier mais trompeur) ? Y a-t-il réellement prise en compte des services démarrés par KDE ?

      1 http://static.pcinpact.com/images/bd/news/52324.jpg
    • [^] # Re: ça ne sert à rien de toute manière

      Posté par (page perso) . Évalué à 2.

      D'ailleurs ce n'est pas possible d'internationaliser tout ça ?

      Ce serait bien aussi de pouvoir consulter la doc d'un service simplement en cliquant dessus ou en saisissant un nombre/mot clef. Ça pourrait même donner le goût de la lecture de documentation à certains, qui sais.
      • [^] # Re: ça ne sert à rien de toute manière

        Posté par . Évalué à 2.

        D'ailleurs ce n'est pas possible d'internationaliser tout ça ?

        C'est le cas sur mandriva, et ça fait parfois des choses bizarres si la table de caractères du terminal ne correspond pas à celle des textes qui sont affichés ;-)
    • [^] # Re: ça ne sert à rien de toute manière

      Posté par . Évalué à 2.

      Des logos qui s'allument au démarrage au fur et à mesure que les services de l'OS sont lancés ?

      mais ....

      <mode="BeOS le faisait il y a 10 ans">C'est précisément ce que BeOS faisait il y a dix ans mais on s'en rendait à peine compte parceque le boot durait moins de temps qu'il n'en fallait à X-OR pour revêtir son armure de combat !</mode>

      http://www.oggfrog.com/howto/emulators/beos-boot-loader.jpg

      BeOS le faisait il y a 15 ans !

  • # Mon avis a 2 francs

    Posté par . Évalué à 3.

    Si tu n'est pas capable de calculer le temps restant plus ou moins precisement...
    Ne le calcule pas!!!

    Mieux vaut ne pas donner une information a l'utilisateur que de lui donner une information erronee..
    En l'occurence, comme l'ont indique certains, le temps de boot peut ne pas etre constant d'un boot a l'autre (notamment machines mobiles), donc ton calcul sera forcement tres faux de temps a autres.

    XP, Vista et OSX ont tous les 3 une barre de progression infinie au boot, et c'est precisement ce a quoi elle sert: indiquer a l'utilisateur que la machine travaille, qu'on ne sait pas quand elle aura fini, mais que ca sera dans pas trop longtemps.
    Win98 avait une barre fixe, MS en est revenu, c'est surement pour une bonne raison.

    Autant ne pas suivre MS sur les choix d'UI est parfois/souvent une bonne idee, autant chez Apple, ils ont generalement une tres bonne raison de faire ce qu'ils font et sont pas trop manchots au niveau de l'experience utilisateur.
    • [^] # Re: Mon avis a 2 francs

      Posté par . Évalué à 2.

      Il vaut rien ton avis; ou alors précise lequel: 2 francs cfa, 2 francs suisses, 2 francomtois...
      • [^] # Re: Mon avis a 2 francs

        Posté par . Évalué à 2.

        bon, mon avis a 2 clovis, si tu preferes...
        Voir mon avis a 2 fr.histoire.francs.saliens::Clovis si tu veux le fully qualified classname...

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.