Pensando en Red nada es tan fácil como parece serlo

1jun/095

Vmware Workstation vs Virtual Box en Ubuntu 9.04

Ciertamente a uno le cuesta un poco cambiar a lo desconocido, el miedo al cambio siempre está presente en todos a la hora de escoger software para utilizarlo. Desde que hace ya unos años me convertí en usuario 100% de Ubuntu arrastré el vicio de vmware para virtualizar. Cuando tuve una temporada que utilizaba un iBook y en la plataforma powerpcvirtualbox-logo me fue imposible utilizar vmware y estuve utilizando qemu pero no me acabó de convencer demasiado, tal vez la versión más actual de qemu tenga un interfaz de usuario más cómoda.

Ahora no solo por utilizar software libre, si no que el rendimiento de virtualbox comparándolo con vmware workstation en ubuntu 9.04 con la misma máquina virtualizada, tiene un rendimiento más efectivo. No me preguntéis el porqué... no me he puesto a indagar, pero la máquina virtualizada con virtualbox es más rápida. Es decir, no solo el arranque y el uso de la máquina virtual, si no que me consume menos recursos del sistema.

En su día, cuando probé VirtualBox no lo hice muy afondo y ahora parece más sencillo de utilizar. Tal vez porque le he dedicado tiempo o han cambiado a una versión pensada más en el usuario final.

Por ahora, no tienes la comodidad de arrastrar una carpeta o archivo dentro de la máquina virtual como podía hacer con vmware workstation, pero si tiene la opción de carpetas compartidas. Estas carpeta no es más que un path que tienes en tu equipo linux en donde puedes intercambiar información entre tu equipo y la máquina virtualizada. Si la máquina virtualizada es un Windows, es tan sencillo mapear la unidad de red, explorarando tu entorno de red y "conectar a unidad de red" :-)

Ciertamente, ya no uso Windows pero en casa no sólo yo utilizo el ordenador sobremesa y todavía hay dependencia de algunas aplicaciones de Windows :-) tendré que ir evangelizando poco a poco a que se utilice más software libre y no se dependa de windows. Será un trabajo duro :-)

Etiquetado con: , 5 Comentarios
13may/092

Internacionalización en aplicaciones Web

Tarde o temprano en el desarrollo de aplicaciones web nos enfrentamos a algún desarrollo que requiere internacionalizar la aplicación. El primer punto que creo que todos nos tenemos que preguntar a la hora de abordar una aplicación web es si el contenido tiene que ser multi-idioma o la aplicación será multi-idioma.

Si leemos rápido esa última frase puede parecer lo mismo... Si queremos hacer una aplicación multi-idioma simplemente significa que la interface de usuario tiene que estar disponible en más de un idioma, pero no por ello el contenido que se genere tiene que ser multi-idioma. Evidentemente si la aplicación tiene contenido multi-idioma estará acompañado de interface multi-idioma.

Esto hay que tener en cuenta a la hora de diseñar el modelo de datos para que se adapte a nuestras necesidades.

Este artículo está enfocado principalmente a crear una interface multi-idioma y sistemas de traducción por lo que no entraré en como realizar un modelo de datos para soportar contenido multi-idioma.

Podemos reinventar la rueda, que en algunos casos puede ser nuestra rueda preferida en la que nos sintamos cómodos o aplicar estándares para internacionalizar una aplicación web. Si desconocemos la existencia de estos estándares es muy probable que recurramos a la creación de un array asociativo por idioma, ya que realizar una función que nos encuentre la traducción no supondría una grán complicación. Lo malo, es que no siempre pensamos en la explotación de la aplicación y en que la persona que tenga que mantener las traducciones no tiene porqué tener conocimientos técnicos.

Si utilizamos aplicaciones open source es muy probable que nos encontremos el uso de GETTEXT. Este sistema de traducción utiliza ficheros .po y .mo. Los ficheros .po son los ficheros que contienen las traducciones en formato texto:

msgid "Texto original"
msgstr "Texto traducido"

eclipse_gettext

Lo que me gustó es que para poder editar un fichero .po no lo tienes porque realizar con un editor de texto convencional, si no que existen editores multi-plataforma para este formato de ficheros, lo que el mantenimiento de traducciones se hace más práctico. El que me pareció de mayor utilidad a la hora de desarrollar fue gted, un plugin (más) que se integra en eclipse.

En mi opinión es más cómodo trabajar con "pestañas" que con ventanas, y estoy seguro que más de uno compartiréis conmigo esta misma opinión.

Teniendo en cuenta el inconveniente del mantenimiento conocí el formato estándar para traducción de documentos, XLIFF. Es un formato basado en XML que fue normalizado por la organización OASIS en el 2002.

Este formato para la internacionalización de documentos no es para utilizarlo exclusivamente en aplicaciones web, al igual que tampoco lo es el GETTEXT. En la especificación de la versión 1.2 podemos encontrarnos como tiene que ser la extructura de un fichero XLIFF.

<xliff version='1.2' xmlns='urn:oasis:names:tc:xliff:document:1.2'>
<file original='hello.txt' source-language='en' target-language='es'
datatype='plaintext'>
<body>
<trans-unit id='0'>
<source>Hello world</source>
<target>Hola Mundo</target>
</trans-unit>
</body>
</file>
</xliff>

Donde a parte de este sencillo ejemplo se pueden complementar con mucha más información según la especificación.

La ventaja que encontré al utilizar este sistema de internacionalización es que las empresas que ofrecen servicios de traducción soportan este formato, y al igual que en GETTEXT, XLIFF también tiene editores estándar y en muchos casos multi-plataforma para el mantenimiento de las traducciones.

A diferencia de GETTEXT, XLIFF trabaja sobre el mismo fichero, sin tener que crear una versión compilada. Esto es una ventaja para comprobar si falta alguna traducción y para poder agregar nuevas traducciones en la fase de desarrollo.

En la busca de editores para XLIFF me encontré que muchos de los que decian cumplir con el estándar realmente no lo hacían, como Open Languaje Tools, y otros estaban desactualizados en especificaciones "antiguas". Open Source y multi-plataforma no encontré ningún editor actualizado, pero sí un editor de pago. Hearstome Translation Studio, un editor profesional para la internacionalización de documentos. Aunque podemos encontrarnos en la Red proyectos web interesantes como este editor en flash lo que nos permitiría dar acceso a las personas que tengan que realizar las traduciones en nuestras aplicaciones.

Escojamos el sistema que escojamos para internacionalizar nuestras aplicaciones, si estamos hablando de entornos Web, es interesante el utilizar un parser de nuestras plantillas/templates para el mantenimiento de la traducción de nuestra interface, de esta manera simplemente generaríamos el archivo origen donde cualquier persona pudiera traducir.

Tiendo en cuenta que has leído "todo el tocho"  :-) ¿Como internacionalizas tus aplicaciones/páginas web?

29abr/090

Preparando la bienvenida de mi HTC Magic

Claro, como si ya no os hubierais dado cuenta de que me acabo de comprar el HTC Magic, ¿os lo he dicho? :-) La he podido comprar esta mañana y en un máximo de 10 días podré disfrutar de tan esperado juguete. Por el momento estamos preparando la bienvenida y antes de indagar como hacer sincronización del equipo con Ubuntu, lo primero que he hecho en cuanto he cogido el ordenador en casa ha sido descargarme el SDK y el ADT para Eclipse Ganimede.

La instalación ha sido sencilla:

  1. Descargar SDK
  2. Descomprimir archivo zip.
  3. Mover carpeta del sdk a la home
  4. Incluir el export del path de la carpeta tool que está en la carpeta del SDK
  5. Descargar el ADT
  6. Instalar software desde un archivo en eclipse
  7. Mi primera aplicación "Hola Mundo!"

Así en 7 pasos hasta parece rapidito :-) la verdad es que tampoco se pierde mucho tiempo en hacerlo. Utilicé este manual que ofrece muchas pistas a base de pantallazos que te va explicando paso a paso lo que tienes que ir haciendo y los pasos para la instalación funcionan a la perfección.

En el último paso del manual te explica tambien como hacer tu "Hola Mundo!" en Android. Para poder ejecutar el programa tenemos que crear un AVD "Android Virtual Device" que si tenemos bien el path podemos escribir en la consola tranquilamente:

android create avd -n magic -t 2

Y listo, ya tenemos la primera toma de contacto con el entorno de desarrollo!!

Después de todo esto tendré que averiguar como realizar sincronización de contactos con Evolutión y tenemos partida nueva.

13mar/093

Cambio de la fecha y hora del sistema

date --set "YYYY-MM-DD HH:mm"

Etiquetado con: 3 Comentarios
5feb/091

Problema en repositorio de Subversion

Un usuario me ha informado de un problema de acceso a uno de los repositorios de subversion. No había visto el problema ya que utilizo como cliente subeclipse, un plugin de eclipse. Con este cliente de subversion no hay ningún problema de acceso y se puede descargar y commitar si tienes acceso.

Lo malo es que si intentamos hacer un checkout del repositorio:

svn co http://svn.pensandoenred.com/webexp .

Nos alerta con el siguiente error:

svn: El repositorio se movió permanente a '%'s; use 'relocate' por favor

Por lo que he podido indagar en internet se utiliza el relocate cuando el proyecto cambia de repositorio pero no es el caso.

En cuanto me sea posible solucionaré el problema, perdonar las molestias.

22ene/092

Apache2.2 + PHP5 + OCI: Cliente Oracle en Debian

El amigo ZiTaL ha escrito un how to detallado de como poder utilizar conexiones oracle en debian en los desarrollos en PHP el cual "fusilo"

Muy importante: Antes de empezar a instalar tendremos que tener como mínimo 1024 MB de SWAP (área de intercambio) libre, por lo que aconsejo que tengas como mínimo 1,5 GB de SWAP (área de intercambio).

PRE-INSTALACIÓN: Necesitamos el paquete libaio1.

apt-get install libaio1

Para empezar tenemos que conseguir los siguientes RPM's de la página de Oracle:

Oracle instantclient basic
Oracle instantclient devel
Oracle instantclient sqlplus

Que los podemos descargar de aquí:

http://www.oracle.com/technology/software/tech/oci/instantclient/htdocs/linuxsoft.html

Si quereis los he pasado a deb con alien y los podeis descargar aquí:

http://zital.no-ip.org/debian/oracle/

Y descargamos los ficheros.

Si no os fiais de mi, pues simplemete habrá que pasarlos de rpm a deb con alien:

apt-get install alien
alien oracle-instantclient-basic_11.1.0.1-2_i386.rpm
alien oracle-instantclient-devel_11.1.0.1-2_i386.rpm
alien oracle-instantclient-sqlplus_11.1.0.1-2_i386.rpm

y ya tendremos los deb correspondientes.

los instalamos:

dpkg -i oracle-instantclient-basic_11.1.0.1-2_i386.deb
dpkg -i oracle-instantclient-devel_11.1.0.1-2_i386.deb
dpkg -i oracle-instantclient-sqlplus_11.1.0.1-2_i386.deb

Ahora creamos la carpeta /etc/oracle:

mkdir /etc/oracle

Y crearemos dentro de esta carpeta el archivo tnsnames.ora

nano /etc/oracle/tnsnames.ora

Y tendremos que crear un fichero del estilo:

NOMBRE_MAQUINA.DOMINIO.COM =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
...

Cambiar NOMBRE_MAQUINA, DOMINIO.COM, HOST y PORT por sus respectivos valores.

Según cuantos servidores Oracle tengamos ;)

Si no sabeis rellenar este fichero, CREO que lo podremos encontrar en el servidor donde este alojado el servidor de base de datos de Oracle.

Ahora tendremos que editar el .bashrc del root y le añadiremos las siguientes lineas:

nano /root/.bashrc
export TNS_ADMIN=/etc/oracle
export SQLPATH=/usr/lib/oracle/11.1.0.1/client/bin
export LD_LIBRARY_PATH=/usr/lib/oracle/11.1.0.1/client/lib:$LD_LIBRARY_PATH
export PATH=$PATH:$SQLPATH


Para que los cambios del .bashrc surjan efecto tendremos que volvernos a logear.

Ya hemos terminado de instalar el cliente de Oracle.

Instalacion de Apache2.2 con PHP5:

Si ya lo tienes instalado omite este paso ;)

apt-get install apache2.2-common libapache2-mod-php5 php5

Instalacion del oci8 para php:

apt-get install php-pear php5-dev
pecl install oci8

Al instalar el oci8 nos aparecera un prompt del tipo:

1-1, 'all', 'abort', or Enter to continue:

Pulsamos 1 y ENTER

y escribimos lo siquiente en el prompt:

shared,instantclient,/usr/lib/oracle/11.1.0.1/client/lib/

y pulsamos ENTER para confirmarlo y otra vez ENTER para que empiece la instalación

el sistema empezará a compilar el módulo y si todo ha ido bien nos pondrá algo como:

Build process completed successfully
Installing '/usr/lib/php5/20060613+lfs/oci8.so'
install ok: channel://pecl.php.net/oci8-1.2.5
configuration option "php_ini" is not set to php.ini location
You should add "extension=oci8.so" to php.ini

solamente nos quedará añadir las correspondientes lineas en el php.ini:

echo extension=oci8.so >> /etc/php5/apache2/php.ini

y reiniciar el apache:

/etc/init.d/apache2 reload

Espero que os sirva de ayuda ;)

Fuente original: esdebian.org

Etiquetado con: , , 2 Comentarios
2jul/080

Como cortar archivos mp3 con Ubuntu

Si quieres cortar un trozo de un mp3 utilizando ubuntu/debian tienes que instalar el paquete poc-streamer. Este paquete contiene dos herramientas:

  • mp3cue: mp3cue puede cortar un gran fichero mp3 de acuerdo con una de canciones contenidas en un archivo .cue
  • mp3cut: Puede dividir o concatenar mp3 de acorde a los espacios de tiempo que se le indican.

Para instalar el paquete poc-streamer ejecuta en consola:

sudo aptitutde install poc-streamer

Sintaxis de mp3cut

mp3cut [ -o outputfile ] [ -T title ] [ -A artist ] [ -N album-name ] [ -t [hh:]mm:ss[+ms]-[hh:]mm:ss[+ms] ] mp3file [[ -t … ] mp3file1 …]

Etiquetado con: No hay comentarios
2jul/080

Extraer audio de vídeos flv

Para descargarse el video solo tenemos que acceder a un portal de videos y utilizando un plugin en nuestro firefox como el DownloadHelper.

Una vez que tengamos el fichero FLV tenemos que comprobar que tenemos instalado el paquete ffmpeg.

Para extraer el audio del video tenemos que ejecutar en consola este comando:

ffmpeg -i archivo.flv archivo.mp3

De esta manera siempre podremos tener timpres para el móvil originales de los videos que podamos ver en internet que el audio nos haya gustado ^_^

Etiquetado con: No hay comentarios
10jun/081

Sendmail VS PostFix

Cuando me ha surgido la necesidad de crear un servidor de correo local, lo primero que se me ha pasado por la cabeza ha sido utilizar sendmail. Lo primero que hice fue visitar configurar sendmail ya que en su día ese artículo me pareció interesante a la vez de que tenía una herramienta web donde te podías crear el fichero sendmail.cf

Navegando y consultado, he visto que postfix es mejor en rendimiento/mantenimiento que sendmail y donde en El Blog de Loretahur he encontrado un artículo "Instalación y bastionamiento de un servidor de correo bajo GNU/Linux" donde podemos descargar un manual con una documentación excelente de como poner en marcha un servidor de correo postfix en red local.

Etiquetado con: 1 Comentario
10jun/080

Cambiar el password de root de MySQL

Durante el proceso de la instalación por respositorios en Debian/Ubuntu nos pregunta cual es el password que deseamos para el usuario root de MySQL, pero... me he encontrado en la situación de cambiar el password del root y la verdad... nunca me había hecho falta. El comando que debemos utilizar es:

root@maquina:/# mysqladmin -u root password nuevo_password

Etiquetado con: No hay comentarios

Page optimized by WP Minify WordPress Plugin