sábado, 31 de marzo de 2012

Case insensitive Mysql: sensibilidad a mayúsculas y minúsculas en MySQL


A continuación incluyo un pequeño artículo donde habla de como MySQL es sensible a mayúsculas y minúsculas en función del sistema operativo que lo esté conteniendo. Como es bien sabido Linux es sensible a mayúsuculas, por lo tanto en un servidor MySQL corriendo en Linux se presentará éste caso. En uno corriendo en Windows al parecer no será así, porque Windows no es sensible a mayúsculas. En el artículo se da una breve descripción del porqué. 

Tuve un problema similar al del artículo utilizando Hibernate con anotaciones en una aplicación Java, donde se nos había ocurrido poner los nombres de tablas con mayúsucula inicial, como por ejemplo: "Usuarios", quienes usábamos Linux tuvimos que resolverlo porque nos creaba por ejemplo la tabla "usuarios" vacía. 

Me voy directo a la manera para resolverlo, transcribiendo del artículo:
Afortunadamente, MySQL contempla el problema. Basta arrancar con mysqld –lower_case_table_names=1 y así cuando creemos cualquier base de datos o tabla, automáticamente la pondrá en minúsculas, haciendo que aparentemente se convierta en "case insensitive". No es totalmente cierto, porque lo que hace en realidad es convertirlo todo a minúsculas.
Aquí el artículo completo. Espero les sea de utilidad:


Aprovecho para agradecer al autor, muy recomendable su blog

¡Saludos Javer@s!

domingo, 4 de marzo de 2012

Recursos en la red: CMS's

¡HOla Javer@s!

Hoy con la intención simplemente de poner sobre la mesa un interesante tema. En la red hay múltiples sitios que comparten características de manera general. Claro que a alguien se le ocurrió un día desarrollar herramientas que automatizaran la creación de algún tipo de sitios. Así fueron apareciendo los famosísimos CMS (Content Management System) o editor de contenidos como comúnmente solemos referirnos.

Los hay para toda clase de contenidos: publicación de artículos, catálogos de productos, blogs, páginas personales, e inclusive contenidos mas complejos e interacciones más específicas. 

Nombres y productos hay muchos: Joomla, Drupal, Moodle, Fork, Wordpress, Mambo, Calipso, y un interminable etc...

A continuación incluyo una lista donde aparecen algunos de los CMS de código abierto más populares:

¿Alguna sugerencia o experiencia con estas interesantes herramientas?  Bienvenidos los comentarios.

¡Saludos Javer@s!

Hasta la próxima...

jueves, 1 de marzo de 2012

Obtener videos Flash desde cache en Linux

Hoy les platico algo que es más como una curiosidad que en ocasiones es útil. Parafraseando una entrada en internet cuya fuente sito al final, pude resolver algo que a mi me ha servido para guardar un respaldo de los videos Flash que veo de repente por la red.

Con las versiones anteriores del plugin de Flash Player de Adobe en Linux era posible ver directamente el archivo que se quedaba en cache de disco al ver nuestros archivos Flash en algún navegador. Entonces sin necesidad de usar herramienta adicional podiamos copiar un video accediendo al directorio tmp de nuestro sistema de archivos, escribiendo en la consola algo como esto:
$ cp /tmp/FlashXasdf ~/video.flv
En ese entonces identificábamos fácilmente un archivo Flash por el prefijo "Flash" presisamente... que difícil ¿verdad?

Sin embargo los chivos de Adobe pensaron que esto no debería suceder y en las versiones siguientes de su plugin han quitado este comportamiento. Ahora lo que hacen es borrar el archivo del sistema de archivos sin embargo se sigue descargando y sigue ocupando espacio en el disco duro, por lo tanto mantiene una liga para poder accederlo. Mientras exista un hilo de ejecución que tenga referencia a ese archivo (en nuestro caso el plugin de Flash, ¡cuidado! si cierras el plugin o el navegador esta referencia desaparecerá llevándose el archivo consigo), el archivo permanece en el sistema de archivos en Linux. A grandes rasgos algo así es lo que sucede.

Ahora, para acceder a este archivo y copiarlo a nuestro directorio haremos uso de un par de herramientas en linux. La clave de este descubrimiento es que se sigue creando en un primer momento el archivo como /tmp/Flash* así que de esa manera lo buscamos:
$ lsof | grep Flash 
COMMAND   PID   USER      FD  TYPE DEVICE SIZE/OFF NODE NAME 
firefox-b 23230 vagabundo 84u REG  254,0  1065348  929 /tmp/FlashXXQCasdK (deleted)
El header esta agregado, asi que el comando lsof solo les mostrará lo campos de la parte de abajo, para que no se vayan a asustar. De los datos que aparecen los que nos interesan en particular son el PID y el FD que son con los que podremos hacer referencia al archivo en cuestión.

Para continuar usaremos el directorio /proc del sistema de archivos. Éste directorio tiene varias gracias, ofrece mucha información del sistema que se esta ejecutando actualmente y esta presente por lo general en todas las distribuciones Linux. También mantiene archivos utilizados por las aplicaciones. En este caso con los datos que hemos recolectado antes (PID=23230 ,FD=84). Estos datos apuntan a una referencia que seria /proc/23230/fd/84 . Sin embargo no podemos acceder directamente a nuestro video, es necesario hacer un truco más escribiendo en nuestra consola:
$ cat /proc/23230/fd/84 > ~/video.flv
Y .... ya tenemos nuestro video C: 

Espero les sea útil. Este prcedimiento es, como lo comenté en un pricnipio, para Linux. En Windows no se si se pueda hacer algo similar, pero seguramente también hay alguna manera, ¿Alguien conoce alguna?

Anexo aquí el tutorial original de donde parafraseé el contenido de arriba, a cuyo autor se le agradece enormemente. Viene un poco más explicado aunque en inglés:


¡Saludos Javer@s!... hasta la próxima...