miércoles, 8 de septiembre de 2010

Instalando Debian desde un dispositivo USB (Pendrive)

Me encontraba como siempre instalando y probando cosas en mi mini-laptop (netbook) y desde hace tiempo tenia ganas de instalarle Debian, ahora que Squeeze se encuentra "congelada" me dispuse a hacerlo pero surgió la duda: Como instalar Debian si la mini no tiene lector de CD? antes le había instalado Ubuntu-Netbook Remix y no tuve problemas en instalar desde un pendrive, bajando el ISO y usando el "creador de discos de inicio" que trae Ubuntu y listo... así que me puse a indagar como sería la cosa acá en Debian y esto fue lo que encontré (e hice):

1) Descargamos una imagén ISO del instalador de Debian ( CD netinst en este caso) de:
http://www.debian.org/devel/debian-installer/

2) Descargamos un archivo boot.img.gz desde :
http://cdimage.debian.org/debian/dists/squeeze/main/installer-i386/current/images/hd-media/

3) Copiamos este archivo a la memoria USB con el comando:
zcat boot.img.gz>/dev/sdX
(donde /dev/sdX es el dispositivo USB, por ejemplo: sdb pero no sdb1 -> muy importante!)
Nota: zcat es "familia" de gunzip (así que no te preocupes que normalmente está instalado) pero envía su salida a la salida estándar.

4) Montamos el dispositivo USB para copiar el ISO de debian:
mount /dev/sdX /mnt   (igual usamos sdb pero no sdb1, por ejemplo)
cp debian-testing-i386-netinst.iso /mnt
umount /mnt

5) Ahora booteamos por el dispositivo USB y arranca la instalación de Debian.... Listo!

Limitaciones de este método:
Solo permite manejar el dispositivo USB hasta  un tamaño de 256 Mb, aún si el pendrive es de mayor capacidad, útil para net installer (que normalmente son de 150-175 mb) pero no para CD completos (600-650 mb).
Para mayor información ver sección 4.3.2 Guia Instalación de Debian, en la cual, como podrán ver existe otro método más flexible, pero ese es tema para otro post...

miércoles, 1 de septiembre de 2010

Actualizando Gwibber con soporte para OAuth :: Ubuntu Maverick

Como es sabido por la comunidad "twittera" el día de ayer se venció el plazo para que todos los clientes twitter actualizararan su sistema de autenticación y autorización básico, al OAuth, brindando así mayor seguridad al usuario en cuanto al manejo de su contraseña. Esto no nos agarró por sorpresa ya que fue anunciado por la gente de twitter con anticipación , llamado por algunos, incluyéndome, "Twitter OAuthpocalypse".
Pues bien, hoy me encontraba instalando y probando Ubuntu Maverick 10.10 (Alpha3) y probé Gwibber (la versión que originalmente se instala es la 2.31.3) para usar mis cuentas de microblogging de Twitter e Identi.ca, funcionó bien con identi.ca pero con twitter... nada... no me mostraba los mensajes de twitter y por allá me permitió postear una vez a twitter.

Actualicé mi sistema (sudo aptitude safe-upgrade, después les cuento lo del aptitude...), me actualizó a la versión 2.31.90 y nada.... Pregunté a los panas de las redes sociales y nada, por lo que me puse a "googlear" y encontré en Launchpad este PPA (definitivamente una maravilla estos PPA's = Personal Package Archives) de ubuntu-desktop (https://edge.launchpad.net/~ubuntu-desktop/+archive/ppa) con la versión 2.31.91 de Gwibber recien sacada el horno! (ayer 31/08/2010) que corrige este problema, ver ChangeLog:
gwibber (2.31.91-0ubuntu1) maverick; urgency=low
* New upstream release
- Port twitter service to OAuth, basic auth is no longer supported (LP: #627565).
...
Así que inmediatamente abrimos una consola y tipeamos:
sudo apt-add-repository ppa:ubuntu-desktop/ppa
sudo apt-get update
sudo apt-get upgrade
gwibber-service restart
al pasar unos segundos parece la ventana de twitter pidiendo la autorización para acceder a tu cuenta, tipeas el usuario y la contraseñay listo... ahora si muestra Gwibber (2.31.91) los mensajes de twitter!... les adjunto un print-screen:

lunes, 23 de agosto de 2010

Ubuntu 10.10 :: Maverick Meerkat


Siguiendo con la tradición la próxima versión de Ubuntu, que se espera para el 10 de Octubre de este año (Si! leyó bien 10/10/10) llevará como número de versión 10.10 y como nombre Maverick Meerkat.
Para los que no conocen el sistema de nombres de las versiones de Ubuntu, el primer numero antes del punto es el año de lanzamiento de la versión (menos 2000) y el segundo el mes. El primer nombre es un adjetivo y el segundo el nombre de un animal que comience por la misma letra que el adjetivo (desde la versión 6.06 Dapper Drake), los cuales van variando en orden alfabético, así como en la versión 10.04 le tocó a la letra L (Lucid Lynx) esta vez le tocará a la M y por eso escogieron Maverick Meerkat (Maverick = disidente, rebelde Meerkat = suricata) que traduce "suricata disidente (rebelde) ". Según Mark Shuttleworth se ha escogido el suricato por ser "rápido, ligero y social" que es lo que quieren que sea Ubuntu 10.10.




Podemos conocer más de lo que nos traerá esta nueva versión y descargar la versión alpha-3 (a la fecha) haciendo click aqui.
Entre las novedades tecnicas que más me a llamado la atención se encuentra el sistema de archivos BTRFS (BTree File System) el cual está previsto sea un remplazo para ext4.

Esperaremos entonces por este Ubuntu 10-10-10 ... Maverick Meerkat!

domingo, 4 de julio de 2010

Configurando una Dirección IP Estática en Linux

Muchas veces nos encontramos ante la necesidad de asignar una dirección IP estática a la interfaz de red de un servidor ó una nuestra pc. En esta ocasión me encontraba configurando un servidor de pruebas Ubuntu-Server y quise compartir el procedimiento.


1) Editamos el archivo /etc/network/interfaces (con privilegios de root):
sudo nano  /etc/network/interfaces
El cual en su versión original debe ser similar a este:
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet dhcp

2) Cambiamos a:
# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1

Donde:
  • address es la dirección IP que le estamos asignando a la interfaz de red (en este caso eth0). Esta dirección debe ser única en la red.
  • netmask es la mascara de red, es la que define el rango de números IP de la red local. Para una red de clase C esta debería tener el valor 255.255.255.0 lo que define el rango de 0 a 255 en el último dígito de las direcciones IP de la red .
  • network es la dirección de red, normalmente corresponde al 1er número del rango de direcciones IP de la red, en este caso 192.168.0.0
  • broadcast es la dirección de difusión,normalmente corresponde al ultimo número del rango de direcciones IP de la red, en este caso 192.168.0.255,
  • gateway es la dirección del equipo que actúa como pasarela de la red , es decir comunica la red con el exterior (internet por ej) y es tal vez el valor más importante después de la dirección IP del equipo.
3) por ultimo, reiniciamos la red:
/etc/init.d/networking restart 

4) para verificar que los cambios hicieron efecto usamos el comando ifconfig

y listo!

viernes, 5 de marzo de 2010

yUML: hacer diagramas UML en linea!

A continuación les presentaré una de mis herramientas favoritas a la hora de trabajar con UML, sobre todo cuando necesitamos de manera rápida (casi siempre) generar un diagrama. Es yUML la cual podemos encontrar en linea! (y de forma gratuita) en su sitio web http://yuml.me.
Lo novedoso de esta herramienta es que se usa en linea y nos provee un DSL (Lenguaje Especifico de Dominio) a través del cual podemos generar nuestros diagramas. Por ejemplo, si en la pagina principal de yuml.me hago click sobre el botón "Draw a Diagram" , luego sobre el botón "Draw Use Case Diagram" y escribimos lo siguiente en el área de texto que presenta:

[User]-(Login)
[User]-(Logout)
(Login)<(Reminder) (Login)>(Captcha)

y presionamos el botón "Generate Diagram" obtenemos el siguiente diagrama de casos de uso:

El cual puede ser guardado como imagen, como PDF, ó usar un link provisto por yuml para insertarlo en nuestra web.
La herramienta soporta 3 tipos de Diagramas UML: Casos de Uso, Actividades y Clases. Además presenta una ayuda y ejemplos sobre la sintaxis del DSL, lo cual nos permite en minutos estar generando nuestros diagramas. En el caso del diagrama anterior podemos inferir rápidamente como es la sintaxis para crear Casos de Uso:
  • Los casos de uso se escriben entre paréntesis. Ej: (Login)
  • Los actores se escriben entre corchetes. Ej: [User]
  • Las relaciones de include se expresan con el símbolo > Ej: (Login)>(Captcha)
  • Las relaciones de extend se expresan con el símbolo <>
Como verán es una poderosa herramienta, simple y eficiente, que nos permite generar diagramas UML en cualquier parte que estemos y sin necesidad de tener que instalar complicadas y pesadas herramientas o plugins.
Como dato adicional les informo que esta hecha en Ruby on Rails y que existe una gema (yumlcmd) para Ruby con la cual podemos generar nuestros diagramas de clase (únicamente) desde la consola de nuestra pc, sin necesidad de entrar al sitio web de yuml.me.

Para instalarla: sudo gem install yumlcmd
Uso: yumlme -f tu-diagrama.txt
lo cual genera el diagrama de salida en : tu-diagrama-txt.png

Espero que disfruten esta maravillosa herramienta, Buen provecho!

domingo, 28 de febrero de 2010

Ruby vs Java ... y el Ganador es... Smalltalk!

Revisando una presentación sobre Ruby on Rails me encontré con esta frase de Kent Beck (Uno de los padres de la metodología de desarrollo ágil XP = Programación Extrema) que me llamó la atención y hoy la comparto con ustedes:

"I always thought Smalltalk would beat Java, I just didn't know it would be called 'Ruby' when it did."
— Kent Beck

Que traducido se lee, algo asi: "Siempre pense que Smalltalk podría batir a Java, lo que no sabia es que iba a ser llamado 'Ruby' cuando lo hizo."
Que tal? mas allá de la opinión de Beck, y de que se pueda estar de acuerdo ó no, es interesante comprobar los aspectos comunes que hay en la sintaxis y fundamentos del "joven" Ruby y el "viejo" Smalltalk, ya que este sirvió de base en el diseño de Ruby.

Si quieren saber mi opinión al respecto (Desde el 99 trabajo con Java y desde el 2005 con Ruby) aquí les dejo parte de ella (Luego la ampliaré, pero por algo la gente de Sun invirtió tiempo y esfuerzos en JRuby y Groovy).

De regreso... reloaded

Retomando uno de mis principales ideales, el compartir, en este blog compartiré con ustedes sobre cada una de mis pasiones: El Desarrollo de Software, Buenas prácticas, Metodologías, Software Libre y cualquier otra cosa que considere importante para compartir.
¿Por que este blog? nace de la constante necesidad de comunicación que tenemos los seres humanos, de exponer nuestras ideas, acertar... equivocarnos, no importa, lo verdaderamente importante es responder a esa esencial necesidad de compartir con los demás y de sentirnos útiles, no importando que tanto nos cueste a veces sacar tiempo de donde no se tiene, pero siempre existe la recompensa del feedback que nos indica que ese post (por muy pequeño que fuese) sirvió para ayudar a alguien en el camino... y entonces una sonrisa asalta nuestra cara y nos motiva a seguir compartiendo ese gran "poder" que todos de alguna forma u otra tenemos: El conocimiento... (De que sirve el conocimiento sino se comparte con los demás... ) y mantener vivo el espiritu de la filosofia Ubuntu: "Yo soy porque nosotros somos" (la esencia del colectivo...)
A la vez quiero que sirva como una muestra de agradecimiento y estimulo a todas esas personas (bloggers, twitteros, autores de páginas, usuarios y todos los que le dan vida a este maravilloso mundo de la Internet...) que con su aporte me han ayudado a crecer y a todos los que luchamos y soñamos por un mundo mejor, y que estamos seguros que va a ser realidad con el aporte diario de cada uno de nosotros.