RE: BTW {Alternativa correcta (socket daemon)}
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/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/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)}
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)}
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)}
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)}
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)}
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)}
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)}
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)}
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)}
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)}
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)}
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)}
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)}
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/