Si c'était *vraiment* si simple que ça de gérer les changements d'heures, ça serait fait ...
ce qui n'empêche pas que ça la fout mal sur l'ifon vu qu'Apple aurait les moyens humains pour valider ça bien.
Après, je laisse suffisamment de bugs dans mon code pour aussi garder une certaine humilité, il suffit de tellement peu pour que ça ne marche pas :)
#!/bin/bash
set -e
IFS=':'
COWBUILDER_OPTS="--autocleanaptcache$IFS--debootstrap=cdebootstrap"
REQUESTED_DIST=lucid
case $REQUESTED_DIST in
# universe is required for ubuntu
hardy|jaunty|karmic|lucid|maverick)
COWBUILDER_OPTS+="$IFS--components=\"main universe\""
;;
esac
for opt in $COWBUILDER_OPTS; do echo $opt; done
unset IFS
en ne restant qu'avec l'espace, je pense que ça va être compliqué quand même.
le UUOC, c'est aussi une histoire d'élégance, mais pas que !
Si ton script est destiné â être appelé très souvent, économiser le fork d'un cat, c'est bien
Quand tu fais un one-liner à usage unique en ligne de commande, c'est pas grave, évidemment, mais bon, c'est plus facile de laisser traîner un cat dans un script si on l'utilise libéralement dans un shell interactif, alors autant prendre des bonnes habitudes ;)
ok, rectifie moi si je me trompe, mais tu lances cette commande en tant que root ?
parce qu'effectivement, sur debian, même si bash-completion est installé, elle n'est pas chargée pour le compte root. Par contre, en tant qu'utilisateur sudoer, ça marche très bien.
J'ai été confronté à différents outils de conf en dépannant de temps en temps. Jusqu'à présent, je n'en ai pas vu qui me donnent plus envie de comprendre comment fonctionne l'outil plutôt que de comprendre ce qui se passe au niveau système. C'est même parfois un peu pénible quand on sait ce qu'il faut faire et qu'on galère à trouver l'option dans l'outil.
Comme je me débrouilles avec /etc/network/interfaces, je peux pas trop parler de NM, mais bon, l'argument "tu sais pas t'en servir parce que t'es hors du coup", c'est un peu naze.
Et puis, question de priorité. Il y a des technos récentes sur les quelles il est plus intéressant de se mettre à jour qu'une nième interface de gestion des interfaces réseaux, qui sera complètement refondue d'ici deux ans de toute façon.
isolation m'était aussi venu à l'esprit, ça parait un peu faible par rapport à ce que c'est.
En revenant sur le sujet aujourd'hui, et dans l'idée du sécateur : élagage ?
presque pareil, mais plus joli (et avec moins de fautes) :
vim
enlightenment
python
Le shell est hors catégorie. Un shell sans l'écosystème des outils en ligne de commande, c'est moyen utile. Et distinguer une commande parmi d'autre, ça a peu de sens, vu que c'est l'ensemble des commandes dispo qui font la puissance du shell.
Bon, je ne résiste quand même pas, grep, find, sed, numéro complémentaire, xargs
je pense qu'il y a consensus pour conclure qu'en analyse statique, c'est très ardu (voire impossible).
pour avoir une chance d'être exhaustif en dynamique, comme le dit Barret Michel, ça suppose d'avoir des tests ayant la plus large couverture possible.
si je devais lister toutes les commandes externes d'un script, je monterais un environnement chrooté avec simplement un bash, et je compléterais cet environnement à mesure que je rencontrerais des "command not found".
Ensuite, dans une perspective à long terme, tous les nouveaux scripts devraient être validés dans cet environnement avant le déploiement.
Pour peu que tu fasses quelques efforts pendant quelques semaines (ou quelques mois), tu peux taper sans regarder ton clavier. Dans ces conditions, les gribouillis sur les capots des touches n'ont plus beaucoup d'importance.
pff, pourtant pas difficile de faire des phrases sans accent ! :D
je trolle sur des sujets que je ne lis pas :p
c'est un peu le principe, non ? :)
cela dit, mon commentaire n'était pas complètement pertinent non plus semble-t-il
mais quel générateur maison ?
un outil complément interne. Il s'agit d'un script en python qui gère les dépendances entre modules (avec une vérification sommaire de la compatibilité des versions des différents modules). Les makefile générés par ce script stockent les produits de la compilation dans des sous répertoires spécifiques à chaque architecture (pour éviter d'avoir à tout recompiler à chaque fois qu'on change de cible). Et ça, c'est quand même intéressant vu qu'on compile sur HP-UX sur Itanium (et autre chose, mais je ne sais plus quoi), Solaris 9 sur sparc, solaris 10 sur sparc/x86, Linux sur x86 et quelques vieilleries sur AIX.
Cela dit, comme tout outil développé en interne et peu maintenu, il amène son lot de contraintes :)
Mon problème de perf venait du fait que pour chaque sous répertoire de niveau n, make était lancé n-1 fois. Évidemment, n-2 fois, il ne faisait pas grand chose ... à part recopîer tous les produits utiles de la compilations dans le sous répertoire de l'architecture du moment ... arg ! :D
L'exemple que je donne ne portait pas sur les makefile récursifs (vu qu'ils le sont toujours), mais sur ton affirmation selon laquelle l'augmentation des perfs des machines permettrait de s'abstenir de se pencher sur les perfs de sa chaine de compil.
C'est parfois vrai, parfois pas :)
l'augmentation des performances du hardware, c'est souvent utilisé comme prétexte pour gérer les ressources n'importe comment ...
sur un projet ici, en dehors de pondre des makefile récursifs, le générateur maison de makefile était un peu trop frileux et recompilait pleins de répertoires pour rien.
Et ben mine de rien, gagner 20 minutes sur une compile de 40, c'est pas mal.
Comme je le précisais dans mon commentaire précédent, c'est intéressant de se pencher sur la question pour les gros projets avec une arborescence conséquente.
Sur les petits projets, l'intérêt est effectivement très faible.
[^] # Re: Grave !
Posté par gaaaaaAab . En réponse au journal Enfin un journal qui parle de Linux. Évalué à 7.
[^] # Re: Merci pour cette information.
Posté par gaaaaaAab . En réponse au journal It's not a bug, it's a fissure !. Évalué à 2.
ce qui n'empêche pas que ça la fout mal sur l'ifon vu qu'Apple aurait les moyens humains pour valider ça bien.
Après, je laisse suffisamment de bugs dans mon code pour aussi garder une certaine humilité, il suffit de tellement peu pour que ça ne marche pas :)
[^] # Re: une seule ligne
Posté par gaaaaaAab . En réponse au sondage J'indente mon code source avec. Évalué à 3.
[^] # Re: une seule ligne
Posté par gaaaaaAab . En réponse au sondage J'indente mon code source avec. Évalué à 4.
[^] # Re: download depuis la machine HOTE vers le dossier du chroot
Posté par gaaaaaAab . En réponse au journal [ juste pour me défouler ] Encore un coup de gueule.. Évalué à 3.
pour déployer rapidement du soft sur des machines d'intégration, je fais du sshfs. Tant qu'il n'y a que quelques machines, c'est super confortable.
[^] # Re: j'aller dire "eviter les accents" meme en francais
Posté par gaaaaaAab . En réponse au message [UTF8 et Co] recherche pense bête pour programmeur distrait. Évalué à 1.
# ...
Posté par gaaaaaAab . En réponse au message [UTF8 et Co] recherche pense bête pour programmeur distrait. Évalué à 9.
superbe lapsus ! =)
# en changeant de séparateur
Posté par gaaaaaAab . En réponse au message bash : construction d'une ligne de commande dont certains arguments contiennent des espaces. Évalué à 2.
[^] # Re: zut ...
Posté par gaaaaaAab . En réponse au journal Toujours plus vite. Évalué à 2.
on peut déjà faire pleins de trucs avec des perfs plus qu'acceptables avec sed
[^] # Re: zut ...
Posté par gaaaaaAab . En réponse au journal Toujours plus vite. Évalué à 4.
Si ton script est destiné â être appelé très souvent, économiser le fork d'un cat, c'est bien
Quand tu fais un one-liner à usage unique en ligne de commande, c'est pas grave, évidemment, mais bon, c'est plus facile de laisser traîner un cat dans un script si on l'utilise libéralement dans un shell interactif, alors autant prendre des bonnes habitudes ;)
[^] # Re: ???
Posté par gaaaaaAab . En réponse au journal Toujours plus vite. Évalué à 2.
parce qu'effectivement, sur debian, même si bash-completion est installé, elle n'est pas chargée pour le compte root. Par contre, en tant qu'utilisateur sudoer, ça marche très bien.
$ sudo aptitude install command-no[tab]
$ sudo aptitude install command-not-found
[^] # Re: ???
Posté par gaaaaaAab . En réponse au journal Toujours plus vite. Évalué à 3.
qu'est-ce que vous appelez la complétion sur les packages ?
[^] # Re: Pas de problème
Posté par gaaaaaAab . En réponse au journal Toujours plus vite. Évalué à 5.
Comme je me débrouilles avec /etc/network/interfaces, je peux pas trop parler de NM, mais bon, l'argument "tu sais pas t'en servir parce que t'es hors du coup", c'est un peu naze.
Et puis, question de priorité. Il y a des technos récentes sur les quelles il est plus intéressant de se mettre à jour qu'une nième interface de gestion des interfaces réseaux, qui sera complètement refondue d'ici deux ans de toute façon.
[^] # Re: ~~
Posté par gaaaaaAab . En réponse au message Comment traduiriez-vous "Fencing Device" ?. Évalué à 3.
concernant le retrait de fruits contaminés dans une grappe, ça ne me dit rien.
[^] # Re: ~~
Posté par gaaaaaAab . En réponse au message Comment traduiriez-vous "Fencing Device" ?. Évalué à 3.
En revenant sur le sujet aujourd'hui, et dans l'idée du sécateur : élagage ?
[^] # Re: Facile
Posté par gaaaaaAab . En réponse au journal Softs qui déchiraizent \o/. Évalué à 2.
vim
enlightenment
python
Le shell est hors catégorie. Un shell sans l'écosystème des outils en ligne de commande, c'est moyen utile. Et distinguer une commande parmi d'autre, ça a peu de sens, vu que c'est l'ensemble des commandes dispo qui font la puissance du shell.
Bon, je ne résiste quand même pas, grep, find, sed, numéro complémentaire, xargs
[^] # Re: Ca dépend du sujet...
Posté par gaaaaaAab . En réponse au journal Sacrés fournisseurs Internet.... Évalué à 2.
et puis la vente à emporter est à 5,5 % depuis un sacré bout de temps
# chroot + exécution
Posté par gaaaaaAab . En réponse au message Lister les commandes appelées par un script. Évalué à 3.
pour avoir une chance d'être exhaustif en dynamique, comme le dit Barret Michel, ça suppose d'avoir des tests ayant la plus large couverture possible.
si je devais lister toutes les commandes externes d'un script, je monterais un environnement chrooté avec simplement un bash, et je compléterais cet environnement à mesure que je rencontrerais des "command not found".
Ensuite, dans une perspective à long terme, tous les nouveaux scripts devraient être validés dans cet environnement avant le déploiement.
[^] # Re: Ca dépend du sujet...
Posté par gaaaaaAab . En réponse au journal Sacrés fournisseurs Internet.... Évalué à 10.
# ...
Posté par gaaaaaAab . En réponse au journal Prix Hugo et Folio SF. Évalué à 4.
ce qui n'enlève rien au fait que beaucoup de prix Hugo sont des très bon bouquins.
et aussi, merci pour l'info !
[^] # Re: make récursif = pas bien
Posté par gaaaaaAab . En réponse au message Makefile récursifs et variable. Évalué à 2.
pour une fois, je pensais plutôt aux développeurs qu'aux fondeurs/éditeurs d'OS :)
[^] # Re: requête
Posté par gaaaaaAab . En réponse au journal Il est bien ce gars la. Évalué à 5.
pff, pourtant pas difficile de faire des phrases sans accent ! :D
[^] # Re: make récursif = pas bien
Posté par gaaaaaAab . En réponse au message Makefile récursifs et variable. Évalué à 2.
c'est un peu le principe, non ? :)
cela dit, mon commentaire n'était pas complètement pertinent non plus semble-t-il
mais quel générateur maison ?
un outil complément interne. Il s'agit d'un script en python qui gère les dépendances entre modules (avec une vérification sommaire de la compatibilité des versions des différents modules). Les makefile générés par ce script stockent les produits de la compilation dans des sous répertoires spécifiques à chaque architecture (pour éviter d'avoir à tout recompiler à chaque fois qu'on change de cible). Et ça, c'est quand même intéressant vu qu'on compile sur HP-UX sur Itanium (et autre chose, mais je ne sais plus quoi), Solaris 9 sur sparc, solaris 10 sur sparc/x86, Linux sur x86 et quelques vieilleries sur AIX.
Cela dit, comme tout outil développé en interne et peu maintenu, il amène son lot de contraintes :)
Mon problème de perf venait du fait que pour chaque sous répertoire de niveau n, make était lancé n-1 fois. Évidemment, n-2 fois, il ne faisait pas grand chose ... à part recopîer tous les produits utiles de la compilations dans le sous répertoire de l'architecture du moment ... arg ! :D
L'exemple que je donne ne portait pas sur les makefile récursifs (vu qu'ils le sont toujours), mais sur ton affirmation selon laquelle l'augmentation des perfs des machines permettrait de s'abstenir de se pencher sur les perfs de sa chaine de compil.
C'est parfois vrai, parfois pas :)
[^] # Re: make récursif = pas bien
Posté par gaaaaaAab . En réponse au message Makefile récursifs et variable. Évalué à 2.
Je l'ai lu il y a lonnngtemps, et j'en avais principalement retenu la conclusion (éviter les make récursifs).
[^] # Re: make récursif = pas bien
Posté par gaaaaaAab . En réponse au message Makefile récursifs et variable. Évalué à 6.
sur un projet ici, en dehors de pondre des makefile récursifs, le générateur maison de makefile était un peu trop frileux et recompilait pleins de répertoires pour rien.
Et ben mine de rien, gagner 20 minutes sur une compile de 40, c'est pas mal.
Comme je le précisais dans mon commentaire précédent, c'est intéressant de se pencher sur la question pour les gros projets avec une arborescence conséquente.
Sur les petits projets, l'intérêt est effectivement très faible.