Comunicacion entre procesos

11 views
Skip to first unread message

Demián Andrés Rodriguez

unread,
Apr 4, 2013, 5:20:04 PM4/4/13
to weban...@googlegroups.com
Buenas, hace rato nadie habla de nada.

Quiero hacer una locura que me va a ayudar para el laburo y se resume a lo siguiente:

Un plugin del browser se comunica mediante websocket con un server corriendo en localhost [nodejs]. Yo quiero hacer click en un link y decirle al server que ejecute un comando en la consola, peeeeero quiero usar la instancia de la terminal que tengo abierta y no se que tan posible es.
Para los curiosos, cada link es el nombre de un branch en git, pero no importa ahora eso.
No investigue nada todavía, pero yo sé que desde node puedo crear una nueva instancia de la terminal y decirle que ejecute tal cmd. Eso implica una nueva ventana por cada cmd que ejecuto y no dá.

Entonces, hay forma de decirle a la terminal (que no hace falta que sea la que viene x default en gnome) que ejecute X comando? La idea es poder ver el output, sino me olvido de todo este quilombo...

@tiooscar

Demián Andrés Rodriguez

unread,
Apr 5, 2013, 10:34:52 AM4/5/13
to weban...@googlegroups.com
ping


2013/4/4 Demián Andrés Rodriguez <demi...@gmail.com>

Eduardo Ledo

unread,
Apr 5, 2013, 10:47:07 AM4/5/13
to weban...@googlegroups.com
Podés crear un pipe, hacer un "tail -f /tmp/my_pipe &" en el ~/.bashrc para que te tire siempre el contenido del pipe a la consola y, desde node, escribir en el pipe como si fuera un archivo.
Así te saldría el output en cada consola que tengas abierta.

Espero que te sirva

Eduardo
 
--
--
-------------------------------------------------------------------
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/webandbeer?hl=es.
El blog del grupo
http://www.webandbeer.com.ar
---
Has recibido este mensaje porque estás suscrito al grupo "webandbeer" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a webandbeer+...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Javier Alvarez

unread,
Apr 5, 2013, 11:02:26 AM4/5/13
to weban...@googlegroups.com
node puede usar librerias de C... tal vez ahi esté la solución.. 
--
Javier Alejandro Alvarez
Skype: neiker234
Follow me: @neiker

Tio Oscar

unread,
Apr 5, 2013, 4:40:01 PM4/5/13
to webandbeer
La verdad que no entiendo bien para que te sirve eso, lo del pipe que propuso Cesar es re villero, para eso podrias escribir en los tty o pts:

$ comando > /dev/pts/3

Si queres saber el pts usado en la terminal podes usar:

$ ps --pid $$  -o tname | grep -v TTY | cut -d "/" -f 2

Donde obviamente podes reemplazar $$ por el pid de la instancia de la shell (no del emulador de terminal) si es para saber el de otra consola.

Ahora acordate que hay 2 salidas en unix, la std y err:

$ comando > /dev/pts/3 2>  /dev/pts/3

Ahora desde node, en realidad podes habrir un write stream al archivo en dev y mandarle cosas

(masomenos no me acuerdo y no voy a buscar)

var salida = fs.createWriteStream('/dev/pts/3');

salida.write(loQueGarchaTeDevuelvaElProceso);

Ahora acordate que todo esto es solamente para tirar cosas en esa consola, no para ejcutar sobre esta, de hecho si justo tenes otro proceso tirando salida a pantalla y escribis en el pts te va a salir todo mezclado (acordate la joda del chat por telnet de la version de matrix de Alejo y Valentina[0]).

Bueno no se, en todo caso usa otra consola onda termkit[1] que esta escrita en node y es re fashon.


--
--
-------------------------------------------------------------------
Para obtener más opciones, visita este grupo en
http://groups.google.com/group/webandbeer?hl=es.
El blog del grupo
http://www.webandbeer.com.ar
---
Has recibido este mensaje porque estás suscrito al grupo "webandbeer" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a webandbeer+...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
Exos ~ Programador, hacker y filósofo
web: http://blog.exodica.com.ar
Linked'in: http://www.linkedin.com/in/ogexos
Twitter: @exos, Indeti.ca: @exos
Tels: [+54 11] 6385-EXOS (3967) - [+54 9 11] 6133-2442

-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS/IT d-- s:++ a- C+++$ UBL+++$ P(-) L+++$ !E--- W+++$ !N !o K-? !w--- !O !M-- V? PS+++@ !PE Y+(++) PGP++ !t--- !5 X++ R(+) tv--? b- DI D-- G e@ h>++ r+++(-) y+++>+++++
------END GEEK CODE BLOCK------

Cesar Casas

unread,
Apr 5, 2013, 7:54:24 PM4/5/13
to weban...@googlegroups.com
Yo que propuse???? Fue Eduardo!!!! Loco siempre yo :(

Por otro lado, Demian no entendi un carajo lo que queres hacer....

Cesar Casas
Tec. Telecomunicaciones
WebMaster / DBA
Consultor IT

Tel: +5411-4156-0301

Demián Andrés Rodriguez

unread,
Apr 5, 2013, 7:57:54 PM4/5/13
to weban...@googlegroups.com
Quiero ejecutar un git checkout <branch>, donde el nombre del <branch> esta en el browser... es para el laburo, tengo los huevos llenos de estar cambiando de branch 20 veces x dia


2013/4/5 Cesar Casas <lort...@gmail.com>

Tio Oscar

unread,
Apr 5, 2013, 8:01:42 PM4/5/13
to webandbeer
xD que boludo

no entiendo igual para que tenes que ejecutar y en otra consola, tiras un git checkout en ese directorio y listo

Fernando Carril

unread,
Apr 5, 2013, 10:31:42 PM4/5/13
to weban...@googlegroups.com

Y...no....
Sí bien también creo que es un paja el tipo querrá probar distintos branches desde el browser y si tiene una lista que le levanta un plugin y puede ir tocando y haciendo checkout termina haciendo más rápido, o más cómodo porque ni larga el mouse y le queda una mano libre para sostenerse la cabeza mientras mira de re ojo el output en el otro monitor.
No se con que criterios crea sus branches como para que le sea útil, pero por algo lo quiere.

El 05/04/2013 21:02, "Tio Oscar" <tio...@gmail.com> escribió:

Demián Andrés Rodriguez

unread,
Apr 6, 2013, 8:21:32 AM4/6/13
to weban...@googlegroups.com
Los branches tienen nombres como
M40782FixPopupMenu
M41389MakeCustomFieldsEditable

Son una paja escribirlos o recordarlos...


2013/4/5 Fernando Carril <ffernan...@gmail.com>

Cesar Casas

unread,
Apr 6, 2013, 12:16:44 PM4/6/13
to weban...@googlegroups.com
Un listado, copia y pegar...... 

2013/4/6 Demián Andrés Rodriguez <demi...@gmail.com>



--
Cesar Casas
CTO
ce...@radiobeta.com
Skype: lortjava

RadioBeta.com - Your tune to the world!

Demián Andrés Rodriguez

unread,
Apr 6, 2013, 12:24:55 PM4/6/13
to weban...@googlegroups.com
Otra cosa q no entendiste, estoy al pedo y quiero programar algo. Esto es una de esas cosas como un cepillo de dientes electrico, podes vivir sin él, pero te ayuda si sos pajero.


2013/4/6 Cesar Casas <ce...@radiobeta.com>

Andrés Gattinoni

unread,
Apr 6, 2013, 12:39:22 PM4/6/13
to weban...@googlegroups.com

Si es para hacer un checkout, por qué no podés tirar el output a un log o a alguna pantalla del browser?

Demián Andrés Rodriguez

unread,
Apr 6, 2013, 12:55:30 PM4/6/13
to weban...@googlegroups.com
Si tmb podría...


2013/4/6 Andrés Gattinoni <andresg...@gmail.com>

Tio Oscar

unread,
Apr 6, 2013, 5:42:21 PM4/6/13
to webandbeer
Mira, te voy a contar algo, creo que ya te habia mandando mi defencia hacia los branches por twitter.

Actualmente estoy manejando un desarrollo, donde ahora no, pero antes estaba tambien como desarrollador, tenia que programar. y manejar a otros 2 devs y un diseñador. Y para distribuir las tareas eir haciendo commits cuando el feature era medio grande se usaba un branch aparte, ademas de los de basicos (develop, master, rc,  hotfixes) y realmente es lo mas comodo del mundo, podia parar de programar y chequear un cambio que mandaban, aprobarlo, mergearlo y seguir programando y todo gracias a los branches de git. una comodidad.

Ahora si le van a poner esos nombres de mierda estan perdiendo cualquier comodidad que la herramienta ofrece.

Demián Andrés Rodriguez

unread,
Apr 6, 2013, 5:46:25 PM4/6/13
to weban...@googlegroups.com
Por cada bug o feature se crea un issue en Mantis, se lo asigna a un dev y él crea el branch con el id del issue y una descripcion, imaginate que ya van casi 41.000 branches. No veo otra forma de hacerlo.


2013/4/6 Tio Oscar <tio...@gmail.com>

Tio Oscar

unread,
Apr 6, 2013, 6:02:06 PM4/6/13
to webandbeer
Si, aver, se llaman branches temporales y casi nunca se suben a los repositorios remotos, al no ser que sea necesario.

por otro lado, yo uso una nomenclatura que se usa mucho (no se si es estandar) que es feature_#{issue}
, en mi caso uso redmine asi que son numeros simples onda feature_#243, pero se que mantis usa ids onda 00032, el tema es, ponerle una descripcion a un branch es estupido por 2 motivos principalmente: Uno son temporales y solo deberian estar (salvo casos como dije) en el repositorio local del programador. Y segundo porque la descripcion esta en el tracker. Esos branches terminada la tarea se borran porque justamente son temporales.

Ahora, un desarrollador no deberia tener mas de 1 o 2 branches temporales ya que no puede estar en mas de 1 cosa a la vez, como mucho tiene 2 porque la otra se detuvo por algo. Lo que tenes ahi es un problema de organizacion terrible.

Mira aca te mando la ultima actividad del proyecto que te contaba:

Imágenes integradas 1

Fijate que como mucho hay 2 branches de desarrollo a la vez.

Yo encararia una reorganizacion del desarrollo de ese lado.

networkline.png
Reply all
Reply to author
Forward
0 new messages