miércoles, 22 de agosto de 2012

Reduciendo tamaño de PDFs con UBUNTU

Hoy se me presentó una situación en la que debía compartir con varias personas unos cuantos archivos PDF a través de Google Drive.

El detalle estaba en que cada archivo pesaba en promedio 250 Mb porque se encontraban en alta resolución. Sin embargo, para mis propósitos bastaba con que se leyera correctamente la información y se mostraran bien las imágenes.

Además, necesitaba poder colocar una marca de agua en todas las páginas de los archivos PDF. Por supuesto que no era una opción abrir los archivos y agregar en cada página una marca de agua.

Entonces, utilicé el comando GS (acrónimo de "Ghost Script") que es un programa muy poderoso para tareas de impresión en Linux.

El caso que voy a ilustrar, se trataba de  un archivo PDF que pesaba 262.2 Mb y luego de utilizar el comando y aplicarle una marca de agua a todas las páginas el tamaño final del archivo fué de 14.2 Mb!!!

Esto fué lo que hice:

  1. Instalé los programas necesarios desde la cónsola:
    # sudo aptitude install cups-pdf ghostscript
  2. Ejecuté el comando "gs" con los parámetros apropiados:
    # gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=Reducido.pdf Grande.pdf
  3. Utilicé el programa "JPDF Tweak 1.1" para aplicar la marca de agua a todas las páginas de cada archivo PDF
  4. Voilá! ... el resultado fué un archivo llamado "Reducido.pdf" cuyo tamaño fué de 14.2 Mb!
Con este procedimiento, ahora puedo disminuir el tamaño de cualquier archivo PDF.

Pero luego se me presentó la necesidad de procesar varios archivos. Entonces, decidí crear un script bash para ser ejecutado desde la cónsola.

Ubicado dentro del directorio que contenía todos los archivos PDF que quería procesar, estos fueron los pasos que seguí:

1. Crear el directorio "salida" para guardar los PDFs resultantes:
$mkdir salida

2. Crear y editar el archivo SimplificarPDFS.sh, incluyendo las siguientes líneas:
$vim SimplificarPDFS.sh

 #!/bin/bash  
 FILES="*.pdf"  
 for f in $FILES  
 do  
  echo "Procesando el archivo $f ..."  
  gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=./salida/$f $f  
  echo "Finalizando procesamiento del archivo $f ..."  
 done  

3. Aplicar permiso de ejecución:
chmod +x SimplificarPDFS.sh

4. Para ejecutar el script:
./SimplificarPDFS.sh

Todos los archivos simplificados serán almacenados en el directorio "salida".

Espero sea de utilidad.

Éxitos!

REFERENCIAS

  1. http://www.ubuntugeek.com/ubuntu-tiphowto-reduce-adobe-acrobat-file-size-from-command-line.html
  2. http://reformedmusings.wordpress.com/2011/02/12/reducing-pdf-file-sizes-in-linux/
  3. http://jpdftweak.sourceforge.net/

martes, 14 de agosto de 2012

Instalar HUAWEI E353 en Linux Ubuntu Lucid 10.04



Con el propósito de tener Internet en cualquier lugar de mi ciudad, esta semana hemos contratado el servicio BAM de Digitel, el cual viene con un modem USB marca y modelo HUAWEI E353.

Por supuesto, como es costumbre en Linux, es necesario aprender algo más cuando queremos instalar nuevos jugueticos en el PC. En esta publicación aprovecho para explicar cómo instalar este modem HUAWEI E353 en Linux Ubuntu Lucid 10.04, ya que luego de leer la escasa información que trae la documentación para instalarlo en Linux, tuve que investigar un par de días en Internet antes de verlo funcionar en mi laptop.

Sin embargo, aprovecho para indicar que la instalación en Linux Ubuntu Precise 12.04 es directa. Esto quiere decir que el HUAWEI E353 es detectado "out of the box" y no es necesario instalar nada.

Volviendo al tema y luego de varias lecturas, en resumidas cuentas la instalación no pasa de 4 o 5 pasos. Sin embargo, el truco principal es que hay que disponer de tres paquetes (programas) antes de realizar la instalación.

Acá van los pasos que seguí para la instalación:

  1. Instalar programas preliminares:
    # aptitude install usb-modeswitch ivman build-essential
  2. Copiar directorio del instalador para linux que viene en el HUAWEI E353:
    # cd /root
    # cp -r /media/DIGITEL\ 3G/ .
    # cd DIGITEL\ 3G/
  3. Ejecutar el programa de instalación para linux:
    # bash ./Linux/install
  4. Se iniciará la compilación del módulo y habilitación en el kernel.
  5. Al finalizar, se desplegará una ventana emergente en la que se podrá conectar y desconectar a través del modem HUAWEI E353.
Con estos pasos, cada vez que conecto el modem USB a mi laptop, entonces aparece la ventana del programa para conectarme a Internet.

Espero sea de utilidad.

Éxitos!

José Gregorio.

lunes, 12 de marzo de 2012

Fechas de MOODLE en español



Parte de la información de MOODLE se muestra de acuerdo al idioma de definido en el servidor.

Generalmente, las fechas son mostradas en el idioma del servidor. En mi caso, el servidor está con el sistema operativo Ubuntu Server y el idioma predeterminado es inglés.

Para que las fechas de MOODLE se muestren en español, es necesario instalar un nuevo "locale" en el servidor.

Para hacer, basta con realizar este par de pasos:

  1. Agregar el nuevo soporte de idioma en el servidor:
    # vim /var/lib/locales/supported.d/local
    ... agregar la línea ...
    es_VE.UTF-8 UTF-8
  2. Regenerar los "locales" del servidor":
    # dpkg-reconfigure locales
Luego de hacer esto, se debe cambiar en MOODLE 1.9.X:

Administración del sitio -> Idioma -> Ajustes de idioma -> 'Locale' del sitio

... y colocar el valor: es_VE.UTF-8

Voilá! ... las fechas en MOODLE aparecerán en español :-)

Espero sea de utilidad.

José Gregorio.

Fuentes consultadas:
  1. http://www.qc4blog.com/?p=948

sábado, 4 de febrero de 2012

Flujograma para el uso de contenidos en ambientes e-elearning

Recientemente, vengo trabajando en la adaptación del licenciamiento Creative Commons para Venezuela.

En el proceso, me he conseguido con este intresante aporte de Juan José Calderón Amador (@eraser) quien creó un flujograma para la utilización de recursos en ambientes e-learning.

Espero sea de utilidad.

Fuente:
  1. http://e-learning-teleformacion.blogspot.com/2012/01/mapa-conceptual-gestion-de-derechos-de.html



domingo, 27 de noviembre de 2011

XOT: Cómo cambiar su apariencia


Tengo varias semanas estudiando cómo cambiar la apariencia de los contenidos educativos creados con XERTE y Xerte Online Toolkits.

Antes de comenzar el desarrollo de este tema, quiero agradecer a Tom Reijnders por su incodicional aporte desde la lista de correo, así como a todos los demás miembros que me orientaron para lograr esta tarea.

Así mismo, voy a iniciar con una brevísima descripción de lo que son XERTE y XERTE ONLINE TOOLKITS.

XERTE es un proyecto creado por la Nottingham University que permite la creación de contenidos educativos para que sean publicados en formato WEB. Esta aplicación fué creada para ser instalada en una computadora y está catalogada como una "aplicación de escritorio". Este software es muy poderoso y flexible, pero el tipo de usuario que puede aprovecharse de sus ventajas debe tener un conocimiento "medio" de programación.

Entonces, para facilitar las cosas y permitir a usuario que no tengan NINGÚN conocimiento de programación puedan también aprovechar la herramienta, la Universidad de Nottingham creó XERTE ONLINE TOOLKITS y que caroñosamente lo llaman XOT. Por lo general, este programa lo instala alguna unidad de servicios de tecnología de nuestra organización en un servidor web. Esto quiere decir que nosotros lo único que tenemos que hacer es acceder a una página web y listo! ... podremos crear contenidos educativos altamente enriquecidos.

Todo esto quiere decir que XERTE y XOT pueden trabajar de manera independiente para crear contenidos educativos. Pero también, pueden utilizarse de manera combinada para modificar algunos aspectos de los contenidos educativos.

En este orden de ideas, en esta publicación voy a explicar cómo cambiar la apariencia de los objetos para el aprendizaje o también llamados OA (creados con XOT) en términos de:
  1. Colores de la presentación de los OA.
  2. Logo de la plantilla.
  3. Imagen del banner superior.
  4. Posición de menú de control de páginas.
Para tener una idea de lo que se trata, acá muestro un par de imágenes que describen cómo es la apariencia original de un OA y cómo puede cambiar:

ANTES


DESPUÉS


 Comenzamos!

0. REQUERIMIENTOS INICIALES

En primer lugar, debemos contar con los siguientes condiciones:
  1. XERTE instalado en nuestra PC.
  2. XOT instalado y con acceso a su directorio de instalación en el servidor WEB.
Básicamente lo que haremos es modificar con XERTE un archivo de la plantilla que controla la apariencia de los OA llamando "Nottingham.rlt" que se encuentra en un directorio de XOT. Y una vez modificado este archivo desde el programa XERTE, lo volveremos a copiar en el directorio donde estaba en XOT.

Solamente hay que tener en cuenta que este archivo se llama "Nottinghman.rlt" en el directorio de XOT y en el programa XERTE se llama "template.rlt". No obstante, se trata de la misma información dentro del archivo. Esto quiere decir que lo que haremos será cambiar el nombre de los archivos en esta secuencia:
  1. Copiar archivo "Nottinghman.rlt" desde el directorio en XOT al directorio del proyecto en XERTE y renombrarlo como "template.rlt".
  2. Realizar los cambios de apariencia en XERTE y guardar el proyecto.
  3. Copiar el archivo "template.rlt" desde el directorio del proyecto XERTE al directorio en XOT y renombrarlo como "Nottingham.rlt".
Durante estos pasos, el sistema nos alertará acerca de la sobreescritura de los archivos. A todas estas advertencias deberemos responder que si se pueden sobreescribir.

Cabe destacar que con XERTE y con XOT se pueden crear OA de manera independiente y con los mismos resultados.

1. CREAR UN PROYECTO EN XERTE

El primer paso consiste en crear un proyecto desde el programa XERTE.

Esto permite crear la estructura inicial para modificar la apariencia de los OA.

Las siguientes dos imágenes, muestran los pasos a seguir:



 Como se puede apreciar, debemos crear un proyecto de tipo "Page Templates" a partir del menú superior "Templates".

XERTE preguntará en qué directorio se desea crear el nuevo proyecto, entonces seleccionamos un directorio nuevo y guardamos.

Luego, se pregunta si se desea abrir el nuevo proyecto a lo que responderemos que "Si".

Después, cerramos el asistente de visualización de OA haciendo clic en la "X" de la esquina superior derecha de la ventana y entraremos directamente en el ambiente de trabajo de XERTE desde donde aplicaremos los cambios a la plantilla de XOT.

Finalmenete, guardamos el proyecto y cerramos XERTE.

Haciendo todos estos pasos, hemos creado la estructura básica de un proyecto en el directorio que escogimos, a partir de la aplicación XERTE. Esto quiere decir que se ha creado el archivo "template.rlt"que será el archivo que usaremos para sustituir el archivo "Nottingham.rlt" en XOT.

2. Cambiando Colores en la Plantilla

Ya que tenemos el proyecto creado, para abrirlo nuevamente ubicamos el archivo "template.rlt" en el directorio del proyecto y hacemos dobleclic sobre éste.

Se abrirá el asistente de visualización de XERTE y lo cerraremos haciendo un clic sobre la "X" de la esquina superior derecha. De esta manera, estaremos nuevamente en la pantalla de edición de XERTE:



A continuación, se muestra cómo luce la pantalla de edición de XERTE:


XERTE permite modificar varios aspectos de la plantilla a partir de parámetros.

Estos parámetros se puede acceder haciendo un clic sobre el primer ícono ubicado en el árbol jerárquico de elementos del proyecto, ubicado en la parte izquierda de la pantalla.

Para cambiar el color en el fondo del banner superior, basta con agregar una "propiedad" llamada "titleBarColour" a partir de la lista desplegable ubicada en la parte superior central de la pantalla. Luego presionamos el botón "Add" para agregar la propiedad a la lista inferior de propiedades y finalmente cambiamos al color deseado.

A continuación, se muestra una imagen de cómo se ve la pantalla luego de haber agregado la propiedad:


Para visualizar los cambios en la plantilla, seleccionamos del menú superior "View --> Preview".

Se mostrará una ventana mostrando los cambios aplicados:






Para regresar a la pantalla de edición, cerramos la ventana haciendo clic en la "X" ubicada en la esquina superior derecha.

3. Cambiando el Logo y la Posición de los Botones

El cambio del Logo y la posición de la botonera es uno de los ajustes más buscados en XOT.

Para lograrlos, es necesario agregar una líneas de código.

Debemos desplegar en el árbol jerárquico el elemento "Setup", ubicado en:

"Xerte Online Toolkit --> Interface --> Background --> Setup"

Luego de hacer clic sobre el elemento "Setup", entonces damos un clic sobre la pestaña "Script" ubicada en la parte inferior de la pantalla.

A continuación, se muestra una imagen de cómo luce el final de este proceso:



Como se puede apreciar, aparecen algunas líneas de código sobre las que realizaremos algunos cambios.

Es importante destacar que estos cambios en el código del proyecto generalmente NO SON REALIZADOS POR LOS PRODUCTORES DE OA. Usualmente, el personal de servicios tecnológicos los aplican y sus resultados se aprecian en la apariencia de los OA generados desde XOT.

Entonces, hacemos algunos espacios justo antes de la instrucción "entryFrame.swapDepths(999);" en donde agregaremos algunas líneas de código:

rootIcon.loadIcon(FileLocation + 'media/BannerConLogo.png');

_level0.engine.IFC.themes._visible = false;
_level0.engine.IFC.fonts._visible = false;
_level0.engine.IFC.access._visible = false;
_level0.engine.IFC.sizes._x = 10;
_level0.engine.IFC.txtSize._x = 120;

rootIcon.tocBtn._y = 550;
rootIcon.nextBtn._y = 550;
rootIcon.backBtn._y = 550;
rootIcon.progress._y = 550;
rootIcon.contButton._visible = false;

Básicamente, estas líneas lo que hacen es:
  • Agregar una imagen llamada "BannerConLogo.png" en la parte superior del OA.
  • Ocultar las listas desplegables ubicadas en la parte inferior de la plantilla a través de las cuales los usuarios pueden cambiar la apariencia del OA.
  • Reubicar el botón de la tabla de contenidos, botón "siguiente", botón "regresar", etc., casi en el borde inferior del OA.
La imagen "BannerConLogo.png" debe tener una dimensiones de 800x68 pixels y debe tener estar creada con un efecto de "transparencia" para no "tapar" los títulos de los OA ubicado en la cabecera.

A continuación, se muestra cómo lucen estos cambios:


En esta imagen, no hay un "logo" como tal. Pero con algunos retoques de la imagen "BannerConLogo.png", podemos agregar del lado derecho el logo de nuestra organización.

Es importante destacar que la imagen "BannerConLogo.png" se encuentra dentro del directorio "media" del proyecto XERTE. En consecuencia, cualquier imagen o recurso que forme parte de la plantilla deberá estar dentro de este directorio y ser copiado en el directorio equivalente en XOT al momento de ser trasnportada la plantilla al servidor.

Hay muchas propiedades que pueden ser modificadas. Basta con hacer unas cuantas pruebas para lograr el resultados deseado.


4. Instalando la nueva plantilla en XOT

La instalación de esta nueva plantilla en XOT es algo realmente sencillo.

Como mencioné al principio, en el directorio del proyecto XERTE se creó el archivo "template.rlt". En este archivo están todos los cambios que hemos aplicado en nuestra plantilla.

Entonces, la instalación de la nueva plantilla consiste en sustituir el archivo "template.rlt" en XOT sobre el archivo "<webroot>/modules/xerte/parent_templates/Nottingham/Nottingham.rlt". Otro camino puede ser: renombrar el archivo "Nottingham.rlt" por "Nottingham-original.rlt", copiar el archivo "template.rlt" en el directorio donde está "Nottingham-original.rlt" y renombrar el archivo "template.rlt" por "Nottingham.rlt".

Aprovecho para aclarar que "<webroot>" es una referencia general que indica la ruta de acceso a los archivos de XOT y varía según el sistema operativo utilizado en el servidor. Para el caso de GNU/Linux Debian y derivados sería "/var/www/".

Desde este momento, cuando cualquier persona cree un OA desde XOT, tendrán la apariencia definida en la nueva plantilla.

Es importante señalar que en ocasiones, los exploradores de páginas web hacen "caching" de contenidos flash. En este sentido, es recomendable que si el navegador web que se usa ya había accedido a XOT con la vieja plantilla, este borre el contenido del caché de navegación del explorador.

Espero sea de utilidad!

José Gregorio.

Fuentes consultadas:
  1. http://www.nottingham.ac.uk/xerte/toolkits.htm
  2. http://lists.nottingham.ac.uk/mailman/listinfo/xerte
  3. http://wiki.xerte.net/index.php5?title=Main_Page
  4. http://code.google.com/p/xerte/


viernes, 9 de septiembre de 2011

Acceso rápido a los archivos del servidor web

Sin disminuir la extraordinaria velocidad con la que se pueden editar los archivos de un sitio web desde la cónsola, en muchas ocasiones me consigo con situaciones en las que la única manera que las personas actualicen los archivos, es a través de una aplicación de escritorio.

Hay un sin fin de formas de lograr que un usuario administre los archivos de un sitio web. Quizás esta "diversidad" nos lleva a tener toda una tarde investigando para que al final no apliquemos ninguna de las soluciones leídas.

En esta publicación, voy a mostrar cómo permitir a un usuario pueda administrar (agregar, modificar, eliminar) los archivos de un sitio web.

Acá vamos.

  1. El Escenario

    Tengo configurado un servidor con Debian Squeeze y ofreciendo páginas web con el servidor Apache2 en el directorio "/var/www/"

    En el sistema, hay un usuario llamado "programador" cuyo directorio de trabajo es "/home/programador" y quiero pueda acceder a los archivos ubicados en una aplicación llamada "MOODLE" ubicada en "/var/www/moodle".
  2. El Plan

    Como este servidor está bajo mi completa administración, el plan es darle permisos al usuario "programador" para que pueda administrar los archivos en "/var/www/moodle"

    Así mismo, quiero que cuando el usuario "programador" realice una conexión "SSH" hacia el servidor, aparezca un "directorio" que apunte directamente hacia los archivos en "/var/www/moodle".
  3. La ejecución

    Agregamos el usuario "programador" al grupo "www-data":

    # adduser programador www-data

    Asignamos los permisos adecuados al directorio donde está MOODLE:

    # cd /var/www
    # chmod -R g+rw ./moodle

    Creamos en el directorio del usuario "programador" un enlace simbólico hacia los archivos de MOODLE:

    # cd /home/programador
    # ln -s /var/www/moodle web-moodle
  4. Conclusión

    Con esto, el usuario "programador" cuando haga una sesión "SSH", tendrá un directorio llamado "web-moodle" en el que cuando entre, tendrá todos los archivos de MOODLE y podrá cambiarlos.
  5. Información adicional

    Hay varias maneras mucho más sofisticadas de realizar esto. Sin embargo, por un tema de tiempo y dado que tengo el control sobre el servidor, me puedo dar el lujo de hacerlo así :-)

    Si quisiera que el usuario "programador" sólo pudiera ver archivos ubicados exclusivamente en su "home", entonces hay que leer un poco más del paquete "rssh".
Espero sea de utilidad.

Éxitos!

José Gregorio.

Fuente:
  1. http://askubuntu.com/questions/19898/whats-the-simplest-way-to-add-files-to-var-www
  2. http://www.cyberciti.biz/tips/rhel-centos-linux-install-configure-rssh-shell.html
  3. http://ubuntuforums.org/showthread.php?t=915985
  4. http://www.pc-freak.net/blog/quick-way-to-add-user-to-another-user-group-in-linux/

jueves, 8 de septiembre de 2011

Configurando una Lexmark z600 en Ubuntu Lucid

En varias oportunidades he tenido que configurar a un familiar su impresora marca Lexmark modelo Z617.

Cada vez que la instalo, paso algo de trabajo porque se me olvidan los pasos y no había muchas referencias de cómo hacerlo en Internet.

Es por esto que he decidido publicar este artículo :-) ... para oxigenar mi memoria cuando me toque.

Acá vamos.

Este procedimiento lo realizo "vía cónsola" porque el detector de drivers de Ubuntu Lucid no muestra el controlador para la Lexmark Z600 en la lista de alternativas cuando se agrega la impresora a través de "Sistema -> Administración -> Impresoras"

  1. Instalar "alien"

    Debido a que los controladores de esta impresora están empaquetados en formato ".rpm", es necesario transformarlos a ".deb" para poder instalarlos en Ubuntu Lucid:

    # aptitude install alien
  2. Descargar librerías necesarias

    Debido a varias referencias que tiene el controlador para esta impresora hacia librerías de C++, para que funcione correctamente es necesario descargar e instalar los siguientes paquetes:

    #cd /tmp
    # wget http://ftp.us.debian.org/debian/pool/main/g/gcc-3.4/gcc-3.4-base_3.4.6-9_i386.deb
    #wget http://ftp.us.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-18_i386.deb
    #dpkg -i  gcc-3.4-base_3.4.6-9_i386.deb
    # dpkg -i  libstdc++5_3.3.6-18_i386.deb
  3. Descargar el controlador para Lexmark Z600

    La descarga de este controlador puede realizarse desde alguna de las siguientes direcciones:

    http://www.4shared.com/file/NAwesGj8/CJLZ600LE-CUPS-10-1TAR.html

    http://downloads.lexmark.com/cgi-perl/downloads.cgi?ccs=229:1:0:389:0:0&os_group=Redhat&target=

    Una vez descargado, lo copiamos en el directorio "/tmp" para trabajar.
  4. Instalar el controlador

    # tar -zxvf CJLZ600LE-CUPS-1.0-1.TAR.gz
    # tail -n +143 z600cups-1.0-1.gz.sh > install.tar.gz
    #
    sudo alien z600cups-1.0-1.i386.rpm
    # sudo alien z600llpddk-2.0-1.i386.rpm

    Con este paso, se crearon dos archivos con extensión .deb:


    z600cups-1.0-1.i386.deb
    z600llpddk-2.0-1.i386.deb

    Solo falta instalar los dos paquetes:

    # dpkg -i
    z600cups-1.0-1.i386.deb
    # dpkg -i z600llpddk-2.0-1.i386.deb
  5. Reiniciar servidor de impresión

    # /etc/init.d/cups restart
  6. Agregar la impresora en el sistema

    Ejecutamos el programa para agregar impresoras de Ubuntu Lucid ubicado en:

    Sistema -> Administración -> Impresora

    El controlador para la impresora Lexmark Z600 estará disponible en la lista.
Espero sea de utilidad.

José Gregorio.


Fuentes:
  1. http://honeybadger.net/LexmarkZ600
  2. http://ingeniero-forigua.blogspot.com/2009/08/instalar-impresora-lexmark-z600-z605-en.html
  3. http://packages.debian.org/lenny/i386/gcc-3.4-base/download
  4. http://packages.debian.org/lenny/i386/libstdc++5/download

sábado, 27 de agosto de 2011

Creando grupos de correo con GMAIL


El uso de GMAIL como sistema de correo se ha convertido en una herramienta fundamental en las comunicaciones de los usuarios que "respiran" a través del correo electrónico.

En poco tiempo, nuestra lista de contactos se convierte en algo parecido a la representación de la película "THE MATTRIX" cuando neo alucina la famosa pantalla de caracteres verdes incomprensibles que desciende ante su mirada.

Esta publicación trata de cómo crear grupos de contactos en GMAIL, para que de manera mucho más sencilla y práctica, podamos enviar mensajes sin necesidad de estar escribiendo "de memoria" o con ayuda GMAIL los destinatarios de los mensajes.

PASO 1: Ingresar al sistema GMAIL

 Luego de introducir usuario y clave en el sistema de gmail, estarás en la "Bandeja de Entrada" de tu servicio de correo.









PASO 2: Entrar en la sección de "Contactos"

 Haz clic en "Contactos".











PASO 3: Crear un grupo nuevo

 Haz clic en "Grupo nuevo" ubicado en la parte inferior izquierda.










PASO 4: Establecer el nombre del grupo nuevo

 Escribe el nombre del grupo que estás creando.

En este ejemplo, estoy creando un grupo llamado "DCI-Online: Grupo 1".








PASO 5: Ubicar la posición del grupo "DCI-Online: Grupo 1"

 Podrás ver que el grupo "DCI-Online: Grupo 1" está listado en la parte inferior izquierda de la pantalla.

Haz clic sobre el grupo "DCI-Online: Grupo 1".






PASO 6: Entrar al grupo "DCI-Online: Grupo 1"

 Luego de ingresar al grupo, verás que no hay contactos añadidos en el mismo.

Aparecerá una lista desplegable (también llamada "combo"), que se titula:

Añadir a "DCI-Online: Grupo 1"

Haz clic sobre la lista desplegable.


PASO 7: Agregando contactos al grupo

 Luego de hacer clic sobre la lista desplegable, puedes escribir los correos electrónicos de las personas que deseas que estén dentro del grupo.








 Si son varios contactos, sepáralos por una coma (,).










PASO 8: Verificar contactos agregados

 Luego de añadir los contactos, aparecerá una lista de todos los miembros de este grupo de contactos.









PASO 9: Usando el grupo de contactos

 Vuelve a la "Bandena de Entrada" de tu correo.

Haz clic en el botón "Redactar" para crear un nuevo mensaje.







 Una vez abierto el nuevo mensaje de correo, escribe en la caja de texto para los destinatarios el nombre de la lista que acabas de crear:

"DCI-Online: Grupo 1"

La función de auto-completación de Gmail te ayudará a escribir el nombre del grupo.


Verás como aparecen auto-"mágicamente" todos los contactos de los miembros del grupo.









En mi caso, utilizo estos grupos de contactos de GMAIL para enviar correos a grupos de estudiantes de la Universidad. De esta manera, no tengo que aprenderme de memoria sus correos y al mismo tiempo, puedo enviar mensajes fácilmente.

Es importante diferenciar la función de "Grupos de Contactos" de GMAIL  y los "Grupos de Discusión". Si bien es cierto, el propósito es el mismo, es decir, enviar mensajes de correo a varias personas con un solo mensaje, son servicios completamente diferentes por la manera en que trabajan y se usan.

Espero esto sea de utilidad.

José Gregorio.

jueves, 25 de agosto de 2011

Retiro de "uno de los más grandes": Steve Jobs

No puedo imaginarme lo que ha significado para Steve Jobs tomar esta difícil decisión.

Como uno de los representantes con mayor éxito y prestigio en la Era Digital, Steve Jobs se retira de la Presidencia Ejecutiva de Apple luego de 14 años contínuos de labores como CEO de la empresa.

Jobs de manera responsable y aleccionadora, argumenta sus razones para delegar sus funciones a Tim Cook, anterior director de Ventas y Operaciones.

Lo que más me ha impresionado es la humildad, sencillez y claridad con que Jobs ha manifestado su decisión:

"I have always said if there ever came a day when I could no longer meet my duties and expectations as Apple’s CEO, I would be the first to let you know. Unfortunately, that day has come."

"Siempre dije que si llegara el día en que yo no pudiera cumplir mis tareas y expectativas como CEO (Chief Executive Officer: Director Ejecutivo), sería el primero en hacérselo saber. Desafortunadamente, ese día ha llegado."

Acá pueden leer su carta de renuncia:

http://www.macworld.com/article/161928/2011/08/steve_jobss_resignation_letter.html

Ahora, a cosechar el legado que este extraordinario representante y modelo del mundo tecnológico ha dejado.

Éxitos!

José Gregorio.

sábado, 25 de junio de 2011

Múltiples instaladores en un pendrive

Con la variada oferta que existe actualmente en las distintas distribuciones disponibles en el mundo de GNU/Linux y el software libre y "no tan libre", me he quedado con un montón de CDs y DVDs que he venido grabando en la medida que actualizo mis sistemas.

Investigando un poco, he conseguido una manera muy eficiente de mantener los CDs instaladores de las últimas versiones de las distribuciones que normalmente utilizo: Debian, Ubuntu, Sabayon y Linux Mint.

Se trata de un software llamado "MultiSystem", que permite seleccionar de un menú el CD (imagen realmente) de instalación que quiero usar.

Actualmente mi sistema es Ubuntu 10.04 Lucid y los pasos para instalarlo fueron extremadamente sencillos, porque me apoyé en un "repositorio" ofrecido por el autor de "MultiSystem".

Estos fueron los pasos que seguí:
  1. Instalar el repositorio donde está "MultiSystem":
    # apt-add-repository 'deb http://liveusb.info/multisystem/depot all main
    # apt-add-repository 'deb http://liveusb.info/multisystem/depot all main'
    # wget -q http://liveusb.info/multisystem/depot/multisystem.asc -O- | sudo apt-key add -
  2. Actualizar la base de datos local de programas:
    # aptitude update
    # aptitude dist-upgrade
  3. Instalar el programa "MultiSystem":
    # aptitude install multisystem
El programa "MultiSystem" estará disponible en el menú:

Aplicaciones -> Accesorios -> MultiSystem

Es importante asegurarse que al momento de ejecutar el programa, esté conectado el pendrive que vamos a usar para instalar las distintas "imágenes" ISO de los sistemas que eventualmente instalaríamos.

Haste el momento he probado con Debian, Ubuntu, Linux Mint, Sabayon y Elastix. Funciona perfectamente.

Por no dejar, probé con un ISO de M$ Windows pero no está soportado hasta el momento este tipo de sistemas.

Y a decir verdad, no me importa mucho ;-)

Espero sea de utilidad.

José Gregorio.

Fuentes:
  1. http://liveusb.info/dotclear/index.php?pages/install
  2. http://lavidalinux.com.ar/2010/04/multiboot-cargar-varias-distros-en-un-pendrive.html

lunes, 16 de mayo de 2011

Copia "cruda" de discos con "dd" y "MultiBoot"

Recientemente, mi esposa me regaló una poderosa HP 2710p que la verdad me ha sorprendido con su capacidad y ergonomía.

Este equipo viene con Microsoft Windows Vista y por fortuna, le hicieron un downgrade a XP.

El disco duro trajo varias particiones, entre las cuales se encuentra una llamada "HP-Recovery" que viene con todo lo necesario para restaurar la PC.

Para reestablecer la PC con el mismo software que la recibí, decidí hacer un respaldo completo del disco duro. De esta manera, en el futuro podría restaurar el sistema original.

Obviamente, esto es para poder instalar alguna de las increíbles versiones de GNU/Linux derivadas de Debian que han venido evolucionando a pasos gigantes.

En esta oportunidad, he decidido utilizar "Linux Mint", que a la fecha, viene pisándole los talones a UBUNTU como sistema de escritorio.

Para realizar una copia de todo el disco, me apoyé en poderoso comando "dd":

  • # dd if=/dev/sda of=/media/LINUX/HP-Full.iso

Este paso demora un buen rato. Para ir chequeando el progreso, abrí otra cónsola y visualizaba intermitentemente el tamaño del archivo .iso:

  • # du /media/LINUX/HP-Full.iso

Con el comando "dd", he creado un archivo "HP-Full.iso" de aproximadamente 94 Gb.

Si fuera necesario reestablecer el sistema operativo, bastaría con ejecutar el siguiente comando:

  • # dd if=/media/LINUX/HP-Full.iso of=/dev/sda

Todo este proceso lo realicé a través de un ambiente "live" con un pedrive en el que instalé la imagen de "Linux Mint" con el programa "Multiboot" que funciona de maravillas.

Con "Multiboot", ahora no tengo que estar quemando CD's para instalar sistemas.

Así que si quieres hacer un respaldo de tu PC justo luego de terminar de instalarla, la combinación "MultiBoot y DD" luce como una excelente estrategia.

Espero sea de utilidad.

José Gregorio.

REFERENCIAS
  1. http://liveusb.info/
  2. http://angelverde.info/como-crear-un-liveusb-multiboot-de-forma-grafica/
  3. http://www.debianhelp.co.uk/ddcommand.htm

jueves, 21 de octubre de 2010

Screenshots con Debian y LXDE

Como ya varios de mis amigos han podido constatar, mi laptop HP-COMPAQ nx6115 no es precisamente un equipo que goza de altas capacidades de hardware.

Sin embargo, he realizado una instalación "a la medida" pero considerando los programsa disponibles en los repositorios oficiales.

Por otra parte, es evidente que con esta "conservadora" máquina no puedo abusar de programas de alto consumo de procesamiento gráfico y computacional.

Tomar capturas de pantalla o los llamados "printscreens" o "screenshots", es una tarea importante que está soportada de manera predeterminada en la mayoría de los escritorios disponibles en Debian, principalmente GNOME o KDE.

En mi caso, decidí instalar "LXDE" que es suficientemente ligero como para no causar estragos en la velocidad de procesamiento gráfico y computacional de mi fiel laptop.

En este artículo, explico los pasos que seguí para configurar una función de captura de pantalla a través de un programa llamado "scrot" y vinculando su ejecución al botón "PrintScreen" de mi teclado.

Aquí vamos.

1. Instalar programa "scrot":
  • # aptitude install scrot
2. Crear un script para invocar la captura de pantallas:
  • # vim /usr/local/bin/screenshot.sh

    #!/bin/bash
    DATE=`date +%Y-%m-%d\ %H-%M`
    scrot -s "$HOME/Desktop/screenshot-$DATE.png"
3. Asignar la combinación de teclas "ALT+PrintScreen"  al script "screenshot":
  • $ vim ~/.config/openbox/lxde-rc.xml

    Agregar la siguiente entrada al final de la sección "keyboard":

    <keyboard>
    ...
    <keybind key="A-Print">
    <action name="Execute">
    <command>printscreen.sh</command>
    </action>
    </keybind>
    </keyboard>
    ...
4. Reiniciar la sesión.

Como se puede ver, cuando se invoca el comando "scrot" se pasa también el parámetro "-s". Esto es para que permita seleccionar el área de la pantalla que se desea aparezca en la imagen a través de un rectángulo dibujado con el ratón.

En este momento, podemos presionar la tecla "ALT+PrintScreen" y seleccionando con el ratón el área de la pantalla, se creará una imagen en el escritorio.

Espero sea de utilidad.

Éxitos!

José Gregorio.

Fuentes:
  1. http://wiki.lxde.org/en/How_to_make_screenshots
  2. http://forum.lxde.org/viewtopic.php?f=8&amp;t=1373

jueves, 23 de septiembre de 2010

Instalar nuevas fuentes en Debian

En días pasados, estaba creando varios banners para un curso en MOODLE. Estas imágenes, las coloco en la parte superior de los bloques de actividades y contenidos para contextualizar lo que se aprenderá en esa unidad didáctica.

El asunto es que no me gustaban ninguna de las fuentes que tenía instalado mi sistema para este propósito. Entonces decidir buscar e instalar alguna fuente que me gustara.

Esta publicación trata de cómo instalar fuentes ".ttf" en mi sistema GNU/Linux Debian Lenny.

Aquí voy con los pasos que seguí.







1. Descargar fuente de mi preferencia.

Visité el portal "www.dafont.com" en donde pude conseguir muchas alternativas de fuentes para instalar.

En este caso, descargué una llamada "coolvetica".

2. Copiar fuente "coolvetica" en directorio local.

No quise hacer la instalación de la fuente de forma "general" en el sistema. Preferí hacerlo de manera que la fuente "coolvetica" estuviera disponible para mi sesión solamente.

Entonces, creé una carpeta especial en mi sesión llamada ".fonts" en donde copié la fuente recién descargada:
  • $ cd
  • $ mkdir .fonts
  • $ cd .fonts
  • $ cp /tmp/coolvetica.zip .
  • $ unzip coolvetica.zip
  • $ rm *.zip *.pdf *.html
En este momento ya tenía instalada la fuente pero faltaba un paso más.

3. Actualizar la base de datos de fuentes disponibles en las aplicaciones.

Para hacer que la fuente "coolvetica" estuviera disponible en todas mis aplicaciones, debía ejecutar el comando:
  • $ fc-cache -f -v
Hecho esto, la nueva fuente "coolvetica" estaba disponible en mi aplicación para crear banners llamada "inkscape".

Espero sea de utilidad.

José Gregorio.

Fuentes:
  • http://www.dafont.com/coolvetica.font
  • http://linuxandfriends.com/2009/07/20/how-to-install-fonts-in-linux-ubuntu-debian/

jueves, 26 de agosto de 2010

Cámara para tráfico de bajo presupuesto

Un proyecto que vengo realizando desde hace un poco menos de un año está relacionado con la supervisión de un punto importante en una de las vías expresas en Caracas, Venezuela.

Todo surgió por la necesidad que tenía de saber algunas condiciones de este tramo de la autopista: ¿llueve?, ¿mucho tráfico?, ¿alguna situación que obstaculice el tránsito?

Entonces, decidí revivir un viejo laptop que tenía en alguna sombra de mi closet para hacer algo útil.

Esta publicación trata de cómo construí un sistema para supervisar el tramo del elevado de Santa Fé en la autopista de Prados del Este en Caracas, Venezuela.

Básicamente, este sistema lo que hace actualmente es tomar una fotografía en momentos determinados del día para luego copiarla en un directorio de un dominio identificado como www.ruedapoco.com.

En virtud de que no tenía mucho tiempo para publicitar el experimento, decidó crear un canal de twitter llamado www.twitter.com/ruedapoco que se encargara de informar del servicio. En poco tiempo, gracias a esta red social la cantidad de visitas para ver esta simple foto creció rápidamente.

Esta publicación está distribuída en los siguientes pasos:

1. Instalación de GNU/Linux Debian Lenny.
2. Instalación de la webcam.
3. Instalación del programa para tomar las fotografías.
4. Cronograma permanente para la creación de la fotografía y actualización del estado en "twitter".
5. Publicación de la fotografía en el servidor www.ruedapoco.com.

Aquí va la explicación de cada uno de ellos.

1. Instalación de GNU/Linux Debian Lenny.

Utilizando el programa "JIGDO", creé una imagen de un CD de instalación en su versión "netinstall" de Debian Lenny.

Realicé la instalación del sistema en mi viejo Toshiba Satellite que no tenía más que un Intel Pentium 3 con 512 MB en RAM. y un gigantezco disco de 40 Gb.

Para este sistema, sólo utilicé la opción de "Sistema Base". Es decir, quité la selección que me invitaba a mantener el instalador para "Sistema de Escritorio" y "Laptop". Con esto logré que el sistema operativo tuviera exclusivamente lo necesario.

2. Instalación de la webcam.

Para lograr una imagen "decente" y que no afectara el exceso o defecto de luminosidad cuando se tomara la foto, compré una cámara web Logitech modelo QuickCam Communicate MP/S55000 tal como la que se ve en la foto.

Al conectarla, verifiqué el log del sistema para confirmar que estaba siendo correctamente detectada:

# tail -f /var/log/syslog

La salida en el log fué:

Aug 24 19:23:25 multiplo kernel: [  308.716068] usb 1-1: new full speed USB device using ohci_hcd and address 2
Aug 24 19:23:26 multiplo kernel: [  309.015860] usb 1-1: configuration #1 chosen from 1 choice
Aug 24 19:23:26 multiplo kernel: [  309.021176] usb 1-1: New USB device found, idVendor=046d, idProduct=09a1
Aug 24 19:23:26 multiplo kernel: [  309.021190] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=2
Aug 24 19:23:26 multiplo kernel: [  309.021198] usb 1-1: SerialNumber: F4290250
Aug 24 19:23:26 multiplo kernel: [  309.595285] Linux video capture interface: v2.00
Aug 24 19:23:27 multiplo kernel: [  309.794329] uvcvideo: Found UVC 1.00 device (046d:09a1)
Aug 24 19:23:27 multiplo kernel: [  309.830874] input: UVC Camera (046d:09a1) as /class/input/input7
Aug 24 19:23:27 multiplo kernel: [  309.840521] usbcore: registered new interface driver uvcvideo
Aug 24 19:23:27 multiplo kernel: [  309.840538] USB Video Class driver (v0.1.0)
Aug 24 19:23:27 multiplo kernel: [  310.121183] usbcore: registered new interface driver snd-usb-audio


Entonces pude constatar que todo iba "de perlas". Me llamó la atención que esta cámara no era tan "básica". De hecho, empleaba el controlador V4L2 y es lo que llaman una cámara UVC además de traer su propio dispositivo de captura de audio.

3. Instalación del programa para tomar las fotografías.

Debido al modelo y controlador de la cámara, no serviría cualquier programa que tomara una foto. El que seleccionara debería ser compatible con cámaras UVC y emplear el controlador.

Decidí emplear entonces el programa "fswebcam" que está disponible en los repositorios de "squeeze".

Para instalarlo, lo descargué directamente de los "archives" de Debian pero antes instalé un par de dependencias:
  • # cd /root
  • # aptitude install libgd2-noxpm libgd2-xpm
  • # wget http://ftp.us.debian.org/debian/pool/main/f/fswebcam/fswebcam_20100622-1_i386.deb
  • # dpkg -i fswebcam_20100622-1_i386.deb
Para verificar el funcionamiento, ejecuté el programa para tomar una foro de prueba:
  • # fswebcam -d /dev/video0 -i 0 -p MJPEG -r 640x480 -S 30 --no-banner --jpeg -1 prueba.jpg
Se creó correctamente el archivo "prueba.jpg" que corresponde a la imagen que tomó la cámara.

En este momento, tenía instalado el programa que utilizaría para tomar las fotos.

4. Cronograma permanente para la creación de la fotografía y actualización del estado en "twitter".

Para realizar la fotografía los días y horas determinadas, me apoyo en el planificador de tareas "cron".

Programé dos bloques: uno para que se tome la fotografía cada cinco minutos de lunes a viernes entre las 04:00 AM y las 11:00PM. El otro bloque es los sábados y domingos en horas "enteras" (3pm, 4pm, 5pm, etc.) también desde las 04:00 AM hasta asl 11:00 PM.

A continuación los comandos que utilicé:
  • # crontab -e

    */5     4-23   *      *    1-5      /usr/local/sbin/snapshot.sh
    0       4-23   *      *    6,0      /usr/local/sbin/snapshot.sh
El script "spanshot.sh" lo creé para no estar editando directamente el planificador "cron" cuando necesitara realizar algún cambio.

Este script fundamentalmente realiza dos funciones: la primera es crear la fotografía y la segunda es actualizar el estado del canal de "twitter" llamado "ruedapoco".

La actualización del canal de "twitter" se realiza a través de la API que este portal ofrece para ejecutar algunas funciones a partir de comandos y no desde la web.

Estas ejecuciones requieren poder invocar comandos a través de "http" desde la cónsola. En este sentido, me decanté por el programa "curl" que está en los repositorios:
  • # aptitude install curl
Al igual que "snapshot.sh", creé un script para actualizar el "estado" en el canal de "twitter".

El script "twitter-update-status.sh" luce así:
  • vim /usr/local/sbin/twitter-update-status.sh

    curl --basic --user MiUsuario:MiClave --data status="Tráfico a las $(date "+%H horas y %M minutos"|sed -e ' s/\"/\\\"/g' ) en el Dist. SantaFé en la Autop. PradosDelEste: http://www.ruedapoco.com/camaras/santafe/camara-01/" http://twitter.com/statuses/update.xml > /dev/null
Cada vez que ejecute este script, se publica un mensaje en el canal de "twitter".

Cabe destacar que esta actualización no puede ser permanente porque "twitter" lleva un control de la cantidad de cambios que se realizan vía API y tienen un límite.

Entonces, agregué la ejecución del script "twitter-update-status.sh" al planificador de tareas "cron":
  • #crontab -e
    ...
    15 7-20 * * 1-5 /usr/local/sbin/twitter-update-status.sh
    5 * 7-20 * 6,0 /usr/local/sbin/twitter-update-status.sh
También consideré dos bloques: uno de lunes a viernes a los 15 minutos de cada hora y otro sábados y domingos luego de 5 minutos de cada hora.

5. Publicación de la fotografía en el servidor www.ruedapoco.com.

Finalmente, lo único que quedaba era copiar la fotografía tomada en el directorio del sitio www.ruedapoco.com.

Para lograr esto, utilicé el cliente ftp pero estableciendo un conjunto de instrucciones que se ejecutarían al invocar el comando "ftp".

Entonces, creé el archivo "/root/.netrc" con el siguiente contenido:
  • # vim /root/.netrc

    machine  ftp.ruedapoco.com
    login    MiUsuarioFTP@ruedapoco.com
    password MiClaveFTP
    macdef init
    prompt
    hash
    binary
    lcd /var/opt/camara-01/
    cd santafe
    cd camara-01
    mput webcam_navegadores.jpg
    quit
A partir de este conjunto de instrucciones, se copia el archivo de imagen "webcam_navegadores.jpg" en el servidor www.ruedapoco.com.

Para concluir, agregué el comando necesario para publicar la fotografía considerando el planificador de tareas "cron":
  • # crontab -e
    ...
    ftp ftp.ruedapoco.com
Con este último paso, queda publicada la fotografía en la página web.

Luego de ver el resultado final, estaba bastante contento :-) ... Sin embargo, me gustaba la idea de modificar la fotografía antes de que fuera publicada para agregarle algún texto relacionado con la ubicación del lugar, fecha y hora y correo.

Para hacer esto, instalé el poderoso programa "imagemagick" para manipulación de imágenes:
  • # aptitude install imagemagick
Luego, agregué el siguiente conjunto de instrucciones en el script "snapshot.sh" justo después de tomar la fotografía con el comando "fswebcam":
  • # vim /usr/local/sbin/snapshot.sh
    ...
    convert /var/opt/camara-01/webcam_navegadores_raw.jpg -gravity South -background Gold -splice 0x18 -annotate +0+2 "Venezuela - Caracas - Distribuidor Santa Fé -  $(date "+%d.%m.%Y-%H:%M:%S - jdiaz@bpiconsultores.com"|sed -e ' s/\"/\\\"/g' )" /var/opt/camara-01/webcam_navegadores_raw_1.jpg

    ln -fs /var/opt//camara-01/webcam_navegadores_raw_1.jpg /var/opt/camara-01/webcam_navegadores.jpg
    ...
Con esta modificación, agregué un rectángulo amarillo en la parte inferior de la fotografía con el lugar, la fecha y hora de la foto y un correo electrónico.

Hasta el momento ha venido funcionando este viejo laptop ofreciendo un servicio de gran utilidad para los que vivimos en las zonas aledañas.

Espero sea de utilidad.

Éxitos!

José Gregorio.

miércoles, 25 de agosto de 2010

Creando imágenes de Debian con JIGDO

La primera tarea para hacer la instalación de un sistema GNU/Linux Debian es obtener o crear un CD de instalación.

En esta publicación, explico en líneas generales cómo crear una imagen ISO para luego "quemar" un CD de instalación con Debian.

En el proceso, la primera decisión que debía tomar era cómo realizaría la descarga del CD de instalación. En este sentido, tenía dos alternativas: descargar un archivo ISO de "http://www.debian.org/CD/" o utilizar el programa "JIGDO".

Me he decidido por utilizar el programa "JIGDO" porque en la web de Debian pronostican que debería ser la forma predeterminada para elaborar CDs de instalación. Además, mencionan que el proceso es más rápido que la descarga de un archivo ISO.

A continuación los pasos que utilicé para crear una imagen ISO de la versión "netinstall" de Debian Lenny.

1. Instalar el programa JIGDO:
  • # aptitude install jigdo
2. Descargar los archivos ".jigdo" y ".template" en mi directorio "home":
  • $ cd
  • $ wget http://cdimage.debian.org/debian-cd/5.0.5/i386/jigdo-cd/debian-505-i386-netinst.jigdo
  • $ wget http://cdimage.debian.org/debian-cd/5.0.5/i386/jigdo-cd/debian-505-i386-netinst.template
3. Iniciamos la creación de la imagen ISO:
  • $ jigdo-lite debian-505-i386-netinst.jigdo
Como es la primera vez que creaba una imagen con este archivo .jigdo, presioné "enter" a la primera pregunta relacionada con el "scan".

En la pregunta acerca del mirror que quiero utilizar, respondí:

http://debian.mirror.iweb.ca/debian/


El proceso de descarga de los archivo inicia y puede demorar dependiendo del tipo de imagen que se esté creando. En mi caso, la imagen que estoy creando es mínima y la descarga es de 130 Mb. a 170 Mb.

Al concluir el proceso, se creó "automágicamente" un archivo llamado:

debian-505-i386-netinst.iso

Este archivo es la imagen que podemos utilizar con algún programa como BRASERO, GNOMEBAKER o DD para crear un CD de instalación de Debian.

Espero sea de utilidad.

José Gregorio.

Fuentes:
  • http://www.debian.org/CD/jigdo-cd/
  • http://cdimage.debian.org/debian-cd/5.0.5/i386/jigdo-cd/
  • http://www.debian.org/mirror/list
  • http://www.tldp.org/HOWTO/Debian-Jigdo/updatingyourimage.html

miércoles, 18 de agosto de 2010

Screencasts para Youtube con Debian.


Los screencasts son una de las formas más útiles de realizar demostraciones basadas en videotutoriales.

En esta publicación, voy a explicar cómo he realizado grabaciones de mi escritorio para luego transformarlas formato MP4 y que sea reproducible en la mayoría de los reproductores multimedia.

Para poder grabar el escritorio y el audio del micrófono, he instalado un programa llamado "recordmydesktop" el cual me ha sorprendido su simplicidad y efectividad.



Realizamos la instalación de los paquetes necesarios:
  • # aptitude install gtk-recordmydesktop recordmydesktop ffmpeg
"recordmydesktop" graba lo que ocurre en el escritorio y el audio del micrófono "encapsulando" tanto el audio y el video en formato ".ogv".

Internamente, esta "cápsula" contiene los flujos con formato "theora" para el video y "vorbis" para el audio.

Desafortunadamente, no todos los fabricantes de software impulsan sus desarrollos por la efectividad y adecuada implementación de los codecs. En este sentido, nos vemos en la necesidad de transformar los videos generados por "recordmydesktop" en formato ".ogv" a otro formato más "comercial" como por ejemplo ".mp4".

El encapsulamiento ".mp4" no funciona mal, lastimosamente le ha quitado terrreno en la penetración al mundo comercial a ".ogv".

Entonces, para transformar de encapsulamiento ".ogv" a ".mp4" me he apoyado en la fabulosa herramienta "ffmpeg".



Nuestro siguiente paso es realizar la instalación del programa "ffmpeg", con las instrucciones de costumbre:
  • # aptitude install ffmpeg
El repositorio que estoy utilizando para descargar "ffmpeg" es el ofrecido por Christian Marillat (www.debian-multimedia.org)

Ahora bien, supongamos que hemos grabado un archivo de un videotutorial con "recordmydesktop" llamado out.ogv.

Para transformarlo a ".mp4" conformado por el flujo de video en formato "mpeg4" y audio "mp3", he utilizado la siguiente instrucción:
  • $ ffmpeg -i out.ogv -vcodec mpeg4 -acodec libmp3lame -scodec copy -s 800x600 -ac 1 out.mp4
El tamaño del archivo resultante "out.mp4" ha sido menos de la mitad del original "out.ogv". Ideal para publicarlo en youtube.

Básicamente lo que he hecho es además de modificar la codificación original del video y audio del archivo original, reduje el tamaño de 1024x768 que era la resolución original que tenía en mi pantalla a 800x600 que se ve bastante bien. Por otra parte, cambié de dos canales de audio (esteéreo) a uno solo.


Esto me ha sido suficiente para obtener videos de excelente calidad en mis videotutoriales para publicarlos en youtube.

Espero sea de utilidad.

José Gregorio


Fuentes:
  1. http://recordmydesktop.sourceforge.net/rug/app_a.php
  2. man ffmpeg

viernes, 9 de julio de 2010

Debian Lenny: Código PHP + APACHE2 + DAV


El uso de DAV para gestionar los archivos de sitios web en servidores como Apache2 y Ligthy es una combinación muy útil y más segura que FTP.

El problema que se me ha presentado consiste en que tratando de descargar los archivos PHP de uno de los sistemas publicados, los archivos se descargaban con el resultado de la ejecución de los archivos PHP, es decir, código HTML.

En realidad, lo que debía ocurrir era que se descargaran los archivos crudos con el código PHP.

Luego de investigar un poco, conseguí esta información en el portal de APACHE

"
One common request is to use mod_dav to manipulate dynamic files (PHP scripts, CGI scripts, etc). This is difficult because a GET request will always run the script, rather than downloading its contents. One way to avoid this is to map two different URLs to the content, one of which will run the script, and one of which will allow it to be downloaded and manipulated with DAV."

Entonces, lo que hice fué modificar el archivo relacionado con el virtualhost de la siguiente manera:
  • vim /etc/apache2/sites-available/sitioweb
    ...
    Alias /fvtenis "/var/www/sitio/aplicacion/"

    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all

    ...
  • Y agregué las directivas correspondientes al acceso vía DAV pero con un alias diferente:

    Alias /sitio-fuentes "/var/www/sitio/aplicacion/"

    Dav On
    ForceType text/plain
    AuthType Basic
    AuthName "SITIO: Archivos fuentes."
    AuthUserFile /etc/apache2/dav_auth/dav-auth-claves
    Require valid-user

Como se puede apreciar, hay varios trucos que aplican acá:

En primer lugar, se emplea la directiva "directory" para ofrecer los archivos en los directorios que deben ser ejecutados por el compilador de PHP.

En segundo lugar, se creó un alias llamado "sitios-fuentes" que define la parte final del url para acceder con el cliente DAV.

En mi caso utilizo "cadaver" y la forma de conectarme es:

cadaver http://miweb/sitio-fuentes/

En tercer lugar, obligo a que la entrega de los archivos sea en texto plano a través de la directiva "ForceType".

En cuarto lugar, empleo un archivo de autenticación DAV llamado "dav-auth-claves" creado con la herramienta "htpasswd".

Luego de estos cambios, pude verificar que la descarga de los archivos a través de "cadaver" empleando el comando "get" efectivamente venían con el código PHP completo.

Espero sea de utilidad!

José Gregorio.

Fuentes consultadas:

1. http://httpd.apache.org/docs/2.0/mod/mod_dav.html#complex

miércoles, 12 de mayo de 2010

WIZIQ + LATEX + BEAMER

Recientemente vengo trabajando bastante con sistemas de conferencia en línea tales como Elluminate, Openmeeting y Wiziq.

Este tipo de sistemas son de gran utilidad para explotar a través de Internet la capacidad de realizar conferencias a distancia ya bien sea para reuniones laborales como para desarrollar procesos de educación a distancia.

Éste último escenario es el que me ha motivado a escribir este artículo.

Entre las funciones importantes que ofrecen los sistemas de videoconferencias en línea está la posibilidad de subir presentaciones con el propósito de orientar el tema del discurso.

En mi caso, llevo bastante tiempo que no realizo presentaciones con Openoffice, ni hablar de Micro$oft Office. No obstante, los criterios mencionados en esta publicación aplican a cualquier herramienta de producción de presentaciones.

En este sentido, tengo la fortuna de utilizar la combinación libre "LATEX+BEAMER", que me permite crear presentaciones con una calidad profesional, correctamente estructuradas y visualmente impresionantes.

¿Cual es el problema?

Como ya mencioné, la función de poder subir presentaciones en los sistemas de videoconferencias en línea es crucial para orientar el discurso de la presentación.

El problema que se presenta en "wiziq.com", es cuando se sube un archivo ".pdf" generado con "latex+beamer" que contiene la presentación, el tamaño de la hoja puede ser muy pequeño y dificultar la visualización de las láminas.

La solución

Entonces, realicé unos pequeños ajustes en el preámbulo del documento en latex para resolver esta situación.

A continuación los cambios en el preámbulo:

\documentclass[17pt]{beamer} %Establece el tamaño de la letra a 17puntos.
\usepackage[spanish]{babel}
\usepackage[utf8x]{inputenc}
\usepackage{graphicx}
\usepackage{extsizes} %Permite que el tamaño de la letra se incremente hasta 17pt.

\mode
{
\usetheme{Frankfurt} %Tema de la estructura utilizado para la presentación.
\usecolortheme{beaver} %Tema de la combinación de colores para la presentación.
\setbeamercovered{transparent}
}

\usepackage{geometry}
\geometry{a5paper, landscape} %Modifica el tamaño y orientación de la lámina.

\title{Título de la presentación}
\author{Autor de la presentación}
\institute[Localización de la presentació]
{
Nombre de la institución \\
Zona \\
Dependencia
}
\date{\today}

\begin{document}

\frame{\titlepage}

\begin{frame}
\tableofcontents
\end{frame}

\section{TÍTULO DE LA SECCIÓ}

\subsection{Título de la subsección}

\begin{frame}
\frametitle{Título de la lámina}
Desarrollo de la lámina ...
%Así se puede incluir un gráfico: \includegraphics[scale=0.50]{drive.png}
%Así se puede crear una caja de texto:
%\begin{block}{Informe para la Planificación del proyecto RI-USB}
%TEXTO
%\end{block}
\end{frame}

\end{document}

Este cambio permitió que cuando se compilara el documento "pdflatex presentacion.tex", el resultado final fuera un documento en formato PDF que se visualiza perfectamente en "wiziq.com" en un monitor con una pantalla con una resolución de 1024x768.

Comentarios finales

Es importante destacar que el uso de archivos en formato PDF, elimina cualquier efecto de animación que pudiera haber tenido la presentación.

El proceso de aplicar efectos de animación para archivos con formato PDF es muy sencillo con el uso de un programa llamado "IMPRESSIVE". Sin embargo, no es posible aplicar estos efectos durante la presentación en formato PDF en WIZIQ.COM.

Espero sea de utilidad.

Éxitos!

Referencias:
  1. ftp://ftp.tex.ac.uk/tex-archive/macros/latex/contrib/geometry/geometry.pdf
  2. http://www.hartwork.org/beamer-theme-matrix/
  3. http://old.nabble.com/Default-page-size-td12585782.html
  4. http://www.informatik.tu-darmstadt.de/KP/lehre/ws0506/sem/beameruserguide.pdf
  5. http://www.eecs.harvard.edu/~mdw/proj/texslides/

domingo, 2 de mayo de 2010

Debian Lenny: Dos teclados al mismo tiempo


Recientemente me topé con la necesidad de poder configurar un teclado adicional en mi laptop HP-COMPAQ nx6115.

Este laptop es mi caballo de batalla y afortunadamente viene con tres puertos USB. Precisamente a través de uno de estos puertos es que instalaré un teclado adicional marca Genius modelo KB-06XE (K639).

Como no me gusta estar usando teclados deficientemente configurados, es decir, cuyas etiquetas de las teclas dicen una cosa y "de memoria" las presiono para que hagan otras, entonces decidí que cada uno de los teclados debía mantener simultáneamente sus layouts correspondientes.

En mi caso, el teclado del laptop tiene una configuración latinoamericana (latam) y el teclado Genius tiene otra configuración en español (es).

Luego de investigar un poco, encontré que una vía era a través de "evdev" que es un controlador de entrada para el servidor X11 X.ORG. Este controlador intermedio, permite que los periféricos de entrada se comuniquen de una forma directa con los controladores expuestos por el kernel.

Entonces ya tenía prácticamente esta batalla ganada ya que sabía que se trataba de una configuración en el X.ORG en donde especificara cómo manejaría cada uno de los teclados considerando sus comportamientos particulares.

Para ello edité el archivo "/etc/X11/xorg.conf" de la siguiente manera:

1. En la sección "Server Layout" agregué la definición de un nuevo dispositivo:
  • Section "ServerLayout"
  • Identifier "aticonfig Layout"
  • Screen 0 "aticonfig-Screen[0]-0" 0 0
  • InputDevice "TecladoUsbGenius" "SendCoreEvents"
  • EndSection
2. Agregué una opción en "ServerFlags" que en mi caso no existía y la creé:
  • Section "ServerFlags"
  • Option "AutoAddDevices" "false"
  • EndSection
3. Agregué la configuración del nuevo teclado (Genius):
  • Section "InputDevice"
  • Identifier "TecladoUsbGenius"
  • Driver "evdev"
  • Option "Protocol" "evdev"
  • Option "XkbRules" "xorg"
  • Option "XkbModel" "pc105"
  • Option "XkbLayout" "es"
  • Option "Device" "/dev/input/event2"
  • EndSection
Se puede apreciar tres detalles importantes:
  1. Se indica el "driver" que administrará las "señales" de este dispositivo.
  2. El layout para este teclado es "es" que significa español.
  3. El dispositivo reconocido por el sistema operativo está identificado como el evento "event2".
Para saber a qué evento está asociado el teclado ejecuté el siguiente comando:
  • jgdu-laptop:/etc/X11# ls -l /dev/input/by-id/
  • total 0
  • lrwxrwxrwx 1 root root 9 2010-05-02 22:13 usb-04f3_0103-event-kbd -> ../event2
  • lrwxrwxrwx 1 root root 9 2010-05-02 19:41 usb-Cypress_Sem_PS2.USB_Browser_Combo_Mouse-event-mouse -> ../event1
  • lrwxrwxrwx 1 root root 9 2010-05-02 19:41 usb-Cypress_Sem_PS2.USB_Browser_Combo_Mouse-mouse -> ../mouse0
Como se puede apreciar, el teclado Genius está asociado al "event2".

Finalmente, reinicié el servidor X presionando "CTRL+BackSpace" y ...VOILÁ! ... quedó configurado el teclado Genius conectado vía USB.

Lo interesante de todo esto es que el comportamiento del teclado del laptop quedó exactamente igual que antes y de manera simultánea pude escribir tanto en un teclado como el otro respetando el layout de cada uno de ellos.

Espero sea de utilidad.

Éxitos!

José Gregorio.

Referencias
  1. http://es.wikipedia.org/wiki/Evdev
  2. http://www.xfree86.org/current/XKB-Config2.html
  3. https://doc.ikw.uni-osnabrueck.de/node/3172