Je ne connais pas Haskell mais certaines techniques comme le tail call optimization me séduisent. Du coup sur l'exemple de la fonction fac, je me demande si Haskell sait transformer ça en fonction tail-récursive ou s'il faut l'aider un peu en définissant d'autres fonctions ?
Dans la doc Haskell, le tail call optimization est défini ainsi :
In many programming languages, calling a function uses stack space, so a function that is tail recursive can build up a large stack of calls to itself, which wastes memory. Since in a tail call, the containing function is about to return, its environment can actually be discarded and the recursive call can be entered without creating a new stack frame. This trick is called tail call elimination or tail call optimisation and allows tail-recursive functions to recur indefinitely.
Il existe aussi Rudder. Il se base sur CFEngine et FusionInventory et propose une interface web d'administration et de supervision du parc. Il se veut simple à administrer et complet.
--skip-fields (ou -f) permet d'ignorer le premier champ. Il faut alors que le reste soit identique pour que uniq puisse fonctionner. Si dans le fichier de résultat il y a des adresses mac identiques mais avec des descriptifs différents, il faut combiner plusieurs commandes
Pareil, ma batterie ne tenait plus qu'une poignée d'heures, et elle a fini par gonfler et devenir inutilisable. J'en ai racheté une nouvelle pour 15 euros et désormais mon portable tient 4 à jours allumé pour un coût modique.
C'est plus simple et plus écolo que de racheter un nouveau téléphone, même à 20-30 euros le nouveau téléphone.
Ou alors find . -name "*odt" | while read f ; do if zipgrep -q ma_recherche "$f" ; then echo "correspondance trouvee dans $f" ; fi ; done
affichera le nom de chaque fichier dans lequel une correspondance est trouvée.
Je me suis trompé, j'ai mis des {} au lieu de (). normalement, c'est
cd "/home/sacha/Bureau/images/test image 2"
name=$(basename "$(pwd)")
name=${name// /_}
echo $name
=> test_image_2
Le problème pourra venir des espaces dans les noms de dossier. Utilise les guillements basename "$(pwd)"
Pour remplacer les espaces par des underscores, plutôt que sed et awk, le plus pratique, c'est d'utiliser les fonctions de remplacement du shell ${variable// /_}
Au final, ça donne cd "/home/sacha/Bureau/images/test image 2"
name=${basename "$(pwd)"}
name=${name// /_}
echo $name
Le problème pourra venir des espaces dans les noms de dossier. Utilise les guillements basename "$(pwd)"
Pour remplacer les espaces par des underscores, plutôt que sed et awk, le plus pratique, c'est d'utiliser les fonctions de remplacement du shell ${variable// /_}
Au final, ça donne cd "/home/sacha/Bureau/images/test image 2"
name=${basename "$(pwd)"}
name=${name// /_}
echo $name
=> test_image_2
Le problème pourra venir des espaces dans les noms de dossier. Utilise les guillements basename "$(pwd)"
Pour remplacer les espaces par des underscores, plutôt que sed et awk, le plus pratique, c'est d'utiliser les fonctions de remplacement du shell ${variable// /_}
Au final, ça donne cd "/home/sacha/Bureau/images/test image 2"
name=${basename "$(pwd)"}
name=${name// /_}
echo $name
=> test_image_2
Après avoir été chez SFR puis chez Leclerc Mobile, je suis chez Simyo, et en effet ils sont plus compétitif que du mobicarte : prix fixe de 19 centimes la minute, sms à 10 centimes et un décompte à la seconde. Tout rechargement dure au minimum 3 mois, et il y a plusieurs formules de rechargement automatique. Pour gâter le tout, l'interface web du compte client est simple et claire.
Pour le moment, j'ai pas trouvé mieux, mais s'il y a mieux, je suis preneur.
GREYCstoration permet de faire de l'inpainting, et quand on voit les démonstrations, c'est plutôt impressionnant (par exemple, http://cimg.sourceforge.net/greycstoration/img/res_zoobird.h(...) ; placez votre souris sur/hors de l'image pour voir le avant/après).
Sur la page d'accueil de GREYCstoration, il est indiqué que G'MIC contient toutes les fonctionnalités de GREYCstoration, mais je n'ai pas réussi à trouver l'inpainting la dernière fois que je l'ai utilisé. Est-ce que cette nouvelle version le propose ?
# Tail-call optimization de la factorielle ?
Posté par Christophe Bliard . En réponse à la dépêche Sortie du livre « Parallel and Concurrent Programming in Haskell ». Évalué à 3.
Je ne connais pas Haskell mais certaines techniques comme le tail call optimization me séduisent. Du coup sur l'exemple de la fonction
fac
, je me demande si Haskell sait transformer ça en fonction tail-récursive ou s'il faut l'aider un peu en définissant d'autres fonctions ?Dans la doc Haskell, le tail call optimization est défini ainsi :
# Rudder
Posté par Christophe Bliard . En réponse à la dépêche Formation Puppet : lancement d'un cursus complet en France et en Suisse par Camptocamp. Évalué à 7.
Il existe aussi Rudder. Il se base sur CFEngine et FusionInventory et propose une interface web d'administration et de supervision du parc. Il se veut simple à administrer et complet.
[^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre
Posté par Christophe Bliard . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 1.
Juste pour m'aider à apprendre
awk
, voici une solution sanstac
[^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre
Posté par Christophe Bliard . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.
Merci ! J'avais pourtant regardé dans le man pour trouver une astuce mais je n'avais pas bien cherché.
[^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre
Posté par Christophe Bliard . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.
tac
(cat
à l'envers) permet d'afficher les lignes dans l'ordre inverse, ça me permet de contourner le fait queuniq
garde la première ligneAvec deux
tac
et un peu deawk
au lieu deuniq
, on peut supprimer les doublons.Il y a peut-être une solution plus élégante et si quelqu'un est motivé, ça m'intéresse de la connaître.
[^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre
Posté par Christophe Bliard . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.
Oui avec la commande uniq : ça garde l. J'ai un peu adapté le fichier mac.sort pour l'exemple.
--skip-fields
(ou-f
) permet d'ignorer le premier champ. Il faut alors que le reste soit identique pour que uniq puisse fonctionner. Si dans le fichier de résultat il y a des adresses mac identiques mais avec des descriptifs différents, il faut combiner plusieurs commandesPrenons le fichier suivant
On sélectionne les deux premiers champs, on lance le
uniq
et on s'en sert pour retrouver la ligne complète avecfgrep
Seule la première occurrence est conservée
[^] # Re: Bon autant vous montrez le complet ça vous aidera peut etre
Posté par Christophe Bliard . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.
Voilà !
[^] # Re: Bizarre bizarre
Posté par Christophe Bliard . En réponse au message Utilisation de awk pour la jointure de 2 fichiers. Évalué à 0.
Non, mais on peut lui dire de ne sélectionner que des mots entiers avec
-w
[^] # Re: Le but est de standardiser le contenu des logs
Posté par Christophe Bliard . En réponse à la dépêche Projet Lumberjack. Évalué à -6.
D'où peut-on télécharger cet outil readlog ?
[^] # Re: sikuli
Posté par Christophe Bliard . En réponse à la dépêche Actionaz, un logiciel d'automatisation libre. Évalué à 2.
Très pratique pour du test d'interface graphique quand justement l'interface graphique est spécifiée et qu'on veut s'assurer du résultat du rendu.
[^] # Re: Mon calcul
Posté par Christophe Bliard . En réponse à la dépêche Free lance son offre mobile : ce que ça change. Évalué à 2.
Pareil, ma batterie ne tenait plus qu'une poignée d'heures, et elle a fini par gonfler et devenir inutilisable. J'en ai racheté une nouvelle pour 15 euros et désormais mon portable tient 4 à jours allumé pour un coût modique.
C'est plus simple et plus écolo que de racheter un nouveau téléphone, même à 20-30 euros le nouveau téléphone.
[^] # Re: Questions
Posté par Christophe Bliard . En réponse à la dépêche Sortie officielle de GTK+ 3.0 !. Évalué à 2.
Faudrait que je lise ce Zsh Guide, même si c'est déjà un beau morceau...
[^] # Re: Questions
Posté par Christophe Bliard . En réponse à la dépêche Sortie officielle de GTK+ 3.0 !. Évalué à 2.
[^] # Re: Les miens
Posté par Christophe Bliard . En réponse au journal Blogs BD. Évalué à 1.
[^] # Re: digital
Posté par Christophe Bliard . En réponse au journal La copie numérique selon la Warner. Évalué à 3.
[^] # Re: zgrep -r ma-chaine *.odt
Posté par Christophe Bliard . En réponse au message Recherches dans un répertoire plein d'ODT. Évalué à 1.
find . -name "*odt" | while read f ; do if zipgrep -q ma_recherche "$f" ; then echo "correspondance trouvee dans $f" ; fi ; done
affichera le nom de chaque fichier dans lequel une correspondance est trouvée.
[^] # Re: Re:
Posté par Christophe Bliard . En réponse au message renommer les fichier par script en nom_dossier_jour.jpg. Évalué à 1.
[^] # Re: Re:
Posté par Christophe Bliard . En réponse au message renommer les fichier par script en nom_dossier_jour.jpg. Évalué à 1.
cd "/home/sacha/Bureau/images/test image 2"
name=$(basename "$(pwd)")
name=${name// /_}
echo $name
=> test_image_2
[^] # Re: Re:
Posté par Christophe Bliard . En réponse au message renommer les fichier par script en nom_dossier_jour.jpg. Évalué à 1.
[^] # Re: Re:
Posté par Christophe Bliard . En réponse au message renommer les fichier par script en nom_dossier_jour.jpg. Évalué à -2.
basename "$(pwd)"
Pour remplacer les espaces par des underscores, plutôt que sed et awk, le plus pratique, c'est d'utiliser les fonctions de remplacement du shell
${variable// /_}
Au final, ça donne
cd "/home/sacha/Bureau/images/test image 2"
name=${basename "$(pwd)"}
name=${name// /_}
echo $name
ça donne test_image_2
[^] # Re: Re:
Posté par Christophe Bliard . En réponse au message renommer les fichier par script en nom_dossier_jour.jpg. Évalué à -2.
basename "$(pwd)"
Pour remplacer les espaces par des underscores, plutôt que sed et awk, le plus pratique, c'est d'utiliser les fonctions de remplacement du shell
${variable// /_}
Au final, ça donne
cd "/home/sacha/Bureau/images/test image 2"
name=${basename "$(pwd)"}
name=${name// /_}
echo $name
=> test_image_2
[^] # Re: Re:
Posté par Christophe Bliard . En réponse au message renommer les fichier par script en nom_dossier_jour.jpg. Évalué à 3.
basename "$(pwd)"
Pour remplacer les espaces par des underscores, plutôt que sed et awk, le plus pratique, c'est d'utiliser les fonctions de remplacement du shell
${variable// /_}
Au final, ça donne
cd "/home/sacha/Bureau/images/test image 2"
name=${basename "$(pwd)"}
name=${name// /_}
echo $name
=> test_image_2
[^] # Re: Je vais enfin pouvoir avoir un portable
Posté par Christophe Bliard . En réponse au journal And then they were four .... Évalué à 5.
Pour le moment, j'ai pas trouvé mieux, mais s'il y a mieux, je suis preneur.
[^] # Re: Enfin, ça ressemble à quelque chose:
Posté par Christophe Bliard . En réponse au journal Singe de mer 2.0. Évalué à 6.
# inpainting ?
Posté par Christophe Bliard . En réponse à la dépêche [GIMP] G'MIC évolue et s'internationalise. Évalué à 3.
Sur la page d'accueil de GREYCstoration, il est indiqué que G'MIC contient toutes les fonctionnalités de GREYCstoration, mais je n'ai pas réussi à trouver l'inpainting la dernière fois que je l'ai utilisé. Est-ce que cette nouvelle version le propose ?