Entradas

Mostrando las entradas etiquetadas como estadísticas

Ciclos de lanzamiento en PHP, curiosidades

Imagen
A raíz de la cada vez más cercana versión 8 de PHP y sus esperadas mejoras han surgido algunos bulos sobre su fecha de lanzamiento, hasta ser confirmada finalmente el 10 de febrero con el siguiente tweet:  En este tweet se habla de los ciclos de lanzamiento de PHP, puede parecer algo trivial o sin importancia, pero desde la versión 7, no sólo ha mejorado el lenguaje, sino la forma de trabajar del equipo de desarrollo. Si tomamos por ejemplo los 414 lanzamientos que se han publicado desde junio de 2003, de ellos 27 alfas, 30 betas y 52 candidatas, podemos ver una mayor organización y previsible agenda en los mismos. Por citar un ejemplo, mientras en php 5 no siempre se publicaban alfas, betas o RC, en php 7 si, y además periódicamente, las versiones 0,1,2,3 y 4 de php 7 comparten los mismo tiempos, desde el lanzamiento de la primera beta hasta el lanzamiento de la primera versión candidata pasan exactamente 42 días, y también para la mayoría de transiciones de alfa a b...

Presupuestos participativos Madrid

Imagen
El pasado 25 de marzo el Ayuntamiento de Madrid cerró el plazo para apoyar las propuestas de la ciudadanía destinadas a los presupuestos de 2018, 100 millones de euros para que los madrileños inviertan en su ciudad. La pregunta que os haréis es ¿esto que pinta en un blog geek? Mucho, porque gracias a PHP, SQL Server, Power BI y Excel podemos dar respuesta a algunas preguntas que no quedan del todo claras, o son inexistentes, en la web del ayuntamiento .  Preguntas como ¿número de propuestas por distrito? ¿presupuesto por distrito? ¿qué han apoyado los madrileños? Todas ellas tienen respuesta en este post. ¿Cómo he llegado a estas cifras? Primero era necesario importar en una base de datos los detalles de cada propuesta: título, apoyos, distrito y etiquetas. Estas últimas, las etiquetas, al ser creadas por los usuarios era necesario normalizarlas, de manera que de 341, eliminando duplicadas, faltas de ortografía, combinadas y agrupando, he dejado solo 169. De esta form...

Internacionalización (i18n) con PHP

Cuando trabajamos con un sitio que debe estar disponible en  varios idiomas hay múltiples alternativas para traducirlo en PHP pero todas básicamente se basan en incluir un archivo de idioma y sustituir cada frase por su equivalente. Cuando tenemos que traducir un sitio deberíamos plantearnos seriamente la internacionalización del mismo ¿qué es? Básicamente es no solo traducir el texto sino mostrar fechas y configuraciones regionales según el idioma elegido. La mejor herramienta para esto es la extensión de PHP gettext , herramienta que aún no he probado pero que sospecho tendrá un rendimiento más que aceptable y mucho mejor que el resto de opciones que veremos en este post. Lo único malo de esta librería y precisamente será lo que garantice su rendimiento es el uso de la cache para almacenar los idiomas con lo cual cualquier actualización requeriría un reinicio de apache, cosa que en muchos casos no es viable salvo que tengamos un servidor dedicado. Os prometo que intentaré imp...

Problemas de espacio en Windows 8.1

Imagen
Realmente todas las posibles causas de aumento descontrolado del espacio ocupado en el disco duro que voy a tratar aquí se pueden aplicar a cualquier sistema Windows, incluso en los casos de software a cualquier sistema que los tenga instalado. Las pruebas siguientes fueron hechas en 2 ordenadores con Windows 8.1 y con discos duros limitados en espacio con lo cual cada GB cuenta, es por ello que he decido monitorearlos porque me parecían demasiados los recursos que se estaban consumiendo, lamentablemente en la mayoría de los casos no hay mucho que hacer, pero, primero a lo primero. Para monitorizar el espacio ocupado por cada carpeta he decidido utilizar la herramienta basa en Java, JDiskReport , y digo basada en Java porque necesitaremos la máquina virtual de este lenguaje para poder ejecutarla, generalmente se agrega la ubicación de Java al PATH de sistema pero en caso de que no se encuentre el archivo javaw.exe lo encontraremos en C:\Program Files (x86)\Java\jre7\bin. Una vez ...

Errores comunes correos Hotmail

Imagen
Cuando tenemos un sitio web donde los usuarios pueden dejar su correo electrónico para registrarse en diferentes servicios como pueden ser: alta de usuarios comentarios boletines electrónicos suscripciones Corremos el riesgo de que los usuarios de nuestra web introduzcan el correo electrónico mal a propósito o por equivocación. Voy a tratar los segundos, y dar los errores más comunes que cometen los usuarios cuando nos dejan su dirección de correo electrónico. Comienzo por las direcciones de correo de Hotmail porque están bastante extendidas y son mas complicadas de escribir que las de otros servicios como gmail. El estudio lo he hecho basándome en una base de datos con 60 mil direcciones de correo electrónico de Hotmail (exactamente 60276). La tasa de error para direcciones de Hotmail es de 0,56 % (redondeando vendría a ser 6 direcciones mal por cada mil bien). La tasa de error para yahoo es del 0,23 % y la de gmail del 0,47 %. Aquí os dejo una tabla con los e...

Monitorar uso de la CPU por procesos

Imagen
Hasta ahora ninguno de los plugins que hemos visto permite saber el uso de la CPU por usuarios o por procesos pero para ello hay 2 plugin adicionales que te permiten hacer esa tarea. De esta forma se puede monitorar el consumo de CPU de procesos como apache, mysql y el propio munin. Los citados plugin se encuentran en la siguiente ruta y se llaman cpu-usage-by-process y cpubyuser, el primero lo renombraremos como cpubyproc y modificaremos el archivo de configuración de munin en /etc/munin/plugin-conf.d/munin-node agregándole las siguientes líneas: [cpubyproc] env.procs crond httpd mysqld munin-node [cpubyuser] env.USERS apache mysql munin los proceso y los usuarios se pueden modificar a gusto de cada cual. Para saber el listado de procesos activos escribiremos ps aux y para el listado de usuarios cat /etc/passwd | cut -d":" –f1. Importante: para evitar errores del tipo Warning: bad syntax, perhaps a bogus '-'? debemos buscar la línea 68 del plugin cpubyproc y...

Monitorar Apache en CentOS 6 con Munin

Imagen
Al igual que para MySQL, los plugins de Apache no vienen activados por defecto . En este manual los activaremos y además agregaremos uno extra que no es oficial. aunque hay muchos más pero este es el que me pareció mas interesante. Entre los plugins que viene con la instalación de apache se puede monitorar lo siguiente: accesos por segundo procesos activos, inactivos y slots libres número de bytes por segundo Y el plugins adicional que podemos encontrar aquí nos permitirá ver el tamaño medio en bytes de los procesos de apache. Los tres primeros como ya están en el directorio /usr/share/munin/plugins/ podemos activarlos de la siguiente manera: ln -s /usr/share/munin/plugins/apache_* /etc/munin/plugins/ No son necesarias más configuraciones extras. El plugin que no es oficial presenta algunos bugs y es por ello que hay que modificar algunas líneas, el plugin se llama apache_memmory : Modificamos las líneas 13 y 14 con el usuario que ejecuta apache (apache) y el nombre del...

Monitorar MySQL en CentOS 6 con Munin

Imagen
Entre los gráficos instalados por defecto en Munin no se encuentra ningún monitorado específico para MySQL aunque si vienen en la carpeta de plugins una multitud de estos entre los cuales hay algunos que tal vez no nos interese instalar. Antes de entrar en el tema concreto de MySQL voy a explicar el procedimiento por defecto para instalar plugins en Munin . El plugin debe existir en el directorio /usr/share/munin/plugins y además tener permisos de ejecución. Un plugin no es más que un script shell o perl en el que algunos sea necesario modificacar las variables dentro de este script, para otros se pueden definir las variables globales en el archivo /etc/munin/plugin-conf.d/munin-node de la siguiente forma [nombre_del_plugin_igual_al_del_archivo] env.variable valor variable valor Importante: los valores no pueden tener símbolos cómo # porque pueden causar errores Luego hay que hacer un enlace simbólico del plugin en el directorio /etc/munin/plugins Una vez visto el funcionamie...

Instalando Munin en CentOS 6

Imagen
Munin es una herramienta para el monitorado de recursos que puede ayudar a analizar las tendencias de los mismos e identificar y solucionar problemas asociados a una bajada de rendimientos en nuestros servidores. Según está diseñado Munin llega a ser una herramienta prácticamente de plug and play aunque dependiendo de la distribución dónde la instalemos puede dar algunos problemas o no. Si bien es cierto que una instalación predeterminada proporciona una gran cantidad de gráficos con casi ningún trabajo para el caso de monitorado de MySQL y Apache son necesarias varias configuraciones extras las cuales veremos en otros post. Sin más os dejo el paso a paso de la instalación para la última versión de Munin a la fecha (2.0.8) en un CentOS 6.3. Lo primero que debemos hacer es instalar algunos paquetes extras: yum install perl-XML-SAX Es muy importante instalar este paquete antes de la instalación de Munin porque si tienes habilitado el repositorio de RPMForge te puede dar colisiones...