Les deux révisions précédentesRévision précédente | |
issue134:mon_histoire [2018/07/23 13:22] – d52fr | issue134:mon_histoire [2018/07/25 20:04] (Version actuelle) – andre_domenech |
---|
Je devais décider si je voulais écrire un programme en ligne de commande (CLI) ou avec une interface utilisateur graphique (GUI). Un programme écrit pour CLI est lancé dans un terminal, par exemple grep ou mp3diags alors qu'en GUI, il y a des fenêtres et des icônes, par exemple Audacity ou l'éditeur de texte de Gnome (gedit). | Je devais décider si je voulais écrire un programme en ligne de commande (CLI) ou avec une interface utilisateur graphique (GUI). Un programme écrit pour CLI est lancé dans un terminal, par exemple grep ou mp3diags alors qu'en GUI, il y a des fenêtres et des icônes, par exemple Audacity ou l'éditeur de texte de Gnome (gedit). |
| |
Bien entendu, un programme en GUI est plus sympa et semble le choix préférable. Comme j'ai dit dans l'introduction, j'avais besoin de rafraîchir mes connaissances en programmation et je n'avais aucune expérience dans une environnement graphique Linux/Gnome. Si on y ajoute que ce serait mon premier programme en Python, l'idée de prendre cette voie-là me rendait très sceptique. | Bien entendu, un programme en GUI est plus sympa et semble le choix préférable. Comme j'ai dit dans l'introduction, j'avais besoin de rafraîchir mes connaissances en programmation et je n'avais aucune expérience dans un environnement graphique Linux/Gnome. Si on y ajoute que ce serait mon premier programme en Python, l'idée de prendre cette voie-là me rendait très sceptique. |
| |
**I have also seen that some linux applications are CLI based and then they also have GUI version, which looked like it was using the command based program to do the job. For example some software management application, like the graphical updater, are invoking a terminal command (apt) and then rendering the output in a more friendly way. Thus my decision was made. I was going to write a CLI based program and eventually I’d write a GUI interface on top of it. | **I have also seen that some linux applications are CLI based and then they also have GUI version, which looked like it was using the command based program to do the job. For example some software management application, like the graphical updater, are invoking a terminal command (apt) and then rendering the output in a more friendly way. Thus my decision was made. I was going to write a CLI based program and eventually I’d write a GUI interface on top of it. |
Ready to start my first ever python program I launched the Gnome text editor which I figured was more than enough for the task at hand.** | Ready to start my first ever python program I launched the Gnome text editor which I figured was more than enough for the task at hand.** |
| |
J'ai également remarqué que certaines applications Linux sont basées sur CLI, mais ont également une version GUI, qui me donnait l'impression qu'il utilisait le programme en ligne de commande pour faire le travail ; notamment, des applications de gestion de logiciels, comme la mise à jour en format graphique, invoquent une commande du terminal (apt) et donnent le résultat d'une façon plus conviviale. Ainsi, j'ai pris ma décision. J'allais écrire un programme en CLI et ultérieurement j'écrirais une interface GUI par-dessus. | J'ai également remarqué que certaines applications Linux sont basées sur CLI, mais ont également une version GUI, qui me donnait l'impression qu'il utilisait le programme en ligne de commande pour faire le travail, notamment des applications de gestion de logiciels, comme la mise à jour en format graphique, invoquent une commande du terminal (apt) et donnent le résultat d'une façon plus conviviale. Ainsi, j'ai pris ma décision. J'allais écrire un programme en CLI et ultérieurement j'écrirais une interface GUI par-dessus. |
| |
Je l'ai appelé fixrhy en supposant qu'il réparerait quelque chose que rhythmbox ne faisait pas comme je voulais. Je sais que c'est discutable, mais après tout, c'est mon application et je peux lui donner le nom que je veux. | Je l'ai appelé fixrhy en supposant qu'il réparerait quelque chose que rhythmbox ne faisait pas comme je voulais. Je sais que c'est discutable, mais après tout, c'est mon application et je peux lui donner le nom que je veux. |
print "Sorting as", sr_alb, "by", sr_art | print "Sorting as", sr_alb, "by", sr_art |
| |
et, en fait, elles l'étaient au départ. Je les ai gardées parce que, à nouveau, je pensais que, le lendemain, moi (ou quelqu'un d'autre) pourrais écrire un programme GUI par-dessus et qu'elles pourraient aider lors de l'analyse. | et, en fait, elles l'étaient au départ. Je les ai gardées parce que, à nouveau, je pensais que, le lendemain, je (ou quelqu'un d'autre) pourrais écrire un programme GUI par-dessus et qu'elles pourraient aider lors de l'analyse. |
| |
De 45 à 50, nous réglons tout, chargeant la base de données de Rhythmbox dans un arbre (47) et déclarant quelques variables de comptage. | De 45 à 50, nous réglons tout, chargeant la base de données de Rhythmbox dans un arbre (47) et déclarant quelques variables de comptage. |
À partir de la ligne 58, nous vérifions si l'information de tri de l'artiste existe déjà, parce que, si le champ est manquant, il faut le créer à nouveau (60) et s'il y est déjà, nous devons le changer (ou le laisser tel quel). Dans le premier cas, nous ne pourrions pas modifier quelque chose qui n'existe pas, et dans le dernier, nous ne devrions pas créer quelque chose qui est déjà présent. | À partir de la ligne 58, nous vérifions si l'information de tri de l'artiste existe déjà, parce que, si le champ est manquant, il faut le créer à nouveau (60) et s'il y est déjà, nous devons le changer (ou le laisser tel quel). Dans le premier cas, nous ne pourrions pas modifier quelque chose qui n'existe pas, et dans le dernier, nous ne devrions pas créer quelque chose qui est déjà présent. |
| |
Le reste du code s'appuie dessus et il y a une partie similaire pour les informations de tri de l'album. Autrement dit, j'ai mis dans le code le paramètre nécessaire pour choisir si on modifie des données existantes ou pas. Personnellement, je le changerai toujours, mais je voulais écrire un programme qui pourrait finalement être utilisé par d'autres, peut-être avec des besoins différents. Il faut également noter que, puisque je ne pourrais pas changer l'élément s'il existe, je le détruis et j'en crée un nouveau (68-70). La plupart des commandes print était là au départ pour le débogage, puis pour être utilisées par le GUI, comme j'ai dit auparavant au sujet des lignes 42/43. | Le reste du code s'appuie dessus et il y a une partie similaire pour les informations de tri de l'album. Autrement dit, j'ai mis dans le code le paramètre nécessaire pour choisir si on modifie des données existantes ou pas. Personnellement, je le changerai toujours, mais je voulais écrire un programme qui pourrait finalement être utilisé par d'autres, peut-être avec des besoins différents. Il faut également noter que, puisque je ne pourrais pas changer l'élément s'il existe, je le détruis et j'en crée un nouveau (68-70). La plupart des commandes print étaient là au départ pour le débogage, puis pour être utilisées par le GUI, comme j'ai dit auparavant au sujet des lignes 42/43. |
| |
**Finally before saving we make a backup copy (always important!): | **Finally before saving we make a backup copy (always important!): |