Monitorea el tráfico de tu red en linux con Network Traffic Monitor

Si tienes una conexión a Internet limitada y solo te dan unos tantos Gb mensualmente o, pagas exactamente por la cantidad de trafico que consumes, y sientes la necesidad de llevar un control sobre la cantidad de datos que subes y bajas de Internet, o tal vez no confías mucho en la compañía que te facilita el servicio... Pues eres de los tantos muchos que necesitan una herramienta como esta.

Network Traffic Monitor, es una aplicación escrita e Python por Luigi Tullio, que nos permite llevar un control exacto de los datos que recibimos y enviamos, mostrando el estado actual la velocidad de transmisión y llevando un registro de la misma a través del periodo de tiempo que se indique en el dialogo de configuración de la misma.
Entre otras cosas, te permite indicar un limite de trafico y la opción de desconectarse automáticamente si así se a indicado.

Te muestra una ventana de reporte con el registro en intervalos de tiempos elegidos, de los datos que se han salido y entrado desde la instalación de la aplicación.


Sabias que! AVATAR fue creada con GNU/Linux

Y quien iba a imaginarlo que una de las películas mas reciente de James Cameron, (director de Titanic y Terminator) dejó maravillado a más de uno por sus espectaculares efectos visuales. Pero lo que la mayoría no sabíamos es que todo esto ha sido desarrollado con 40.000 procesadores y 104 Terabytes de RAM en más de 4.000 servidores con GNU/Linux.
Una noticia de alegría y orgullo para los linuxeros, pero qué empresa esta detrás de todo este gran megaproyecto cinematográfico?, no es nada menos que Weta Digital, una compañía con sede en Wellington, Nueva Zelanda, la misma que también trabajó con los estudios para las producciones de Yo Robot, El Señor de los Anillos, Eragon y King Kong.

Weta Digital es en realidad dos empresas, Weta Workshop, donde un equipo de artistas y artesanos crean modelos físicos, y el mismo nombre Weta Digital, que crea efectos digitales para anuncios, cortometrajes y películas de gran éxito.

La empresa ha construido un gran Data Center, necesario para desarrollar los efectos visuales que muchos ya han podido apreciar en la película. Este Data Center está compuesto por 4.352 servidores HP Proliant BL2×220c G5 Blade con GNU/Linux, que sumados componen un total de 40.000 procesadores y 104 Terabytes de RAM. Todos los servidores se encuentran conectados mediante fibra óptica a un sistema de almacenamiento de 3 Petabytes de BluArc y NettApp. Esta gran infraestructura de hardware y software contribuyó a producir los impresionantes efectos y secuencias visuales generados por computadoras del film.


Para controlar las altas temperaturas producidas por esta gran cantidad de máquinas, se desarrolló un sistema de refrigeración con agua, ya que los sistemas convencionales de pisos elevados y refrigeración por aire no pudieron controlar el calor constante producido por las máquinas al momento de desarrollar Avatar. Además este nuevo sistema permitió ahorrar un 40% en los costos de refrigeración del Data Center.


Durante el desarrollo de Avatar, el Data Center funcionó las 24 horas del día, realizando entre 1,3 y 1,4 millones de tareas y procesando 7 a 8 Gigabytes de datos por segundo.
Cada frame de la película fue de 12 Megabytes, esto quiere decir que por cada segundo de la película se utilizaron 288 MB (17,8 GB por minuto).
Este cluster de máquinas se encuentra actualmente en el lugar 193 del ranking de las 500 supercomputadoras más rápidas del mundo, según top500.org.
fuente: trucos-linux.blogspot.com

Rescatar archivos de discos duros defectuosos con Ubuntu Rescue Remix

fuente: elmundodeubuntu.blogspot.com


Ubuntu Rescue Remix resulta muy útil para rescatar archivos de discos duros con problemas o defectuosos o reconstruir sistemas

Ubuntu Rescue Remix es una recopilación de distintas utilidades para recuperación de datos montadas en un Live CD que permite el arranque del sistema.

Resulta muy útil para rescatar archivos de discos duros con problemas o defectuosos o reconstruir sistemas de archivo de discos duros formateados con distintos sistemas operativos. Ofrece un entorno gráfico que facilita la puesta en marcha de las operaciones. Dispone también de programas para realizar “autopsias” de los problemas del disco.

Manejar la consola Linux como todo un experto

Autor: Raúl González Duque
Publicado originalmente en mundogeek.net

cd como un experto

Empecemos por lo más sencillo y veamos que cd es un poco más complejo de lo que parece. Mucha gente sabe del autocompletado de bash, gracias al cual basta con escribir parte del nombre del directorio y pulsar Tab para que la consola complete el directorio (si no hay varias posibilidades, en caso contrario tendríamos que pulsar dos veces Tab para verlas). También es muy común el uso de rutas relativas: si estamos en /home/zootropo y queremos desplazarnos a /home/zootropo/videos no es necesario escribir la segunda ruta en su totalidad, sino que podemos escribir simplemente cd videos. Incluso es normal ver a novatos usando atajos como cd .. para desplazarse al directorio superior y cd ~cd para desplazarse al directorio de usuario.
Lo que es menos común, y muy útil para el tema que nos ocupa es el uso de cd -. Este flag tan útil no hace otra cosa que movernos al último directorio en el que estuvimos.
 zootropo@genua:~$ cd /etc/X11/
 zootropo@genua:/etc/X11$ cd
 zootropo@genua:~$ cd -
 /etc/X11
 zootropo@genua:/etc/X11$ pwd
 /etc/X11
De esta forma podemos movernos entre dos directorios rápidamente.
Por otro lado, si lo que necesitamos es desplazarnos a un directorio tan solo un momento para ejecutar un comando y luego seguir trabajando en el directorio actual, también podríamos usar &&, que ejecuta dos comandos, uno detrás de otro, de forma condicional (and con cortocircuito):
cd /etc/X11/ && cat xorg.conf
y rodearlo con paréntesis, que hace que los comandos se ejecuten en una subshell
(cd /etc/X11/ && cat xorg.conf)
de esta forma se ejecutará el comando en una subshell distinta, por lo que el cd no nos afectará, y será como si nunca nos hubiéramos desplazado.
Pero, ¿qué ocurre si queremos movernos entre varios directorios? ¿qué podemos hacer si queremos desplazarnos, por ejemplo, al penúltimo directorio que visitamos? la combinación pushd, popd y dirs, nos proporciona una alternativa válida.

pushd, popd y dirs

pushd funciona como un cd normal, moviéndonos al directorio especificado, pero además, como su nombre indica, introduce dicho directorio en una pila.
pushd /etc/X11/
popd también funciona como un cd, pero el directorio al que nos mueve es el que extrae de la pila, y dado que la pila es una estructura LIFO (Last In, First Out o lo que es lo mismo, el último en introducirse es el primero en extraerse) al escribir este comando nos moveremos al último directorio añadido a la pila.
popd
También es posible indicar qué elemento de la pila queremos utilizar mediante un índice. Por ejemplo:
popd +2
extraería el tercer elemento (el índice del primer elemento es 0). También podemos utilizar índices negativos, como -2, contando al revés.
Por último dirs nos sirve para imprimir el contenido de la pila:
zootropo@genua:/etc/X11$ dirs
 /etc/X11 ~
Al comando dirs también se le puede pasar un índice para imprimir tan solo el directorio seleccionado por el índice.
La desventaja del uso de pushd y popd es que cada vez que hacemos un popd el directorio se borra de la pila, y si quisiéramos volver a utilizarlo tendríamos que volver a guardarlo en la pila, lo cual va en contra de la rapidez que buscamos y que nos impulsó a usarlos en primer lugar.
Existe una alternativa que consiste en aprovecharnos de la característica de la indexación de dirs. El comando
dirs +0
mostraría el primer elemento de la pila.
Basta con usar este directorio como argumento para cd para poder movernos a los directorios almacenados sin que se borren de la pila:
cd `dirs +0`
Sin embargo, por alguna extraña razón, cuando el directorio que seleccionamos con dirs es el directorio home, que se almacena como ~, este pequeño truco no funciona, sino que tendríamos que usar el flag -l para que dirs muestre la ruta completa del directorio home en lugar de ~.
cd `dirs -l +0`
Podríamos ahorrarnos tener que escribir el flag -l con un alias, e incluso crear alias como
alias cd="pushd"
 alias cd1="cd `dirs -l +1`"
de forma que al escribir cd1 nos desplazáramos al penúltimo directorio introducido con nuestro cd-pushd.
Sin embargo, hay alternativas más sencillas, como CDargs.

CDargs

CDargs se encuentra en los repositorios de Ubuntu, así que instalarlo en esta distro es tan sencillo como escribir:
sudo aptitude install cdargs
También es conveniente añadir las funciones para bash ya creadas que vienen con la aplicación editando el .bashrc:
gedit ~/.bashrc
y añadiendo la siguiente línea, que hace un source del archivo correspondiente (asegúrate de que el archivo se instaló en esa ruta y modifica la línea adecuadamente si no es así)
source /usr/share/doc/cdargs/examples/cdargs-bash.sh
Reinicia la consola y podemos empezar a jugar.
Si escribimos el comando
cv
en la consola, se lanzará la interfaz gráfica en ncurses de CDargs, un pequeño explorador de archivos en modo consola.
CDargs
Primero seleccionamos el directorio que nos interesa con las flechas de arriba y abajo, con Avance página y Retroceso de página, con Inicio y Fin o pulsando el número asociado. Si solo queremos hacer un cd a ese directorio, pulsamos enter. Si queremos hacer un cd a un directorio que está contenido dentro del directorio seleccionado, pulsamos la flecha derecha para que CDargs muestre su contenido, y por último, si queremos movernos a un directorio superior, pulsamos la flecha izquierda. Para salir de la interfaz sin hacer nada, pulsamos la tecla 'q'. Si queremos ver archivos ocultos, pulsamos la tecla '.'.
CDargs también incluye un sistema de marcadores. Para utilizarlo nos desplazaremos al directorio que queramos añadir a nuestros favoritos y escribimos
ca etiqueta
Por ejemplo:
cd /home/zootropo/videos
 ca vid
Después basta escribir
cv etiqueta
para desplazarnos al directorio que guardamos en marcadores con dicha etiqueta.
Podemos ver los marcadores que hemos creado desde la interfaz gráfica de CDargs, pulsando la tecla Tab para cambiar entre el modo de marcadores y el modo explorador.
Por último, quizás os interese echar un vistazo a los gestores de archivo de modo consola, como GNU Midnight Commander
sudo aptitude install mc

Navegador Web con Python

Código fuente de un navegador web en Python, bien estructurado y completo, gracias al señor Daniel Fuentes B.  usando la librería "python-webkit". Se ha decidido publicarlo para aquellos que están pensando en proyectos como estos.



#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Escrito por Daniel Fuentes B.
# Licencia: BSD 

import pygtk
pygtk.require("2.0")
import gtk
import webkit

class Browser:
    # Ventana del programa
    def __init__(self):
        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.set_position(gtk.WIN_POS_CENTER)
        self.window.set_default_size(800, 600)
        self.window.connect("destroy", self.on_quit)

        # Un vBox, en la parte de arriba hay una caja para ingresar
        # la direccion web, y abago se muestra la pagina
        vbox = gtk.VBox()

        # La parte de la entrada de la url
        self.url_text = gtk.Entry()
        self.url_text.connect('activate', self.url_text_activate)

        # La parte en donde se muestra la pagina que se visita (con scroll incluido)
        self.scroll_window = gtk.ScrolledWindow()
        self.webview = webkit.WebView()
        self.scroll_window.add(self.webview)

        # Unimos todo en el vBox
        vbox.pack_start(self.url_text, fill=True, expand=False)
        # El expand=False al empaquetarlo es para que el entry no ocupe media pantalla
        vbox.pack_start(self.scroll_window, True, True)
        self.window.add(vbox)
        self.window.show_all()

    # Definimos las señales y demas cosas de la ventana:
    def url_text_activate(self, entry):
    # al activar el entry (por ejemplo al hacer enter), se obtiene el
    # texto de la entry (la url) y se activa la funcion que abre la url
        self.open_url(entry.get_text())

    def on_quit(self, widget):
        gtk.main_quit()

    # La funcion magica que abre la url que se le pasa
    def open_url(self, url):
        "Funcion que carga la pagina elegida"
        # cambia el titulo de la ventana
        self.window.set_title("Ejemplo pywebkitgtk - %s" % url)
        # mostramos la direccion de la pagina abierta en el entry
        self.url_text.set_text(url)
        # abre la pagina
        self.webview.open(url)

if __name__ == "__main__":
    browser = Browser()
    # abrimos la pagina de inicio (opcional)
    browser.open_url("http://www.google.com/")
    gtk.main()


Cambiar IP publica con macchanger

En muchas ocasiones nos vemos envueltos en la necesidad de cambiar nuestra dirección IP que mostramos al mundo, ya sea para burlar la fastidiosa espera de paginas como rapidshare o megaupload.
Habeses estamos descargando una pelicula dividida en varios archivos comprimidos y nos limitan a descargar un solo archivo por dia.

Si ese es tu problema también, aquí te tengo la solución.

Un pequeño script escrito en SHELL para linux,usando el programa "macchanger" para el cambio de la mac de la placa de red. Te permitirá ahorrar muchísimo tiempo que gastaras en muchas descargas gratis.



#!/bin/bash

echo "Cambio de IP por medio de Macchanger"
echo "...................................." 
echo ""
echo "APAGUE EL MODEN Y PRECIONE UNA TECLA PARA CONTINUAR"
read

DireccionAntigua=`ifconfig|grep Direc.\ inet`
echo "Direccion antigua: " $DireccionAntigua

echo "Actividad de red detenida..."
sudo ifconfig eth0 down

echo "Cambiando la Mac de la placa de red..."
sleep 4
sudo macchanger -a eth0

sleep 10
echo "Reconectando con nueva ip " 
sudo ifconfig eth0 up

echo "ENCIENDA EL MODEN Y PRECIONE UNA TECLA PARA FINALIZAR"
read

echo "Espere mientras se reconecta" 
sleep 28

DireccionNueva=`ifconfig|grep Direc.\ inet`
echo "Direccion nueva: " $DireccionNueva

echo "Listo!!! Direccion IP cambiada"



Obtener IP Pública con Python y el país al que pertenece



Quieres saber tu IP publica por medio de una aplicación de escritorio escrita e Python? Tal vez te interese saber a que país pertenece una IP publica! Bueno, el siguiente código que les traigo puede resultar muy útil y se pueden hacer grandes proyectos con una implementación mayor del mismo.

El código requiere la instalación de geoiplookup, un programa por consola del cual obtendremos el país de nuestra IP...(si no está instalado, el código te dará la opción de hacerlo)

Yo he pensado en eso y he querido compartirlo con todos los pythonianos del mundo.

> obtener la IP publica del sistema

Nombre del sistema

Nombre del usuario que ha iniciado sección en el sistema

En que país se encuentra ubicado dicho sistema...

son varias de las cosas que puedes gestionar con InfoSistema.py pero lo mas importante es "aprender". Saludos y aprovéchenlo de buena manera.



Código Python


   #!/usr/bin/env python
# -*- coding: utf-8 -*-
                        #InfoSistema.py
                     
__licence__ = "GPL"
                     

import os
import commands
import datetime

#DEPENDENCIAS = geoiplookup del paquete geoip-bin para saber el pais por medio de la IP

#Modulo para Obtener informacion del sistama operativo.
class InfoSistema():
    """Clase para obtener informacion del sistema operativo actual."""
    def GetIpPublica(self):
        """Obtiene la ip publica del sistema, mediante una lectura a la pagina
        web www.showmyip.com extrayendo de ella la ip publica mostrada"""
        import re, urllib2
        s = urllib2.urlopen('http://www.showmyip.com').read()#obtenemos el fuente de la pagina
        #Con expresiones regulares se obtiene todo lo que venga despues del 'displaycopy'
        m = re.search('(?<=displaycopy).*', s) #Esta línea es un pedazo de JS que imprime en la página la IP
        ip = m.group(0)
        #Reemplazamos por nada los datos que no sirven
        ip = ip.replace("('", "")
        ip = ip.replace("');", "")
        return ip

    def GetUsuario(self):
        """Obtiene el nombre del usuario actual"""
        usuario = os.getlogin()
        return usuario
     
    def GetNombreSistema(self):
        """Obtiene el nombre del Sistema"""
        nombre = os.name
        return nombre

    def GetSistema(self):
        """Obtiene una tupla con el nombre del sistema operativo, nombre del equipo, 
        version del nucleo fecha de lanzamiento, arquitectura"""
        sistema = os.uname()
        return sistema

    def GetFecha(self):
        """Obtiene la fecha y hora actual del Sistema"""
        fecha = datetime.datetime.today()
        return fecha

    def GetPais(self, IP=None):
        """Obtiene el pais de la ip publica pasada como parametro por medio del programa en consola 'geoiplookp'
        Si no se especifica una IP como parametro, se usara la ip publica del sistema actual asiendo una llamada
        a la funcion interna self.GetIpPublica()"""
        if IP == None:
            IP = self.GetIpPublica()
        pais = commands.getoutput("geoiplookup "+str(IP))
        if pais == "sh: geoiplookup: not found":
            print("El programa geoiplookup para saber el pais por medio de la ip publica, no esta instalado")
            resp = raw_input("Instalar geoiplookup? s/n ") #Opcion para instalar geoiplookup
            if resp.lower() == "s":
                print("Instalando Espere....")
                os.system("sudo apt-get install geoip-bin") #Instalacion del programa geoiplookup
                pais = commands.getoutput("geoiplookup "+str(IP))
                return pais
            else:
                return None #si el programa geoiplookup no esta instalado se devolvera un valor None
        elif len(str(pais)) > 200:
            print("No se pudo obtener el pais para la IP "+str(IP))
            return False #Si no se puede obtener el pais de la direccion ip, se devolvera False
        else:
            return pais


if __name__ == "__main__":
    print (__blog__)
    print (__author__)
    print("......................................................")
    info = InfoSistema()
    funciones={"1":"info.GetIpPublica()", 
               "2":"info.GetUsuario()", 
               "3":"info.GetNombreSistema()", 
               "4":"info.GetSistema()", 
               "5":"info.GetFecha()", 
               "6":"info.GetPais()",
               "7":"exit()"}
    while True:
        print("Elija:....................")
        elegir = raw_input("Ip Publica: 1 \nUsuario: 2 \nNombre del Sistema: 3 \nSistema: 4 \nFecha: 5 \nPais: 6 \nSalir: 7 \n")
        f = funciones[elegir]
        exec "print("+str(f)+")"

Dennis Ritchie se despide del mundo!


#include <stdio.h>
int main()
{
        printf("Adiós Mundo");
        return 0;
}


fuente: http://conexiontotal.mx

Estados Unidos.- El mundo de la tecnología ha perdido a otro de sus grandes genios. Dennis Ritchie, creador del lenguaje de programación C y cocreador del sistema operativo Unix, falleció el pasado 9 de octubre a los 70 años de edad. Tras conocer su fallecimiento, los fanáticos de la tecnología han mostrado sus sentimientos de condolencia a través de las redes sociales, pues la noticia de su muerte ya se ha convertido en ‘trending topic’ global en Twitter

Ritchie nació el 9 de septiembre de 1941 en una villa llamada Bronxville, situada cerca de Nueva York. Estudió física y matemática aplicada en Harvard, y entre 1969 y 1973 trabajó en Bell Labs, en la creación del lenguaje de programación C.

C ha sido la base para la creación de lenguajes muy populares como Java, Objective-C, PHP y C++, entre otros. Además, Ritchie hizo aportes fundamentales al sistema operativo Unix, que permitió aprovechar el poder de cómputo en grandes organizaciones antes de que se popularizaran el PC y los servidores pequeños.

Unix, además, sirvió de inspiración para el desarrollo del sistema operativo GNU/Linux, y uno de sus derivados, BSD, sentó las bases del sistema operativo de Apple, Mac OS X. Ritchie es uno de los pioneros tecnológicos más premiados del planeta. En 1983, recibió junto a Ken Thompson el Premio Turing por su teoría en sistemas operativos genéricos. En 1990, obtuvo la Medalla Richard Hamming del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE). Luego, en 1999, Ritchie recibió de las manos de Bill Clinton la Medalla Nacional de Tecnología de Estados Unidos, como reconocimiento por sus grandes aportes a la informática. Sin duda, la herencia que deja Dennis Ritchie a la tecnología es invaluable. Gran parte de los lenguajes de programación y los sistemas operativos que existen en la actualidad están basados en su importante legado, y es gracias a Dennis y a quienes se basaron en su trabajo que hoy podemos usar plataformas como Android, iOS, Mac OS X, GNU/Linux, e incluso este sitio web.

La muerte de Dennis Ritchie se suma a la triste partida de Steve Jobs. Es así como en una sola semana el mundo de la tecnología ha sido golpeado por la pérdida de dos de sus más grandes genios y creadores.

Redes Soliales Libres

Si hablamos de redes sociales, hablamos de privacidad y neutralidad. Por un lado, nadie te garantiza que tus datos permanecerán en el anonimato, y nadie te garantiza que esa red social no intentará forzarte o “sugerirte” el uso de las herramientas de esta o esa empresa. La solución no es eliminarlas, sino utilizar "redes sociales libres".


Articulo completo en usemosLinux

¿Qué es GNU/LINUX?

GNU/Linux es uno de los términos empleados para referirse a la combinación del núcleo o kernel libre similar a Unix denominado Linux, que es usado con herramientas de sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licencia Pública General de GNU, en inglés: General Public License) y otra serie de licencias libres.1

A pesar de que Linux es, en sentido estricto, el sistema operativo,2 parte fundamental de la interacción entre el núcleo y el usuario (o los programas de aplicación) se maneja usualmente con las herramientas del proyecto GNU o de otros proyectos como GNOME. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linux para referirse a la unión de ambos proyectos. Para más información consulte la sección "Denominación GNU/Linux" o el artículo "Controversia por la denominación GNU/Linux".

A las variantes de esta unión de programas y tecnologías, a las que se les adicionan diversos programas de aplicación de propósitos específicos o generales se las denomina distribuciones. Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios. Algunas de ellas son especialmente conocidas por su uso en servidores y supercomputadoras.3 donde tiene la cuota mas importante del mercado. Según un informe de IDC, GNU/Linux es utilizado por el 78% de los principales 500 servidores del mundo,4 otro informe le da una cuota de mercado de % 89 en los 500 mayores supercomputadores.5 Con menor cuota de mercado el sistema GNU/Linux también es usado en el segmento de las computadoras de escritorio, portátiles, computadoras de bolsillo, teléfonos móviles, sistemas embebidos, videoconsolas y otros dispositivos.

HISTORIA
El proyecto GNU, que fue iniciado en 1983 por,Richard Stallman;8 tiene como objetivo el desarrollo de un sistema operativo Unix completo y compuesto enteramente de software libre. La historia del núcleo Linux está fuertemente vinculada a la del proyecto GNU. En 1991 Linus Torvalds empezó a trabajar en un reemplazo no comercial para MINIX9 que más adelante acabaría siendo Linux.

Cuando Torvalds liberó la primera versión de Linux, el proyecto GNU ya había producido varias de las herramientas fundamentales para el manejo del sistema operativo, incluyendo un intérprete de comandos, una biblioteca C y un compilador, pero como el proyecto contaba con una infraestructura para crear su propio núcleo (o kernel), el llamado Hurd, y este aún no era lo suficiente maduro para usarse, comenzaron a usar a Linux a modo de continuar desarrollando el proyecto GNU, siguiendo la tradicional filosofía de mantener cooperatividad entre desarrolladores. El día en que se estime que Hurd es suficiente maduro y estable, será llamado a reemplazar a Linux.

Entonces, el núcleo creado por Linus Torvalds, quien se encontraba por entonces estudiando en la Universidad de Helsinki, llenó el "espacio" final que había en el sistema operativo de GNU.