#1 Le 28/06/2009, à 18:36
- Zakhar
[Geek] Mon MSN à moi !
Les non Geeks passez votre chemin, vous n'allez pas aimer chatter à la console en SSH
J'ai découvert cette petite merveille en améliorant mon programme déjà super-Geek pour regarder la télé à distance.
En effet, depuis déjà quelques années, j'ai écrit un petit programme basé sur VLC (uniquement en techno Web via l'interface HTTP de VLC) pour regarder la télé à distance.
La problématique à résoudre est que mes parents n'ont pas de télévision hertzienne dans leur campagne à cause des montagnes environnantes. Ils ont cependant un ADSL, non dégroupé bien sûr, et compte tenu de la distance, à environ 1,5Mpbs. C'est donc un ADSL de base sans service télé.
La solution : depuis l'autre bout de la France, avec ma ligne free, j'ai un VLC en interface HTTP démarré dans mon init.d
Côté "campagne", une page Web de mon crû permet de se connecter au serveur, de piloter la chaine à regarder, et d'obtenir une rediffusion via le plugin VLC de firefox.
A une époque j'avais fait tout ça sous XP, puis maintenant sous Ubuntu aussi bien côté serveur que client.
Il restait un problème : je ne sais pas quand mes parents sont connectés pour regarder la télé (à part faire un top en console et constater que mon VLC en tâche de fond consomme du CPU !) et donc le risque est d'éteindre mon PC, qui sert aussi de serveur, pendant la diffusion de la "télé à distance".
Alors je me suis dit... "tiens donc, les notifications c'est sympa, si je pouvais les utiliser pour signaler les actions du PC à distance ce serait sympa"
Ainsi est née la Messagerie instannée pour Geek absolu sous Ubuntu !
La condition : bien sûr vous ne pourrez envoyer des messages instantannés qu'aux gens que vous connaissez bien puisqu'il vous faut le mot de passe d'un compte sur la machine cible. Mais comme vous êtes le Geek de la famille, vous avez installé et configuré toutes les machines de votre entourage et ce n'est donc pas un problème !
On y va !
Alors sur la machine où vous voulez envoyer les messages il faut installer l'utilitaire pour envoyer des notifications.
sudo apt-get install libnotify-bin
Un petit test en console
notify-send Test Message
En bas à droite de votre écran, vous devez voir apparaître une petite notification avec le titre Test et le message : Message
Ca c'est déjà sympa, mais il reste un problème, ça ne marche que pour l'utilisateur en session... donc il va falloir rajouter :
xhost +local:root
Rajoutez la commande au démarrage de session de l'utilisateur à qui vous voulez envoyer des messages.
Pour Gnome, ça se passe dans Système >> Préférences >> Sessions >> (onglet) Programmmes au démarrage.
(Pour KDE... je vous laisse chercher !)
Maintenant depuis votre poste distant
ssh IP:du:PC:distant
Et vous voila paré pour envoyer des petits messages par notification à toute votre famille.
Allez un petit exemple sympa pour la route :
DISPLAY=:0.0 notify-send -h int:x:1050 -h int:y:14 -i /usr/share/icons/default.kde4/32x32/emotes/face-kiss.png "Message de Zakhar" "Bisous à toute la famille"
En images :
C'est sûr, comme votre famille c'est pas tous des Geek comme vous, ils vont avoir du mal à vous répondre pareillement mais ça va les impressionner !
DISPLAY=:0.0 dans la commande ci-dessus permet d'adresser la notification pour l'utilisateur en session, et non pas à votre SSH. Votre session SSH n'ayant pas de server X, aucune chance qu'elle affiche une notification !
Et pour que le DISPLAY=:0.0 soit possible, il faut que le serveur X l'autorise, d'où la commande xhost ci-dessus pour cela
(*) bien sûr dans le cadre de mon programme "télé à distance", la notification passe via PHP... et non, je ne peux pas vous faire essayer vu que c'est tout sous OpenVPN bien sûr !
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#2 Le 30/06/2009, à 15:06
- Geoffrey35
Re : [Geek] Mon MSN à moi !
Mdr!
Ubuntu, c'est pas non plus...
Hors ligne
#3 Le 30/06/2009, à 15:44
- fove
Re : [Geek] Mon MSN à moi !
mouai
ACTA attaque l'internet attaquons ACTA
Black-aout contre ACTA sur Ubuntu-fr.org : http://forum.ubuntu-fr.org/viewtopic.php?id=376173
Soutenons la quadrature du net : http://www.laquadrature.net/fr/acta-attaque-linternet-attaquons-acta
Hors ligne
#4 Le 30/06/2009, à 19:36
- haile_selassie
Re : [Geek] Mon MSN à moi !
Excellent
Hors ligne
#5 Le 02/07/2009, à 08:40
- aresh
Re : [Geek] Mon MSN à moi !
On est à la limite du White hate non ? Plutôt que du Geek ?
Dernière modification par aresh (Le 02/07/2009, à 08:40)
les Windowsiens critiquant GNU/Linux savent très rarement de quoi ils parlent, et les Linuxiens critiquant Windows savent trop souvent de quoi ils parlent.
Hors ligne
#6 Le 02/07/2009, à 10:16
- Zakhar
Re : [Geek] Mon MSN à moi !
Arg... je suis pas assez Geek pour savoir ce que tu entends par "White hate". As-tu un lien explicatif ?
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#7 Le 02/07/2009, à 10:21
- Emralegna
Re : [Geek] Mon MSN à moi !
Vraiment super !
Hors ligne
#8 Le 02/07/2009, à 10:25
- Ehorinn
Re : [Geek] Mon MSN à moi !
"Opposé" au "black hat" (Chapeau noir)
http://fr.wikipedia.org/wiki/Black_hat
Dernière modification par Ehorinn (Le 02/07/2009, à 14:02)
Hors ligne
#9 Le 02/07/2009, à 14:01
- Zakhar
Re : [Geek] Mon MSN à moi !
Ok, White hat donc (il y avait une faute... hat et hate c'est pas pareil !)
Merci pour le lien
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#10 Le 02/07/2009, à 14:09
- guilhem91
Re : [Geek] Mon MSN à moi !
impressionnant
j'ai testé ça aujourd'hui; ça marche super bien
bravo à toi, Zakhar
Debian Squeeze 6.0.1 64 bits sur AMD Phenom II X4 945 3GHz + Nvidia Geforce 9600 GT
Hors ligne
#11 Le 02/07/2009, à 14:58
- boufonman35
Re : [Geek] Mon MSN à moi !
Sympa sympa, il me semble qu'il y a pareil sous windows
Le libre à un seul défaut > On en devient accroc !
Hors ligne
#12 Le 02/07/2009, à 14:58
- Notifan
Re : [Geek] Mon MSN à moi !
Salut,
J'avais eu l'idee de creer un petit chat avec zenity-notify mais sans passer par ssh avec un petit serveur SQL.
C'est assez simple à faire mais le truc c'est qu'il faut etre devant sa machine et avoir le temps de lire le message parce qu'il ne reste pas affiché eternelement et si un autre est envoyé a la suite ca enleve le precedent.
Ca peut quand meme faire un outil plus twiter que chat.
Je n'avais pas pensé au SSH mais ça me parait plus simple
Pourquoi White hat ? Rien à voir, c'est de la bidouille, du hack sans forcer quoi que ce soit puisqu'il faut connaitre le login/pass et configurer un serveur SSH sur la machine distante ?
#13 Le 02/07/2009, à 15:01
- Notifan
Re : [Geek] Mon MSN à moi !
Sympa sympa, il me semble qu'il y a pareil sous windows
Ah netsend...
#14 Le 02/07/2009, à 15:59
- Zakhar
Re : [Geek] Mon MSN à moi !
Sympa sympa, il me semble qu'il y a pareil sous windows
Ah netsend...
Ca c'est plutôt l'équivalent du write en console
@Notifan, en réalité je ne fais pas la commande directement.
Je passe par un script PHP qui fait la commande.
Le script PHP est invoqué avec les paramètres de la commande :
h t t p: // ma.machine.com/notify.php?title=Titre&message=Message
Donc rien n'empêche de faire une page PHP plus complète avec un formulaire permettant d'envoyer les messages à tes amis. C'est assez basique à faire ce genre de chose en PHP.
Ca permet par exemple à ta famille, qui n'est pas Geek du tout, de répondre à tes messages par la même voie en utilisant simplement une interface web toute simple.
L'autre intérêt du PHP est sécuritaire, ça évite de donner des accès SSH à ceux qui veulent t'écrire, tu donnes juste l'adresse de la page PHP.
C'est assez simple à faire mais le truc c'est qu'il faut etre devant sa machine et avoir le temps de lire le message parce qu'il ne reste pas affiché eternelement et si un autre est envoyé a la suite ca enleve le precedent.
Oui, c'est précisément le cahier des charges des notifications : être non-intrusif.
C'est à dire que c'est sensé ne pas gêner l'utilisateur dans ce qu'il est en train de faire.
Cela dit, si le temps d'affichage te paraît trop court tu peux le rallonger, il y a une option pour ça
Dernière modification par Zakhar (Le 02/07/2009, à 16:02)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#15 Le 02/07/2009, à 22:30
- Zakhar
Re : [Geek] Mon MSN à moi !
Suite du challenge pour Geek !
Bon, maintenant il va s'agir de faire jouer un son lorsqu'un message arrive.
Je pourrais certes recompiler (ou essayer) le daemon de notification avec l'option de son (il est compilé sans visiblement), mais je vais tenter une autre méthode !
Vu que mes messages bulle sont lancés à partir de PhP, je peux rajouter à l'exec() la commande (exemple) :
paplay /usr/share/sounds/purple/login.wav
Le problème semble le même qu'on a réglé plus haut avec DISPLAY=:0.0
En réalité lorsqu'on fait ça depuis PHP (ou depuis le compte www-data, ce qui est équivalent) on obtient :
Connection failure: connection refused
Donc visiblement le serveur pulseaudio refuse que PhP l'utilise. Pas cool !
J'ai trouvé quelques explications qui prétendent qu'il faut rajouter le user aux groupes pulse-access, pulse-rt ou audio. J'ai fait les trois, mais toujours sans succès.
Si un spécialiste du hacking de pulse passe dans les parages et connaît la réponse je suis preneur !
... en attendant je continue à chercher
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#16 Le 04/07/2009, à 16:56
- Zakhar
Re : [Geek] Mon MSN à moi !
Solution du challenge... ou comment envoyer aussi du son en plus de la notification !
Bon eh bien en réalité c'est tout bête.
Il faut activer le support tcp pour PulseAudio, sinon il n'y a que l'utilisateur en session qui peut l'utiliser (car en standard sur Ubuntu, PulseAudio est lancé en mode "par session").
Donc pour ça on peut installer paprefs... mais comme on est geek et qu'on veut éviter des interfaces graphiques inutiles qui encombrent le disque, on va la faire en modifiant les fichiers de configuration.
sudo gedit /etc/pulse/default.pa
Il s'agit de décommenter :
#load-module module-esound-protocol-tcp
#load-module module-native-protocol-tcp
On va profiter qu'on le fait proprement pour n'autoriser que les adresses IP qu'on choisit
load-module module-esound-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24
load-module module-native-protocol-tcp auth-ip-acl=127.0.0.1;192.168.0.0/24
Par exemple ci-dessus, on autorise les autres sessions du PC et le réseau local. Si vous voulez autoriser un ami, rajoutez son adresse IP.
Cette ligne là :
#load-module module-zeroconf-publish
On la laisse commentée, c'est pour Avahi. Je trouve ça limite "faille de sécurité" ce truc, car si un hacker trouve votre Avahi, il va pouvoir tranquillement voir tout ce qu'il a comme services sur votre machine... on va donc laisser commenté, en bon Geek vous savez parfaitement ce que vous avez activé comme service.
Une fois la modification faite, on se déconnecte de la session et on la relance.
Voila !
Maintenant depuis le PC lui-même, vous pouvez ouvrir une autre session.
Par exemple, pour simuler un envoi depuis PhP :
sudo su www-data
Et si vous faites
paplay /usr/share/sounds/purple/login.wav
Pour envoyer un son sur le PC de vos amis/famille, une fois la manipulation ci-dessus effectuée, il suffit de faire
paplay -s 88:88:88:88 /usr/share/sounds/purple/login.wav
vous remplacez bien sûr 88:88:88:88 par l'adresse IP de la machine visée.
PulseAudio permet aussi de faire un chat vocal très simple... pour le moment j'ai trouvé le truc en réseau local (pas trop utile !) je ne désespère pas de trouver mieux
Dernière modification par Zakhar (Le 04/07/2009, à 16:57)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#17 Le 05/07/2009, à 11:53
- Peuks
Re : [Geek] Mon MSN à moi !
C'est vraiment bien ! je me posais la question pour ton programme vlc , tu l'as dévoilé ou il n'y a que toi qui en a le secret ? il m'interesse ! Surtout avec un iphone/ipod ( que j'ai pas ) ou un google phone couplé à vlc ça pourrait être sympa !
Dernière modification par Peuks (Le 05/07/2009, à 14:07)
Hors ligne
#18 Le 05/07/2009, à 12:12
- Kryztal
Re : [Geek] Mon MSN à moi !
C'est vraiment bien ! je me posais la question pour ton programme vlc , tu l'as dévoilé ou il n'y a que toi qui en a le secret ?
il m'interesse ! Surtout avec un iphone/ipod ( que j'ai pas ) ou un google phone couplé a a vlc ça pourrait être être sympa !
+1
J'ai un pc desktop avec la télé herzienne ça serait sympa de la partager avec un appareil plus mobile
Un virus est un programme nocif.
Il est petit, rapide, prend peu de place en mémoire et sais se faire discret.
Windows n'est donc pas un virus, c'est un bug!
Hors ligne
#19 Le 05/07/2009, à 13:27
- Rydgel
Re : [Geek] Mon MSN à moi !
Génial
Linux - Web 2.0 --> http://phollow.fr
Hors ligne
#20 Le 06/07/2009, à 19:34
- Zakhar
Re : [Geek] Mon MSN à moi !
C'est publié nulle part parce que c'est un peu Geek et que ça intéresse vraiment peu de personnes.
Mais si vous êtes 2 ou 3 je peux mettre les sources et un tutorial en ligne c'est pas un problème.
@Peuks, si tu es chez Free et que tu as un iPhone, c'est bien le diable si on ne trouve pas un lecteur vidéo qui supporte de lire des flux réseaux que cette machine. Donc tu n'as guère besoin de mon truc. De plus ça ne fonctionne qu'avec l'aide du plugin VLC (ou de VLC, mais c'est moins pratique à utiliser dans ce cas) et je doute qu'il y ait ça sur iPhone Google Phone.
@Krystal, mon truc pour mes parents est vraiment "câblé" sur la télé Free. On peut bien sûr rediffuser autre chose, mais ça veut dire que tu connais les commandes pour piloter ta carte tuner depuis VLC... pas facile !
Tu peux cependant faire le test sans plus tarder avec VLC standard.
Sur ton PC Hertzien tu lances VLC et tu te mets sur une chaine de ton tuner.
Tu rajoutes une interface HTTP (via le menu de VLC)
Sur l'autre PC (le mobile) tu lances Firefox avec
http://ip.de.ton.hertzien:8080
Là tu auras l'interface standard de VLC en HTTP.
Tu peux alors jouer avec le sout (réémission) et une fois que tu as trouvé les "bons" paramètres... (pas facile !) tu lances VLC sur ton autre PC et tu joues le flux réseau sur :
mmsh://ip.de.ton.hertzien:1234 (ou tout autre port/protocole que tu as choisi).
On peut donc TOUT faire en standard avec le VLC de base... mon interface vise juste à masquer la complexité de ces manipulations !
... et après les petites notifications + le son, c'est juste pour la cerise sur le gâteau !
Dernière modification par Zakhar (Le 06/07/2009, à 19:36)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#21 Le 06/07/2009, à 22:50
- Kryztal
Re : [Geek] Mon MSN à moi !
Oki merci beaucoup
ça peut toujours servir si je suis en déplacement et que je ne veux pas rater une émission
Un virus est un programme nocif.
Il est petit, rapide, prend peu de place en mémoire et sais se faire discret.
Windows n'est donc pas un virus, c'est un bug!
Hors ligne
#22 Le 06/07/2009, à 23:10
- Grunt
Re : [Geek] Mon MSN à moi !
GG
Il ne manque plus qu'à faire ça dans un VPN
#23 Le 07/07/2009, à 08:10
- Zakhar
Re : [Geek] Mon MSN à moi !
GG
Il ne manque plus qu'à faire ça dans un VPN
Tu penses bien que c'est comme ça que je fais Grand Grunt !
En réalité, outre la sécurité (éviter que quelqu'un qui trouve "par hasard" mon adresse s'y connecte !), ça permet de résoudre le fait que mes parents n'ont pas une IP fixe, c'est donc leur PC "campagnard" qui se connecte en OpenVPN à mon PC "urbain" qui lui a une IP fixe
Du coup, le PC "campagnard" dispose d'une IP fixe (sur le VPN) qui est bien pratique pour tout un tas de choses (même si le machin de TV n'en a pas besoin) comme prendre la main à distance pour dépanner, etc...
Oki merci beaucoup
ça peut toujours servir si je suis en déplacement et que je ne veux pas rater une émission
OK, je vais vous mettre ça en ligne sur un de mes sites. N'oublie pas cependant qu'il te faudra :
- soit quelqu'un qui allume ton PC "serveur" alors que tu n'es pas chez toi (il faut donc quelqu'un chez toi pour faire ça)
- soit utiliser en plus WakeOnLAN pour faire cette fonction (c'est prévu dans le truc, et on le faisait ainsi précédemment, mais j'ai fini par retirer la fonction).
P.S.: et je vais le poster sur un fil réservé à cet effet car l'objet du présent est juste la fonction d'envoi de notifications visuelles et sonores que j'y ai rajoutées.
Dernière modification par Zakhar (Le 07/07/2009, à 08:17)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne
#24 Le 07/07/2009, à 12:02
- Grunt
Re : [Geek] Mon MSN à moi !
Grand_Grunt a écrit :GG
Il ne manque plus qu'à faire ça dans un VPNTu penses bien que c'est comme ça que je fais Grand Grunt !
En réalité, outre la sécurité (éviter que quelqu'un qui trouve "par hasard" mon adresse s'y connecte !), ça permet de résoudre le fait que mes parents n'ont pas une IP fixe, c'est donc leur PC "campagnard" qui se connecte en OpenVPN à mon PC "urbain" qui lui a une IP fixe
Du coup, le PC "campagnard" dispose d'une IP fixe (sur le VPN) qui est bien pratique pour tout un tas de choses (même si le machin de TV n'en a pas besoin) comme prendre la main à distance pour dépanner, etc...
Je fais pareil ;+)
C'est idéal pour dépanner des machines à distance, au lieu de se prendre la tête avec une redirection de port et un DNS dynamique
#25 Le 07/07/2009, à 16:55
- Zakhar
Re : [Geek] Mon MSN à moi !
C'est clair !
L'arternative à DynDNS est de demander à ma mère : "Tu peux me donner ton adresse IP ?"
Et j'obtenais la réponse : "Hein quoi ?..."
Aucun des deux n'étant satisfaisant, le VPN résout la question de façon élégante !
Dernière modification par Zakhar (Le 07/07/2009, à 16:57)
"A computer is like air conditioning: it becomes useless when you open windows." (Linus Torvald)
Hors ligne