Blog

marzo
24

Tenemos el siguiente array

$r = array(
	0 => 'verde',
	1 => 'azul',
	2 => 'verde',
	3 => 'verde',
	4 => 'amarillo',
);

Y queremos eliminar los elementos duplicados, para lo cual tenemos dos opciones

1. array_values + array_unique

$r = array_values(array_unique($r));

2. array_keys + array_flip

$r = array_keys(array_flip($r));

¿Cuál es mejor?

Desde el punto de vista de legibilidad del código ambas opciones son válidas, ya que el comportamiento de cada una de las funciones utilizadas es bastante simple de comprender y se pueden consultar en el manual de PHP. Por lo tanto, lo único que puede determinar la conveniencia de una opción por sobre la otra es el tiempo de ejecución de cada una.

Para determinarlo, hemos realizado un benchmark. Estos son los resultados:

Opción 1 (array_values + array_unique)

-> Testing http://localhost/experimental/array_unique/1.php

Total Requests made: 1000
Total Time elapsed: 14.009807348251 (seconds)

Requests/Second: 71.379 req/sec
Average request time: 0.014 seconds
Standard deviation of average request time: 0.002
Longest/shortest request: 0.017 sec/0.004 sec

Opción 2 (array_keys + array_flip )

-> Testing http://localhost/experimental/array_unique/2.php

Total Requests made: 1000
Total Time elapsed: 13.918713331223 (seconds)

Requests/Second: 71.846 req/sec
Average request time: 0.014 seconds
Standard deviation of average request time: 0.003
Longest/shortest request: 0.017 sec/0.004 sec

Conclusión

La diferencia entre una opción y otra es prácticamente despreciable, así que la conclusión es que da lo mismo usar cualquiera.

Otra idea que podemos rescatar de esto es que realizar comparaciones entre funciones nativas de PHP realmente es un desperdicio de tiempo porque casi nunca se lograrán resultados significativos. Las verdaderas mejoras en la performance de una aplicación o website se consiguen atacando aquellas partes del código que mayores recursos consumen, como por ejemplo: consultas a base de datos, llamados excesivos a funciones recursivas, consumo de webservices, mala gestión de caché, etc.

marzo
23

Impresionante publicidad que muestra de manera muy clara y directa los problemas de desconexión que sufrimos entre las personas debido al uso desmedido de los teléfonos móviles:

Esto me hizo recordar a otra publicidad de Personal del año 2006 en la que se trataba de transmitir un mensaje similar:

marzo
22

Ideas de marzo

Posted In: Internet, Twitter by Mauro Zadunaisky

Twitter modificó sus términos y condiciones de uso de su API con el supuesto objetivo de “darle a los usuarios una experiencia consistente”. Puedes ver más sobre el tema en los siguientes enlaces:

Esto disparó algunas discusiones muy interesantes sobre la generación de contenidos en Internet. Algunos estuvieron de acuerdo en que el auge de twitter hizo que muchos blogs se abandonen o reduzcan su frecuencia de publicación, reemplazándolos por fragmentos de 140 caracteres que nunca llegarían a desarrollar un tema relativamente complejo.

Así nació una idea interesante, llamada “Ideas of march” (ideas de marzo) donde muchos bloggers se comprometieron a incrementar la frecuencia de publicación durante todo marzo, con el objetivo de darle un nuevo impulso a la blogósfera y tratar de recuperar el hábito de escribir artículos más elaborados.

Desde Plus Global adherimos a esta iniciativa y ya hemos dado los primeros pasos para aumentar la frecuencia de publicaciones en nuestro blog. A fin de mes evaluaremos los resultados.

Más sobre Ideas of march

marzo
21

En las últimas dos semanas tuve que realizar modificaciones en aplicaciones desarrolladas por otros programadores sin usar frameworks. En ambos casos noté que al ejecutar el código en local aparecían muchos errores de tipo notice que no se veían en producción. En el manual de PHP dice claramente que durante el desarrollo es recomendado tener activados los error notice:

Habilitar E_NOTICE durante el desarrollo tiene algunos beneficios. Para depuración: los mensajes NOTICE le avisarán de posibles errores en su código. Por ejemplo, se avisa del uso de valores no asignados. Es extremadamente útil para encontrar erratas y ahorrar tiempo de depuración. Los mensajes NOTICE le avisarán sobre un estilo malo. Por ejemplo, $arr[item] es mejor que sea escrito como $arr['item'] ya que PHP intenta tratar "item" como una constante. Si no es una constante, PHP asume que es un índice de cadena del array.

PHP por defecto viene configurado para ocultar los error notice, para activarlos hay que abrir el archivo php.ini y en la línea donde dice:

error_reporting = E_ALL & ~E_NOTICE

cambiarlo por

error_reporting = E_ALL

Después reiniciar Apache y listo, ya estarás un paso más cerca de ser un desarrollador web profesional.

« Anterior
Siguiente »