RE: BTW {Alternativa correcta (socket daemon)}

2009-01-25 Por tema Hector Salinas
Rodrigo Fuentealba escribió:

 Me extraña que alguien como tú se base en una cosa así: ¿Eres capaz de
 averiguar todas las pifias de MySQL y hacerlo mierda, pero para
 evaluar un lenguaje de programación (que dicho sea de paso, es algo
 que lo que vas a programar lo va a ver directamente el usuario) te
 basas en el ruido alrededor?

 Ehh, no, lo que pasa es que ya he criticado mucho a PHP directamente
 desde el punto de vista técnico, y lo que ha pasado es que me han
 llamado fanboi.

No faltan las personas que manejan una sola cosa y que porque es
simple lo califican de lo mejor del mundo. Yo uso (ahora no tanto,
Dios me libre) PHP, pero asi como tiene sus ventajas (barato, facil),
tiene sus desventajas atroces.

Al privado mi opinion personal.


Sorry por no haber nacido  con la capacidad de Nikola Testa


 

__ Information from ESET NOD32 Antivirus, version of virus signature
database 3797 (20090124) __

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
 




Re: BTW {Alternativa correcta (socket daemon)}

2009-01-25 Por tema Mario Gonzalez
2009/1/25 Alvaro Herrera alvhe...@alvh.no-ip.org:

 Ehh, no, lo que pasa es que ya he criticado mucho a PHP directamente
 desde el punto de vista técnico, y lo que ha pasado es que me han
 llamado fanboi.


 Si a ti te han llamado fanboi que quedará para nosotros.



-- 
http://www.mgonzalez.cl/



Re: BTW {Alternativa correcta (socket daemon)}

2009-01-25 Por tema Mario Gonzalez
2009/1/24 Rodrigo Fuentealba the.code.kee...@gmail.com:
 La verdad es que yo he escuchado (o mejor dicho leído) varias veces
 recomendaciones de que PHP es un lenguaje apropiado para toda clase de
 cosas, no ve que ahora le tenemos PHP-CLI y se pueden escribir daemons
 y todo, etc etc.  :-(

 Me extraña que alguien como tú se base en una cosa así: ¿Eres capaz de
 averiguar todas las pifias de MySQL y hacerlo mierda, pero para
[...]

 Pero Rodrigo, me extraña que no notes la ironía de Alvaro en el
comentario de tan galardonado languaje. Además, parece que fue una
broma de... Alvaro pues :-)



-- 
http://www.mgonzalez.cl/



Re: BTW {Alternativa correcta (socket daemon)}

2009-01-25 Por tema Cristian Rodríguez
Alvaro Herrera escribió:

 Me parece increíble que este bug tan básico no se haya corregido nunca.

No es un bug, es un feature.




-- 
We have art in order not to die of the truth - Friedrich Nietzsche

Cristian Rodríguez R.
Software Developer
Platform/OpenSUSE - Core Services
SUSE LINUX Products GmbH
Research  Development
http://www.opensuse.org/



Re: BTW {Alternativa correcta (socket daemon)}

2009-01-25 Por tema Cristian Rodríguez
Alvaro Herrera escribió:

 La verdad es que yo he escuchado (o mejor dicho leído) varias veces
 recomendaciones de que PHP es un lenguaje apropiado para toda clase de
 cosas, 

generalmente no es bueno para programas que requieren ejecutarse por
largo tiempo, aunque si sabes hacerlo bien, puedes hacerlo, el problema
es que es dificil llegar a eso.



-- 
We have art in order not to die of the truth - Friedrich Nietzsche

Cristian Rodríguez R.
Software Developer
Platform/OpenSUSE - Core Services
SUSE LINUX Products GmbH
Research  Development
http://www.opensuse.org/



RE: BTW {Alternativa correcta (socket daemon)}

2009-01-24 Por tema Hector Salinas


 Intuyo que PHP limpia todo cuando termina el script, y en este caso,
 dado que el script nunca termina, nunca limpia la memoria.

tengo sripts en php que funcionan por una semana hasta su fin logico
llaman literalmente a funciones que consumen cada vez mucha memoria
no he necesitado hacer unset

el error del script que hemos visto parece ser o que no cierra el
socket cuando corresponde o una mala implementacion de esa version
especifica del php del manejo de sockets

Entonces según tu tengo que subir de version de php con paquetes extra
Oficiales?
 

__ Information from ESET NOD32 Antivirus, version of virus signature
database 3795 (20090123) __

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com
 




Re: BTW {Alternativa correcta (socket daemon)}

2009-01-24 Por tema Juan Manuel Doren

el error del script que hemos visto parece ser o que no cierra el
socket cuando corresponde o una mala implementacion de esa version
especifica del php del manejo de sockets

 Entonces según tu tengo que subir de version de php con paquetes extra
 Oficiales?

¿que paquetes extraoficiales?

de la documentacion de php (
http://cl2.php.net/manual/en/function.socket-close.php )

Sometimes it seems that you have to shutdown() a socket before you
can close() it. I experienced that while making a chatserver in PHP
with this cool socket extension.

http://cl2.php.net/manual/en/function.socket-shutdown.php



Re: BTW {Alternativa correcta (socket daemon)}

2009-01-24 Por tema Alvaro Herrera
Juan Manuel Doren escribió:

 de la documentacion de php (
 http://cl2.php.net/manual/en/function.socket-close.php )
 
 Sometimes it seems that you have to shutdown() a socket before you
 can close() it. I experienced that while making a chatserver in PHP
 with this cool socket extension.
 
 http://cl2.php.net/manual/en/function.socket-shutdown.php

Que documentacion tan pésima.  ¿Cómo no son capaces de incorporar el
texto de los comentarios en el cuerpo principal del texto?  La
documentación central es tan mala, que tienen que documentar los
diversos detallitos de las funciones con los comentarios de usuarios.
Es tan despelotado que la única forma de saber bien cómo funciona todo,
es leer todos los comentarios de usuarios en todas las funciones del
módulo, porque los detalles que te interesan pueden haber quedado
ocultos en cualquiera de esos.  Lo más idiota es que tienes que leer los
comentarios desde abajo hacia arriba, porque están en orden cronológico
inverso (lo cual puede ser útil para un blog o una sección de noticias,
pero en este caso es muy tonto).

Otros horrores de PHP se notan en el contenido de los comentarios.  Por
ejemplo:

Planning on sending integer values through as socket, I was
surprised to find PHP only supports sending strings. 

Me parece increíble que este bug tan básico no se haya corregido nunca.

-- 
Alvaro Herrera  Valdivia, Chile   Geotag: -39,815 -73,257
Essentially, you're proposing Kevlar shoes as a solution for the problem
that you want to walk around carrying a loaded gun aimed at your foot.
(Tom Lane)


Re: BTW {Alternativa correcta (socket daemon)}

2009-01-24 Por tema Alvaro Herrera
Rodrigo Fuentealba escribió:
 El día 23 de enero de 2009 20:46, Hector Salinas hsali...@bsf.cl escribió:

  BTW a estas alturas, yo ya tengo más que claro que el problema es lo
  penca que es PHP, y posiblemente tu programa funcionaría sin problemas
  en un lenguaje bien implementado.
 
 Bueno, hay mejores cosas para trabajar con sockets que PHP;

La verdad es que yo he escuchado (o mejor dicho leído) varias veces
recomendaciones de que PHP es un lenguaje apropiado para toda clase de
cosas, no ve que ahora le tenemos PHP-CLI y se pueden escribir daemons
y todo, etc etc.  :-(

-- 
Alvaro Herrerahttp://www.advogato.org/person/alvherre
I'm always right, but sometimes I'm more right than other times.
  (Linus Torvalds)


Re: BTW {Alternativa correcta (socket daemon)}

2009-01-24 Por tema Rodrigo Fuentealba
El día 24 de enero de 2009 21:31, Alvaro Herrera
alvhe...@alvh.no-ip.org escribió:

(...)

 Rodrigo Fuentealba escribió:

 Bueno, hay mejores cosas para trabajar con sockets que PHP;

 La verdad es que yo he escuchado (o mejor dicho leído) varias veces
 recomendaciones de que PHP es un lenguaje apropiado para toda clase de
 cosas, no ve que ahora le tenemos PHP-CLI y se pueden escribir daemons
 y todo, etc etc.  :-(

Me extraña que alguien como tú se base en una cosa así: ¿Eres capaz de
averiguar todas las pifias de MySQL y hacerlo mierda, pero para
evaluar un lenguaje de programación (que dicho sea de paso, es algo
que lo que vas a programar lo va a ver directamente el usuario) te
basas en el ruido alrededor?

PHP sirve para algunas cosas, y creo que más de una vez he dicho acá
mismo que PHP está siendo usado de manera extensiva porque es un
lenguaje barato y fácil de implementar. Para las cosas básicas,
funciona medianamente bien (la implementación de UTF-8 es
horrenda!!!).

Es por eso que varios de los que debíamos lidiar con PHP en algún
momento de la vida (Dios me libre de aquello nuevamente), utilizábamos
frameworks como Symfony. (Y tampoco hay muchos frameworks mejores)...

Bueno, es un rant acerca de PHP, no acerca de ti.

Saludos,

-- 
Rodrigo Fuentealba
http://www.thecodekeeper.net/



Re: BTW {Alternativa correcta (socket daemon)}

2009-01-24 Por tema Alvaro Herrera
Rodrigo Fuentealba escribió:
 El día 24 de enero de 2009 21:31, Alvaro Herrera
 alvhe...@alvh.no-ip.org escribió:

  La verdad es que yo he escuchado (o mejor dicho leído) varias veces
  recomendaciones de que PHP es un lenguaje apropiado para toda clase de
  cosas, no ve que ahora le tenemos PHP-CLI y se pueden escribir daemons
  y todo, etc etc.  :-(
 
 Me extraña que alguien como tú se base en una cosa así: ¿Eres capaz de
 averiguar todas las pifias de MySQL y hacerlo mierda, pero para
 evaluar un lenguaje de programación (que dicho sea de paso, es algo
 que lo que vas a programar lo va a ver directamente el usuario) te
 basas en el ruido alrededor?

Ehh, no, lo que pasa es que ya he criticado mucho a PHP directamente
desde el punto de vista técnico, y lo que ha pasado es que me han
llamado fanboi.

-- 
Alvaro Herrera  Valdivia, Chile   Geotag: -39,815 -73,257
We are who we choose to be, sang the goldfinch
when the sun is high (Sandman)


Re: BTW {Alternativa correcta (socket daemon)}

2009-01-24 Por tema Rodrigo Fuentealba
El día 25 de enero de 2009 1:13, Alvaro Herrera
alvhe...@alvh.no-ip.org escribió:
 Rodrigo Fuentealba escribió:

 Me extraña que alguien como tú se base en una cosa así: ¿Eres capaz de
 averiguar todas las pifias de MySQL y hacerlo mierda, pero para
 evaluar un lenguaje de programación (que dicho sea de paso, es algo
 que lo que vas a programar lo va a ver directamente el usuario) te
 basas en el ruido alrededor?

 Ehh, no, lo que pasa es que ya he criticado mucho a PHP directamente
 desde el punto de vista técnico, y lo que ha pasado es que me han
 llamado fanboi.

No faltan las personas que manejan una sola cosa y que porque es
simple lo califican de lo mejor del mundo. Yo uso (ahora no tanto,
Dios me libre) PHP, pero asi como tiene sus ventajas (barato, facil),
tiene sus desventajas atroces.

Al privado mi opinion personal.

Saludos,

-- 
Rodrigo Fuentealba
http://www.thecodekeeper.net/



Re: BTW {Alternativa correcta (socket daemon)}

2009-01-23 Por tema Hector Salinas

Alvaro Herrera escribió:

Hector Salinas escribió:

Alvaro Herrera escribió:



ok, estube testieando este script y sigo con el drama del
incremento de memory, creo debe ser al bug de las funciones socket*


Otra idea: declara las variables como static dentro de la funcion.


#!/usr/bin/php -q
?php

function do_client_stuff( ... )
{


static $client, $input, $ip;


 $client = socket_accept($sock);
 socket_getpeername($client, $ip);
 $input = socket_read($client, 10);
 echo \n***;
 echo \nNew client connected: {$ip};
 socket_write($client, A);
socket_close($client);
}



BTW a estas alturas, yo ya tengo más que claro que el problema es lo
penca que es PHP, y posiblemente tu programa funcionaría sin problemas
en un lenguaje bien implementado.


lamentablemte sigue pasando y concuerdo con tigo Alvaro
se me cayo del altar php :-(

¿ la ca%$··$% en hacerlo en php-cli ?
 (me respondo a mi mismo cuando inicie esta discucion)

SI


solucion voy a tenerlo que hacerlo en otro lenguaje, me voy a inclinar 
por python (espero que no pase lo mismo con los objetos socket)


Gracias a todos por la ayuda brindada

ps : solucion temporal (hasta termine el nuevo script testiado y 
terminado) botarlo con crond cada 2 hora el script. No puedo dejar sin 
que funciones el torniquete















Re: BTW {Alternativa correcta (socket daemon)}

2009-01-23 Por tema Germán Póo-Caamaño
On Fri, 2009-01-23 at 16:46 -0300, Hector Salinas wrote:
 Alvaro Herrera escribió:
  Hector Salinas escribió:
  Alvaro Herrera escribió:
  ok, estube testieando este script y sigo con el drama del
  incremento de memory, creo debe ser al bug de las funciones socket*
  
  Otra idea: declara las variables como static dentro de la funcion.
  
  #!/usr/bin/php -q
  ?php
 
  function do_client_stuff( ... )
  {
  
  static $client, $input, $ip;
  
   $client = socket_accept($sock);
   socket_getpeername($client, $ip);
   $input = socket_read($client, 10);
   echo \n***;
   echo \nNew client connected: {$ip};
   socket_write($client, A);
socket_close($client);
  }
  
  
  BTW a estas alturas, yo ya tengo más que claro que el problema es lo
  penca que es PHP, y posiblemente tu programa funcionaría sin problemas
  en un lenguaje bien implementado.
  
 lamentablemte sigue pasando y concuerdo con tigo Alvaro
 se me cayo del altar php :-(
 
 ¿ la ca%$··$% en hacerlo en php-cli ?
   (me respondo a mi mismo cuando inicie esta discucion)

Otra alternativa es usar sonic o que le eches una mirada a como está
construido.  Aunque antes podrías probarle y descartar de plano si
adolece de los mismos problemas ;-)

Intuyo que PHP limpia todo cuando termina el script, y en este caso,
dado que el script nunca termina, nunca limpia la memoria.
 
-- 
Germán Póo-Caamaño
http://www.calcifer.org/



Re: BTW {Alternativa correcta (socket daemon)}

2009-01-23 Por tema Juan Manuel Doren

 Intuyo que PHP limpia todo cuando termina el script, y en este caso,
 dado que el script nunca termina, nunca limpia la memoria.

tengo sripts en php que funcionan por una semana hasta su fin logico
llaman literalmente a funciones que consumen cada vez mucha memoria
no he necesitado hacer unset

el error del script que hemos visto parece ser o que no cierra el
socket cuando corresponde o una mala implementacion de esa version
especifica del php del manejo de sockets


Re: BTW {Alternativa correcta (socket daemon)}

2009-01-23 Por tema Rodrigo Fuentealba
El día 23 de enero de 2009 20:46, Hector Salinas hsali...@bsf.cl escribió:
 Alvaro Herrera escribió:

 Hector Salinas escribió:

 Alvaro Herrera escribió:

 ok, estube testieando este script y sigo con el drama del
 incremento de memory, creo debe ser al bug de las funciones socket*

 Otra idea: declara las variables como static dentro de la funcion.

 #!/usr/bin/php -q
 ?php

 function do_client_stuff( ... )
 {

static $client, $input, $ip;

 $client = socket_accept($sock);
 socket_getpeername($client, $ip);
 $input = socket_read($client, 10);
 echo \n***;
 echo \nNew client connected: {$ip};
 socket_write($client, A);
socket_close($client);
 }


 BTW a estas alturas, yo ya tengo más que claro que el problema es lo
 penca que es PHP, y posiblemente tu programa funcionaría sin problemas
 en un lenguaje bien implementado.

Bueno, hay mejores cosas para trabajar con sockets que PHP;
Concretamente, creo que ese programa sería mucho más fácil con Python
o Ruby. Y habría una solución más seria.

PHP es: PHP: Hypertext Preprocessor; a diferencia de Python, Ruby,
Java y otros lenguajes,
éste tiene una finalidad precisa: preprocesar hipertexto. Las demás
challas que tiene funcionan bien para el dueño y están arriba por si
alguien las quiere usar... pero es mucho más serio dejarlas a un lado.
Acá estamos experimentando con pcntl() y es horrible.

Hacer un demonio en PHP es... sencillamente una horrible idea; te compadezco.

 solucion voy a tenerlo que hacerlo en otro lenguaje, me voy a inclinar por
 python (espero que no pase lo mismo con los objetos socket)

Un daemon en Python o Ruby se ve bastante bueno.

Para Ruby, mira en Ruby on Rails el código de /script/server.

 ps : solucion temporal (hasta termine el nuevo script testiado y terminado)
 botarlo con crond cada 2 hora el script. No puedo dejar sin que funciones el
 torniquete

Ouch.

-- 
Rodrigo Fuentealba
http://www.thecodekeeper.net/