lunes, 15 de febrero de 2010

Iteradores en python

Una de las cosas interesantes que tiene python es la construcción que permite hacer de iteradores. Desconozco si java lo permite hacer.
Aquí va la implementación:


"Created on 15/05/2010
@author: Bernardo
"
def millon():
i=0
while i < 1000000:
yield i
i+=1


Para llamarlo se hace de la siguiente manera:


f = millon()
print f.next(), f.next()


De esa manera se ahorra construir una lista de un millon de posiciones, reservar espacio, etc, etc. Se van devolviendo los valores en la medida que se necesitan.
Puede usarse:

print dir(f)

De esa manera se ven todas las operaciones asociadas a f.

Saludos!

Comprobar existencia de un archivo en Bash

A veces suele ser útil en los scripts comprobar si un archivo existe, para evitar acciones o tomar otras.
El siguiente código comprueba la existencia de un archivo y muestra en pantalla el correspondiente estado.


#!/bin/bash
FILE=/home/bernie/Escritorio/pp

if [ -e $FILE ]; then
echo El fichero existe
else
echo El fichero no existe
fi


Saludos!

lunes, 18 de enero de 2010

Lo mejor de Cheat-Sheets para Linux

Leo Linux* screw y encuentro esta recopilación de Cheat-Sheets para Linux. Muy buenas por cierto.

LinuxScrew Cheat Sheets

Obtener nombre de la pc a partir de su IP

Comunmente en una red de área local, suele ser útil saber a quién corresponde cada pc. Muchas veces existen IP's reservadas para determinada tarea o lo que sea.
Con el comando: nbtstat -a NUMEROIP, se nos devuelve el nombre de la pc con la IP correspondiente. De esta manera puede ser útil ahorrarnos unos cuantos broadcast de e-mails diciendo "Quién está usando tal o cual IP?".

Saludos!

viernes, 1 de enero de 2010

Listar las carpetas por tamaño en linux

Suele ser útil obtener los tamaños de los archivos de una pc. Muchas veces es necesario borrar ciertos archivos por falta de espacio, o saber cuál es el que ocupa mas, etc. El simple ls (o todos sus sabores ls -al, etc) no devuelve mas que el listado de las carpetas o archivos que se encuentran en un directorio. Para obtener la lista de carpetas ordenadas por tamaño, puede ser útil correr la siguiente línea:

for f in * ; do if [ -d "$f" ]; then du -sh "$f" ; fi done | sort -n

Espero que sea de utilidad!
Saludos!!

Datos del Linux que corre en la PC

Es un buen comando que sirve para obtener la versión del sistema operativo (linux) que está corriendo en una pc.

lsb_release -a

La info que se devuelve es algo así como:

LSB Version: :core-3.0-ia32:core-3.0-noarch:graphics-3.0-ia32:graphics-3.0-noarch
Distributor ID: RedHatEnterpriseAS
Description: Red Hat Enterprise Linux AS release 4 (Nahant Update 4)
Release: 4
Codename: NahantUpdate4

A veces suele ser importante (y util) saber que sistema operativo estamos corriendo.
Saludos!

domingo, 6 de diciembre de 2009

Python Cliente-Servidor

Va la programación de un cliente y un servidor en python. Son básicos, pero salieron en cuestión de 40 minutos y sirve para ver como funciona!
Aqui va entonces el cliente:


'''
Created on Oct 1, 2009

@author: Bernardo
'''
import socket

s = socket.socket()
s.connect(("localhost",9999))
while True:
mensaje = raw_input("> ")
print "Cliente mandando mensaje..."
s.send(mensaje)
if (mensaje == "Quit"):
break
print "Adios! (Cliente)"
s.close()


... y aquí va el servidor:

'''
Created on Oct 1, 2009

@author: Bernardo
'''
import socket

s = socket.socket()
s.bind(("localhost",9999))
s.listen(10) # Acepta hasta 10 conexiones entrantes.
sc, address = s.accept()
print address
while True:
recibido = sc.recv(1024)
if (recibido=="Quit"):
break
print "Mensaje recibido: ", recibido
print "Enviando respuesta..."
sc.send(recibido)

print "Adios! (Servidor)"

sc.close()
s.close()


Saludos!