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

2Sep/10Off

¿Problemas en los tildes o acentos?

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í".

Archivado en: Bases de Datos, Linux, PHP | 3,307 vistas Continúa leyendo
29Ago/10Off

Abrir todos los links externos en nueva ventana

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.

Archivado en: Javascript/jQuery | 707 vistas Sin Comentarios
28Ago/10Off

Nueva class publicada: HTML Utilities

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.

Archivado en: Classes, PHP | 419 vistas Continúa leyendo
27Ago/10Off

Configuración de PHP testing vs producción vs hosting

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!

Archivado en: PHP | 638 vistas Continúa leyendo
23Ago/10Off

Es mejor cURL o file_get_contents?

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.

Archivado en: PHP | 699 vistas Continúa leyendo
19Ago/10Off

Búsqueda de PHP.net en Firefox y trucos de vim

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.

Archivado en: Mundo Web, PHP | 804 vistas Continúa leyendo
16Ago/10Off

Cómo ocupar ob_start(), ob_get_contents() y otros relacionados

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.

Archivado en: Mundo Web, PHP | 2,205 vistas Continúa leyendo
15Ago/10Off

Y tenemos nueva casa!

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 !!

Archivado en: Pensamientos Personales | 299 vistas Sin Comentarios
5Ago/10Off

CMD+Q y Mac OS X… cómo eliminar ese shortcut

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.

Archivado en: Apple/Mac, Pensamientos Personales | 1,479 vistas Continúa leyendo
29Mar/10Off

Verificar RUT con Javascript y PHP

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.

Archivado en: Javascript/jQuery, Mundo Web | 2,813 vistas Continúa leyendo
23Feb/10Off

Recuperar archivos con vi

Hace tiempo que no escribo pero pretendo mejorar eso y nada mejor que un tip cortito: debido a la pésima condición de la conexión que ofrece VTR, se me desconectó el PuTTY desde el servidor mientras estaba editando un archivo. El único problema es que el famoso archivo no lo había guardado así que era inevitable que los últimos cambios se perdieran.

Sin embargo, es en este punto donde vi ofrece recuperar el borrador, pero como siempre había leído muy a la rápida, simplemente optaba por borrar este mismo. Para más mala suerte mía, pasé a borrar el archivo original en vez del archivo de recuperación ¬¬

Archivado en: Linux | 1,282 vistas Continúa leyendo
1Feb/10Off

Script para reducir peso de los CSS

En la Web hay una cosa que yo diría es bastante fundamental y nadie le presta mucha atención: el peso de los archivos. Mantener un peso bajo puede ahorrar mucho ancho de banda, cosa necesaria en cualquier sitio de alto tráfico, ya que además de acelerar la descarga también hace que al cliente o usuario final la página le aparezca más rápido.

Aunque me gustaría ahondar mucho más en el tema, por el momento sólo presentaré una pequeña función que puede ser bastante útil a la hora de reducir el peso de CSS gigantes, sin embargo, la verdadera ganancia puede no estar aquí, sino que en la compresión que se debe activar en el servidor, o bien ocupando ob_start() de PHP, pero como ya dije: eso ya es harina de otro costal y al ser más amplio preferiría dejarlo para otro post.

Sin embargo, a continuación les presento el pequeño script. Vamos... haz click en leer más :D

Archivado en: CSS, Mundo Web | 1,006 vistas Continúa leyendo