Desde que empecé en esto de la Web, siempre tuve un problema: las tildes. O me salía el típico signo de pregunta o bien me salían caracteres extraños, que intentando por aquí y por allá siempre lograba evitar, aunque a veces me superaba y optaba simplemente por terminar escribiendo su entidad.

Aunque no pretendo arreglarle la vida a todo el mundo, en este post sí les dejaré algunos tips para asegurarse de que todo funciona como debería: se verán algunas funciones de PHP que sirven harto y se verá superficialmente la interacción con bases de datos. Dato rosa antes de continuar: la diferencia entre acento y tilde, es que tilde representa el signo “ ´ “ mientras que acento se refiere a la fuerza que se le impregna a la sílaba específica. De esta manera, en la palabra “sílaba”, el tilde está en la letra “i”, mientras que el acento está en la sílaba “sí”.

Hace un tiempo atrás, necesitaba que todos los links externos fueran abiertos en una nueva ventana. Primero hice una función en PHP que cuando construía el link, detectaba si el mismo era interno o externo y si era externo, lo dejaba con el famoso target=”_BLANK”. Sin embargo, al poco tiempo después me di cuenta que ésta no era la solución ideal ya que fallaba en dos aspectos fundamentales: Si el link era construido mediante TinyMCE (o sea, por el usuario), no pasaba por el “constructor” de links. Por otro lado, el código generado no era compatible con la W3C en el modo estricto (En este modo, se elimina el atributo “target”). Así que me puse a investigar qué necesitaba para que cumpliera con los dos propósitos… ¿La respuesta? JavaScript, y si podía utilizar el poder de selección de la librería jQuery, aún mejor. El resultado fue que todos los links externos de la página, independiente de quién las haya creado, se abren en otra ventana y lo mejor de todo es que el código de la página es compatible con la W3C.

$(document).ready(
    function(){
        $('a:not([href^="http://blog.unreal4u.com/"])')
            .attr("target","_BLANK");
    }
);

Obviamente tiene que reemplazar http://blog.unreal4u.com/ con la ruta de su aplicación.

Hace ya cerca de un mes atrás, publiqué una nueva Class en phpClasses. Esta class posteriormente fue nominada en un sitio del cual todavía no cacho cuál es el propósito, pero la imagen se ve genial:

Famous Software Download

Los detalles de la class están después del salto.

Frecuentemente me he dado cuenta de que sobretodo en algunos hostings masivos, la configuración de PHP quizás no es la más adecuada en cuanto a rendimiento y seguridad. Lo primero por lo general es por un tema de retrocompatibilidad, mientras que lo segundo es para que no los tapen a llamadas debido a que algo no funciona como debe (y no revisan los logs).

Este post tratará fundamentalmente de este tema: se explicarán algunas de las opciones más extrañas o menos documentadas de PHP (última versión de la rama 5.2) y se comparará su uso en un ambiente de testing versus un ambiente de producción. Así que dale a “continuar leyendo” que esto no es fácil de encontrar!

Históricamente, siempre he tenido problemas con estas dos funciones. De repente está desactivada la directiva de poder obtener contenido remoto y eso producirá un montón de problemas si dependemos de file_get_contents() para nuestro sitio. Por otro lado, también es bastante inseguro y por lo mismo se le desactiva. Las directivas que controlan en php.ini la inclusión de archivos remotos son dos:
allow_url_fopen = Off
allow_url_include = Off

Que por lo general se encuentran predeterminadamente en Off, especialmente en las últimas versiones de PHP. La diferencia entre ambas es que la primera permite tratar archivos con un protocolo determinado (tal como http:// o ftp://) como un archivo, y la segunda directiva establece si acaso se puede ocupar la función include() o require() con este tipo de archivos.

Hoy me di cuenta de algo que no me había dado cuenta. (duuuh) Siempre, cuando necesitaba buscar alguna función en PHP.net, hacía la típica: iba a Google, tipeaba el nombre de la función, ubicaba PHP.net y hacía click. Bueno, como casi todos los grandes descubrimientos de la humanidad, estaba en la portada de PHP.net y por accidente hice clic donde no debía. Descubrí esto:

Sin embargo, el verdadero potencial de este post está por verse, veamos algunos comandos semi-avanzados de vim que nos hará la vida mucho más fácil al trabajar con este editor.

Pensando en qué truco podría ser útil, me acordé de los famosos ob_* que en un principio me parecían bastante complicados e inútiles.

Sin embargo, hoy constituyen un pilar fundamental en mi ambiente de desarrollo, puesto que me permiten ejecutar código, y poder redirigir a alguna página en específico incluso después de haberse ejecutado la página completa. Por supuesto, también me permite insertar contenido Javascript en los headers después de haber ejecutado la página.

¿Pero cómo se ocupa? Para esto es este post.

Gracias a que terminé antes de tiempo un proyecto que tenía en carpeta, hoy me pude dedicar a algo que me tenía dando vueltas hace rato: el cambio de servidor. Ahora sí estoy en un server de verdad, y no uno de casa haciéndolas como de server. Sin ningún tuning, es un 25% más rápido, con tuning yo creo que lograría fácil un 50% a un 60% extra con respecto al antiguo.

Así que espero que ahora el sitio se reactive un poco más junto con algunos otros proyectos personales que tenía un poco botados.

Saludos !!

Hace meses que no escribo y ha sido por una razón: Hace meses que quiero cambiar de hosting, pero no me he dado la paja de hacerlo. Tengo un respaldo de hace un par de meses y todavía no lo monto. Prometo que hoy en la noche respaldo nuevamente y subiré todo al nuevo hosting. Bueno, quizás no hoy en la noche, pero sí durante el fin de semana.

En estos meses que llevo en Santiago, la vida me ha cambiado. Ya no trabajo en el mismo escritorio que tenía de los 15 años, sino que trabajo en un piso 15. La vista a la pared fue reemplazada por una vista hacia la cordillera por un lado y hacia el cerro Santa Lucía por otro. Por supuesto, en vez de mi PC ahora tengo Macbook Pro, y ha sido una de las mejores máquinas en las cuales he trabajado: si bien es cierto al cabo de algunas semanas igual tengo que reiniciar, no se pega como Windows lo hace. El trackpad es lejos de lo más filete que he tenido: funciona a la perfección y en general no me ha decepcionado para nada. Los que alegan contra Apple es sólo porque nunca han trabajado con una máquina de Apple, se nota que le pusieron mucho empeño al crear máquinas tan maravillosas.

Atención! Este es una versión antigua! Existe una versión más nueva disponible aquí

Sí, estamos totalmente de acuerdo: hay por lo menos unos 50 validadores distintos si buscamos en Internet. Sin embargo, este validador es uno distinto: lo hice yo :P

Fuera de bromas, es un script bastante cortito (menor transferencia == página más rápida para el usuario) que realiza la verificación simple del RUT, es decir, un RUT tipo 11.111.111-1 seguirá siendo válido para este algoritmo. Lamentablemente el tiempo para hacer el completo no me sobra y creo que este blog es fiel reflejo de ello: hace muchísimo tiempo que no lo actualizo con alguna noticia.

También anda bastante lento el algoritmo en general, aunque eso puede ser problema de mi propio PC también. Sin embargo, se puede optimizar bastante más. La base fue tomada (la idea no más en realidad) del sitio del BancoEstado, específicamente este iframe. La versión de BancoEstado pesa 8309 bytes mientras que la versión realizada por mi pesa 1232 bytes (Un nada miserable 85% menos!). Manejando los mensajes de otra forma creo que se puede llegar al límite de un solo paquete de 1024 bytes. A continuación, el algoritmo del RUT chileno en Javascript y en PHP.

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