8.14.2010

Shell Scripts: Sencillo script con shutdown.

Muchas veces me ha sucedido que tengo que retirarme del computador pero se están realizando tareas en el mismo por lo que no se puede apagar. Obiavemente dejar prendido el computador indefinidamente no es una opción sensata por el malgasto de energía que eso significa. Lo que si se puede hacer es programar tiempo u hora de apagado en el cual sabemos que el equipo ya estará desocupado.

6.18.2010

Subtitulando en linux con SubtiteEditor

Subtitleeditor es un programa de código abierto para distribuciones Linux basado en GTK+2 que aunque a primera vista parece simple y limitado ofrece todo lo que podamos necesitar para el tema de subtítulos. Con el puedes abrirlos, crearlos, editarlos, traducirlos, darle estilos, tiempos entre otras cosas útiles y necesarias.

A su gran capacidad de manejo de subtítlos, hay que añadir su buen soporte para los distintos formatos, para el caso usaremos uno de los más usados: ASS (Advanced Substation Alpha). También destaca que al trabajar con el framework Gstreamer, el programa es capaz de abrir directamente cualquier formato de video del que tengamos soporte en el sistema (MPEG-1-2-4, H264, DV, etc..) y aún dentro de cualquier contenedor (Xvid, MKV, AVI, Divx, etc..) Y gracias a su ventana de forma de onda, podemos ver el audio del video y trabajar los tiempos de los subtítulos directamente sobre el, ya explicaré esto más tarde ;)

4.20.2010

Modelando un ajedréz en Blender (parte 3: terminando el ajedrez)

En el anterior posteo sobre el modelado del peón, vimos que el mismo método sirve para el resto de piezas, excepto una que es la pieza del caballo. Para realizarla en este caso use una manera simple de modelado y se puede decir que quedó un tanto aceptable :D Para los fines de esta guía, no me detendré en el modelado de la cabeza del caballo, ya vendrá un mejor ejemplo y más detallado en un futuro.

Aquí les pongo un par de capturas del modelado para que muestren un poco el proceso.




Ahora que tenemos todas las piezas lista lo que haremos es insertar el tablero que creamos anteriormente, para ello insertaremos el objeto que corresponde al tablero del archivo donde lo guardamos. Mediante la opción Append or Link en el menu File nos dirgimos a la ubicación del archivo .blend.


Al dar click en el archivo tablero.blend se abrira su contenido y se mostrarán diferentes partes del mismo, lo que nos interesa en este momento es el objeto tablero así que entramos a Object y dentro de esto seleccionamos Plane.001 (este es el nombre predeterminado, puede tener el que nosotros queramos y en realidad es muy recomendable nombrar los objetos para su facil indentificación) y le damos click en Load Library.


Nuestro tablero debería estar ahora en el espacio 3D. Lo que haremos ahora es agrandarlo (S) y moverlo (G) un poco mas abajo para que quede debajo de todas las piezas. Nos posicionamos en la vista superior (NUNMPAD7) y vamos colocando las piezas en sus respectivos puestos.


Lo siguiente es duplicar las piezas dobles (SHIFT+D) y ponerlas en su sitio.


Ahora seleccionamos todas piezas y de nuevo las duplicamos para ponerlas al otro lado. SHIFT+D y las movemos al otro lado del tablero, como están en la dirección contraria, primero las colocamos bien encuadradas y las rotamos (R) 180 grados. De esta manera tendríamos ya todas las piezas en su sitio listas para ser coloreadas :)


Para no complicarnos mucho, en esta ocasión usaremos las texturas (y colores) que ya tiene el tablero, es decir el blanco y el negro. Para ello, el camino largo que usaremos por ahora es el de ir seleccionando piezas por piezas, nos dirigimos al panel de texturas (Shading) F5 y en la ventana de Links and Pipeline elegimos el material que queramos de la lista desplegable debajo de Link to Object.

Así hasta tener todas las piezas con su textura/color correspondiente. Si no tenemos todavía una fuente de luz, la añadimos SPACEBAR --> Add --> Lamp y elegimos el tipo de lámpara que queramos. Nos damos un poco de trabajo en colocar la luz y la cámara y estamos listos para hacer un render.

Este es el resultado que he obtenido de momento.

Jugando un poco más con la cámara y la fuente (o fuentes) de luz se pueden lograr mejores resultados en la captura de la escena. Sin embargo el ajedrez no es muy real que digamos, pero eso cambiará al dar a los objetos verdaderas texturas como veremos en futuras entregas ;)

Espero que haya sido de utilidad esta pequeña serie de artículos sobre modelado en Blender, la versión usada es la 2.46 pero sin duda sirve tanto en versiones anterior (no muy anteriores) así como en las posteriores (la actual es la 2.48 y la 2.5a)

Como siempre los comentarios son bienvenidos.

Saludos!

4.15.2010

Modelando un ajedréz en Blender (parte 2: el peón)

En esta segunda parte del modelado de un ajadrez en Blender veremos como crear la primera pieza, el peón, mediante unos pocos pasos y una muy útil herramienta de modelado llamada Spin. Así que sin más empezemos.

Recordando un poco la nomenglatura y abreviaciones:
- RMB (Right Mouse Button) Click derecho del ratón.
- LMB (Left Mouse Button) Click izquierdo del ratón.
NUMPAD# Número indicado del teclado numérico.

Empezamos cargando la imagen que usaremos como guía mediante el menu View --> Background Image, en este caso la imagen contiene las diferentes piezas del ajedrez.


Si deseamos podemos agrandar y/o posicionar la imagen lo que mejor nos convenga en el cuadro de diálogo que aparece al cargar la imagen, generalmente se suele aumentar su tamaño y esto lo hacemos mediante el control size, la opcion blend ajusta el nivel de transparencia de la imagen y con XOffset y YOffset ajustamos su posición.


Nos colocamos en la vista frontal mediante NUMPAD1 y añadimos un plano SPCBAR --> Add --> Mesh --> Plane. Lo rotamos 90° en el eje Y presionando R, luego Y, luego el número 90 y por último le damos enter.


Presionamos A para deselcionar todos los vértices para luego seleccionar 3 de los cuatro mediante RMB + SHIFT hasta tener los 3 vértices seleccionados. Presionamos X y elegimos Vertices para eliminar los vértices que acabamos de seleccionar. Nos quedamos con un solo vértice el cual lo seleccionamos y con G lo movemos hacia la mitad de la base del peón. Luego con SHIFT+S --> Cursor -> Selection colocamos el cursor pivote en el mismo lugar que el vértice.


Ahora mediante CTRL+LMB vamos colocando vértices por el contorno del peón segun queramos pero solo por uno de sus lados, hasta llegar a la parte superior e igualmente lo dejamos en la mitad. Para asegurarnos que los vértices inicial y final se encuentran a la misma altura en su eje X presionamos N y verificamos que el valor de Vertex X se igual para los dos.

Ahora seleccionamos el primero y último vértice, y mediante SHIFT+S --> Cursor -> Selection hacemos que el pivote se coloque en medio de los dos. Luego con A elegimos todos los vértices.


Nos colocamos en la vista superior con NUMPAD7, luego F9 para obtener el panel de edición. En las herramientas de malla (Mesh Tools) tenemos la opción Spin, debajo de ella los grados que queremos girar, damos click en el cuadro y escribimos 360 seguido de enter. Luego presionamos el botón de Spin para obtener nuestro peón :D


Para verlo mejor, volvemos a la vista frontal (NUMPAD1) y ahora ajustaremos un detalle importante. Para no tener errores en la malla debemos eliminar los vértices duplicados que se crearon el realizar el giro. Para eso volvemos a seleccionar todos los vértices presionanado dos veces A y lueo con la tecla W elegimos la opción Remove Doubles. Nos aparecerá un pequeño diálogo indicando la cantidad de vértices eliminados y le damos enter. Presionamos Z para verlo en modo sólido y TAB para salir del modo edición.


Con esto tenemos nuestra primera pieza!
Usando el mismo método podemos crear el resto de piezas del juego como son la torre, el alfíl, el caballo, el rey y la reina. Manos a la obra! :D

En la siguiente parte veremos cómo colocar nuestras piezas en el tablero que creamos en la primera entrega de esta guía.

Como siempre los comentarios son bienvenidos.

Saludos!

4.01.2010

Configurando Evolution con cuentas Gmail

Algo que suele olvidarse en la memoria por que se lo hace una sola vez, meses después cuando queremos configurar un nuevo Evolution se nos olvida. Estos son los pocos y sencillos pasos para configurar las cuentas de Gmail en Evolution.

  • Verificar que en nuestra cuenta de gmail esté habilitado el servicio POP:
  • Configuracion --> Reenvío y correo POP --> Habilitar POP
  • Abrimos Evolution y añadimos una nueva cuenta: 
  • Editar --> Preferencias --> Cuentas de correo --> Añadir
A continuación llenamos con la siguiente información:

  1. Dirección de correo: nombre_de_usuario@gmail.com
  2. Recepción de correo:
  3. Tipo de servidor: POP
  4. Servidor: pop.gmail.com:995
  5. Usuario: nombre_de_usuario
  6. Usar conexión segura: Encriptación SSL
  7. Tipo de autenticación: Contraseña
  8. Envío de correo:
  9. Tipo de servidor: SMTP
  10. Servidor: smtp.gmail.com:465 (el servidor requiere autenticación)
  11. Usar conexión segura: Encriptación SSL
  12. Autenticación: PLAIN
  13. Usuario: nombre_de_usuario
Listo, una vez añadida la cuenta, le damos click en enviar y recibir, para descargar los correos….

Saludos!

11.11.2009

Modelando un ajedréz en Blender (parte 1: el tablero)

Para las personas que no conocen todavía a Blender, basta decir que es el programa insignia del software libre en lo que respecta a todo lo que sea 3D tanto estático como animado; además en los últimos lanzamientos se a avanzado bastante en el tema de video y el motor de juegos. Si le sintersa más a fondo el tema, les recomiendo que empiecen por su pagina oficial ya que ahí se dispone de una extensa documentación y en constante actualización.

La siguiente serie de publicaciones más que una guía sobre el uso de blender, pretenden ser ejemplos prácticos que nos pueden ayudar en el uso diario de este fenomenal programa, pero agrupados en un ejemplo común que en este caso sería un tablero de ajedrez. También se dá por hecho que ya se tiene un mímino de conocimiento del programa por lo que se usa directamente su terminología. Poniendo énfasis en una dinámica sencilla, el procedimiento tiene como uno de sus puntos centrales algo que aprendí directo de la guía oficial de Blender: una mano en el teclado, otra en el ratón; es por esto que constantemente se usarán los atajos del teclado (hotkeys) para llevar a cabo los diferentes pasos.

En esta primera parte, para no complicarnos desde el inicio :P realizaremos el tablero de nuestro futuro ajedrez. Así que manos a la obra!!

Al iniciar el programa tendremos una pantalla como la siguiente, con click derecho (RMB por sus siglas en ingles) seleccionamos el cubo que viene por defecto y luego le damos a SUPR (suprimir) e intro para aceptar.



Ahora nos posicionamos en la vista superior mediante NUMPAD 7 para crear un plano presionando: Spacebar (barra espaciodora) --> Add (añadir) --> Mesh (malla) --> Plane (plano)



Con la rueda del ratón podemos acercarnos o alejarnos según nos resulte más cómodo para trabajar. Ahora bien, un tablero de ajedrez tiene una división de 8x8. Para realizar esto debemos entonces dividir el plano en 7 partes. Si no presionamos nada el plano debería estar selecionado, sino es así lo hacemos con RMB.

Ahora con la tecla TAB (tabulador) cambiamos a modo de edición y presionamos la tecla w la cual nos muestra diferente opciones de edición, la que nos interesa por ahora es la de subdivide multi, la selecionamos y nos aparece un diálogo donde indicamos la cantidad de subdiviciones que queremos realizar, ya sea con las flechas y directamente introduciendo el valor, ponemos 7 y le damos intro.


Ya tenemos el plano con las divisiones nescesarias. Lo que toca hacer ahora es darle los colores o las texturas alternadas que caracterizan al tablero. Por esta vez solo vamos a cambiar de color y así no desviarnos del tema con el texturizado :)

Cambiamos a modo de selección de caras mediante CTRL+TAB+3 o selecionándolo desde el botón que muestra la imagen:



Presionamos la tecla a para deseleccionar todo, luego con RMB y manteniendo presionado SHIFT vamos seleccionando alternadamente las caras como se aprecia en la imagen:



Por comodidad y buena práctica es conveniente separar las partes a las que vayamos a dar texturas o colores individuales, sobre todo para cuando tengamos varios objetos, no tener dificultad para elegirlos a cada uno y sus partes, por ahora no se ve tanta diferencia pero más adelante me darán la razón :P

Una vez seleccionadas las caras, mediante la tecla p elegimos separate para separar las caras elegudas de las otras, con esto tendremos las dos partes del objeto tablero:



Podemos conprobarlo saliendo del modo edición (TAB) y seleccionando uno cuadrado y luego el otro para ver como cambia la selección. Aprovechando que estamos en modo objeto, vamos a dar el color deseado a la cuadrícula. Presionamos F5 para ir a los paneles de tono (shading) o Material como comunmente se los conoce y veremos que solo tenemos un panel Links and Pipeline donde presionamos Add New. Esto hará que aparescan varios nuevos paneles para configurar nuestro material. Lo que nos intereza ahora son los valores RGB del objeto, es decir su color :)

En la imagen siguiente se señala las barras de valores RGB que debemos cambiar. Poniendo los tres valores a cero obtendremos el color negro, luego selecionamos la otra parte del tablero, añadimos un nuevo material y colocamos los valores RGB a 1 para obtener blanco:



Por último vamos a darle grosor al plano para que luzca más real. Seleccionamos (RMB) la una parte y cambiamos a modo de edición (TAB), luego mediante NUMPAD 1 cambiamos a la vista frontal, seguramente veremos únicamente una línea indicando el objeto seleccionado ya que este no tiene grosor más que de un pixel ;) Nos aseguramos de tener todo el objeto seleccionado presionando a una vez para deseleccionar todo y luego nuevamente a para selccionar todo. Con la tecla e ejecutamos la función extrude y elegimos region como se muestra en la imagen, desplazamos el ratón hasta obtener el grosor que desemos o directamente introducimos el valor númerico.


Salimos del modo de edición (TAB), cambiamos a la vista superior (NUMPAD 7) y seleccionamos la otra parte del tablero; nuevamente nos dirigimos a la vista frontal (NUMPAD 1) volvemos a modo edición y realizamos la misma acción de selccionar todo (dos veces a) y la extrucción, con lo que tendríamos casi listo nuestro tablero:



El paso final sería acomodar la cámara y la lámpara para poder renderizar la imagen. Explicar eso queda fuera de este ejercicio pero a modo de ayuda les comneto que con NUMPAD 0 se obtiene la vista de cámara y con F12 realizamos un render de lo que vé la cámara. Luego de un poco de juego acomodando la luz y la cámara, esto fue lo que obtuve:



Sin duda nada del otro mundo, pero poco a poco iremos mejorando nuestro ajedrez, así que paciencia y perseverancia jeje.

Todo comentario es bienvenido y mejor aún si comparten con la comunidad sus experiencias.

Saludos!

10.16.2009

Compilando un kernel a lo debian en 10 pasos.

Muchas veces nos encontramos en la situación que el kernel de nuestra distribución GNU/Linux no es el que deseamos, ya sea por funciones nuevas (como el soporte para USB 3.0 en el último kernel) o porque simplemente queremos tener un kernel más a medida de nuestra máquina sin tener que cargar un sin número de módulos y drivers de dispositivos que no tenemos.

En Debian tenemos la posibilidad de compilar el kernel y generar las cabeceras y la imagen como paquetes DEB, lo cual nos ahorra cierto trabajo manual además de ser más seguro :) Así que manos al teclado:

0) Instalamos los paquetes nescesarios para la tarea:

apt-get install build-essential libncurses-dev libncurses5 kernel-package fakeroot
1) Creamos una carpeta donde trabajar:

mkdir /tmp/mikernel
cd /tmp/mikernel
2) Descargando las fuentes nescesarias:

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-source-2.6.30.tar.bz2
wget http://www.kernel.org/pub/linux/kernel/v2.6/patch-2.6.30.9.bz2
3) Descomprimimos las fuentes, el parche, e ingresamos a la ubicación de las fuentes:

tar xjf linux-source-2.6.30.tar.bz2
bunzip2 -d -k patch-2.6.30.9.bz2
cd linux-source-2.6.30
4) Aplicamos el parche:
patch -Np1 -i ../patch-2.6.30.9
5) Copiamos el archivo de configuraci{on del kernel actual para partir de una base que sabemos funciona bien:
cp /boot/config-'uname -r' ./.config

  • donde 'uname -r' es la versión del kernel actual, si el comando no funciona debemos escribir el nombre de archivo completo, por ejemplo config-2.6.26.6
6) Ejecutamos el programa de configuración del kernel:
make menuconfig
Al tener menuconfig cargado, seleccionamos la penúltima opción para cargar el archivo config que copiamos anteriormente.
Luego realizamos todos los cambios que queramos y por último guardamos la configuración en el mismo archivo .config

7) Compilamos el kernel:
make-kpkg --initrd --append-to-version=.10 --revision=host.custom kernel_image kernel_headers
  • donde --append-to-version y --revision son opcionales, la primera añade al número de versión del kernel el número que elijamos si mantenemos diferentes versiones; y el segundo añade el nombre que elijamos también para motivos de administración.
Al terminar luego de un buen rato, dependiendo de la cantidad de cosas que deban compilarse y de las características de la máquina, obtendremos dos paquetes .deb en el directorio superior.

8) Subimos un nivel y procedemos a instalar el nuevo kernel:
cd ..
dpkg -i *.deb

  • ojo! el * significa que instalará TODOS los archivos .deb que se encunentren en la ubicación, así que debemos estar seguros que solo están los dos pertenecientes al kernel: linux-image-2.6.30.10_host.custom_i386.deb y linux-headers-2.6.30.10_host.custom_i386.deb
9) Una vez completada la instalación, tendremos una nueva entrada en nuestro GRUB perteneciente a nuestro nuevo kernel, para confirmar que todo haya ido de maravilla, reiniciamos con este kernel:

init 6
10) Si todo ha salido bien, debemos estar en nuestro escritorio de siempre, pero con el nuevo kernel. Para comprobar que estemos usándolo:


uname -r
lo que nos debe dar como resultado la versión que hemos compilado, como 2.6.30.9.10


Y eso es todo :D El verdadero trabajo de todo esto es la dedicación que le pongamos al decidir que va y que no en el kernel, la ayuda dentro de menuconfig suele ser bastante concisa, sobretodo al momento de si se trata de algo nescesario o algo realmente opcional.

Conforme vaya aprendiendo más detalles hacerca de este largo pero fructífero proceso, seguiré publicando sobre esto :)

Espero que les sea de ayuda.

Saludos!

Comando del día: dominios de un servidor WHM desde linea de comandos

Si se quiere obtener los dominios y subdominios (no dominios adicionales o addon domains ) por usuario propietario (resellers): whmapi1 li...