Mostrando entradas con la etiqueta Ubuntu. Mostrar todas las entradas
Mostrando entradas con la etiqueta Ubuntu. Mostrar todas las entradas

miércoles, 22 de abril de 2009

Aprender Python divirtiéndose

Aprender a programar debe ser divertido!, para adultos y niños por igual.

Este es el primero de una serie de publicaciones que buscan introducir al mundo de la programación específicamente en Python a personas que tengan interés.
Para lograr el objetivo nos apoyaremos en la herramientas RUR-PLE



RUR-PLE es un entorno diseñado para ayudarle a aprender la programación utilizando el lenguaje Python. Dentro de un mundo artificial en el que un robot puede ser programado para realizar diversas tareas. Usted también será capaz de aplicar sus habilidades de programación.

Aprender a programar es como aprender a tocar un instrumento musical: hay que hacerlo, y no simplemente leer sobre él.

Unas de las limitaciones que encontraremos en este post, es que estaremos basándonos en el sistema operativo Linux/Debian. Asumiendo que ya tienen instalado Linux/Debian o alguna de las distribuciones de Linux Basadas en él (Ubuntu, Kubuntu...) necesitaremos lo siguiente:


  • wxPython - (el paquete se llama python-wxgtk2.8, para instalar abra una consola y ejecute)

aptitude install python-wxgtk2.8


  • RUR-PLE - (descargar el programa desde aquí, luego descomprimirlo, desde consola podría ser así)

unzip rurple1.0rc3.zip

Para ejecutar el programa:
cd rurple1.0rc3

python rur_start.py

Si todo va bien veremos esto:

[gallery]

Para interactuar con el robot existen un grupo de instrucciones o funciones:

  • Acciones

    • move()

    • turn_left()

    • pick_beeper()

    • put_beeper()

    • turn_off()

  • Pruebas (test)

    • front_clear()

    • facing_North()

    • carries_beepers()

    • next_to_a_beeper()

Por ahora nos limitaremos a ver como se ejecuta el programa y utilizaremos dos acciones; mover un paso el robot (move()) y apagar el robot (turn_off()), ver el siguiente video.



En la próxima entrega, veremos como a partir de estas funciones podemos empezar a programar en Python de una forma divertida!.

lunes, 10 de noviembre de 2008

Clonar maquinas con Linux

Existen varios programas que pueden hacer este trabajo como (g4l, clonezilla...), sin embargo yo estaba embarcado en hacerlo para conocer en realidad que es lo que necesitaba para clonar un disco sin necesitar programas especializados.

En este caso lo que quería era tener un clon y replicarlo en grupo de maquinas totalmente iguales, las maquinas tenían ya instalado Linux/Debian Lenny totalmente configurado y me dispuse a clonar el disco de la siguiente manera.

Requerimos:

  • Ubuntu ó cualquier distribución Live CD

  • Maquina (origen) totalmente configurada y funcional

  • Dispositivo de almacenamiento (en mi caso utilicé un disco externo de un TeraByte USB) ó Conexión a una Red Interna.

  • Comandos dd, nc y gzip.

Pasos:

  1. Botear la maquina que ya esta configurada y queremos clonar
    con el LiveCD.

  2. Abrir una consola y cambiarse a root "sudo su".

  3. Identificar que dispositivo de disco queremos clonar, en mi caso es "sda"

  4. El comando que necesitamos utilizar para clonar el disco es "dd", para obtener la ayuda sobre este comando se puede ejecutar "man dd". Básicamente es un comando que permite tomar como entrada un fichero y copiarlo a otro utilizando varias configuraciones.

  5. En este momento podemos elegir entre:

Clonar a un dispositivo local:

conectar el dispositivo y observar en que dirección se monta, en mi caso es /media/usbdisk/aox:


Generar la imagen
#dd if=/dev/sda | gzip | dd of=/media/usbdisk/aox/clon.img.gz

Clonar la imagen a una maquina
#gunzip < /media/usbdisk/aox/clon.img.gz | dd of=/dev/sda

Clonar por la red local:

Maquina origen
#dd if=/dev/sda | gzip | nc 192.168.x.x 12345

Maquina destino
#nc -l -p 12345 | gunzip | dd of=/dev/sda

Generar la imagen en un dispocitivo local puede tardar 1 hora para un disco duro de 80Gb y para clonarlo unas 3 Horas, para clonar en red local puede tardar el proceso unas 3 a 3:30 horas.