jueves, 6 de octubre de 2011

Instalado PHP 5.3.8, APC, Xdebug, Memcached, PHPUnit en Windows 7 Ultimate con Microsoft-IIS 7.5

Este post es inicialmente una actualización al post anterior en el que instalé PHP 5.3.5 y una referencia a la instalación de memcached ya que la versión de PHP no es importante en esta última.

Mi actualización a PHP 5.3.8 fue muy simple, tomó unos 5 minutos en total, simplemente desinstalé la versión anterior de PHP desde el panel de control e instalé 5.3.8 (http://windows.php.net/download/) siguiendo los mismos pasos de la versión anterior, la única diferencia es que actualicé la versión de xdebug (http://www.xdebug.org/files/php_xdebug-2.1.2-5.3-vc9-nts.dll), usé "Beyond Compare" para comparar el archivo php.ini anterior y el nuevo para mantener los valores de mi configuración anterior, teniendo en cuenta que debí cambiar la dll de Xdebug, luego de copiar las dll de APC, Memcached y reiniciar IIS, todo funcionó perfectamente.

martes, 31 de mayo de 2011

Instalando Memcache para PHP 5.3.5 en Windows 7

Lo primero que se necesita es una copia de memcache para Windows. Al parecer es posible descargar el código fuente y compilarlo usando C++ con un conocimiento básico del proceso pero este no es mi caso, así que, debí seguir buscando y encontré esta: CouchBase, que, al parecer, tiene instaladores de un Memcached Server pero necesita registrarse para descargarlo, no me gusta dar mis datos para realizar acciones tan simples (por eso este Blog no necesita registro o acceso de ningún tipo). Siguiendo en la búsqueda encontré la página Jellycan Code en la que, al día de hoy, está la versión 1.2.6 de memcache que realmente es vieja si la versión actual es 1.4.5 pero está a la mano veremos como me va.

jueves, 21 de abril de 2011

Estudiando PHP 5.3 - I - Tipos

Este es el inicio de un conjunto de posts de características especiales, importantes o elementos que puedan hacerme fallar algún test de PHP, algo no muy básico pues ya sé un poco del lenguaje pero con muchos "Tips & Trics".

Primero quiero exponer un tipo de comentario en PHP que he visto muy pocas veces y es el que se usa en archivo shell o perl, he aquí algunos ejemplos de comentario incluyéndolo:
- Comentario de varias líneas
/* echo "A"; */

- Comentario de una línea
// echo "A";

- Comentario de una línea tipo shell
# echo "A";
* Incluso al día del post la última versión de SyntaxHighlighter no lo resalta de la forma correcta, pero créanme: funciona.

domingo, 20 de marzo de 2011

Evaluación de rendimiento - III - Casos de prueba y control

Usando el entorno  y las herramientas definidos anteriormente voy a ejecutar algunas pruebas de control y algunas de "curiosidad".

index.html: Primero haré una prueba del rendimiento de mi servidor web enviando el archivo de prueba con extensión .html.

Usando mi servidor web Microsoft-IIS 7.5 y el documento de 319 bytes el tiempo que tomó hacer 200.000 peticiones fue: 35.198 segundos, el resultado es 5682.14 peticiones por segundo.

Una prueba idéntica con el servidor web Apache 2.2.17 dió como resultado: 777.74 peticiones por segundo.

En resumen IIS atiende 7 peticiones mientras Apache atiende 1, este resultado es totalmente esperado ya que IIS se está ejecutando en su sistema operativo nativo, pero Apache debe ser un mejor interprete de PHP y para confirmarlo haré la siguiente prueba.

sábado, 19 de febrero de 2011

Evaluación de rendimiento - II - Definición del Entorno

Después de tener las herramientas listas según mi anterior post, ahora es necesario definir una estructura simple que me permita hacer la evaluación.

Dentro de la carpeta root de los servidores web creé una carpeta "FrameworksTest" que en adelante será la carpeta base y contendrá una carpeta por cada elemento a evaluar cuyo nombre tendrá la siguiente estructura: XX_NOMBRE donde XX es un número que me permitirá ordenar por nombre los elementos y NOMBRE es  un nombre corto: Ejs: 01_HTML, 02_PHP.
En la carpeta base tendré todos recursos que son compartidos por los elementos a evaluar, por el momento ab.exe que tomé de la carpeta de instalación del Apache y un archivo interface que llamé benchmark.bat que me permitirá ejecutar ab.exe con algunos parámetros por defecto.

jueves, 17 de febrero de 2011

Evaluación de rendimiento - I - Herramientas

En 2010 dediqué gran tiempo al desarrollo de un Framework en PHP 5.3, fue una experiencia enriquecedora que disfruté mucho, ahora valoro mucho más el uso de un Framework como base de un desarrollo y me gustaría hacer una comparación propia, muy simple, para saber cuál usar y cuando usarlo.

Lo que me llamó más a atención, en esta primera búsqueda de información, es que todos usan el típico ejemplo "Hola Mundo" para las evaluaciones de rendimiento, todo se aclaró cuando encontré una charla sumamente interesante llamada "Simple is hard" de Rasmus Lerdorf (Creador de las 2 primeras versiones de PHP) en Drupalcon del año 2008 que se puede ver acá (aunque es un poco larga) o se pueden ver las diapositivas usadas acá.

Ahora las herramientas ...

sábado, 12 de febrero de 2011

Instalando PHP 5.3.5 con APC y Xdebug en Windows 7 Ultimate con Microsoft-IIS 7.5

Voy a instalar la última versión de PHP (al día es 5.3.5) en mi Windows 7 Ultimate bajo IIS 7.5.


Muchos me preguntan por qué no uso Apache o XAMPP, la respuesta es: porque me parece que es más eficiente utilizar los elementos nativos del sistema sobre el que trabajo, además tengo la opción de usar .NET en el mismo servidor. Para el caso actual IIS combinado con PHP puede no ser la opción más eficiente pero no es muy importante ya que no es un ambiente de producción, en todo caso haré una comparación en un Blog posterior.

martes, 8 de febrero de 2011

Cajas de texto en modo solo-lectura

Hace unos días un amigo me pidió hacer que una caja de texto sea de solo-lectura usando javascript sin librerías externas (como jQuery, MooTools, etc).
Mi idea inicial fue asignar el valor "true" a la propiedad "readOnly":
document.getElementById( 'TEXTAREA_ID' ).readOnly = true;
o el valor "readonly" al atributo "readOnly"
document.getElementById( 'TEXTAREA_ID' ).setAtribute( 'readOnly', 'readonly' );
... pero ¿Qué clase de diversión tendría?

domingo, 9 de enero de 2011

Iniciando el Blog


Este año me he propuesto tener un blog nuevo, como bitácora de lo que aprendo en programación, y para iniciar quise pensar en qué es lo que me gusta de los Blogs que leo frecuentemente y hacer una lista de lo que el mio debería tener. Tener un blog es algo muy sencillo, en general solo hay que tener algo que decir (tal vez por eso mis anteriores blogs no funcionaron) pero es diferente verlo desde el punto de vista de quien lo visita, las características que debe o no debe tener pueden ser muchas, así que, me limitaré a los puntos mínimos que tendré en cuenta.