Foros del Web » Programando para Internet » PHP »

Competencias PHP

Estas en el tema de Competencias PHP en el foro de PHP en Foros del Web. Cita: Iniciado por spider_boy Bueno, trataré de ponerle más empeño para el próximo desafío. Estoy terminando las clases y me quedan los exámenes... y los ...

  #181 (permalink)  
Antiguo 10/07/2010, 20:35
Avatar de De_la_Cuesta_13  
Fecha de Ingreso: abril-2009
Ubicación: Cali, Colombia.
Mensajes: 265
Antigüedad: 15 años
Puntos: 14
De acuerdo Respuesta: Competencias PHP

Cita:
Iniciado por spider_boy Ver Mensaje
Bueno, trataré de ponerle más empeño para el próximo desafío. Estoy terminando las clases y me quedan los exámenes... y los juegos online me quitan mucho tiempo también . Felicitaciones a @De_La_Cuesta_13 que fue el ganador . @Hidek1 feo, saliste segundo .
Gracias @spider_boy, la verdad que estoy muy emocionado. Es la primera vez que participo en algo así y me ha encantado. Gracias a @pateketrueke por el desafío y a todos quienes participaron o estuvieron al tanto.
__________________
Sólo quien nunca nada hace, nunca se equivoca.
  #182 (permalink)  
Antiguo 10/07/2010, 22:08
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Competencias PHP

Pero no falta aún? Es decir, creería que el ganador no es determinado solamente con el tiempo de ejecución.
__________________
eZakto™
  #183 (permalink)  
Antiguo 11/07/2010, 02:26
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 21 años, 10 meses
Puntos: 35
Respuesta: Competencias PHP

Snif, soy consciente de que pude mejorar mucho mi código, pero apenas y alcance a mandarlo, hubo demasiado trabajo en la semana :(

Por otro lado, me divertí bastante y ya quiero ver los mas cortos, a ver como están xD
__________________
Sin Ideas
  #184 (permalink)  
Antiguo 11/07/2010, 02:35
Avatar de alonsoandres  
Fecha de Ingreso: enero-2004
Ubicación: Matamoros, Tamaulipas
Mensajes: 305
Antigüedad: 20 años, 3 meses
Puntos: 3
Respuesta: Competencias PHP

me apunto.
  #185 (permalink)  
Antiguo 11/07/2010, 09:10
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Competencias PHP

Cita:
Iniciado por alonsoandres Ver Mensaje
me apunto.
sorry, esta competencia ya concluyó, tocara esperarte a la próxima
  #186 (permalink)  
Antiguo 11/07/2010, 10:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Competencias PHP

Cita:
Iniciado por eZakto Ver Mensaje
Pero no falta aún? Es decir, creería que el ganador no es determinado solamente con el tiempo de ejecución.
claro que falta, al final de que presente todos los códigos el publico en general dará su voto a favor del que guste... así, finalmente hay distintos ganadores, en distintas categorías...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #187 (permalink)  
Antiguo 11/07/2010, 11:23
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: Competencias PHP

pateketrueke: voy a disentir un poco en las apreciciones que haces acerca de longitud de código y velocidad.

Si realizas la medición de tiempo comenzando antes del include del archivo que contiene la función, notarás que los scripts más largos tardan más en cargar y, dependiedo de la cantidad de veces que se ejecuta la función, esto puede llegar a ser significativo en el tiempo total.

Por lo demás me parece que estás haciendo un excelente trabajo.

Además voy a reaizar una sugerencia para próximos concursos: estaría bueno que se puedan presentar dos códigos, uno sin comentarios, minimizado y bien optimizado y otro comentado y bien indentado para exponer.
__________________
Saludos.

Gustavo
  #188 (permalink)  
Antiguo 11/07/2010, 11:36
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Competencias PHP

Cita:
Iniciado por Gustavo72 Ver Mensaje
pateketrueke: voy a disentir un poco en las apreciciones que haces acerca de longitud de código y velocidad.

Si realizas la medición de tiempo comenzando antes del include del archivo que contiene la función, notarás que los scripts más largos tardan más en cargar y, dependiedo de la cantidad de veces que se ejecuta la función, esto puede llegar a ser significativo en el tiempo total.

Por lo demás me parece que estás haciendo un excelente trabajo.

Además voy a reaizar una sugerencia para próximos concursos: estaría bueno que se puedan presentar dos códigos, uno sin comentarios, minimizado y bien optimizado y otro comentado y bien indentado para exponer.
bueno, te muestro el código que esta realizando la prueba del tiempo
Código PHP:
$dummy '';
$times 100;
$start microtime(TRUE);

for (
$i 0$i $times; ++$i)
{
    foreach (
array_keys($tests) as $input$dummy .= reduce($input);
}

$end round(microtime(TRUE)- $start4);
$media round($end $times4); 
aquí lo importante es que siempre cargo el script antes de esta secuencia de código, solo se toma el tiempo que tarda el concatenar los resultados de reduce(), siempre repito mis pruebas cambiando de 100, a 1000 y 10000 el numero de ejecuciones....

además, no solo lo hago una ves... lo hago aproximadamente 30 veces, el resultado del promedio de ejecución al final es lo que anoté en el tema original... (:


--
ahora, con respecto a los códigos... siempre es mejor entregar una sola versión, comentada o no... el proceso de contar la longitud del mismo corresponde hacerlo aparte, por ejemplo, escribí estas dos funciones para probar los códigos...

Código PHP:
Ver original
  1. function function_code($name)
  2. {
  3.     $callback = new ReflectionFunction($name);
  4.     $file = file($callback->getFilename());
  5.     $code = array_slice($file, $callback->getStartLine() -1, $callback->getEndLine());
  6.     $code = preg_replace('/<' . '?' . 'php[\s\r\n\t]+/', '', join('', $code));
  7.     $code = '<' . '?' . "php $code";
  8.  
  9.     $output = '';
  10.     foreach (token_get_all($code) as $token)
  11.     {
  12.         if (is_string($token)) $output .= $token;
  13.         else
  14.         {
  15.             switch ($token[0]) {
  16.                 case T_COMMENT:
  17.                 case T_OPEN_TAG:
  18.                 case T_CLOSE_TAG:
  19.                 case T_DOC_COMMENT:
  20.                 break;
  21.                 case T_WHITESPACE:
  22.                     $output .= ' ';
  23.                 break;
  24.                 default:
  25.                     $output .= $token[1];
  26.                 break;
  27.             }
  28.         }
  29.     }
  30.     return $output;
  31. }
  32.  
  33. // http://www.php.net/manual/en/function.php-check-syntax.php#86466
  34. function php_syntax($code)
  35. {
  36.     $display = @ini_set('display_errors',1);
  37.     $log = @ini_set('log_errors',0);
  38.  
  39.     $braces = 0;
  40.     $string = 0;
  41.  
  42.     foreach (token_get_all($code) as $peak)
  43.     {
  44.         if (is_array($peak))
  45.         {
  46.             switch ($peak[0])
  47.             {
  48.                 case T_CURLY_OPEN:
  49.                 case T_DOLLAR_OPEN_CURLY_BRACES:
  50.                 case T_START_HEREDOC: ++$string; break;
  51.                 case T_END_HEREDOC: --$string; break;
  52.             }
  53.         }
  54.         else if ($string & 1)
  55.         {
  56.             switch ($peak)
  57.             {
  58.                 case '`':
  59.                 case '"': --$string; break;
  60.             }
  61.         }
  62.         else
  63.         {
  64.             switch ($peak)
  65.             {
  66.                 case '`':
  67.                 case '"': ++$string; break;
  68.  
  69.                 case '[': case '(': case '{': ++$braces; break;
  70.                 case ']': case ')': case '}':
  71.                     if ($string) --$string;
  72.                     else
  73.                     {
  74.                         --$braces;
  75.                         if ($braces < 0) break 2;
  76.                     }
  77.                 break;
  78.             }
  79.         }
  80.     }
  81.  
  82.     ob_start();
  83.     $line = NULL;
  84.     $valid = NULL;
  85.     $message = NULL;
  86.  
  87.     if (eval('?' . ">$code") == FALSE) $valid = FALSE;
  88.     else $valid = TRUE;
  89.  
  90.     $output = ob_get_contents();
  91.     ob_end_clean();
  92.  
  93.  
  94.     $regex = '/syntax\s+error,\s+(.+)\s+in\s+.+\s+on\s+line\s+(\d+)/Uis';
  95.     if (preg_match($regex, strip_tags($output), $match))
  96.     {
  97.         $message = $match[1];
  98.         $line = $match[2];
  99.     }
  100.     elseif ($string != $braces) $message = 'unbalanced braces';
  101.  
  102.     @ini_set('display_errors', $display);
  103.     @ini_set('log_errors', $log);
  104.     return array(
  105.             $output,
  106.             $valid,
  107.             $message,
  108.             $line
  109.     );
  110. }

el código que finalmente se expone es el original, y el que se cuantifica se hace vía function_code(), que nos devuelve una versión sin comentarios y "comprimida" de nuestra función original usando Reflection

espero esto ayude a dejar un poco mas claras las cosas, no se crean que lo estoy tomando muy a la ligera... de verdad que me esfuerzo, ¿pues no se nota? (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #189 (permalink)  
Antiguo 11/07/2010, 11:56
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: Competencias PHP

Ah, buenísimo eso de funtion_code() y Reflection satisface mi inquietud con respecto a entregar dos códigos (no haría falta).

En cuanto al tiempo que tarda en cargar el código de la función, entonces si no estaría contemplado, ya que se mide solo la ejecución de la función.

Y en cuanto al esfuerzo, si se nota, como te dije antes, estás haciendo un excelente trabajo! Adelante!
__________________
Saludos.

Gustavo
  #190 (permalink)  
Antiguo 11/07/2010, 12:06
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Competencias PHP

Falta solamente 1 para completar la serie el de Hidek1 y luego a saber sobre las votaciones.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #191 (permalink)  
Antiguo 11/07/2010, 12:17
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Competencias PHP

Sabiendo que Hidek1 es un apasionado de las expresiones regulares y siendo su code uno de los más ligeros... ardo en curiosidad por verlo.
__________________
Tu álbum de cromos online!!
  #192 (permalink)  
Antiguo 11/07/2010, 14:37
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Competencias PHP

Cita:
Iniciado por santris Ver Mensaje
Sabiendo que Hidek1 es un apasionado de las expresiones regulares y siendo su code uno de los más ligeros... ardo en curiosidad por verlo.
y dejame confesarte algo, si el código de Hidek1 no tuviera esos horribles continue, su código sería el mas corto finalmente.... aunque, si el código de quike88 hiciera las comparaciones usando abs() sería de nuevo mas corto que el de Hidek1, en fin... yo considero a esto algo así como justicia divina...

Edito: por cierto, no se como le vamos a hacer con las votaciones de los usuarios del foro... ¿tienen alguna idea?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #193 (permalink)  
Antiguo 11/07/2010, 14:51
 
Fecha de Ingreso: septiembre-2009
Mensajes: 230
Antigüedad: 14 años, 6 meses
Puntos: 2
Respuesta: Competencias PHP

Me gusta, me apunto para intermedios
  #194 (permalink)  
Antiguo 11/07/2010, 15:33
Avatar de santris  
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Competencias PHP

Cita:
Iniciado por pateketrueke Ver Mensaje
Edito: por cierto, no se como le vamos a hacer con las votaciones de los usuarios del foro... ¿tienen alguna idea?
solo se me ocurre... votación manual ej:

participante uno = 2
participante dos = 1

pero un recuento con este sistema puede resultar caotico

Por mi parte que los moderadores(o colaboradores) php más el piloto del reto asuman esa responsabilidad.
__________________
Tu álbum de cromos online!!
  #195 (permalink)  
Antiguo 11/07/2010, 15:44
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Competencias PHP

Mira el ejemplo que propuso caricatos al principio. okram propuso un método de votación que entiendo que es muy útil.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #196 (permalink)  
Antiguo 11/07/2010, 15:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 102
Antigüedad: 15 años, 4 meses
Puntos: 1
Respuesta: Competencias PHP

seee muy chevere la iniciativa yo me apunto tambien
__________________
█ Luis Toscano - CodeMaster
Codigolandia.com
Foros Del Hosting
  #197 (permalink)  
Antiguo 11/07/2010, 16:31
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Competencias PHP

y con una encuesta, donde voten por el que más les gustó????
  #198 (permalink)  
Antiguo 11/07/2010, 19:41
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Competencias PHP

finalmente coloque una encuesta en el tema del desafio, creo que es lo correcto... y realmente no vi antes que era sencillo hacerlo... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #199 (permalink)  
Antiguo 12/07/2010, 07:13
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Competencias PHP

jajajuwjuwaju acabo de ver los resultados.. no había podido conectarme el fin de semana... me falto poquito para ganar ehhh :) !! para la próxima no olvidare revisar denuevo mi código antes de entregarlo... (lo digo por lo de los continue xD) .. en todo caso felicitaciones a los que participaron es un gusto tener este tipo de competencias en el foro

saludos!.

PD: luego voy a leer todos los script.. asi me doy ideas a futuro ;)
__________________
More about me...
~ @rhyudek1
~ Github
  #200 (permalink)  
Antiguo 12/07/2010, 07:24
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Competencias PHP

Cita:
Iniciado por santris Ver Mensaje
Sabiendo que Hidek1 es un apasionado de las expresiones regulares y siendo su code uno de los más ligeros... ardo en curiosidad por verlo.
aajajjaa en realidad no use muchas regex por que sino me iba a ir para atrás con el tiempo de ejecución.. pero igualmente no me aguante y le puse 1 xD!
__________________
More about me...
~ @rhyudek1
~ Github
  #201 (permalink)  
Antiguo 12/07/2010, 07:27
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: Competencias PHP

Hidek1 por qué decís que casi ganás si esto se define por votación y usted por ahora está primero.
Felicitaciones, hiciste un trabajo excelente, simple y efectivo!
__________________
Saludos.

Gustavo
  #202 (permalink)  
Antiguo 12/07/2010, 07:28
 
Fecha de Ingreso: noviembre-2009
Mensajes: 21
Antigüedad: 14 años, 5 meses
Puntos: 1
Respuesta: Competencias PHP

que buena idea... me apunto en la parte medio
  #203 (permalink)  
Antiguo 12/07/2010, 07:36
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
De acuerdo Respuesta: Competencias PHP

Cita:
Iniciado por Gustavo72 Ver Mensaje
Hidek1 por qué decís que casi ganás si esto se define por votación y usted por ahora está primero.
Felicitaciones, hiciste un trabajo excelente, simple y efectivo!
verdad ... vamos que se puede

gracias por el cumplido :)
__________________
More about me...
~ @rhyudek1
~ Github
  #204 (permalink)  
Antiguo 12/07/2010, 08:12
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: Competencias PHP

Cita:
Iniciado por Gustavo72 Ver Mensaje
Hidek1 por qué decís que casi ganás si esto se define por votación y usted por ahora está primero.
Felicitaciones, hiciste un trabajo excelente, simple y efectivo!
A lo que él se refiere es al tiempo de ejecución y el tamaño del código, no a la votación.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #205 (permalink)  
Antiguo 12/07/2010, 08:16
Avatar de quike88  
Fecha de Ingreso: agosto-2008
Mensajes: 471
Antigüedad: 15 años, 8 meses
Puntos: 87
Respuesta: Competencias PHP

ni se me ocurrió probar con una cadena menor a 3 caracteres . Pero bueno, me encantó el desafío, espero que pronto haya otro.

Saludos!
  #206 (permalink)  
Antiguo 12/07/2010, 20:51
Avatar de eZakto  
Fecha de Ingreso: julio-2008
Mensajes: 214
Antigüedad: 15 años, 9 meses
Puntos: 5
Respuesta: Competencias PHP

Para un nuevo desafío se puede hacer un separador de silabas... Tiene su mañas :P
__________________
eZakto™
  #207 (permalink)  
Antiguo 13/07/2010, 02:21
 
Fecha de Ingreso: marzo-2010
Ubicación: Barcelona
Mensajes: 657
Antigüedad: 14 años, 1 mes
Puntos: 26
Respuesta: Competencias PHP

@quike88 Heh, por lo menos tu código es limpio y corto. El mío parece que venga de a saber donde por las vueltas que le dí!

La próxima vez intentaré que mi código sea legible y que la gente no se maree (hasta yo me maree cuando lo repasé, pero eso de hacerlo en media hora, y medio dormido es bastante malo). Buen ya se nota que la optimización de código no es mi fuerte.

@eZakto Un separador de silabas? O.o. En ese creo que no me apunto xD
  #208 (permalink)  
Antiguo 13/07/2010, 07:30
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: Competencias PHP

Cita:
Iniciado por eZakto Ver Mensaje
Para un nuevo desafío se puede hacer un separador de silabas... Tiene su mañas :P
Estaría bueno, yo había pensado en lo mismo. También había pensado en un conversor de números en cifras a letras.
__________________
Saludos.

Gustavo
  #209 (permalink)  
Antiguo 14/07/2010, 08:53
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: Competencias PHP

para la próxima podrían usar ab para probar los script :)
..es solo una sugerencia y un aporte a los que no lo conocian

sudo /opt/lamp/bin/ab -n 500 http://127.0.0.1/script1.php

:)

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #210 (permalink)  
Antiguo 14/07/2010, 10:13
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Competencias PHP

Hidek1 y eso de ab que es??

por cierto, no estaría mal un reto -incluso en equipos- para el tan solicitado diccionario hoygan
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: competencia, desafío
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 34 personas




La zona horaria es GMT -6. Ahora son las 06:51.