Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1826 Le 05/12/2011, à 00:26

Pylades

Re : /* Topic des codeurs [6] */

OK, merci, ça m’aide déjà à accéder à un boîte. ^^

Mais je ne comprends pas pourquoi je suis obligé de la définir en temps que spoolfile ni à quoi servent les mailboxeshmm


Bref, je verrai ça quand j’aurai le temps. Merci encore.


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1827 Le 05/12/2011, à 00:29

Pylades

Re : /* Topic des codeurs [6] */

Sinon, ce script pourrait bien m’intéresser… Je le garde !


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1828 Le 05/12/2011, à 00:52

tshirtman

Re : /* Topic des codeurs [6] */

@The Uploader: Il te manque quoi?

Moi une bonne autocomplétion, mais en python, c'est dur >_>

Dernière modification par tshirtman (Le 05/12/2011, à 00:52)

Hors ligne

#1829 Le 05/12/2011, à 00:53

The Uploader

Re : /* Topic des codeurs [6] */

Bah une meilleure autocomplétion, justement.

Parce que la completion basée uniquement sur ce que j'ai déjà écrit dans le même fichier, ça sert à rien.


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1830 Le 05/12/2011, à 00:58

tshirtman

Re : /* Topic des codeurs [6] */

j'ai tenté avec ropevim y'a un certain temps, je crois pas que ça marche, ctrl-x-ctrl-o est sensé être actif, mais il donne jamais rien... du coup, ben rien... (ctrl-x ctrl-l sert parfois, mébon)

bon, bah je me suis motivé pour comprendre pathogen, régler quelques trucs, et faire un dépot du coup...
https://github.com/tshirtman/.vim

Dernière modification par tshirtman (Le 05/12/2011, à 02:00)

Hors ligne

#1831 Le 06/12/2011, à 01:34

Elzen

Re : /* Topic des codeurs [6] */

Πυλάδης, j'peux peut-être faire un outil de gestion de batterie qui prenne les images du thème actif, s'tu me files un coup de main.

Le module est déjà prêt, faut juste lui fabriquer une liste contenant les différents noms d'icônes à chercher dans le thème en fonction du pourcentage de batterie actuel, et il se chargera de vérifier quelle est la première image disponible et de la tourner comme il faut. Si tu (ou quelqu'un d'autre qui serait intéressé) me fais les deux fonctions python en question (une pour quand la batterie charge et une pour quand la batterie décharge), j'ajoute ça dans la liste des thèmes de batterie dispos.

Ça doit ressembler plus ou moins à ça :

# Liste les noms d'icônes en charge.
def charging_icons(percent):
    if (percent == 100):
        return ["batterie pleine"]
    elif (percent == 0):
        return ["batterie vide"]
    return ["nom icône 1", "nom icône 2"]

# Liste les noms d'icônes en décharge.
def discharging_icons(percent):
    if (percent == 100):
        return ["batterie pleine"]
    elif (percent == 0):
        return ["batterie vide"]
    return ["nom icône 1", "nom icône 2"]

Mais j'te laisse décider à quels pourcentages doivent correspondre quels noms d'icônes.
Note que tu peux éventuellement renvoyer les noms des icônes en cours de décharge en plus des autres dans la fonction de charge, histoire de, vu qu'on a la rotation en plus pour aider (mais en cours de décharge, je n'suis pas sûr que ça soit intéressant de coller les icônes de charge, vu qu'elles ont souvent un petit truc dessiné en plus).

(Il faut juste les noms des icônes, sans les extensions des fichiers)

À titre indicatif, t'peux voir ici les icônes de deux thèmes que j'ai d'installés chez moi, et j'te laisse regarder pour les thèmes que t'as chez toi tongue
Edit : ah, j'avais oublié une partie des icônes du thème GartoonRedux. Nouvelle planche wink

Dernière modification par ArkSeth (Le 06/12/2011, à 01:47)

Hors ligne

#1832 Le 06/12/2011, à 02:44

Pylades

Re : /* Topic des codeurs [6] */

Hmm… Si le monde ne s’est pas écroulé d’ici-là, je verrai ce week-end (mais la liste des noms d’icône avait effectivement été un problème)…


“Any if-statement is a goto. As are all structured loops.
“And sometimes structure is good. When it’s good, you should use it.
“And sometimes structure is _bad_, and gets into the way, and using a goto is just much clearer.”
                Linus Torvalds – 12 janvier 2003

Hors ligne

#1833 Le 06/12/2011, à 13:24

Elzen

Re : /* Topic des codeurs [6] */

Yep, déterminer quelles icônes peuvent correspondre à quel niveau de batterie est la partie la moins cool, pourquoi tu crois que j'te la refile ? tongue

À la relecture, je n'sais pas si j'ai été bien clair sur ce que je veux comme résultat aux fonctions, en fait…
J'te passe en paramètre un entier de 0 à 100 (enfin, a priori, ça n'devrait pas valoir zéro, mais sait-on jamais) qui représente le pourcentage actuel de charge de la batterie, et je veux la liste des noms d'icônes qui correspondent à ce pourcentage, classées par priorité (la première sera choisie si elle est présente, sinon la deuxième, etc.).

Genre en décharge, au dessus de 95% et en ne prenant en compte que les images indiquées sur la capture, j'suis à peu près presque sûr que la liste renvoyée sera quelque chose comme

[ "gpm-primary-100", "battery-100", "battery-full" ]

(En inversant peut-être l'ordre des deux premiers, à toi de voir. J'suppose que le plus intéressant est de mettre les noms d'icônes issues du thème GNOME en dernier, vu que ce thème est souvent utilisé comme fallback par les autres thèmes).

La difficulté principale est de déterminer à quel niveau de batterie correspond quelle icône (genre dans le thème GartoonRedux, à quel moment tu fais apparaître l'icône -080 avec sa petite partie rouge : 95% ? 90 ? 85 ? Dans le thème GNOME, y a l'air d'y avoir encore moins d'étapes intermédiaires, donc est-ce que tu gardes l'icône -full jusqu'à 75% ?)
Moi j'n'ai que ces deux thèmes-là, donc à toi de voir aussi s'il y a d'autres thèmes d'icônes avec des noms encore différents que tu voudrais prendre en compte (si oui, j'veux bien que tu me fasses une petite capture des icônes de batterie qu'il y a dedans ^^)
Comme c'est toi qui comptes utiliser ce mode d'affichage-là, j'préfère te laisser prendre les décisions à ce niveau, comme ça ça devrait à peu près te correspondre wink

Dernière modification par ArkSeth (Le 06/12/2011, à 13:26)

Hors ligne

#1834 Le 06/12/2011, à 13:28

The Uploader

Re : /* Topic des codeurs [6] */

tshirtman a écrit :

j'ai tenté avec ropevim y'a un certain temps, je crois pas que ça marche, ctrl-x-ctrl-o est sensé être actif, mais il donne jamais rien... du coup, ben rien... (ctrl-x ctrl-l sert parfois, mébon)

bon, bah je me suis motivé pour comprendre pathogen, régler quelques trucs, et faire un dépot du coup...
https://github.com/tshirtman/.vim

Il manque aussi de vrais capacités de refactoring, mais bon j'essaie en ce moment eclim : http://eclim.org/

smile


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1835 Le 06/12/2011, à 14:21

sweetly

Re : /* Topic des codeurs [6] */

tshirtman a écrit :

@The Uploader: Il te manque quoi?

Moi une bonne autocomplétion, mais en python, c'est dur >_>

Python omnicompletion te va pas ?

Hors ligne

#1836 Le 06/12/2011, à 15:03

tshirtman

Re : /* Topic des codeurs [6] */

sweetly a écrit :
tshirtman a écrit :

@The Uploader: Il te manque quoi?

Moi une bonne autocomplétion, mais en python, c'est dur >_>

Python omnicompletion te va pas ?

Soit je sais pas m'en servir, soit ça fait rien ou presque... faudra que je re (re, re) regarde.

@the uploader: rope semble permettre le refactoring, mais faut que je lise le tuto a tête reposée. (et si j'utilise vim, c'est pas pour faire tourner eclipse à coté ^^)

Sinon gundo est un autre plugin vim génial, c'est une belle interface vers l'arbre d'édition (undo/redo alternatifs) c'est un peu plus sympa que g+ et g- smile

Dernière modification par tshirtman (Le 06/12/2011, à 15:04)

Hors ligne

#1837 Le 06/12/2011, à 15:21

HP

Re : /* Topic des codeurs [6] */

tshirtman a écrit :

une belle interface vers l'arbre d'édition (undo/redo alternatifs) […]

Oui, çà ça peut être super sympa :
http://www.emacswiki.org/emacs/UndoTree#toc4
http://briancarper.net/blog/568/emacs-undo-trees


cat /dev/urandom >/dev/null 2>&1 #github

Hors ligne

#1838 Le 06/12/2011, à 18:51

The Uploader

Re : /* Topic des codeurs [6] */

Ouais en fait eclim c'est super lourd.. hmm

Et j'aime pas l'UI d'Eclipse de toute façon.

Je vais voir python omnicomplete, je dois justement faire du Python 2.7. smile

tshirtman a écrit :

@the uploader: rope semble permettre le refactoring, mais faut que je lise le tuto a tête reposée. (et si j'utilise vim, c'est pas pour faire tourner eclipse à coté ^^)

Sinon gundo est un autre plugin vim génial, c'est une belle interface vers l'arbre d'édition (undo/redo alternatifs) c'est un peu plus sympa que g+ et g- smile

Yes! \o/


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1839 Le 06/12/2011, à 23:51

Elzen

Re : /* Topic des codeurs [6] */

Question bête : y a une méthode toute faite en python qui, quand on lui passe une liste supposée contenir un nombre variable d'entiers, calcule et renvoie leur moyenne ? J'ai essayé de chercher « average » dans la doc python, mais ça n'm'a rien trouvé yikes

Hors ligne

#1840 Le 07/12/2011, à 00:08

The Uploader

Re : /* Topic des codeurs [6] */

on dirait qu'elle se code en une seule ligne smile (python 2.7)

Même situation en Ruby, faut le coder :

class Array
  def mean
    sum / size
  end
end

(<-- Monkey patching!)

Dernière modification par The Uploader (Le 07/12/2011, à 00:19)


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1841 Le 07/12/2011, à 00:57

tshirtman

Re : /* Topic des codeurs [6] */

The Uploader a écrit :

Même situation en Ruby, faut le coder :

class Array
  def mean
    sum / size
  end
end

(<-- Monkey patching!)

c'est du code valide? c'est marrant comme façon de faire! smile

Hors ligne

#1842 Le 07/12/2011, à 01:10

The Uploader

Re : /* Topic des codeurs [6] */

Yép c'est valide, à part qu'il faudrait aussi définir la méthode sum.


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne

#1843 Le 07/12/2011, à 01:10

Elzen

Re : /* Topic des codeurs [6] */

The Uploader a écrit :

Yep, mais ça m'étonnait que ça n'existe pas.

Sinon, j'bloque toujours pour la gestion du volume sonore, de la luminosité et de l'état de la batterie, en Python.

Pour le volume sonore, j'peux utiliser python-alsaaudio qui me permet de récupérer/modifier ça assez facilement, mais ça ne permet pas de surveiller le niveau, j'dois toujours faire une fonction de vérif qui se réappelle à intervalles réguliers.

Pour les deux autres, ç't'encore pire : le seul moyen que j'ai trouvé, c'est de lancer manuellement « xbacklight » et « acpi -b » et de parser le résultat hmm

Si quelqu'un avait des infos à ce sujet, ce serait vivement apprécié wink

Hors ligne

#1844 Le 07/12/2011, à 10:04

tshirtman

Re : /* Topic des codeurs [6] */

http://upower.freedesktop.org/

peut être? (apparement on lui parle avec dbus, bon courage tongue)

Dernière modification par tshirtman (Le 07/12/2011, à 10:04)

Hors ligne

#1845 Le 07/12/2011, à 18:52

Elzen

Re : /* Topic des codeurs [6] */

Causer avec DBus n'est pas un soucis ^^

(Disons que j'ai galéré au début, mais que depuis que j'me suis farci le support des clefs USB via UDev (grâce à l'aide inestimable de notre vénéré grim7reaper) et de la mise en veille/l'extinction via ConsoleKit et UPower (déjà lui !), ça va, maintenant je gère. Enfin, p't'être pas quand même, mais je n'galère plus trop)

Par contre, après avoir rapidement jeté un œil à la doc UPower, la seule information qu'il a l'air de fournir parmi celles que je cherche, c'est si l'ordi est sur batterie ou pas… et dans le cas pas, il n'a même pas l'air de différencier la charge de l'état stationnaire hmm

Donc j'pense qu'il faudra autre chose.
Je continue à creuser, mais si vous avez des idées, n'hésitez pas wink


(Et puis tiens, vu que j'parle de ça : mon truc ne gère toujours pas les CDs/DVDs, et le verrouillage et la fermeture de session ne marchent toujours pas non plus hmm Faudra que j'vois ça, aussi, un jour…)

Edit : progrès big_smile
En fait, acpi fournit une socket. J'suis pas fan de ce genre de trucs qui ne m'évoque que des mauvais souvenirs de TP d'il y a très longtemps, mais ça a quelques applis pratiques, en fait : avec un code de ce genre

import socket

s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
s.connect("/var/run/acpid.socket")
while True:
    s.recv(4096)
    print "ici!"

on dirait que j'arrive à repérer les changements dans l'état ou le pourcentage de la batterie, et même dans la luminosité de l'écran ^^
Par contre, c'est bloquant. Du coup, j'ai fait ça dans un thread qui, à la place du « print "ici!" », balance un appel aux méthodes de vérifs de l'état de la batterie et de la luminosité, pour prévenir les écouteurs si ça a changé.
J'utilise toujours commands.getoutput os.popen pour lire le résultat des commandes externes (
acpi et xbacklight), donc la récupération des valeurs est toujours aussi moche, mais au moins, ça ressemble un peu plus à de l'événementiel qu'au fait d'aller régulièrement vérifier où ça en est.

Par contre, pour alsa, ç'moins encourageant : non seulement alsaaudio n'a pas l'air de permettre d'être prévenu en cas de modif, mais si d'une vérif à l'autre, je garde le même objet alsaaudio.Mixer, sa méthode getvolume() me renvoie toujours le même nombre, j'suis obligé de le recréer à chaque visite hmm
C'est pourtant forcément possible d'être prévenu des modifs en temps réel, puisque quand tu lances deux alsamixergui différents, et que tu modifies le son sur l'un, l'autre se met à jour tout de suite… faut juste que j'trouve comment…

Ah, et par contre, le thread en plus a l'air de rendre l'appli vachement plus dure à killer yikes genre il ne réagit plus ni au Ctrl+C, ni au kill -15, j'suis obligé d'y aller au kill -9 hmm Vous sauriez comment arranger ça ?

Dernière modification par ArkSeth (Le 08/12/2011, à 01:45)

Hors ligne

#1846 Le 08/12/2011, à 17:15

tshirtman

Re : /* Topic des codeurs [6] */

Pour le thread, au lieu de while True, mets "while condition" et fait condition = False quand ton app doit quitter?

Hors ligne

#1847 Le 08/12/2011, à 18:06

Elzen

Re : /* Topic des codeurs [6] */

J'y ai pensé, sauf que le s.recv(4096) est bloquant, donc si je fais ça, le programme attendra quand même de sortir de la boucle, donc qu'acpi ait balancé quelque chose sur la socket, avant de se fermer, ce qui peut éventuellement être assez long.
J'ai plutôt utilisé la méthode t._Thread__stop(), qui est nettement moins élégante, mais à effet immédiat.


Par contre, un truc moins cool : la socket repère bien les changements au niveau de la luminosité écran, mais seulement quand j'utilise les touches Fn+FX prévues à cet effet. Si je modifie la luminosité autrement, par exemple en utilisant xbacklight en ligne de commande, ça ne réagit pas. Donc je n'sais pas s'il faut que je cherche quelque chose d'autre pour surveiller la luminosité écran…

Hors ligne

#1849 Le 08/12/2011, à 21:49

The Uploader

Re : /* Topic des codeurs [6] */

lol lol lol


- Oldies PC : Intel Pentium 3 @ 800 Mhz sur CM ASUS P2B-F, GeForce 4 Ti4800 SE, Disque Dur Hitachi 160 Go, 512 Mo de RAM, 3DFX Voodoo 2, Sound Blaster 16 ISA PnP, Windows 98 SE / XP)
- Desktop : Intel Core i7 6700K @ 4 GHz sur CM ASUS Z170-P, GeForce GTX 1070, SSD Samsung 850 EVO 1 To, 16 Go de RAM, Disque Dur Seagate Barracuda 3 To, Windows 10

Hors ligne