miércoles 31 de marzo de 2010

Como Migrar a PostgeSQL en el Menor Tiempo Posible

PostgreSQL es excelente base de datos, pero cuando tu dataset esta algo grande, y cuando deseas migrar a un servidor usando pg_dump puede ser un proceso demasiado largo. En el siguiente enlace encontraras un tutorial donde se muestra una forma de migrar un servidor completo en el menor tiempo posible. Para lograr esto se usara una de las características propias de PostgeSQL para PITR (Punto de Recuperación).

http://www.howtoforge.com/how-to-easily-migrate-a-postgresql-server-with-minimal-downtime

lunes 29 de marzo de 2010

10 Ejemplos Utiles del Comando netstat

El comando netstat muestra varias informaciones relacionadas a la red, tales como conexiones de red, tablas de ruteo, estadísticas, conexiones enmascaradas, miembros multicast, etc.

En este articulo se revisara 10 ejemplos practicos sobre el uso del comando netstat.

1) Listar todos los puertos (Abiertos y No abiertos)

Listar todos los puertos usando netstat -a

# netstat -a | more

Listar todos los puertos TCP usando netstat -at

# netstat -at

Listar todos los puertos UDP usando netstat -au

# netstat -au

2) Listar todos los sockets que esten estado Listening

Listar solo los puertos en Listening usando netstat -l

# netstat -l

Listar solo los puertos TCP que esten en Listening usando netstat -lt

# netstat -lt

Listar solo los puertos UDP que esten en Listening usando netstat -lu

# netstat -lu

Listar solo los puertos UNIX que esten en Listening usando netstat -lx

# netstat -lx

3) Mostrar las estadisticas de cada protocolo

Mostrar las estadísticas de cada puerto usando netstat -s

# netstat -s

Mostrar estadísticas para puertos TCP o UP usando netstat -st o netstat -su

# netstat -st

# netstat -su

4) Mostrar PID y nombre de programa en la salida de netstat usando netstat -p

La opción netstat -p puede ser combinada con cualquier otra opción. Esto agregara el "PID/Nombre Programa" a la salida del netstat. Esto es muy útil cuando se esta depurando para identificar que programa esta ejecutándose en un puerto en particular.

# netstat -pt

5) No mostar el host, puerto y nombre del usuario en la salida del netstat

Cuando no quieres que se muestre el nombre del host, puerto y el usuario usa la opción netstat -n. Esto mostrara en números , en vez de el nombre del host, puerto y el usuario.

Esto también aumenta la velocidad de la salida ya que netstat no realiza ningún look-up

# netstat -an

Si no deseas que se muestren solo alguno de estos tres (puerto, host o usuario) usa lo siguiente:

# netsat -a --numeric-ports

# netsat -a --numeric-hosts

# netsat -a --numeric-users

6) Imprimir la información de netstat continuamente

netstat imprimirá la información continuamente cada ciertos segundos

# netstat -c

7) Encontrar las familias de direcciones no soportadas en tu sistema

netstat --verbose

8) Mostrar información de ruteo de kernel usando netstat -r

# netstat -r

Nota: Usa netstat -rn para mostrar en formato numerico sin resolver el nombre del host.

9) Buscar en que puerto se esta ejecutando un programa

# netstat -ap | grep nombre del programa

10) Mostrar la lista de las interfaces de red

# netstat -i

Mostrar mas detalles sobre la informacion de las interfaces de red (similar a ifconfig)

# netstat -ie

viernes 26 de marzo de 2010

Estado de Salida de un Comando Bash

En este articulo se hablara sobre los comandos shell y sus internos en bash. Un comando es una secuencia de palabras. La primera palabra indica el comando que sera ejecutado y las siguientes palabras son argumentos, un argumento puede ser las opciones o parámetros del programa.

Algunos de los comandos Unix que ejecutas en la linea de comandos son comandos shell. Por ejemplo ls, lpr y grep.

$ ls -alF

$ lpr archivo

$ grep "cadena" archivo

Comando Shell Exit

El valor de retorno de un comando es el estado exit o 128 + N si el comando es terminado por la señal N. El estado exit es usado para revisar el resultado (OK/falla) de la ejecución del comando. Si el estado de salida es 0 entonces el comando se ejecuto con exito. Si el comando falla el estado de salida no sera 0.


Valor ExitEstado Salida
0 (Cero)Exito
No 0Fallo
2Uso incorrecto
127Comando No encontrado
126No es un ejecutable

La variable Shell $?

La variable shell llamada $? es una variable interna especial la cual contiene el estado de salida del ultimo comando ejecutado.

  • Después de la ejecución de la función shell, $? retorna el estado de salida del ultimo comando ejecutado en una función.
  • Después de la ejecución de un código shell, $? retorna el estado de salida del ultimo comando ejecutado en el código.

Ejemplo de Código Shell que Explica el Estado de Salida

El siguiente es un código shell que muestra ejemplos de varios estados de salida de comandos:

$ cat exitstatus.sh
#! /bin/bash

echo -e "Ejecutado con Exito"
echo -e "====================="
echo "hola mundo"
# El estado de salida devuelve 0, porque el comando se ejecuto con exito
echo "Estado de Salida" $?

echo -e "Uso Incorrecto"
echo -e "====================="
ls --option
# Uso Incorrecto, por eso el estado de salida sera 2
echo "Estado de Salida" $?

echo -e "Comando no encontrado"
echo -e "====================="
bashscript
# El estado de salida devuelve 127, por que el codigo bash no encontro el comando.
echo "Estado de Salida" $?

echo -e "Comando no es un ejecutable"
echo -e "============================="
ls -l execution.sh
./execution.sh
# El estado de salida devuelve 126, por que no es un ejecutable
echo "Estado de Salida" $?

Ahora ejecuta el script exitstatus.sh para ver los resultados.

Ejecutar Sentecias PostgreSQL desde Código Shell

Con la ayuda del terminal interactivo psql, puedes ejecutar comandos psql usando codigo Shell. Para este propósito deberías habilitar la contraseña de logeo por medio de pg_hba.conf, o .pgpass.

Sintaxis

psql BASEDEDATOS USUARIO << EOF
declaracion 1;
declaracion 2;
.
.
declaracion n;
EOF

PostgreSQL: Ejecutando SQL desde código Shell

Provee todos los comandos postgreSQL entre el bloque EOF

#!/bin/sh

bd="test"
usuario="test"
psql $db $usuario << EOF
SELECT * FROM test;
EOF

PostgreSQL: Usando Variables en SQL en un código Shell

Puedes usar variables shell dentro del bloque EOF

#!/bin/sh

db="test"
usuario="test"
cond="tgs"
psql $db $usuario << EOF
SELECT * FROM test WHERE col_name = '$cond';
EOF

ownCloud, Alternativa a Ubuntu One de Gnome y KDE

Aunque muchos han calificado el proyecto ownCloud como una alternativa a Dropbox más bien creo que es ownCloud la alternativa de Gnome y KDE a Ubuntu One. Aunque parezca mentira, dos competidores en el escritorio parece que se han aliado para colaborar y desarrollar un entorno de trabajo en la nube a la manera de los mencionados discos duros virtuales.

Parece que KDE se encargaría de desarrollar el backend, la trastienda de la aplicación y Gnome la parte del frontend, o dicho de otra manera, el interfaz que ve y utiliza el usuario. Se trataría de desarrollar una alternativa libre a Dropbox, dejando patente de esta manera que Ubuntu One utiliza una parte para su almacenamiento que no es totalmente libre. Y es que estos chicos son tan puntillosos con la pureza del open source, una pequeña mácula mancilla toda la honra del proyecto.

Leer más.

jueves 25 de marzo de 2010

Uso Simplificado de SSH

SSH es una herramienta indispensable cuando estas usando varios sistemas. Con ssh puedes logearte a otro sistema remoto y trabajar como si estuvieras sentado en frente de este. Inclusive si alguno de tus sistemas estan detras de un firewall puedes conectarte con ssh, pero para lograrlo se requiere un numero de opciones en el comando y si tienes varios sistemas tendrías mas dificultad en recordarlos. Sin embargo, no es necesario que los memorices, al menos no mas de una vez, puedes agregarlos en el archivo de configuración de ssh y tenerlos listos.

Por ejemplo, supón que tienes 2 servidores a los cuales te conectas regularmente, el que esta en tu casa esta detras de un firewall. Ademas, supón tambien que usas dydns para acceder a tu direccion IP y tienes al shh escuchando en el puerto 12022 en vez del puerto por defecto que es el 22 (y tu firewall reenvia ese puerto a tu servidor). Entonces para conectarte necesitas ejecutar lo siguiente:

$ ssh -p 12022 ejemplo.dyndns.org

El segundo sistema es local y te conectas así:

$ ssh 192.168.1.15

El segundo no estan difícil de recordar, pero con un nombre seria más fácil. Puedes poner un nombre en el archivo /etc/hosts o puedes configurar un servidor DNS local, pero tambien puedes resolver el problema usando el archivo de configuracion de ssh.

Para crear un archivo de configuración ssh ejecuta el siguiente comando:

$ touch ~/.ssh/config
$ chmod 600 ~/.ssh/config

Ahora usa tu editor de texto favorito para editar el archivo e ingresa lo siguiente:

Host server1
HostName ejemplo.dyndns.org
Port 12022

Host server2
HostName 192.168.1.15

La opción "Host" inicia una nueva sesion, todas las opciones que siguen aplican a ese nuevo host hasta que una nuevo "Host" aparezca. La opción "Hostname" especifica el nombre real del host que ssh intentara conectarse. La opción "Port" obviamente indica el puerto al que va a conectarse.

Ahora te puedes conectar de una forma mas simple:

$ ssh server1
$ ssh server2

Estas son algunas de las opciones que puedes configurar en el archivo de configuración de ssh. Por ejemplo tambien puedes especificar si se habilita el acceso a X11. Puedes configurar un puerto de reenvio local y remoto. Echa una mirada a la pagina man (man ssh_config) para mas información sobre las opciones disponibles.

miércoles 24 de marzo de 2010

Ubuntu para Usuarios Avanzados de Windows

Ubuntu viene en varios ediciones, por ejemplo Ubuntu Netbook Remix, la edicion para netbooks, la edición para PCs y por ultimo la edición para servidores, Ubuntu Server Edition. La ultima versión estable que ha lanzado es Ubuntu 9.10 Kamic Koala. Pero Ubuntu 10.04, la cual viene con soporte LTS, esta a punto de ser liberada el 29 de Abril del 2010 y vendra con muchas características sorprendentes, incluyendo integración nativa con Twitter, identi.ca, Facebook y otras redes sociales.

Ubuntu es considerado la distribución mas amigable para usuarios nuevos que puede ser instalada en tu disco duro en simplemente 7 pasos.

Pero es también un hecho que mas del 90% de las computadoras viene con Windows pre-cargado lo cual hace que las personas no estén muy seguras de quitar Windows e instalar Linux en sus maquinas.

Tomas Hardware ha escrito un articulo el cual esta dirigido a mitigar el dolor de cambiar Windows a Linux a los usuarios avanzados de Windows. Esta escrito por un usuario que por mucho tiempo ha usado Windows como usuario, desarrollador, jugador, maniaco del performance. El articulo te lleva a través del proceso de instalación y buscar ayuda en linea.

Leer articulo.

martes 23 de marzo de 2010

Instalar PowerDNS con MySQL en CentOS

En el enlace de abajo encontraras un tutorial para instalar PowerDNS en un servidor DNS basado en MySQL, escrito en C++ y con licencia GPL. PowerDNS puede ser administrado a través de una interfaz web (PowerAdmin). En la guía se muestra como instalarlo en CentOS.

viernes 19 de marzo de 2010

Crear, Compilar y Ejecutar un Programa en Haskell

En este artículo se vera rapidamente como escribir un programa "Hola Mundo" en Haskell y ejecutarlo en Linux.

1) Escribir el programa "Hola Mundo" en Haskell

Crea el programa holamundo usando el editor Vim o cualquier otro de tu preferencia, como se muestra abajo:

$ vim holamundo.hs

-- Ejemplo Hola Mundo
main = putStrLn "Hola Mundo!"

Nota: los comentarios en Haskell empiezan con --

2) Asegúrate de tener instalado el compilador haskell

Te puedes asegurar si tienes instalado Haskell, ejecutando lo siguiente:

$ whereis ghc
ghc: /usr/bin/ghc /usr/share/man/man1/ghc.1.gz

Instalar Haskell

En caso no tener Haskell instalado, ejecuta lo siguiente:

$ sudo apt-get install ghc6

3) Compilar el programa Haskell

Compilar el programa haskell para que genere un ejecutable de Hola Mundo.

Compilar y obtener un a.out

$ ghc holamundo.hs

Compilar y obtener el ejecutable con otro nombre con la opción -o

$ ghc -o holamundo holamundo.hs

4) Ejecutar el programa Haskell

Ejecutarlo indicando el nombre del programa.

$./a.out
Hola Mundo!

$./holamundo
Hola Mundo!

Android y sus Versiones

A la hora de comprar un móvil Android no sólo es importante fijarse en el hardware del teléfono, sino también en la versión del sistema operativo que incluye por defecto, si está previsto que el fabricante vaya a actualizar esta versión, o si, al menos, existe alguna rom que funcione correctamente y que podamos utilizar.

Tres son las principales versiones de Android hoy en día: 1.5, de nombre en clave Cupcake; 1.6 o Donut y 2.x, Eclair. Por supuesto también existieron versiones anteriores: la 1.0, con la que se lanzó el primer móvil Android del mercado, el HTC Dream o G1, de Octubre de 2008; y la 1.1, de Febrero de 2009, que solucionaba varios errores y añadía alguna que otra funcionalidad no demasiado importante.

Seguir leyendo.

jueves 18 de marzo de 2010

El auto Roewe 350 Andara con Android


El Roewe 350 estaba basado en el concepto N1, el cual integraba sistema de navegación DVD/GPS basado en el sistema operativo de Google Android (v2.1). Tal como se espera el sistema sera capaz de mostrar un reporte del tráfico en tiempo real y averiguar la ruta mas efectiva desde el punto A al punto B. También se sospecha que se podrá incorporar una especia de tarjeta WWAN para revisar tu Gmail en el camino.

miércoles 17 de marzo de 2010

Camaras Web Virtuales en Linux

A primera vista, WebcamStudio no parece el mejor programa que podamos encontrar. Sin embargo, en cuanto profundizamos un poco vemos que tiene bastantes posibilidades. Su uso es sencillo: simplemente una ventana donde podemos ir colocando elementos en la posición en la que queramos que salgan en la webcam. Estos elementos serán los que nos ofrezca el programa: una imagen, texto libre, un feed RSS, una animación, un vídeo, la salida de una cámara de video o un chat de IRC.

Leer más.

martes 16 de marzo de 2010

Como Depurar un Programa C en 5 Pasos

En este articulo se vera como depurar un programa escrito en C en 5 pasos usando el depurador gdb en Linux.

Escribir un Programa en C con errores para probar el depurador

Para aprender a depurar en C, crea el siguiente programa C que calcula e imprime el factorial de un numero. Sin embargo este programa C contiene algunos errores para el propósito de depuración.

$ vim factorial.c
# include <stdio.h>

int main()
{
int i, num, j;
printf ("Ingresar un numero: ");
scanf ("%d", &num );

for (i=1; i<num; i++)
j=j*i;

printf("El factorial de %d es %dn",num,j);
}

$ ./a.out
Ingresa un numero: 3
El factorial de 3 es 12548672

Ahora se vera como depurar usando gdb.

Paso 1. Compilar el programa C con la opción -g

Al compilar el programa C con la opción -g se le permite al compilador recolectar la información de depuración.

$ cc -g factorial.c

Paso 2. Configurar un punto de quiebre dentro del programa C

Sintaxis:

break numero_linea

Otros formatos
  • break [nombre_archivo]:numero_linea
  • break [nombre_archivo]:función
Coloca los puntos de quiebre en el programa C donde sospeches que haya errores. Mientras ejecutas el programa el depurador detendrá donde se encuentre el punto de quiebre y dará el cursor al depurador.

Entonces antes de iniciar el programa, coloca los siguientes puntos de quiebres en el programa factorial.

break 10
Breakpoint 1 at 0x804846f: file factorial.c, line 10.

Paso 3. Ejecutar el programa C en el depurador gdb

run [args]

Puedes iniciar el programa usando el comando run en el depurador gdb. Tambien puedes pasar argumentos a la linea de comando para el programa vía run args. El programa de ejemplo que se esta usando no requiere algun argumento en la linea de comando para ejecutarlo e iniciar el programa.

run
Starting program: /home/usuario/Debugging/c/a.out

Una vez que se haya ejecutado el programa C, este se ejecutaría hasta el primer punto de quiebre.

Breakpoint 1, main () at factorial.c:10
10 j=j*i;

Puedes usar varios comandos gdb para depurar el programa C, tal como se explicara en la siguiente sección.

Paso 4. Imprimir los valores de las variables dentro del depurador gdb

Sintaxis:
print {variable}

Ejemplos:

print i
print j
print num

(gdb) p i
$1 = 1
(gdb) p j
$2 = 3042592
(gdb) p num
$3 = 3
(gdb)

Como se vio arriba, en el programa factorial.c no se inicializó la variable j. Entonces, la variable obtiene un valor basura resultando en un numero grande como valores del factorial.

Repara el problema inicializando la variable j con 1, compila el programa C y ejecútalo de nuevo.

Aunque después de repararlo parece que continúan algunos problemas en el programa, por que continua dando valores de factorial erróneos.

Por eso, coloca el punto de quiebre en la linea 10 y continua con la explicación en la siguiente sección.

Paso 5. Continuar con los comandos de gdb

Hay tres clases de operaciones de gdd que puedes escoger cuando el programa se detiene en un punto de quiebre. Estos son continuar hasta el siguiente punto de quiebre, detenerse en el mismo o detenerse sobre la siguiente linea de programa.

  • c o continue: El depurador continuara hasta el siguiente punto de quiebre.
  • n o next: El depurador ejecutara la siguiente linea como una sola instruccion.
  • s o step: Igual que next pero no trata la funcion como una sola instruccion sino se va hasta la función y la ejecuta linea por linea.


Atajos de comandos gdb

Usa los siguientes atajos para las operaciones mas frecuentes de gdb

  • l – listar
  • p – imprimir
  • c – continuar
  • s – paso
  • ENTER: al presionar enter se ejecutaría el comando anteriormente ejecutado.

viernes 12 de marzo de 2010

Como Buscar y Borrar Archivos y Directorios Vacios en Linux

Puedes usar el comando find para obtener una lista de todos los archivos y directorios vacíos como se muestra a continuación:

Buscar directorios vacíos en el directorio actual usando find -empty

find . -type d -empty

Usa el siguiente comando para quitar todos los directorios vacíos en el directorio actual:

find . -type d -empty -exec rmdir {} \;

Nota: No es recomendable remover directorios vacios de /etc/ o cualquier otro dicrectorio del sistema.

Buscar archivos vacíos en el directorio actual usando find -empty

find . -type f -empty

Nota: Por lo general los archivos vacíos son creados por algunos programas como place holders, archivos lock o como archivos socket para comunicación.

¿Cuantos archivos vacios se encuentran en el directorio actual (incluyendo sub-directorios)?

Para contar el numero de archivos vacíos en el directorio actual, usa pipe (|) y el comando wc -l

find . -type f -empty | wc -l

¿Cuantos archivos no vacíos se encuentran en el directorio actual y subdirectorios?)?

find . -type f -not -empty | wc -l

Nota: La opción -not del comando find revierte la opción que le sigue.

En todos los ejemplos anteriores, reemplaza el punto (.) con otra ruta donde quisieras hacer la búsqueda.

jueves 11 de marzo de 2010

Usuarios y Dominios Virtuales con Postfix sobre Mandriva 2010.0

A continuación dejo el enlace de un documento que muestra como instalar un servidor de correo Postfix que esta basado en usuarios y dominios virtuales, osea usuarios y dominios que están en una base de datos MySQL. Tambien se muestra la instalación y configuración de Courier (Courier-POP3, Courier-IMAP), para que Courier pueda autenticarse contra la misma base de datos que usa Postfix.

El servidor Postfix resultante sera capaz de SMTP-AUTH, TLS y quota (quota no esta integrado por defecto con Postfix, por eso se muestra como parchear el Postfix adecuadamente). Las contraseñas son guardadas encriptadamente en la base de datos. Ademas de eso, el tutorial cubre la instalación de Amavisd, SpamAssassin y ClaimAV de tal forma que el correo pueda ser escaneado para buscar spam o virus. Tambien se muestra la instalación de SquirreMail como interfaz para webmail cosa que los usuarios puedan leer y enviar correos y cambiar sus contraseñas.

La ventaja de usar una configuración "virtual" es que se obtiene una mejor performace que si se usa una configuración basada en usuarios de sistema reales. Con la configuración virtual tu servidor de correo puede manejar miles de dominios y usuarios. Ademas es mas facil de administrar por que solo tienes que lidiar con la base de datos MySQL cuando añades un usuario/dominio o editas uno existente. No mas comandos postmap para crear archivos db, no mas recargas del Postfix, etc. Para administrar la base de datos MySQL puedes usar la herramienta web phpMyAdmin la cual también se muestra como. La tercera ventaja es que los usuarios tiene una dirección de correo como nombre de usuario (en vez de nombre + una dirección de correo) lo cual es mas facil de entender y recordar.

Todo sobre Mandriva 2010.0.

Leer más.

miércoles 10 de marzo de 2010

Declarar Arreglos en AWK

El lenguaje de programación Awk soporta el uso de arrays (arreglos). La vez pasada se publico algo sobre las variables en Awk. Los arreglos son una extensión de las variables. Son variables que contienen mas de un valor. Así como las variables los arrays también tienen nombre. En algunos lenguajes de programación el array tiene que ser declarado por eso se aloca memoria para el arreglo. Tambien los arreglos indices son enteros por lo general, por ejemplo array[1],array[2] etc.,

Arreglos Asociativos Awk

Awk solo soporta arreglos asociativos. Los arreglos asociativos son como los arreglos tradicionales con la diferencia que usan cadenas en vez de números como indices. Cuando usas un arreglo asociativo puedes imitar el arreglo tradicional usando una cadena numérica como indice.

Sintaxis:

nombredelarreglo[cadena]=valor

Accediendo a los elementos del arreglo Awk

Si deseas acceder a un elemento en particular en un array, puedes hacerlo a través de su indice — arreglo[indice], lo cual te devolverá el valor del asignado en ese indice.

Si deseas acceder a todos los elementos del arreglo, puedes usar una sentencia bucle para ir leyendo todo el arreglo.

Ejemplo:

for (var in arreglo)
hacer

Este bucle ejecuta una acción por cada valor diferente que fue usado en cada indice del arreglo con la variable var configurada en ese indice.

Quitando elementos de un arreglo Awk

Si deseas remover un elemento de un indice particular del array, se usa la sentencia awk delete. Una vez que hayas borrado un elemento de un array no se podrá recuperar luego.

Sintaxis:

delete arreglo[indice];

La siguiente sentencia borra todos los elementos de un arreglo. No hay una sola sentencia para borrar todos los elementos de un array, por tal motivo tienes que hacerlo a través de un bucle usando la sentencia awk delete.

for (var in arreglo)
delete arreglo[var]

martes 9 de marzo de 2010

Nautilus y Flickr en Ubuntu

Con Nautilus Flickr Uploader podemos hacer este cometido de forma sencilla, NFU es un programa hecho en Perl que nos permitirá subir imágenes y poner sus metadatos rápidamente y de forma eficiente. Para instalarlo en nuestra distro Linux (Debian, Ubuntu) tan sólo tenéis que descargar e instalar el paquete .deb que enlazo al final de este post y seguidamente ejecutar la siguiente instrucción : sudo dpkg -i nautilus-flickr-uploader_0.03-1_all.deb. El programa quedará accesible bajo esta ruta: Aplicaciones -> Internet -> Subir imágenes a Flickr

Leer más.

lunes 8 de marzo de 2010

Convertir Texto a Voz con espeak

Ubuntu espeak es un sintetizador de conversación para Español, Ingles y otros lenguajes el cual convierte el texto en voz.

Puedes ejecutar directamente el comando espeak en tu maquina Ubuntu sin ninguna instalación o configuración.

En este articulo se revisaran 8 ejemplos del comando espeak.

Ejemplo 1: Hablar palabras especificas en la linea a de comando

Este es su uso por defecto:

# espeak --stdout 'palabra a hablar' | aplay

Ejemplo 2: Hablar las palabras especificadas en stdin

Esto tomara las palabras interactivamente desde la entrada y la convertirá en discurso hablado

# espeak --stdout | aplay

Ejemplo 3: Hablar documentos

Esto convertirá el texto desde midocumento.txt a hablado

# espeak --stdout -t midocumento.txt | aplay

Ejemplo 4: Generar archivos de voces desde un documento de texto

Convierte el archivo de texto en un archivo de audio:

# espeak -t midocumento.txt -w miaudio.wav

Configurar espeak

Si te parece que lo hablado no es bueno, puedes configurar como se muestra a continuación:

Ejemplo 5: Listar todos los lenguajes disponibles

# espeak --voices
Pty Language Age/Gender VoiceName File Other Langs
5 af M afrikaans af
5 bs M bosnian bs
5 ca M catalan ca
5 cs M czech cs
5 cy M welsh-test cy
5 de M german de
5 el M greek el
5 en M default default
5 en-sc M en-scottish en/en-sc (en 4)
.......

Ejemplo 6: Escoger un lenguaje diferente

Lo siguiente usara "en-uk" - Ingles británico para traducir de texto a voz.

# espeak -v en-uk --stdout 'reading tips & tricks in TGS' | aplay

Ejemplo 7: Incrementar o disminuir el numero de palabras habladas por minuto

Por defecto se habla 160 palabras por minuto. Puedes reducirlo usando la opción -s:

# espeak -s 140 -f midocumento.txt | aplay

Ejemplo 8: Listar las voces disponibles en espeak para un idioma especifico

Lo siguiente mostrara todas la variaciones disponibles del idioma español que puedes usar para pasar de texto a voz:

# espeak --voice=es
Pty Language Age/Gender VoiceName File Other Langs
2 en-uk M english en/en (en 2)
3 en-uk M english-mb-en1 mb/mb-en1 (en 2)
2 en-us M english-us en/en-us (en-r 5)(en 3)
5 en-sc M en-scottish en/en-sc (en 4)
5 en M default default
.....

Dubuntu, DB2 y Ubuntu

Dubuntu es una imagen para VMWare que incluye DB2 sobre Ubuntu. Dubuntu es gratis y no es un trial. Con Dubuntu tendrás aplicaciones opensource para desarrollo en DB2 corriendo sobre Ubuntu y por supuesto la versión Express-C de DB2, todo en un solo paquete.

Dubuntu es perfecto para desarrollos pequeños donde no se puede invertir mucho presupuesto en licencias. También si eres un desarrollador de DB2 para sistemas z/OS, Dubuntu te sera muy útil para expandir tus conocimientos y habilidades en plataformas distribuidas.

Para descargar Dubuntu puedes ingresar al siguiente enlace:

http://www.idug.org/anil-dubuntu/dubuntu-appliance.html

viernes 5 de marzo de 2010

La Nueva Version de Jolicloud Correra mas Rapido las Aplicaciones Web

El equipo de Jolicloud ha anunciado el lanzamiento final de Jolicloud "Robby" para antes de fin del mes de Marzo. Esta actualización incorporara un numero de características, incluyendo soporte para los procesadores Atom Pine Trail de Intel y VIA C7-M. Pero estas son sus mayores características:

  1. La plataforma para aplicaciones Web estará basada en Google Chrome en vez de Mozilla Prism.
  2. Hay un nuevo modo Escritorio diseñado para nettops y otras computadoras con pantallas de mas de 11 pulgadas.


El modo Escritorio hace bastante sentido, ya que hay muchas nettops con los mismos componentes (procesadores Intel Atom, Windows XP o 7, graficos integrados o NVIDIA ION). Pero el cambio de Prism a Chrome para las aplicaciones Web es algo bueno.

De acuerdo con la gente de Jolicloud, esto permitirá una experiencia de navegación más rápida, un uso mas eficiente de la memoria y soporte de extensiones Chrome para todas las aplicaciones Web. Tambien ayudara a la performance de netbooks y tablets basadas en ARM.

El navegador Web por defecto seguirá siendo Firefox. Pero el motor de renderizado de Chrome manejara todas las aplicaciones Web que hayas instalado en tu sistema.

Esta nueva versión también sera 100% compatible con las netbooks Intel que se encuentren en el mercado. Esto incluye sistemas con el antiguo Intel Celeron o el mas reciente Atom Pine Trail asi como con los graficos NVIDIA ION o acelerador de video Broadcom Crystal HD.

Abrir Varias Paginas Cuando Firefox Inicie

Para poder varias pestañas cuando inicias Firefox puedes hacer lo siguiente:

Paso 1: Ir a la Ventana Opciones en Firefox

Ir a: Herramientas -> Opciones -> Pestaña Principal

Paso 2: Configurar Dos Paginas Web en el Campo Pagina de Inicio Separados por |

  • En la lista desplegable "Cuando se inicie Firefox" escoger "Mostrar mi pagina de inicio".
  • Ingresar varias paginas Web separadas por | (pipe).

Paso 3: Reiniciar Firefox

Guardar las opciones y reiniciar Firefox, lo cual abrirá automáticamente las paginas colocadas en diferentes pestañas.

jueves 4 de marzo de 2010

Como Actualizar Twitter y Facebook Usando curl

A veces resulta interesante poder actualizar la página de Twitter o la de Facebook desde la línea de comandos. Para ello podemos hacer uso de curl, la navaja suiza de la automatización de tareas Web. Veamos cómo:

Leer más.

miércoles 3 de marzo de 2010

Ejemplos de Codigo Bash

Shell es un programa que interpreta comandos. Los comandos son ingresados directamente por el usuario o leídos desde un archivo llamado shell script.

Shell es llamado como shell interactivo cuando lee la entrada desde el usuario directamente.

Shell es llamado shell no-interactivo cuando lee los comandos desde un archivo y los ejecuta. En este caso shell lee cada linea del código en el archivo desde el principio hasta el final y ejecuta cada comando como si lo hubiera tipeado el usuario directamente.

Imprime el valor de la variable shell $-, para saber si el shell es interactivo o no.

# echo $-
himBH

Nota: La variable $- contiene una "i" lo cual indica que es interactivo.

Unix tiene una variedad de Shell. Bourne shell (sh), Bourne again shell (bash), C shell (csh), Korn shell (ksh), Tenex C shell (tcsh). Usa el comando where o whereis para encontrar donde esta localizado el shell especifico tal como se muestra a continuación:

# which bash
/bin/bash

# whereis bash
bash: /bin/bash /usr/share/man/man1/bash.1.gz

Puedes intercambiar entre los shells escribiendo el nombre del shell. Por ejemplo escribe csh para cambiar al C shell.

Escribir y Ejecutar Codigo Shell

Ejemplo 1. Código Bash de Hola Mundo

1) Crear un script escribiendo las siguientes lineas en un archivo usando tu editor favorito:

$ cat holamundo.sh
#!/bin/bash
echo Hola Mundo

2) Puedes escoger cualquier nombre para el archivo. El nombre del archivo no debe ser igual a cualquier comando de Unix o Linux.

3) El script siempre empieza con dos caracteres '#!' el cual es llamado she-bang. Esto indica que es un archivo de código y debe ser ejecutado usando un interprete (/bin/bash) especificado por el resto de la primera linea en el archivo.

4) Ejecutar el script tal como se muestra abajo:

$ bash holamundo.sh
Hola Mundo


5) Cuando ejecutas el comando "bash holamundo.sh", este inicia el shell no-interactivo y pasa el nombre del archivo como argumento a este.

6) La primera linea indica al sistema operativo cual es el shell que se usara para ejecutar el código.

7) En el ejemplo anterior el interprete bash es el que interpreta el código y ejecuta los comandos uno por uno desde el principio hasta el final.

8) Puedes ejecutar el código sin necesidad de usar el bash:

  • Cambia los permisos del archivo para permitir que el usuario lo ejecute usando el comando chmod u+x holamundo.sh.
  • El directorio que contiene el archivo debe estar incluido en la variable de entorno PATH. Si no esta incluida, puedes ejecutar el script especificando toda la ruta del mismo.

9) echo es un comando que muestra el argumento que se le da. Tambien se usa para imprimir el valor de una variable.

Ejemplo 2. Imprimir un Mensaje de Bienvenida al Logearse

Escribe el siguiente contenido en tu archivo ~/bash_profile. Si no existe crea un archivo con el siguiente contenido:

$ cat ~/.bash_profile
hname=`hostname`
echo "Bienvenido a $hname."

Cuando te logeas a un shell interactivo veras el mensaje de bienvenida tal como se muestra:

root@dev-db's password:
Bienvenido a dev-db


Ejemplo 3. Imprimir Información Relacionada al Sistema

Cuando te logeas a un shell interactivo podría mostrarte el nombre del kernel instalado en el servidor, la versión del bash y hora en el servidor.

$cat ~/.bash_profile
hname=`hostname`
echo "Bienvenido a $hname."

echo -e "Detalles del Kernel: " `uname -smr`
echo -e "`bash --version`"
echo -ne "Hora Servidor: "; date

Cuando lanzas un shell interactivo se imprime el siguiente mensaje:

root@dev-db's password:
Bienvenido a dev-db

Detalles del Kernel: Linux 2.6.18-128 x86_64
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Hora Servidor : Tue Feb 22 11:24:01 CET 2010


Ejemplo 4. Imprimir los Detalles del Ultimo Logeo

Si varios usuarios usan la misma maquina con el mismo login entonces detalles como la maquina desde donde se esta logeando y la hora del logoe, serian detalles muy útiles. Este ejemplo imprime detalles del ultimo logeo durante el inicio de un shell interactivo.

$ cat ~/.bash_profile
hname=`hostname`
echo "Bienvenido a $hname."

echo -e "Detalles del Kernel: " `uname -smr`
echo -e "`bash --version`"
echo -ne "Hora Servidor : "; date


lastlog | grep "root" | awk {'print "Ultimo logeo desde: "$3

print "Fecha y Hora del Ultimo Logeo: ",$4,$5,$6,$7,$8,$9;}'

Durante el inicio veras el siguiente mensaje:

root@dev-db's password:
Bienvenido a dev-db

Detalles del Kernel: Linux 2.6.18-128 x86_64
GNU bash, version 3.2.25(1)-release (x86_64-redhat-linux-gnu)
Copyright (C) 2005 Free Software Foundation, Inc.
Hora Servidor : Tue Feb 22 11:24:01 CET 2010


Ultimo logeo desde : user-laptop

Fecha y Hora del Ultimo Logeo: Tue Feb 22 11:24:01 +0100 2010


Ejemplo 5. Exportar Variables y Configurar Alias durante el Inicio

Los comandos mas comunes que veras en tus archivos .bashrc y .bash_profile son los comandos export y alias.

Un alias es simplemente una pieza de texto que sustituye a otra. Cuando ejecutas un alias, este simplemente reemplaza lo que escribiste con el alias. Por ejemplo, si deseas configurar un alias para el comando ls para listar archivos/directorios con los colores, haz lo siguiente:

alias ls 'ls --color=tty'

Si añades este comando a un archivo de inicio puedes ejecutar el comando ls el cual sera reemplazado automáticamente por el comando ls –color=tty.

El comando export es usado para configurar una variable de entorno. Varias variables de entorno son usadas por el sistema u otras aplicaciones. Estas simplemente son una forma de configurar parámetros que cualquier aplicación/script puedan leer. Si configuras una variable sin el comando export, la variable solo existirá para ese proceso en particular.

En el siguiente ejemplo se muestra como exportar la variable de ambiente HISTSIZE. La linea que empieza con # es un comentario.

$ cat /etc/profile
alias ls 'ls --color=tty'

# Configurar alguna variable de entorno
export HISTSIZE=1000

PATH=$PATH:$HOME/bin:/usr/bin:/bin/usr:/sbin/etc

export PATH

export SVN_SH=${SVN_RSH-ssh}

martes 2 de marzo de 2010

Instalar KDE 4.4 en Fedora 12

Se trata de uno de los entornos de escritorio con más adeptos de los que nos podemos encontrar en el panorama del software libre y su evolución en los últimos tiempos ha sido espectacular, pues bien, para todos aquellos que quieran gozar de la última versión de su escritorio favorito aquí va una pequeña muestra de cómo obtenerlo. No sé si a estas alturas estará disponible oficialmente en los repositorios de Fedora, pero de todos modos sí que se puede instalar desde los repositorios de KDE de Red Hat inestable. Para ello es necesario que añadamos los repositorios de KDE de Red Hat, para ello nos vamos a la consola y escribimos la siguiente línea:

su -c "wget http://apt.kde-redhat.org/apt/kde-redhat/fedora/kde.repo
-O /etc/yum.repos.d/kde.repo".

Lo siguiente es realizar la instalación, para lo que en línea de comandos escribimos:

su -c "yum --enablerepo=kde* groupinstall 'KDE (K Desktop Environment)'".

O si lo preferimos actualizar con la siguiente línea:

su -c "yum --enablerepo=kde* update". 

Una vez hemos hecho lo anterior lo único que haremos será reiniciar el equipo y listo ya tenemos instalado y perfectamente funcional nuestro KDE SC 4.4.0.

lunes 1 de marzo de 2010

Soporte para iPhone y iPod Touch al Instalar Ubuntu Lucid Lynx

Soporte para el iPhone y el iPod touch de forma nativa nada más instalar el sistema, y sin tener que modificar archivos de configuración o instalar librerías adicionales. Según algunas capturas de pantalla, podemos acceder a las carpetas internas de los dispositivos y reproductores como Rythmbox serán capaces de reproducir automáticamente las canciones que estén guardados en los reproductores.

Leer más.

Levantan Linux en menos de 1 segundo

Comparto un vídeo en donde se muestra como logran levantar (boot) Linux en menos de un segundo (0.464 segundos) en una configuración OMAP3530 EVM.