A widespread observation is that increased sentence spacing creates "rivers"[14] or "holes"[15] within text, making it visually unattractive, distracting, and difficult to locate the end of sentences.[16] Comprehensive works on typography describe the negative effect on readability caused by inconsistent spacing,[17] which is supported in a 1981 study which found that "comprehension was significantly less accurate with the river condition."[18] Another 1981 study on Cathode Ray Tube (CRT) displays concluded that "more densely packed text is read more efficiently … than is more loosely packed text."[19]
En tapant
vim ^Tcv tex il me propose les fichiers qui correspondent (en mode fuzzy find, ici "vim perso/cv/cv.tex"), plus qu'à sélectionner celui que je veux avec les flèches (ou ^ J et ^ K) et valider avec entrée pour retrouver ma ligne de commande complétée.
Possibilité également d'utiliser Tab pour sélectionner plusieurs fichiers qui seront tous insérés dans la ligne de commande. Il est même possible de sélectionner avec la souris.
Dernier point indispensable, la recherche dans l'historique du shell en remplaçant ^ R. quand je me retrouve dans un bash par défaut (sans même ^ S pour rechercher en avant quand j'ai été trop vite :() je pleure un peu.
Même en ayant l'habitude des langages (pré-)compilés où ce genre de manip' est impossible, ajouter dynamiquement des méthodes à une classe est déjà douteux, mais les ajouter à une instance précise est encore plus tordu. Pourtant, l'exercice aurait pu être intéressant en soi…
Un exercice pas bien compliqué puisqu'il suffit d'essayer. C'est sûr que c'est douteux mais il y a plein de scénario ou ce genre de possibilité est utile. Le duck-typing en profite énormément, si une bibliothèque nécessite un objet capable de d'aboyer mais que je suis sûr d'avoir besoin et qu'il est pertinent de l'appliquer à mes canards, rien de plus simple que de faire aboyer mes canards.
Ce n'est pas quelque chose qu'on souhaite croiser en production mais tout le monde n'a pas des problèmes d'ingénierie logicielle à résoudre.
>>> class C():
... pass
...
>>> i1=C()
>>> i2=C()
>>> def f():
... print("ok")
...
>>> i1.f = f
>>> i1.f()
ok
>>> i2.f()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: C instance has no attribute 'f'
j'ai toujours pensé que l'utilisation d'un gadget, du type des clés qui ouvrent les voitures à distance, semble beaucoup plus simple et fiable que la biométrie, mais la sécurité reste loin d'être parfaite
Le mot professionnel pour ce genre de "gadget" est carte à puce.
Ça sauvegarde automatiquement dans une boite IMAP. Pas testé la restauration mais j'arrive à accéder à ces SMS depuis thunderbird, ce qui me rassure sur le fonctionnement de la chose.
Avant, il y avait un bouton qui rappelais que le navigateur était peut-être plus bavard qu'on l'imaginais. Maintenant ce bouton est dissimulé au milieu d'une auto-apologie non méritée (tu mentionnes Google analytics) et on sait tous que personne ne lis ce genre de pavé.
On se doute bien qu'ils ont camouflé ce bouton pour réduire le nombre de ceux qui désactivent les rapports selon le principe de précaution.
Donc oui, cela me permet de déduire qu'ils se moquent de la vie privée.
Peut-être que OneTab peut remplir cette fonction. Le bouton principal regroupe tous les onglets ouvert actuellement dans une simple page html locale avec des liens vers les url des onglets. Je m'en sert pour réduire le nombre d'onglet et la consommation mémoire tout en satisfaisant ma névrose à ne pas fermer des onglets, on sait jamais ça peut me resservir un jour.
Possibilité ensuite d'éditer les groupes, de les nommer, de les marquer comme favori, de restaurer tout un groupe, de le partager, d'ajouter un lien dans un groupe via le clic droit etc.
Et pour en savoir plus, tu peux consulter les journaux de son auteur, serge_sans_paille, qui nous a parlé régulièrement de pythran depuis sa création : https://linuxfr.org/tags/pythran/public
Implémenter une fonctionnalité, la supprimer ensuite, lâcher la responsabilité de gérer ça par la communauté Firefox, lui chier sur la tronche en pétant les API puis réimplémenter la même chose par dessus (car oui ces containers ne seront que des groupes d'onglet Panorama colorés pour 90% des utilisateurs, les 10% restant apprécieront le multi-compte sur leurs sites préférés); certains appellent ça innover, moi j’appelle ça se foutre de la gueule du monde et de la perte de temps.
Sans développeur d'extensions ni utilisateurs je leur souhaite bon courage pour tester leurs innovations.
Soyons plus réalistes : dans cette première version, ce sera utilisé par les geeks, c'est sûr. Mais dans 5 versions ce sera abandonné comme toutes les fonctionnalités sans grand intérêt ajoutés par Mozilla. Ils feraient mieux de laisser ce genre de fonctionnalités dans les extensions et d'arrêter de toutes les péter toutes les 3 versions.
Oui mais modifier ainsi le continuum espace temps modifierai également la base d’apprentissage et donc apporterai une sorte d'élitisme à ce classifieur; les great trolls glissant vers la catégorie magnificent trolls et ainsi de suite. Par application récursive, nous arriverions à une situation ou aucun journal ne serait publié avant d'atteindre une qualitaÿ parfaite !
Je me permet de partager mon petit script shell (baptisé syncssh) qui semble faire la même chose (peut-être en moins bien mais il a le mérite d'avoir peu de dépendances). Bon je ne suis pas expert en tmux mais ça a fait le boulot quand j'en avait besoin (je n'arrive pas à mettre le shebang #!/bin/sh dans le codeblock :().
if["$#" -lt 1];thenecho"Usage: $0 ssh_hostname" >&2exit1fi# why does it not work when window name is simply syncssh ? maybe a dead window is haunting my session
tmux new-window -n syncssh32
tmux send-keys -t 0"exec ssh $1" C-m
shifti=1for var in "$@"do
tmux split-window -h -t syncssh32
tmux send-keys -t $i"exec ssh ${var}" C-m
i=$(($i+1))done
tmux select-layout tiled
tmux select-pane -t 0
tmux set-window-option synchronize-panes on > /dev/null
J'ai également un binding qui me permet lorsque nécessaire de désynchroniser ou resynchroniser les panes.
PROP_COMPRESSION (essential)
uint32 17 Type identification
uint32 1 One byte of payload
byte comp Compression indicator; one of
0: No compression
1: RLE encoding
2: (Never used, but reserved for zlib compression)
3: (Never used, but reserved for some fractal compression)
Sauf que la propriété PROP_COMPRESSION vaut 2? J'imagine qu'il suffirait de modifier le code de KDE pour appeler la zlib à la place du décodeur RLE lorsque cette propriété vaut 2.
J'ai commencé mes recherches sur les lexer/parser et à jouer avec jison et au moment ou je commençais à m'arracher les cheveux, j'ai trouvé quelque chose qui ressemble furieusement à ce que je cherchais : https://gist.github.com/stt/1296753
Et là, je remarque que ce que j'avais commencé à pondre était pas si loin du but.
Il me reste à étudier ça et à l'adapter à mes besoins.
Moi pour commencer, je ferai une classe utilisateur et une classe "ensemble d'utilisateur" qui serait une liste ou un ensemble d'instance d'utilisateur. Cette classe aurait une méthode (surement un constructeur même) qui permettrait de générer la liste et d'instancier tous les utilisateurs à partir d'un critère de recherche/une requête SQL et donc en ne faisant qu'une requête.
Mais que se passe-t-il si je donne à la fonction pgcd sans annotations des objets pour lesquels sont définis les opérations mod et comparaison à 0 (une classe polynôme par exemple) ? Est ce que le systême d'inférence va me mettre des bâtons dans les roues parce qu'il a fait de mauvaise hypothèses ?
Moi j'ai acheté un petit adaptateur Ethernet USB. Ça coûte pas bien cher et c'est peu volumineux. Apres, reste qu'à bridger les interfaces comme le fait le monsieur pour ne pas faire obstruction au passage des paquets.
Posté par copapa .
En réponse au message Variable $DISPLAY.
Évalué à 4.
Dernière modification le 03 mars 2016 à 14:43.
Xfvb va te lancer un serveur X "virtuel". Tu pourras lancer tes applis graphique en spécifiant celui dans la variable DISPLAY. Tu pourras récupérer un screenshot de ce serveur X via import d'ImageMagick et le manipuler via un client VNC ou via xdotool.
from itertools import islice
line="abcd\nefg"
def window(seq, n=2):
"Returns a sliding window (of width n) over data from the iterable"
" s -> (s0,s1,...s[n-1]), (s1,s2,...,sn), ... "
it = iter(seq)
result = tuple(islice(it, n))
if len(result) == n:
yield result
for elem in it:
result = result[1:] + (elem,)
yield result
for chunk in window(line, 2):
print(chunk, ''.join(chunk))
for chunk in window(line, 3):
print(chunk, ''.join(chunk))
from itertools import islice
La sortie :
('a', 'b') ab
('b', 'c') bc
('c', 'd') cd
('d', '\n') d
('\n', 'e')
e
('e', 'f') ef
('f', 'g') fg
('a', 'b', 'c') abc
('b', 'c', 'd') bcd
('c', 'd', '\n') cd
('d', '\n', 'e') d
e
('\n', 'e', 'f')
ef
('e', 'f', 'g') efg
[^] # Re: Justifier
Posté par copapa . En réponse au journal scraplap, pour mouler offline. Évalué à 4.
Le texte justifié gène la compréhension lors de la lecture.
cf https://en.wikipedia.org/wiki/Sentence_spacing_studies. Extrait :
# Celery
Posté par copapa . En réponse au message *MQ. Évalué à 1. Dernière modification le 20 mars 2018 à 14:12.
Est ce que celery (qui n'est qu'un front end de file d'attente indépendant du stockage ce qui te permet d'avoir la persistance) te conviendrait ?
Introduction : http://sametmax.com/files-de-taches-et-taches-recurrentes-avec-celery/
Il existe une interface web qui semble répondre à tes attentes : https://flower.readthedocs.io/en/latest/screenshots.html
[^] # Re: fzf
Posté par copapa . En réponse à la dépêche Des alternatives à grep, ls et find. Évalué à 4. Dernière modification le 20 mars 2018 à 13:31.
Autre avantage de fzf, il est possible de l'interfacer avec un raccourci clavier à son shell.
https://github.com/junegunn/fzf#key-bindings-for-command-line
En tapant
il me propose les fichiers qui correspondent (en mode fuzzy find, ici "vim perso/cv/cv.tex"), plus qu'à sélectionner celui que je veux avec les flèches (ou ^ J et ^ K) et valider avec entrée pour retrouver ma ligne de commande complétée.vim ^Tcv tex
Possibilité également d'utiliser Tab pour sélectionner plusieurs fichiers qui seront tous insérés dans la ligne de commande. Il est même possible de sélectionner avec la souris.
Dernier point indispensable, la recherche dans l'historique du shell en remplaçant ^ R. quand je me retrouve dans un bash par défaut (sans même ^ S pour rechercher en avant quand j'ai été trop vite :() je pleure un peu.
bonus : cumuler rg et fzf pour rechercher dans les fichiers en mode fuzzy puis ouvrir la ligne sélectionnée dans l'éditeur : http://owen.cymru/sf-a-quick-way-to-search-for-some-thing-in-bash-and-edit-it-with-vim-2/
[^] # Re: Prendre le problème à l'envers
Posté par copapa . En réponse au message Ajouter des méthodes à une instance de classe, après sa création. Évalué à 3.
Un exercice pas bien compliqué puisqu'il suffit d'essayer. C'est sûr que c'est douteux mais il y a plein de scénario ou ce genre de possibilité est utile. Le duck-typing en profite énormément, si une bibliothèque nécessite un objet capable de d'aboyer mais que je suis sûr d'avoir besoin et qu'il est pertinent de l'appliquer à mes canards, rien de plus simple que de faire aboyer mes canards.
Ce n'est pas quelque chose qu'on souhaite croiser en production mais tout le monde n'a pas des problèmes d'ingénierie logicielle à résoudre.
[^] # Re: Et sur le fond?
Posté par copapa . En réponse au journal Microsoft voudrait de la biométrie. Évalué à 5.
Le mot professionnel pour ce genre de "gadget" est carte à puce.
[^] # Re: Fork ?
Posté par copapa . En réponse à la dépêche Campagne de financement d’eelo pour un smartphone respectueux de la vie privée. Évalué à 7.
Moi j'utilise SMS Backup+ : https://f-droid.org/en/packages/com.zegoggles.smssync/
Ça sauvegarde automatiquement dans une boite IMAP. Pas testé la restauration mais j'arrive à accéder à ces SMS depuis thunderbird, ce qui me rassure sur le fonctionnement de la chose.
[^] # Re: privacy
Posté par copapa . En réponse à la dépêche Firefox fait des vannes pour sa version 56. Évalué à -1.
Avant, il y avait un bouton qui rappelais que le navigateur était peut-être plus bavard qu'on l'imaginais. Maintenant ce bouton est dissimulé au milieu d'une auto-apologie non méritée (tu mentionnes Google analytics) et on sait tous que personne ne lis ce genre de pavé.
On se doute bien qu'ils ont camouflé ce bouton pour réduire le nombre de ceux qui désactivent les rapports selon le principe de précaution.
Donc oui, cela me permet de déduire qu'ils se moquent de la vie privée.
# Nemiver
Posté par copapa . En réponse au message Substitut de ddd. Évalué à 2.
Moi j'ai bien aimé nemiver quand j'ai eu besoin d'un debugger. Ca utilise gdb dans l'arrière boutique également.
https://wiki.gnome.org/Apps/Nemiver
[^] # Re: Tu as démontré qu'il y a un gros problème
Posté par copapa . En réponse au journal Configurer l'extension wallabag pour firefox.. Évalué à 10.
La conférence de présentation des nouveaux smartphone d'Apple me fait penser qu'ils sont d'accord avec toi.
[^] # Re: Conteneurs
Posté par copapa . En réponse au journal Firefox 57 - onglets contextuels et autres joyeusetés. Évalué à 1. Dernière modification le 28 août 2017 à 11:00.
Peut-être que OneTab peut remplir cette fonction. Le bouton principal regroupe tous les onglets ouvert actuellement dans une simple page html locale avec des liens vers les url des onglets. Je m'en sert pour réduire le nombre d'onglet et la consommation mémoire tout en satisfaisant ma névrose à ne pas fermer des onglets, on sait jamais ça peut me resservir un jour.
Possibilité ensuite d'éditer les groupes, de les nommer, de les marquer comme favori, de restaurer tout un groupe, de le partager, d'ajouter un lien dans un groupe via le clic droit etc.
[^] # Re: Numpy FTW
Posté par copapa . En réponse au journal Un Python qui rivalise avec du C++. Évalué à 7.
Et pour en savoir plus, tu peux consulter les journaux de son auteur, serge_sans_paille, qui nous a parlé régulièrement de pythran depuis sa création : https://linuxfr.org/tags/pythran/public
[^] # Re: Mwai
Posté par copapa . En réponse au journal Firefox 57 - onglets contextuels et autres joyeusetés. Évalué à 9.
Implémenter une fonctionnalité, la supprimer ensuite, lâcher la responsabilité de gérer ça par la communauté Firefox, lui chier sur la tronche en pétant les API puis réimplémenter la même chose par dessus (car oui ces containers ne seront que des groupes d'onglet Panorama colorés pour 90% des utilisateurs, les 10% restant apprécieront le multi-compte sur leurs sites préférés); certains appellent ça innover, moi j’appelle ça se foutre de la gueule du monde et de la perte de temps.
Sans développeur d'extensions ni utilisateurs je leur souhaite bon courage pour tester leurs innovations.
[^] # Re: Mwai
Posté par copapa . En réponse au journal Firefox 57 - onglets contextuels et autres joyeusetés. Évalué à 5.
Soyons plus réalistes : dans cette première version, ce sera utilisé par les geeks, c'est sûr. Mais dans 5 versions ce sera abandonné comme toutes les fonctionnalités sans grand intérêt ajoutés par Mozilla. Ils feraient mieux de laisser ce genre de fonctionnalités dans les extensions et d'arrêter de toutes les péter toutes les 3 versions.
[^] # Re: Et ils le savent comment ?
Posté par copapa . En réponse au journal Grsecurity attaque Bruce Perens en justice pour diffamation. Évalué à 2.
Ils doivent trouver une technique qui résistera a un diff entre deux utilisateurs complices. Bon courage a eux.
[^] # Re: Puisque qu'on parle de ssh ...
Posté par copapa . En réponse au journal Openssh, dernières actus. Évalué à 1.
L'exemple d'une deuxième configuration ssh est un des exemples utilisés par Redhat pour expliquer comment créer des unit files pour systemd : https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/System_Administrators_Guide/sect-Managing_Services_with_systemd-Unit_Files.html#ex-Managing_Services_with_systemd-Multiple_sshd
Et comme tu le dit, il copie la config et créé un nouveau service.
[^] # Re: Couplage avec IPoT
Posté par copapa . En réponse à la dépêche Prédire la note d’un journal sur LinuxFr.org. Évalué à 5.
Oui mais modifier ainsi le continuum espace temps modifierai également la base d’apprentissage et donc apporterai une sorte d'élitisme à ce classifieur; les great trolls glissant vers la catégorie magnificent trolls et ainsi de suite. Par application récursive, nous arriverions à une situation ou aucun journal ne serait publié avant d'atteindre une qualitaÿ parfaite !
Nom de Zeus !
# Mon bidouillage
Posté par copapa . En réponse au journal Présentation du multiplexer de sessions ssh cssh_tmux. Évalué à 6. Dernière modification le 12 mai 2017 à 15:36.
Je me permet de partager mon petit script shell (baptisé
syncssh
) qui semble faire la même chose (peut-être en moins bien mais il a le mérite d'avoir peu de dépendances). Bon je ne suis pas expert en tmux mais ça a fait le boulot quand j'en avait besoin (je n'arrive pas à mettre le shebang#!/bin/sh
dans le codeblock :().J'ai également un binding qui me permet lorsque nécessaire de désynchroniser ou resynchroniser les panes.
# xcf.txt
Posté par copapa . En réponse au message Cherche documentation concernant le nouveau format xcf version 8 (Gimp-2.9 et 2.10). Évalué à 2.
Si ce sont les deux seuls changements, je pense que ce document s'applique (même s'il semble dater):
https://github.com/GNOME/gimp/blob/master/devel-docs/xcf.txt
Sauf que la propriété PROP_COMPRESSION vaut 2? J'imagine qu'il suffirait de modifier le code de KDE pour appeler la zlib à la place du décodeur RLE lorsque cette propriété vaut 2.
# Trouvé !
Posté par copapa . En réponse au message Implémentation d'un moteur de recherche booléen. Évalué à 1.
J'ai commencé mes recherches sur les lexer/parser et à jouer avec jison et au moment ou je commençais à m'arracher les cheveux, j'ai trouvé quelque chose qui ressemble furieusement à ce que je cherchais :
https://gist.github.com/stt/1296753
Et là, je remarque que ce que j'avais commencé à pondre était pas si loin du but.
Il me reste à étudier ça et à l'adapter à mes besoins.
# Une classe "ensemble d'utilisateur"
Posté par copapa . En réponse au message J'ai besoin d'un avis extérieur pour m'aider.... Évalué à 2.
Moi pour commencer, je ferai une classe utilisateur et une classe "ensemble d'utilisateur" qui serait une liste ou un ensemble d'instance d'utilisateur. Cette classe aurait une méthode (surement un constructeur même) qui permettrait de générer la liste et d'instancier tous les utilisateurs à partir d'un critère de recherche/une requête SQL et donc en ne faisant qu'une requête.
[^] # Re: A force...
Posté par copapa . En réponse au journal Typage statique pour Python. Évalué à 1.
Mais que se passe-t-il si je donne à la fonction pgcd sans annotations des objets pour lesquels sont définis les opérations mod et comparaison à 0 (une classe polynôme par exemple) ? Est ce que le systême d'inférence va me mettre des bâtons dans les roues parce qu'il a fait de mauvaise hypothèses ?
# Port ethernet USB
Posté par copapa . En réponse au message Wireshark avec un portable n'ayant qu'un port eth. Évalué à 4. Dernière modification le 27 mai 2016 à 13:38.
Moi j'ai acheté un petit adaptateur Ethernet USB. Ça coûte pas bien cher et c'est peu volumineux. Apres, reste qu'à bridger les interfaces comme le fait le monsieur pour ne pas faire obstruction au passage des paquets.
# Xfvb
Posté par copapa . En réponse au message Variable $DISPLAY. Évalué à 4. Dernière modification le 03 mars 2016 à 14:43.
Xfvb va te lancer un serveur X "virtuel". Tu pourras lancer tes applis graphique en spécifiant celui dans la variable DISPLAY. Tu pourras récupérer un screenshot de ce serveur X via
import
d'ImageMagick et le manipuler via un client VNC ou viaxdotool
.https://en.wikipedia.org/wiki/Xvfb
[^] # Re: On dirait du C
Posté par copapa . En réponse au journal Analyse de texte. Évalué à 4. Dernière modification le 15 décembre 2015 à 21:05.
Piqué sur http://stackoverflow.com/questions/6822725/rolling-or-sliding-window-iterator-in-python
La sortie :
# units
Posté par copapa . En réponse au journal Le core utile. Évalué à 4.
Concernant numfmt, moi j'aime bien la commande units. Elle permet de convertir plein de choses en plein d'autres chose