31 oct. 2008

Instalando ns-3, Network Simulator Version 3

Aqui podemos encontrar la descripcion completa, tutoriales.
http://www.nsnam.org/

Una descripcion de ns-3
http://www.nsnam.org/docs/ns-3-overview.pdf

Instalando los prerequisitos:
aptitude install gccxml sqlite3 build-essential libsqlite3-dev libgoocanvas-dev libgoocanvas3 unzip python-dev gcc-3.4 gcc-4.1 libgtk2.0-0 libgtk2.0-dev doxygen graphviz imagemagick texinfo dia flex bison tcpdump wireshark

pygccxml

wget http://downloads.sourceforge.net/pygccxml/pygccxml-1.0.0.zip?modtime=1224497206&big_mirror=0
unzip pygccxml-1.0.0.zip
cd pygccxml-1.0.0
python setup.py install
cd ..

Descargamos e instalamos ns-3:
wget http://www.nsnam.org/releases/ns-3.2.tar.bz2
tar jxvf ns-3.2.tar.bz2
cd ns-3.2
./waf configure
./waf

Terminado de compilar podemos comprobar si a sido correcta la compilacion
./waf check
Generamos la documentacion:
./waf --doxygen

30 oct. 2008

[OT] BarCamp Lima 2008

Este es un literal copy&paste de un mensaje de la lista del plug, está bastante interesante.
Desde hace algunos años en las principales ciudades y capitales del
mundo se vienen llevando acabo eventos denominados "Bar Camp" que básicamente son un encuentro auto-organizado de profesionales y entusiastas de la tecnologia, el desarrollo web, el software opensource, entre otros temas.

Básicamente se trata de que unas 100 personas metidas en estas temas se encuentro un dia en un solo local y ahi mismo, sin previa
organización o selección se va llenando una pizarra con las charlas
que los mismos asistentes se apunta a ofrecer como voluntarios, se
arman mesas redondas, discusiones en grupo y se intercambia mucha información además de conocer buena gente, hacer nuevos amigos y mejorar la red de contactos profesionales y de negocios.

http://es.wikipedia.org/wiki/Barcamp

Algunos de nosotros estamos organizando un evento BarCamp en Lima para que tenga lugar muy pronto, posiblemente este mes o máximo en Diciembre y por la naturaleza del evento es totalmente posible. Si están interesados o conocen a gente a la que les puedan interesar estos temas de verdad avistan y pasen la voz porque promete ser un encuentro muy interesante.

Puede revisar los temas de los que se planea hablar y apuntarse como asistentes en este wiki:

http://barcamp.org/BarCampLimaI?edit=1

Para editar ingresan con el "invitation key" (llave de invitación) que
es "c4mp" y agregan su información, idealmente apuntando a su propio blog.

Para que se hagan una mejor idea de como va a ser este evento pueden leer estos articulos  y blog posts:

http://www.maestrosdelweb.com/actualidad/barcamp-lima-2008/
http://www.microsoft.com/latam/technet/articulos/tn/2007/oct-18.mspx
http://anwmp.org/barcamp-lima-1

Otros eventos en ciudades de la región que pueden ver como referencia son:

http://www.barcamp.com.ar/
http://barcamp.org/BarCampMexico

Asi que ya saben.. el tema de opensource va a salir definitivamente
entre las charlas pero es más que opensource: estándares de web, como hacer negocios en Internet, Web 2.0, tips de adsense, entre otras cosas.

Espero verlos ahi, parece que es es ya ya el Sábado 8 de Noviembre y que sería en el local de HP de las Torres de Camino Real. Pasen la
voz! Ahorita lo importante es que se apunten en el wiki y coloquen su información..

Nos vemos ahi! Varios de la lista ya estan interesados..

dynamips y wireshark, capturando trafico

Despues de pasarme largo rato buscando la manera de snifear el trafico entre 2 router simulados por dynamips, la solucion era bastante simple.
capture R1 f0/0 r1.cap
y abrir ese archivo con wireshark
Para detener la captura:
no capture R1 f0/0
Ejecutando estos comandos desde la consola de dynagen.
En fin, mas que un STFW era un RTFM

29 oct. 2008

Virtualizando en Linux con VirtualBox

La version que se encuentra en debian es la version 1.6, si queremos usar la ultima version agregamos este link a nuestro sources.list
vi /etc/apt/sources.list
deb http://download.virtualbox.org/virtualbox/debian lenny non-free
Luego agregar la llave de sun
wget http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc
apt-key add sun_vbox.asc
aptitude update
aptitude install virtualbox-2.0 linux-headers-`uname -r` fuse-utils virtualbox-ose-source

Nota: La version que instalamos de VirtualBox es la version no libre, estan bajo la licencia VirtualBox Personal Use and Evaluation License (PUEL) mientras que la version que ofrece Debian es la OpenSource
Luego ya podremos encontrar virtual box integrado a nuestro escritorio, solo hay que abrirlo, aceptar la licencia y listo.!!
VirtualBox integrado en nuestro menu
Aceptamos la licencia
Nos registramos
Y todo ok !!
Luego ya podemos empezar a crear nuestras maquinas virtuales.
Luego de crear una maquina virtual nos puede salir el siguiente mensaje:

Could not load the Host USB Proxy Service (VERR_FILE_NOT_FOUND). The service might be not installed on the host computer.
Código Resultado:
NS_ERROR_FAILURE (0x00004005)
Componente:
Host
Interface:
IHost {489fb370-c227-4d43-9761-ceb28484fd9f}
Receptor:
IMachine {1e509de4-d96c-4f44-8b94-860194f710ac}
Lo que debemos hacer es activar el soporte para USB,editamos estearchivo y agregamos una linea en el metodo do_start:
vi /etc/init.d/mountdevsubfs.sh
domount usbfs usbdevfs /proc/bus/usb usbfs -onodev,noexec,nosuid,devgid=25,devmode=664
Luego iniciamos lo servicio
/etc/init.d/mountdevsubfs.sh start
y volvemos a abrir VirtualBox

27 oct. 2008

Configurando Teclado Multimedia en Linux con lineakd

En realidad no hay mucho que explicar, si tenemos teclado multimedia e instalamos Linux, de manera predeterminada no reconoce las teclas extra. Una manera de configurarlas es usando lineakd
aptitude install lineakd
Luego ejecutamos este comando, para listar los modelos de teclado soportados:
lineakd -l
En mi caso, mi teclado si se encuentra en esa lista, pero si no lo encontramos, podemos agregarlo a la lista.
Luego debemos crear un archivo lineakd.conf
vi ~/.lineak/lineakd.conf
Aqui especificamos las acciones a realizar cuando presionemos esas teclas. Mi archivo de configuracion queda asi:
MixerDevice = /dev/mixer
CdromDevice = /dev/cdrom
KeyboardType = MWEDKB
Bookmarks = "liferea"
Calculator = "xcalc"
Home = "pcmanfm /root/Documentos"
Mail = "claws-mail"
Media = "audacious"
Mute = amixer set Master toggle && amixer set Headphone toggle
My Computer = "pcmanfm"
VolumeDown = amixer set Master 2- && amixer set Headphone 2-
VolumeUp = amixer set Master 2+ && amixer set Headphone 2+
Play|Pause = "audacious --play-pause"
Finalmente ejecutamos el comando lineakd y ya tenemos nuestras teclas multimedia funcionando.

25 oct. 2008

Configurando Dynamips / GNS3 para simular routers Cisco en 32 y 64 bits

Instalando Dynamips
En Debian testing y SID, estos 2 programas ya se encuentran en los repositorios, podemos instalarlo de la siguiente manera
aptitude install  gns3 dynamips
Sin embargo, dynamips consume bastantes recursos asi que sera mejor compilar una version optimizada para el procesador que tengamos.
Para compilar el codigo fuente:
apt-get build-dep gns3 dynamips
aptitude install libelf-dev libelf1 libpcap0.8 libpcap0.8-dev cdbs python-qt4-dev python-sip4-dev libasm1 elfutils python-qt4 python-sip4
Bajamos el cofigo fuente de la pagina de dynamips:
http://www.ipflow.utc.fr/dynamips/dynamips-0.2.8-RC2.tar.gz
tar zxvf dynamips-0.2.8-RC2.tar.gz
cd dynamips-0.2.8-RC2
Editamos el siguiente archivo para ponerlo de acuerdo a la version:
vi debian/changelog
dynamips (0.2.8-RC2-1) unstable; urgency=low -->lo cambiamos al texto que aparece en negrita
Damos permiso de ejecucion, creamos el binario .deb e instalamos
chmod +x debian/rules
fakeroot debian/rules binary  --> para 32bits
export DYNAMIPS_ARCH=amd64 &&  fakeroot debian/rules binary  --> para 64 bits
cd ..
dpkg -i dynamips_0.2.8-RC2-1_i386.deb -->32bits
dpkg -i dynamips_0.2.8-RC2-1_amd64.deb -->64bits

Instalando GNS3
Descargamos la ultima version de la pagina de GNS3, son archivos en python asi que no hay necesidad de instalar:
http://www.gns3.net/download 
tar jxvf GNS3-0.5-src.tar.bz2
cd GNS3-0.5-src
./gns3
Una ves ejecutado GNS3, nos pedira la ubicacion de dynamips, se encuentra en/bin/dynamips

Descomprimiendo el IOS
La documentacion recomienda descomprimir la imagen de IOS que vayamos a usar, asi que manos a la obra
unzip -p mi_archivo_ios.bin > ios_descomprimido.bin

Estableciendo el parametro idlepc
Si no configuramos este parametro, dinamyps consumira toda la CPU, hay otra opcion usando el comando cpulimit pero no e tenido la necesidad de usarlo aun.
De manera predeterminada, dynamips asume que queremos emular el modelo c7200, asi que si tenemos otra imagen debemos cambiarlo con el parametro -P (actualmente estan soportados los modelos 7200, 3600, 2691, 3725, 3745).
Podemos determinar graficamente este valor usando GNS3, pero al menos en mi PC (que no es tan nueva) deja colgado la interfaz, asi que hagamoslo en modo texto. Asmumanos que una imagen c3725, entonces ejecutamos este comando:
dynamips -P 3725  c3725_descomprimido.bin
Esto va a poner muy lenta la PC ya que va a consumir el 100% de CPU, esperamos que arranque el IOS hasta que nos aparesca el mensaje "Press RETURN to get started!" ( si nos pregunta la autoconfiguracion le damos que no). Luego presionamos la siguiente combinacion de teclas: Ctrl-] i (es decir, presionamos Control y ] al mismo tiempo, soltamos las teclas y a continuacion i). Esto nos va a mostrar una informacion como esta:
Please wait while gathering statistics...
Done. Suggested idling PC:
   0x602649b4 (count=75)
       0x60264a2c (count=40)
       0x60bedba0 (count=51)
Restart the emulator with "--idle-pc=0x602649b4" (for example)
Matamos el proceso dynamips y empezamos a probar con esos valores hasta encontrar el valor que haga que el consumo de cpu disminuya.
dynamips -P 3725 --idle-pc=0x602649b4  c3725_descomprimido.bin
Puede haber mas de un valor optimo, en mi caso obtuve estos resultados de uso de cpu:
  • 0x602649b4 (count=75)  --> 25%
  • 0x60264a2c (count=40) --> 90%
  • 0x60bedba0 (count=51) --> 26%
Luego de encontrado el valor optimo, abrimos el GNS3 y establecemos los valores.

24 oct. 2008

Escribiendo Latex en Linux, preparando el entorno

Instalaremos los paquetes basicos:
aptitude install texlive
Si deseamos la instalacion completa, debemos instalar el paquete texlive-full. Si usas este paquete, se instalara el soporte para todos los idiomas disponibles, asi como las fuentes necesarias. Muy dificilmente necesitaras todo eso pero si quieres instalarlo lo haces con este comando:
aptitude install texlive-full
Con eso es suficiente. Podemos crear archivos latex usando el editor que nos guste.

Escribamos un documento latex bastante simple (holamundo.tex) y convirtamos nuestro documento latex a varios formatos:

\documentclass[12pt]{article}
\usepackage[spanish] {babel}
\title{\LaTeX}
\date{}
\begin{document}
  \maketitle Hola Mundo !!!!
  \begin{equation}
    x+y = z
  \end{equation}
\end{document}

Dependiendo el formato al que vayamos a convertirlo usaremos un comando distinto:
  • La forma clásica:
    • latex holamundo.tex -->Crea el archivo dvi, asi como un .aux y .log
    • xdvi holamundo.dvi -->Visualisamos nuestro documento latex
    • dvipdf holamundo.dvi -->convierte el archivo dvi a pdf
    • xpdf holamundo.pdf -->visualizamos el pdf
  • Una forma mas rapida:
    • pdflatex holamundo.tex --> crea directamente el archivo pdf
  • Tambien podemos convertirlo a HTML
    • pdfhtml holamundo.tex --> crea una carpeta holamundo y en el interior crea el documento
Disponemos de varias opciones para crear nuestros archivos .tex, desde usar vim o emacs con plugins, hasta entornos especializados como lyx, kile o texmacs. Personalmente prefiero lyx

  • Vim -->aptitude install vim-latexsuite
  • emacs -->aptitude install auctex
  • Kile -->aptitude install kile kdvi
  • lyx -->aptitude install lyx
  • Texmaker -->aptitude install texmaker

23 oct. 2008

Instalando Packet Tracer 5 en Linux

La ultima versión de Packet Tracer trae una versión para linux, por lo que ya no es necesario instalar la versión de windows usando wine. Esta versión viene con un instalador especifico para ubuntu y fedora, así como el genérico que es el que vamos a usar.
Lo descargamos y descomprimimos:
#tar zxvf PacketTracer5_generic.tar.gz
#cd PacketTracer5
#./installer
Presionamos Enter para leer la licencia y Bajamos hasta el final para aceptarla escribiendo Y
Luego debemos especificar la ubicación en donde se instalara, presionamos enter para dejarlo en la ubicación predeterminada:

Enter location to install Packet Tracer 5 or press enter for default [/opt/pt]:

Nos pregunta si queremos que cree enlaces simbolicos a /usr/local/bin, escribirmos Y

Should we create a symbolic link "packettracer" in /usr/local/bin for easy Packet Tracer 5 startup? [Yn]Y

y listo !!!, ya tenemos packet tracer en Linux. Ahora solo debemos abrir un terminal ( xterm, kconsole, gnome-terminal, ... cualquiera), escribir el comando packettracer y ya lo tendremos el software ejecutándose en nuestra PC.

Nota: En caso de tener un sistema de 64 bits hay que instalar las librerías de compatibilidad de 32 bits.


Configurando emacs para autocompletado, resaltado de sintaxis y otras cosas

Actualmente estoy en la tarea de usar emacs, para programar.
Falta mejorar varias cosas, pero por el momento mi archivo de configuracion .emacs esta quedando asi:



(custom-set-variables
;; custom-set-variables was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
'(column-number-mode t)
'(current-language-environment "UTF-8")
'(display-time-mode t)
'(ecb-options-version "2.32")
'(global-font-lock-mode t nil (font-lock))
'(global-semantic-stickyfunc-mode nil nil (semantic-util-modes))
'(safe-local-variable-values (quote ((indent-tabs-mode . 1))))
'(semantic-idle-scheduler-idle-time 3)
'(tab-width 4))
(custom-set-faces
;; custom-set-faces was added by Custom.
;; If you edit it by hand, you could mess it up, so be careful.
;; Your init file should contain only one such instance.
;; If there is more than one, they won't work right.
)

(require 'cc-mode)
(setq c-default-style "bsd"
c-basic-offset 4)
(setq backup-directory-alist (quote ((".*" . "~/.emacs.d/backups"))))
;; turn on paren matching
(show-paren-mode t)
(setq show-paren-style 'mixed)

;; Use "y or n" answers instead of full words "yes or no"
(fset 'yes-or-no-p 'y-or-n-p)
;; Display the time in the mode line
(setq display-time-24hr-format t)
(display-time)


(setq truncate-partial-width-windows nil)
(setq after-save-hook (quote (executable-make-buffer-file-executable-if-script-p)))
;; para asegurarte de que el fichero termina con línea vacía
(setq require-final-newline 'ask)
;;
;; eliminar espacios en blanco a final de línea y líneas vacias al final
(add-hook 'write-file-hooks 'delete-trailing-whitespace)
(setq delete-trailing-whitespace-p t)


;;Auto-añadir paréntesis o llave de cierre
(setq skeleton-pair t)
(global-set-key "[" 'skeleton-pair-insert-maybe)
(global-set-key "(" 'skeleton-pair-insert-maybe)
(global-set-key "{" 'skeleton-pair-insert-maybe)
(global-set-key "'" 'skeleton-pair-insert-maybe)
(global-set-key "\"" 'skeleton-pair-insert-maybe)

(require 'semantic nil t)
(global-semantic-idle-scheduler-mode 1)
(global-semantic-idle-completions-mode 1)
(global-semantic-idle-summary-mode 1)
(require 'semantic-sb nil t)
(require 'semanticdb nil t)

(define-key c-mode-base-map (kbd "RET") 'newline-and-indent)

;; Load CEDET
;; (load-file "~/cedet-VERSION/common/cedet.el")
;;
;; Enabling various SEMANTIC minor modes. See semantic/INSTALL for more ideas.
;; Select one of the following:

;; * This enables the database and idle reparse engines
(semantic-load-enable-minimum-features)

;; * This enables some tools useful for coding, such as summary mode
;; imenu support, and the semantic navigator
(semantic-load-enable-code-helpers)

;; * This enables even more coding tools such as the nascent intellisense mode
;; decoration mode, and stickyfunc mode (plus regular code helpers)
(semantic-load-enable-guady-code-helpers)

;; * This turns on which-func support (Plus all other code helpers)
(semantic-load-enable-excessive-code-helpers)

;; This turns on modes that aid in grammar writing and semantic tool
;; development. It does not enable any other features such as code
;; helpers above.
(semantic-load-enable-semantic-debugging-helpers)
(which-func-mode t)


(require 'semantic-ia nil t)
(global-set-key [(control return)] 'semantic-ia-complete-symbol-menu)
(global-set-key [(control shift return)] 'semantic-ia-complete-symbol)

(setq semanticdb-default-save-directory "~/.emacs.d/semantic")

(setq semantic-load-turn-everything-on t)
(require 'semantic-load)
(global-semantic-show-unmatched-syntax-mode -1)

(require 'ctypes)
(turn-on-font-lock)
(ctypes-auto-parse-mode 1)


(require 'ecb)
(require 'ecb-autoloads)
(setq ecb-primary-secondary-mouse-buttons (quote mouse-1--mouse-2))
;; Desactivamos el Tip of the Day de ECB...
(setq ecb-tip-of-the-day nil)
(ecb-activate)

(global-set-key [f12] 'ecb-toggle-ecb-windows)
(global-set-key [C-f12] 'ecb-activate)
(global-set-key [M-f12] 'ecb-deactivate)

(setq tex-dvi-view-command "xdvi")
;;(transient-mark-mode 1)
;;(add-hook 'text-mode-hook 'turn-on-auto-fill)




(setq-default TeX-master nil)
(setq TeX-parse-self t)
(setq TeX-auto-save t)
(load "preview-latex.el" nil t t)


(defalias 'perl-mode 'cperl-mode)