unreal4u's Personal Network Because my reality… is just your virtuality

22Abr/140

Instalar gettext y php-gettext en Mac OS X Mavericks

Desde hace algún tiempo que me vengo corriendo de no tener que instalar gettext en Mac OS, ya que implica hacer algunos cambios en código fuente, pero hoy ya no lo pude postergar más: composer se quejaba de que necesitaba una dependencia, de lo contrario no instalaba el software que necesitaba. Manos a la obra entonces, aquí una guía rápida de cómo instalar gettext para PHP en Mac OS X Mavericks.

Archivado en: Apple/Mac, i18n/L10n, PHP | 5,390 vistas Continúa leyendo
10Feb/143

Certificación en PHP 5.5

Aunque yo no he sacado la última certificación todavía, si he estado leyendo acerca de cuáles son los requerimientos y nada mejor para eso que referirse a Lorna Jane, la cual conocí durante algunas charlas y es toda una eminencia en el mundo de PHP. Ya ha publicado libros y yo mismo me había colgado varias veces de su blog para proyectos en los cuales había trabajado. Además hace charlas bastante dinámicas y entretenidas, así que si tienen la oportunidad de ir a verla a alguna charla, no se lo pierdan!

Cabe la casualidad que ella también enseña para la certificación y como tal, fue una de las primeras personas en sacar esta nueva versión. Para el gusto de nosotros, creó un compilado de varios documentos que nos pueden resultar útiles a la hora de estudiar para esta nueva versión. Lo que sí, tiene un costo de US$25, pero vale la pena ya que son 70 preguntas de ejemplo.

Pasen a dar una vuelta por su blog y vean además las demás guías que ella recomienda, hay algunos links muy buenos.

http://www.lornajane.net/posts/2014/zend-certified-php-developer-5-5

Por lo demás, hace algún tiempo también hablé de la certificación en mi propio blog, pero eso es para la versión 5.3, la cual pueden ver haciendo click en este pedazo de texto.

Archivado en: PHP | 1,589 vistas 3 Comentarios
15Ene/140

Detectar locale del usuario

Tal como prometí en uno de los primeros posts del año, ha llegado la hora de cumplir con mi mandamiento y este es el segundo post en la serie de posts que seguirán al respecto de la internacionalización y localización de su sitio.

En esta entrega, explicaré a grandes rasgos cómo capturar la locale de un usuario, con algunos métodos de fallback si es necesario.

Lo primero que les contaré, es que gran parte de la información de un usuario ya la manda el navegador: un usuario que habla español es muy probable que ocupe un navegador en español, como también un usuario de habla holandesa ocupará un navegador en holandés.

Archivado en: i18n/L10n, PHP | 7,596 vistas Continúa leyendo
6Ene/140

i18n: Cosas que tomar en cuenta

El año pasado (2013 ya!) di una conferencia acerca de las cosas que hay que tomar en cuenta con la internacionalización y la localización. De tal forma como presenté en esa charla, también expondré algunos de los puntos más importantes en mi blog, de forma que quede accesible para todo el mundo.

Lo primero que hay que tomar en cuenta es la diferenciación entre localización e internacionalización. Estos dos términos suelen confundirse fácilmente, cuando tienen una diferencia fundamental entre ellas, así que con esto ya sabrán cómo entretener a sus mamás/esposas/pololas demostrando su vasto conocimiento en cosas que nada les interesa.

La localización es la traducción propiamente tal de cadenas de textos y otros ajustes que tienen que ver con las costumbres y reglas de un cierto lugar. La internacionalización en cambio se refiere al hecho de preparar la aplicación (hacerlo compatible) para que pueda ser localizado. De esta manera, podemos decir que internacionalizamos nuestra aplicación para que pueda ser localizado.

Archivado en: Classes, i18n/L10n, Linux, PHP | 3,457 vistas Continúa leyendo
5Ene/140

Feliz año nuevo 2014!

Si bien es cierto he estado desaparecido por bastante tiempo, no me he olvidado de mi blog querido y he hecho hartas mejoras: de partida me cambiaré a otro host, ya cambié el DNS (de GoDaddy a NameCheap), y estoy trabajando en un nuevo diseño del blog mismo que se enfocará un poco más en entregar respuesta de forma más rápida.

Por el momento, sólo me queda desearles a todos un feliz año nuevo!

Archivado en: Pensamientos Personales | 5,516 vistas Sin Comentarios
25Ago/130

Instalando CentOS 6 con PHP 5.4.17 y MySQL 5.5.31

Hacía ya algún tiempo que no me tocaba instalar un webserver, y justo estos días me tocó instalar tres (con otro más por hacer en el horizonte), así que decidí hacer una nueva entrada actualizando el antiguo y de esa forma ahorrarme algún que otro problema que pudiera surgir en el futuro.

Lo que haremos con esta máquina es instalar Apache y la última versión estable de tanto PHP como MySQL. Además configuraremos algunos valores bases de SELinux e iptables, y finalmente instalaremos Logwatch para recibir un informe día a día de la actividad en el servidor. Aprovecharemos asimismo de instalar también OPcache para PHP, el cual ya viene incorporado de forma predeterminada en PHP 5.5, pero para la rama 5.4 todavía no.

Archivado en: Linux, Mundo Web, PHP | 16,859 vistas Continúa leyendo
15Ago/130

Tuneando opcache, el nuevo opcode cache de PHP

Hace poco se decidió, con gran ayuda de Zend, incluir Zend Optimizer+ en el código fuente de PHP como la opción predeterminada para que hiciera de opcode cache en favor de APC u otro. Las principales razones tenían que ver con que con Zend Optimizer+ estaban trabajando más personas que con APC (sólo Rasmus Lerdorf estaba trabajando con APC, mientras que de Zend Optimizer+ más personas conocían su funcionamiento [Fuente: lista de correos PHP-DEV]), también es más rápido que APC y como última gran razón (hay varias más), la manera de trabajar es más consistente que APC. Por lo tanto, la opción más lógica era por supuesto realizar el cambio.

A partir de PHP 5.5 ya viene incluida, aunque existen packages para PHP 5.3 y 5.4, tan fácil de instalar como invocar un simple yum install php-opcache. El nuevo nombre pasó de ser Zend Optimizer+ a opcache, así que de ahora en adelante, me referiré sólo a opcache.

Archivado en: Mundo Web, Pensamientos Personales, PHP | 5,054 vistas Continúa leyendo
3Ago/130

Automatizando la subida de código con Phing

Desde que me cambié de trabajo, trabajo (valga la redundancia) con un equipo bastante más grande de gente y uno de los problemas más comunes al que tenemos que hacerle frente es cómo subir código nuevo al servidor final. Hay varios proyectos en paralelo andando y cada desarrollador necesita tener la habilidad de poder subir sus cosas al servidor en producción.

Esta metodología de trabajo si bien es cierto es rápida, también puede provocar un sinfín de otros problemas, aunque los más graves han sido hasta el momento de sincronización: dos personas que trabajan en el mismo archivo y que, al momento de realizar la sincronización con el servidor en producción, topan en la problemática de que aparecen archivos con cambios en los cuales hay un ancestro en común pero del que no se sabe si está 100% listo para subirlo al servidor de producción o no.

Durante mi búsqueda de solución a este problema, di con algunos candidatos de forma de poder automatizar este proceso. Entre los candidatos estaban Capistrano, Phing o Fabric. Sin embargo, por su facilidad de uso y su nula dependencia Phing resultó el ganador absoluto.

Archivado en: Control de versiones, Linux, PHP | 7,593 vistas Continúa leyendo
3Ago/130

Sobre los hooks en Git

Hacía bastante tiempo que no escribía algo en el blog, así que parto hoy nuevamente con un nuevo post, aprovechando de celebrar el hecho que haya sido seleccionado para dar una charla en PFCongres 2013 en Utrecht, referente a cómo moverse lentamente de SVN a Git.

Una de las temáticas que tocaré en dicha charla, será el traspaso íntegro de un repositorio en SVN, con hooks y otros checks, a Git, que tiene dos tipos de hooks.
La primera de estos, es el que ocurre de forma local: ella se referencia hacia la carpeta .git/hooks/ donde se almacenan todos los hooks locales. Sin embargo, estos hooks locales tienen un gran problema: no se traspasan al servidor remoto cuando hacemos un push, con lo cual los únicos que ejecutaremos dichos hooks seremos nosotros mismos: los demás no podrán ejecutarlos.

Archivado en: Control de versiones, Linux | 3,723 vistas Continúa leyendo
3Feb/132

Por qué jQuery le devolvió la diversión a JavaScript

Este post es una historia llena de sentimientos encontrados, escalofriantes partidos de futbol, encontrarle el sentido a las cosas y volver a vivir como un adolescente enamorado. Ah, y también tiene relación con jQuery. Seguramente a estas alturas ya tengo toda su atención del mundo, así que ahora procederé a explicar el sentido de todo esto.

Corría el año 2001 cuando aprendí de forma bastante incipiente que podía escribir "Hola mundo" en la Web, mediante código escrito por mi en notepad! La primera vez que pude hacer eso, fue en un computador Compaq que tenía un procesador Cyrix que... bueno, francamente era una mierda de equipo. Corría Windows 95 porque no se podía Windows 98, tenía la friolera cantidad de 28MB en RAM y se quedaba pegado sólo porque uno lo miraba (o dejaba de, cualquiera de las dos condiciones servía al menos una vez al día). La cosa es que por aquellos años, mediante tarea en la Universidad, tuve que hacer una página que validara algunos formularios mediante el temido JavaScript: ese lenguaje críptico donde cualquier equivocación significaba que el navegador simplemente dejaba de responder con un mensaje de error tipo "Error en la línea 0, columna 0". Gran aporte. Debo confesar que jamás me llamó la atención: encontraba JavaScript engorroso, complicado y en general poco divertido de programar (no se podía hacer casi nada que no fuera validar formularios). Si quieres leer cómo sigue esta historia, haz click en "continuar leyendo".

21Ene/130

Instalar nginx en Mac OS X Mountain Lion

Desde hace algún tiempo que tenía las ganas de aliviarle un poco de carga a mi Mac y de paso, acelerar el desarrollo en un par de milisegundos por request, aunque la verdad estaba tan cómodo con el rendimiento del equipo que en realidad no hacía falta. Sin embargo, en un rato de ocio me propuse a instalar el famoso nginx como un proxy y servidor de contenido estático, cosa de dejar al apache sólo encargado de la parte PHP. Quise expresamente esta solución ya que he visto nginx sirviendo PHP directamente y puede dar lugar a unos bugs muy pero muy extraños, así que como buen developer que soy, prefiero quedarme con algo estable y bien probado para poder avanzar rápido en mi trabajo a tirarme a probar cosas nuevas que pueden no resultar como quiero y hacerme perder tiempo valioso.

Siguiendo esa misma filosofía, les presento una de las maneras más rápidas de integrar nginx en el sistema de la manzanita y de paso podrán apreciar que especialmente en lo que concierne contenido estático, andará bastante más liviano el equipo, especialmente teniendo en cuenta que Apache levantará PHP con xdebug, profiler y un montón de cosas más que no necesitamos en un simple CSS, imagen o archivo con JavaScript.

Archivado en: Apple/Mac, Linux | 5,634 vistas Continúa leyendo
14Ene/130

Instalando Gitolite: administrador de Git

Siguiendo con el artículo previo, ahora toca saber cómo instalar ese tan ansiado servidor propio de Git al mismo estilo que SVN, de forma que nosotros podamos controlar los accesos sin el inconveniente de pagarle a Github para que él almacene los proyectos por nosotros.

Lo primero será un pequeño resumen de todo lo que se verá en este artículo, de modo que vayan preparando sus mentes ávidas de conocimientos:

  • ¿Por qué Gitolite?
  • Instalando Gitolite
  • Configuración de llaves públicas y privadas
  • Creando un repositorio
  • Agregando más clientes al repositorio
  • Notas de instalación en Windows
  • Importando proyectos desde SVN a Git

No son pocos temas y trataré de ser lo más resumido posible sin dejar de explicar ciertas cosas para entender el proceso. Así que partamos.

Archivado en: Apple/Mac, Control de versiones, Linux | 5,310 vistas Continúa leyendo