PHP tiene -a mi gusto- una de las mejores librerías para trabajar con XML: SimpleXML. Crear un documento XML con SimpleXML es realmente simple, ya que basta agregar nodos hijos con sus respectivos atributos y estaría listo el documento. Sin embargo, SimpleXML sólo tiene una caída bien fea: el no saber tratar documentos que contengan CDATA.

El CDATA dentro de los documentos XML sirve para expresar contenido en HTML y le indica al navegador (también a Adobe Flash) que no debe parsear su contenido, esto quiere decir que debe interpretar la cadena “Hola mundo” dentro de un párrafo así:

<texto><[CDATA[<p>Hola mundo</p>]]></texto>
// y no así:
<texto>&gt;p&lt;Hola mundo&gt;/p&lt;</texto>

Tuve la suerte de conocer este año Magento: una plataforma de e-commerce, muy completa y que apenas lleva un año rondando en la Web. Sin embargo, ha sido por un lado una fortuna y por otro, una des-fortuna conocer este CMS. Fortuna debido a que está muy bien hecho, 100% orientado a objetos y realizado con el framework de Zend. Tiene algunas opciones muy avanzadas y en general el planteamiento mismo de la base está muy bien hecho. Así por ejemplo, la base de datos implementa un esquema tipo EAV el cual, en un principio, puede parecer complicada. Sin embargo, con el tiempo uno va viendo que es mejor así. Lo otro que también está muy bien hecho, es su sistema de templates.

Sin embargo, también ha sido una des-fortuna debido a su complejidad inicial y su pobre documentación. No existe un lugar centralizado que sea bueno donde hayan tips, consejos, descripción de métodos y otros y mucha información uno la puede ir sacando a través de los distintos blogs que existen.

Aunque por lo general ningún servidor me da problemas, la máquina que aloja este blog está dando un poco de jugo. El proceso del Apache tiene la mala costumbre de tomarse el 100% del procesador por algunos segundos (hasta 30) y durante ese lapso de tiempo simplemente no aparece nada en el cliente. Sin embargo, ese error es tan vago que no da para nada más. En los logs tampoco aparece nada inusual, así que simplemente aplicaré regla de oro en la informática: ir probando para ver si puedo replicar el error. (Que manera tan elegante de decir: “prueba y error”).

Antes que todo, quisiera pedirle disculpas a un cierto amigo que posteó un comentario, akismet lo tomó como spam y sin querer queriendo, me confundí de botón y lo borré de la base de datos en vez de aprobarlo. A la rápida, alcancé a leer algo de https y redirección (también tenía un link hacia un más información en X sitio), pero no me fijé a qué post correspondía. Así que si no es mucha molestia, se podría postear de nuevo? :D Prometo fijarme mejor esta vez.

En fin, el post de hoy se trata de nada más ni nada menos que svn. Odiado por muchos (Basta ver este video de Linus Torvalds donde básicamente dice que svn está mal desde su base) y amado por otro puñado de desarrolladores, es bastante fácil de ocupar y tiene opciones bien poderosas una vez que se aprende a ocupar bien. Y para eso es este post :)

Muchas veces, cuando algún cliente me contacta, ya se ha comprado el dominio y el hosting (Lo cual es una excusa más para no seguir perdiendo plata y que esté la página arriba rápido). Y dentro del universo de hostings, tchile es tal vez el hosting más popular en Chile, casi todos mis clientes tienen su página hosteada ahí. Sin embargo, no todo es color de rosas. He tenido bastantes problemas en el pasado por páginas subidas ahí y también -como no- hasta Wordpress con el theme predeterminado simplemente me mostraba una página en blanco cuando intentaba editar o crear un nuevo post.

Por lo tanto, opté por lo sano y me puse a investigar todas aquellas cosas que es bueno desactivar cuando tenemos que montar alguna página en este hosting.

Sí, es cierto, ya existe un post al respecto. Pero estoy viendo en Google Analytics que todo lo relacionado con el RUT es uno de los términos más buscados para la página, así que aprovecho de pegarle una revisión a ese post que ya tiene un poco más de 6 meses, así que bienvenido a la revisión del RUT como debería haber sido.

Como ese título siempre me ha llamado bastante la atención, es que le daré un enfoque bastante especial a que así sea. Este artículo estará separado en 3 partes: la primera, una explicación teórica sobre qué es el RUT y cuál es su función. La segunda, el algoritmo en JavaScript y el tercero, el algoritmo en PHP, obviamente estas últimas dos han sido revisados, actualizados y mejorados con respecto a su primera versión, desde la llamada inicial que se hace a la función, pasando por expresiones regulares y la detección automática del tipo de identificador: RUT o RUN.

Este post será cortito y es sólo para que no tenga que andar buscando dentro de logs algo que aplico sólo muy a veces: se trata de querer proteger un directorio predeterminado mediante htpasswd para que de esta manera, necesitemos de autentificación antes de poder continuar escudriñando en la página.

El método es bastante simple: basta crear un .htaccess y un .htpasswd, el segundo ojalá fuera del directorio público. De todas formas, apache predeterminadamente manda un 403 (Prohibido) a todos los archivos que empiezan con .ht (dato rosa, con expresiones regulares sería “^.ht”) pero nunca está demás poner una capita adicional a la seguridad del server. Más después del salto.

Configurar bien una máquina puede ser una tarea tediosa, especialmente por el hecho de que muchas veces nos podemos olvidar de más de algún detalle.

La presente es una instalación de PHP 5.3.3 en una máquina CentOS 64 bits limpia (instalación servidor) que implementa además dos extensiones fundamentales a mi parecer: APC y Suhosin. El primero sirve como opcode cache y el segundo funciona para frenar algunas malas prácticas en la programación de PHP, especialmente aquellas que tienen que ver con overflows. También le agrega una capa adicional de seguridad que predeterminadamente no viene integrada a PHP.

Sin embargo, no hay que olvidar que los repositorios oficiales todavía están con PHP 5.1.6 así que hay que habilitar un repositorio que tenga la última versión de PHP. Para este how-to, voy a ocupar el repositorio de remi, aunque cualquier otro también puede servir. (Sé que Webtatic también tiene la última versión, tanto en rama 5.2 como en 5.3). Por último, también aprovecho de instalar el repositorio de rpmforge por tener mucho software adicional que no viene en la base.

Estaba instalando un servidor hoy y lo principal es la seguridad en esa máquina. Por lo tanto, hay que restringirlo lo más posible; lo cual implica desde cambiar el puerto predeterminado en el cual SSH escucha hasta los usuarios que pueden invocar su.

Tocaremos principalmente dos archivos por mientras: /etc/ssh/sshd_config y /etc/pam.d/su

Para los primeros pasos, hacemos todo con nuestra cuenta de root.

Una de las cosas que más me desconcertó cuando empecé a trabajar con Mac, fue la ubicación de las teclas. Y es que, desde que entré a estudiar informática, siempre había elegido la distribución mexicana del teclado, por la simplicidad con la cual se pueden escribir caracteres como < y >, y también las infaltables {} y [], sin olvidar la ubicación del tilde, al lado de la P y no de la Ñ. Más grande aún fue mi sorpresa al ver que sólo estaba el teclado Español de España (discúlpenme mis lectores españoles, pero su configuración de teclado es lo más incómodo que hay para programar) y que simplemente no podía elegir otra distribución. Así que la hice corta: Googleé de inmediato y encontré la solución. Sin embargo, esa misma solución ahora está offline, así que acá tienen un respaldo, esta vez escrito por este humilde servidor.

u
n
r
e
a
l
4
u
.
c
o
m

Camilo Sperberg es Ingeniero Informático especializado en Linux y PHP. Éste es su blog oficial y aquí podrá leer mucha más información acerca de temáticas variadas en el bajo mundillo de la informática relacionada con esos tópicos

Because my reality... is just your virtuality

Camilo Sperberg

Debido a la gran cantidad de guiños y referencias relacionadas con el mundo informático, esta sección permanecerá siempre incompleta, al menos hasta que se complete

Futurama fan page

Oh, i'm very confortable with my sexuality, i just don't want to be slapped in the face with THEIR sexuality

Roy Trenneman en The IT Crowd S02E01