martes, 4 de septiembre de 2012

Convertir juegos de caracteres latin1 a UTF-8

Un problema frecuente que nos encontramos al diseñar o migrar bases de datos es la elección del juego de caracteres. Para el castellano nos encontramos con varias alternativas, destacando dos principalmente:


  • Latin1 o ISO 8859-1 es una norma de la ISO (Organización Internacional para la estandarización) que comprende todos los alfabetos latinos para Europa Occidental (con tildes, caracteres especiales como "ñ" o "ç",etc...).
  • UTF-8 (8-bit Unicode Transformation Format) es un formato de codificación de caracteres Unicode e ISO 10646.
 Las normas ISO utilizan distintos juegos de caracteres que superponen conjuntos de símbolos (por ejemplo, el decimal 243 que corresponde a "ó" en latin1 puede corresponder a otro símbolo en cualquier otra norma ISO).

Una de las principales ventajas de UTF es que no superponen conjuntos de símbolos: el símbolo "ó" será el mismo valor independientemente del UTF que utilicemos (8, 16...).


¿Entonces UTF-8 es mejor que Latin1?


No queremos que los adeptos a uno de los dos sistemas se líen a pedradas con nosotros, así que no entraremos en polémicas ;-). Cada sistema tiene sus ventajas e inconvenientes (UTF-8 es más universal pero, ¿vamos a trabajar con alfabetos diferentes a latin1 como para justificar el mayor tamaño de almacenamiento de los datos?).


El problema


Es posible que hayáis encontrado una base de datos en un juego de caracteres que queráis migrar al otro. Si lo hacéis directamente os quedan caracteres que no tienen correspondencia exacta con el otro (no se representan bien los caracteres especiales del castellano como las "Ñ" y las tildes).


Una solución


Hablo de "una" solución porque afortunadamente existen muchas soluciones para este problema. Esta es la que yo utilizo por su sencillez. Os voy a describir el proceso para el paso de tablas en latin1 a UTF-8, el proceso inverso es similar.

El único software que vamos utilizar (además del propio de nuestra base de datos) es un editor de texto plano capaz de guardar cambiando el juego de caracteres. Yo trabajo con una versión de evaluación de Textpad, aunque el propio Notepad de Windows o el Notepad++ también pueden hacerlo, como casi cualquier editor de texto plano.

Entrando en faena, lo que debemos hacer es:


1) Exportamos

Hacemos una exportación (o dump) de la(s) tabla(s) de la base de datos de origen en texto plano (a un archivo sql). En el ejemplo que os muestro se trata de una tabla de municipios de España exportada en latin1.


2) Editaremos ese archivo exportado:


 Como podéis ver, en la sentencia SQL de creación de la tabla se especifica el juego de caracteres en dos puntos.  Vamos a eliminar el juego de caracteres de la columna y cambiaremos el general por defecto de la tabla a UTF-8 manualmente:




 Por último pulsamos sobre guardar cómo para poder cambiar el juego de caracteres:




3) Importamos el archivo editado


Al importar a nuestra base de datos de destino tenemos que especificar que se trata de un archivo en UTF-8.

En nuestro caso utilizamos una base de datos MySQL con phpMyAdmin:



Si sois de los que preferís utilizar la línea de comandos:


mysql -u mi_usuario -p  db_destino   --default-character-set=utf8 < archivo_editado_utf8.sql


Et voilá, tendremos nuestra tabla importada con sus caracteres correctos sin artefactos en las tildes, "ñ", "ç"...


Activar / Desactivar javascript en Firefox con un clic

Si sois desarrolladores es posible que necesitéis activar y desactivar Javascript para comprobar como se comportan vuestros scripts. Si trabajáis con Firefox habréis comprobado que es un poco farragoso activarlo y desactivarlo (ir al menú herramientas, la pestaña concreta, entrar en las opciones...). Afortunadamente somos muchos los que nos encontramos con este "problema" y hay numerosas soluciones para no perder tiempo en ello. 

También puede ser útil a la hora de copiar contenidos (texto, imágenes...) de esas páginas web que nos deshabilitan el botón derecho del ratón ;-)


QuickJava

Doug G  ha desarrollado la extensión QuickJava para Firefox. Se trata de una barra de botones que nos permite desactivar y activar Javascript con un solo clic:


El botón estará azul o rojo en función del estado de activación de javascript (rojo desactivado). Como podéis observar incluye también la posibilidad de activar y desactivar (en su versión actual):
  • Java
  • Flash
  • Silverlight
  • Cookies
  • Imágenes animadas
  • Hojas de estilos
 Realmente merece la pena, probadla. Podéis descargarla desde:

https://addons.mozilla.org/en-US/firefox/addon/quickjava/




lunes, 27 de agosto de 2012

Cuentos infantiles interactivos en dispositivos móviles

Si sois padres seguro que lleváis el teléfono móvil repleto de recursos de última hora para tener entretenidos a los peques mientras tomáis algo en una terraza, esperáis en el médico en cualquiera de esas situaciones en las que necesitamos que estén "quietos y tranquilos" :-D

¿Conocéis PlayTales Books?


Es una aplicación gratuita con cuentos interactivos que funciona en dispositivos Android y Apple (iOS). Hay una gran cantidad de cuentos gratuitos (y una aún mayor de otros de pago).


Si instaláis la propia aplicación contiene un cuento gratuito (en inglés) y una biblioteca tipo iBooks para adquirir nuevos títulos, pero existen decenas de cuentos gratuitos. En la imagen tenéis unos ejemplos de los que le tengo instalados a mi peque.


¿Cómo funciona?

Una vez instalados en tu dispositivo tienes varias posibilidades: contárselo tú o dejar que se reproduzca automáticamente. En cada una de las páginas el peque puede ir tocando las imágenes que se moverán y emitirán sonidos.

Animáos a probarlo, veréis como les encanta.

Logmein: control remoto fácil y gratuito

Una necesidad frecuente en nuestros días es la de controlar de forma remota otros equipos. Ya sea para manejar el ordenador de casa desde el trabajo o viceversa, echar un cable a ese amigo que siempre nos llama cuando tenemos problemas o simplemente no levantarnos de la mesa cuando trabajamos con varios ordenadores, el control remoto es una solución muy útil.

Ya ya, ¿pero qué aporta Logmein?


Logmein es un software de control remoto basado en web. Su mayor ventaja es que funciona desde un navegador web por el puerto 80. ¿Y esto qué significa? Que los firewall de Windows y de empresa no lo detectan. Podrás acceder libremente a tus equipos de forma gratuita sin tener que abrir puertos o protocolos distintos y tan sólo con un equipo conectado a Internet.

 ¿Es seguro?

 Logmein funciona con agentes: pequeños programas residentes en el ordenador que quieres controlar de forma remota. Ese programa está siempre "escuchando" peticiones de conexión remota. 

Por un lado, la conexión viaja con un cifrado de 256 bits. Por otro, es necesario introducir la contraseña de una cuenta activa en el equipo que queremos controlar (si nos pillan una sesión de logmein abierta aún necesitan la clave del equipo). Aun así, podemos configurar el agente de modo que sea necesaria una confirmación desde el ordenador que queremos controlar para que se establezca la conexión.


¿Cómo lo instalamos?

Lo primero es registrarnos en www.logmein.com con una cuenta de correo electrónico:



Elegimos la opción de acceder a equipos de forma remota (a veces nos pregunta si queremos la opción de evaluación "Pro"). La gratuita es la "Free":



Rellenamos el formulario de registro (muy sencillo). Selecciona la opción "Fines personales" (hay una solución empresarial mucho más potente con más funcionalidades, pero no es gratuita).




Hecho esto ya tenemos creada la cuenta en Logmein. Ahora podremos añadir los equipos que queremos controlar de forma remota. Podemos añadir nuestra propia máquina en este momento pulsando sobre el botón "Descargar e instalar el software":


Seguimos todos los pasos del instalador y nuestro equipo tendrá instalado el agente de logmein para el control remoto.


Si queremos instalar el agente en otra máquina debemos entrar en logmein desde un navegador (www.logmein.com), iniciar sesión con nuestro usuario y nuestra clave y después pulsar sobre "Añadir este ordenador" (lo veremos un poco más adelante).

Es posible configurar el agente para que se conecte con otra cuenta de Logmein, para que solicite autorización antes de conceder el control remoto... 

Controlando equipos de forma remota

Para tomar el control de forma remota con Logmein entramos a su página web www.logmein.com, iniciamos sesión con la cuenta de correo con la que nos registramos y aparecerá una lista con todas las máquinas a las que tenemos acceso (aquellas con el agente instalado y configurado con nuestra cuenta.


Como véis, en mi cuenta tengo unas cuantas máquinas (he tapado parte del nombre y la información por motivos obvios). En esta pantalla se muestra distinta información (estado de actualizaciones, tiempo desde la última conexión, etc...) pero la más importante es si están activos (encendidos y con el agente escuchando).

Aquellos activos aparecen coloreados y para acceder simplemente hacemos clic sobre el icono o el nombre del equipo. Se nos solicita una contraseña de acceso al equipo (una cuenta de usuario válida en él):


Podemos acceder con credenciales de la propia máquina local o incluso de dominios. Una vez que ingresemos en la máquina veremos en el navegador el escritorio y podremos interactuar con él como si estuviésemos delante.


Multiplataforma


Lo único que necesitamos para ejecutar Logmein es un navegador web, funciona perfectamente desde Internet Explorer, Firefox y Chrome (seguramente más, pero no los he probado todos ;-)

Además existen aplicaciones para iOS y Android que agilizan el trabajo, aunque son de pago.

Concluyendo...

Logmein nos ofrece un control remoto con la potencia y capacidad de Team Viewer o VNC a través de un navegador web, sin más software en el origen (en el destino debemos tener un agente, igual que con VNC).

Si quieres un poco más de "chicha" prueba las versiones de evaluación que va ofreciendo Logmein. Ofrecen desde subida y bajada de archivos copiando y pegando desde tu equipo al más puro estilo Terminal Server a instalación en "batch" de antivirus y actualizaciones, control de versiones de software... Una herramienta digna de tener un pequeño hueco en tu máquina.



martes, 7 de agosto de 2012

Instalar Joomla fácilmente

< Instalación de un servidor WAMP 

Joomla es un gestor de contenidos libre que nos permitirá crear un sitio web de manera cómoda y sencilla. Existen otras soluciones similares en el mercado con distintas características:




  • Wordpress: a pesar de ser el más sencillo de los tres es un potente CMS orientado a la creación de Blogs, aunque sus numerosas extensiones nos permiten diseñar un website completo. Su sencillez hace de él el más usado de los tres.
  • Drupal: destaca ante todo por su potencia. Drupal ha sido estructurado en módulos desde su base, construyendo un sistema entero a base de interconexión de módulos al más puro estilo de la orientación a objetos. Su curva de aprendizaje es tremenda comparado con sus competidores pero una vez dominado permite hacer aplicaciones complejas con un esfuerzo muy reducido.
  • Joomla: se encuentra a medio camino entre ambos. Surgió como un gestor de contenidos más simple pero a medida que ha ido evolucionando se ha ido complicando y ha añadido cada vez más funcionalidades. El salto de la versión 1.5 a 1.6 supuso un cambio cualitativo importante y un rediseño casi completo. No está tan estructurado como Drupal pero es más sencillo de manejar.
Elegir el CMS adecuado para tu web es algo muy subjetivo aunque depende en gran medida del proyecto que tengas entre manos. Wordpress no será adecuado para grandes Intranets mientras que hacer un sencillo website o blog con Drupal será "matar moscas a cañonazos".

En este post vamos a instalar y configurar Joomla para hacer un primer website sencillo. En futuras publicaciones iremos ampliando la información sobre este CMS y las posibilidades que nos ofrece.




Preparación del servidor


Para poner en marcha un sitio en Joomla necesitamos un servidor web que soporte PHP y MySQL. Las últimas versiones de Joomla pueden utilizarse también sobre PostgreSQL (aunque en este post nos centraremos en MySQL).


En un post anterior explicamos cómo instalar un servidor WAMP (http://alcasoft.blogspot.com.es/2011/12/instalacion-de-un-servidor-local-wamp.html)



Para instalar Joomla necesitamos un directorio en el servidor web y una base de datos MySQL. El directorio de trabajo lo crearemos en c:\wamp\www (ver detalles de la instalación en el post anterior).


Para crear la base de datos sobre el WAMP utilizamos el PhpMyAdmin que viene preinstalado. Ejecutamos el WAMP y pulsamos con el botón izquierdo para desplegar el menú contextual. Elegimos la opción phpMyAdmin:








Se abre la pantalla de inicio de phpMyAdmin, iniciamos sesión con el usuario y la clave que introdujimos en la instalación:







Ahora seleccionamos la opción "Privilegios"





Seleccionamos "Agregar un nuevo usuario" y se abre el siguiente formulario:




Elegimos nuestro nombre de usuario, en Servidor ponemos "localhost", escribimos la contraseña y muy importante: marcamos la opción de crear una base de datos con el mismo nombre y todos los privilegios. Pulsamos "Continuar" para completar el proceso y tendremos nuestra base de datos creada.





Descarga e instalación de Joomla


El primer paso es descargar los fuentes de Joomla. Lo mejor es descargarlo directamente de la web del proyecto (http://www.joomla.org/). Joomla está desarrollado en un conjunto de archivos PHP y distintas librerías (AJAX, JQuery...).



Existen numerosos "refritos" que incorporan traducciones o ampliaciones a los fuentes de Joomla, pero es posible que nos encontremos bugs en la instalación o la versión. Mi consejo es descargarlos de la fuente original de Joomla (a ver si por ahorrar unos minutos en instalar el pack de idioma en castellano nos volvemos locos porque un botón de la instalación no funcione, por poner un ejemplo ;)

Descargamos la versión 2.5.6, un archivo comprimido en ZIP con los fuentes que tendremos que descomprimir en el directorio que creamos en el paso anterior (por ejemplo c:\wamp\www\joomla).

Una vez descomprimido abrimos un navegador web y ponemos la URL a nuestro sitio (en nuestro ejemplo http://localhost/joomla) y se abrirá el instalador web:




Seleccionamos el idioma castellano y pulsamos "Siguiente". El siguiente paso es la comprobación de requisitos:



Como podéis ver aparecen en verde si está todo correcto y en rojo si hay algún problema. En mi caso tengo dos en rojo: mostrar errores y buffer de salida activados. Yo lo prefiero así para poder hacer una correcta depuración de errores en PHP pero es recomendable desactivarlos en un sitio en producción. Pulsamos el botón "Siguiente" para pasar a la siguiente pantalla:



Pulsamos "Siguiente" para aceptar la licencia y pasar a la pantalla de configuración de la base de datos:



Ponemos aquí los datos de la base de datos creada en el paso anterior (servidor localhost, nombre de usuario y base de datos "joomla" y nuestra clave). Hay un campo aleatorio que pone un prefijo alfanumérico a las tablas de la base de datos (para usuarios avanzados: podéis poner algo más inteligible como "intranet" o "web", por si tocáis directamente las tablas desde phpMyAdmin). Pulsamos "Siguiente" y nos aparece un formulario para configurar el servidor FTP (de momento pasamos de largo, podemos rellenarlo posteriormente si implementamos un servidor FTP).



Pulsamos "Siguiente" y se mostrará la pantalla para poner la configuración principal del sitio. Aquí ponemos el nombre de nuestro sitio web, el correo del administrador y el usuario y la clave del mismo. Es interesante cambiar el que viene por defecto ("admin") por otro para evitar virus y bots que puedan "secuestrar" nuestro sitio. Por último podemos instalar los datos de ejemplo para trastear con el sitio si no tenemos experiencia con Joomla. 



Os recomiendo crear un sitio vacío sin datos de ejemplo (en un directorio con una base de datos) y otro diferente con los datos de ejemplo (en otro directorio con otra base de datos). Será más sencillo construir nuestro propio sitio desde cero, aunque siempre es interesante ver el potencial de Joomla con los datos de ejemplo y así tenemos las dos opciones.

Para finalizar pulsamos siguiente y aparece la última pantalla del instalador de Joomla:



Pulsamos el botón "Eliminar carpeta de instalación", y podremos acceder directamente a nuestro sitio web pulsando el botón "Sitio" o al de "Administración" para elegir más opciones.








JOOMLA EN CASTELLANO

Con este procedimiento hemos instalado Joomla en inglés. Para instalar el pack de idioma castellano podemos descargarlo de la web de joomla en la siguiente URL:



Descargamos el archivo .zip a nuestro disco duro y accedemos al sitio del Administrador de Joomla (http://localhost/joomla/administrator o el nombre que hayáis puesto vosotros). Ingresamos con nuestro usuario y clave y vamos al gestor de extensiones:



A partir de la versión 1.6 de Joomla se centraliza la instalación de cualquier software añadido como extensiones: plantillas, idiomas, componentes, módulos, plugins... Todo se instala desde el gestion de extensiones o "Extension Manager". Pulsamos sobre él y nos aparece un formulario para subir un archivo. En "Upload Package File" pulsamos "Examinar" para localizar el archivo con el pack de idioma que descargamos y una vez seleccionado pulsamos "Upload & Install":


El sistema nos informará que el paquete se ha instalado correctamente y detallará las notas de instalación:



 Una vez cargado debemos activarlo en el menú "Extensions" > "Language Manager" seleccionamos la estrellita al lado del idioma Spanish:



 Repetimos la operación para la parte de administrador seleccionando la pestaña "Installed - Administrator" y la estrellita en el idioma castellano:


Como se trata del idioma del sitio de administración observaréis que el idioma cambia automáticamente a castellano.

Con esto ya tenéis vuestro Joomla listo para empezar a construir vuestro website. Iremos publicando poco a poco más posts sobre el funcionamiento de Joomla y algunos componentes o plugins interesantes que podemos utilizar.

Recomendaciones de Alcasoft