Rincón Informático

Un rincon para hablar sobre GNU/Linux, seguridad informatica, y mas!!

Archive for febrero, 2009

Curso Python capitulo VII

Posted by Epsilon On febrero - 17 - 2009

Antes de empezar con el tema de hoy, quiero pedir disculpas a todos aquellos que están siguiendo el curso, por que debido a trabajo y sobretodo estudio me he quedado corto de tiempo para seguir con este interesante y agradable espacio en el cual todos estamos aprendiendo lo maravillo que es Python.

Hoy vamos a estudiar un tema complementario al capitulo anterior, se trata de las funciones que retornan un dato. Muchos de ustedes sabrán lo que significa este concepto puesto que en otros lenguajes también se aplica, sin embargo veremos la forma y la sintaxis con la cual trabaja nuestro lenguaje Python.

Hay situaciones en las cuales nosotros como programadores necesitamos que una función reciba un dato, haga un proceso con el y por ultimo nos devuelva el resultado de este proceso para almacenarlo en una variable, usarlo en otro proceso, o simplemente para mostrarlo. En Python esto es muy de hacer y que mejor explicación que un ejemplo.

EJEMPLO

Vamos a utilizar el mismo ejemplo anterior, sobre  calcular los numeros pares en un determinado rango, pero ahora lo haremos retornando el valor.

#!/usr/bin/env python
def pares(x1):
if x1%2==0:
return x1
else:
return “-”
#fin declaracion funcion
lim1=10
lim2=20
while lim1<=lim2:
print pares(lim1)
lim1=lim1+1
print “fin”

Recuerden que  en la programacion hay infinitas formas de realizar un programa que  resuelva un , esta es una de las tantas y aclaro NO ES LA MEJOR pero lo quise hacer asi para que vieran algo muy interesante  que nos ofrece python. Como pueden ver en la primera parte del if  retornamos un valor  y en la segunda parte retornamos un caracter, lo que significa que python no nos obliga a que el retorno sea siempre del mismo tipo como lo hacen  los demas lenguajes.  Si ejecutan este pequeño el resultado sera algo como esto:

curso_python5

Si son un poco observadores notaran que es el mismo resultado que el ejercicio anterior, pero con codigos diferentes. Espero que hayan entendido y por favor  recuerden la identacion  ya que por el editor de WP en los ejemplos no se ve muy bien, pero es importante  la identacion ya que python se basa mucho en este concepto para saber el inicio y el fin de una estructura.

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , ,

Curso de Python capitulo VI

Posted by Epsilon On febrero - 14 - 2009

Me da mucha alegria, saber que por lo menos una persona esta siguiendo el curso, y que no estoy predicando en el desierto, espero que las cosas sigan asi, y que cualquier duda o sugerencia sera bienvenidad, y aceptada.

Hoy vamos hablar  sobre algo que  muchos deben conocer ( si han programado en otros lenguajes),  se trata de las funciones, pero que son las funciones?

Las funciones son una estructura fundamental en la programacion, son un conjunto de instrucciones que realizan una accion, que se puede repetir varias veces en un programa. se le asigna un nombre, y despues es llamada dentro del  cuerpo del algoritmo.

Su sintaxis es:

def nombrefuncion( parametros que recibe):
bloque de instrucciones.

Para declarar una funcion se utiliza la palabra restringida def, despues va el nombre de la funcion, y en los parentesis, los parametros que recibe para hacer el proceso, es decir, algunas acciones necesitan recibir datos para procesarlos y despues retornar el resultado de ese proceso. No se puede olvidar el factor de la identacion, puesto que determina que instrucciones van dentro de la funcion.

Ahora que ya tenemos declarada la funcion solo basta con llamarla por su nombre:

  • nombrefuncion(): Si no recibe parametros.
  • nombrefuncion(parametro1, parametro 2): Si recibe parametros.

Veamos un ejemplo, para identificar muy bien como funcionan las funciones en python:

Vamos hacer el programa, del capitulo pasado,  este era: Mostrar en pantalla los 100 primeros numeros pares, pero esta vez,  lo haremos  en un rango determinado, es decir, mostrar en pantalla los numeros pares entre x1 y x2:

#!/usr/bin/env python
def pares(x1,x2):
while x1<=x2:
if x1%2==0:
print x1
print “-”
x1=x1+1
lim1=10
lim2=20
pares(lim1,lim2)
print “fin”

En este ejemplo vemos claramente, que primero declaramos la funcion,  que recibe   parametros, muchos de ustedes preguntaran, por que en la funcion trabajamos con x1, y x2, y en el programa trabajamos con lim1 y lim2, esto es por que   la funcion  recibe  es el VALOR del parametro y no la variable como tal,  es decir, en el ejemplo cuando llamamos  la funcion quiere decir que a x1 le asignamos el valor de lim1, esto es lo que se conoce como variables locales y globales. Por ultimo se hace el proceso y  nos muestra el resultado:

curso_python5

Si han notado con este programa  podemos imprimir en pantalla  los numeros pares en un  determinado rango,  solo basta con cambiar los valores de las variables lim1 y lim2. Bueno espero que hayan entendido y que practiquen mucho.

Etiquetas: , , , , , , , , , , , , , , , , , , , , ,

Instalando WebMin en Ubuntu Server.

Posted by SpiderM@N On febrero - 13 - 2009

WebMin es una herramienta basada precisamente en una interface web, está orientado para los administradores de servidores , la idea es que desde cualquier navegador podamos conectarnos a nuestro servidor y configurarle muchas características o agregarle nuevas.
En lo personal no es que lo necesite (me gusta realizar las cosas “manualmente”) pero tengo la plena seguridad de que a mucha gente le será de instalar este tipo de aplicaciones.

Primero descargamos el paquete de WebMin, lo encontramos en TAR, GZIP, RPM, DEB, PKG, ZIP, para este ejemplo usaremos el archivo .DEB.

Una vez el paquete esta en nuestro equipo, debemos copiarlo al Servidor, la manera más fácil de hacerlo es con samba y así de una vez podemos ir instalando este practico y SUPER útil programa.

NOTA: Para quienes no saben que es samba, es un implementación libre de SMB/CIFS, (el cual ya lo comentamos en la entrada anterior) como ya sabemos CIFS es otra re-implementación hecha por Microsoft para sus Sistemas Operativos, le pusieron samba por SMB, en otras palabras con samba puedes compartir archivos e impresoras en redes Windows (como ya lo vimos en otra entrada)

Vamos a una consola como root y digitamos:

install samba samba-doc smbclient

Una vez termina la instalación debemos configurar samba, vamos a la siguiente ruta:

/etc/samba

Y buscamos el archivo smb.conf y lo abrimos con nuestro editor de archivos planos preferido (VI, nano…)
Una vez allí buscamos la línea.

security = user

Cambiamos el user por share (ya se que esta no es una práctica recomendada, pero para lo que necesitamos lo podemos usar mientras copiamos el archivo de WebMin)
Luego buscamos:

map to guest = bad user

Y lo comentamos, es decir, le colocamos el sigo # adelante del texto, posteriormente debemos declarar la carpeta que queremos compartir, para esto vamos a la última parte del archivo y escribirnos algo parecido a esto:

[WebMin]

path = /home/user/webmin
writeable = yes
read only = no
guest ok = yes

NOTA: DEBEMOS tener una carpeta en /home/user/webmin, con los permisos adecuados, para esta instalación podemos configurar 777

Guardamos y salimos de nuestro editor de archivos y reiniciamos el servicio samba:

/etc/init.d/samba restart

Una vez reiniciado ya podemos hacer uso de la carpeta compartida desde nuestro cliente hacia el servidor, así que copiamos el archivo la carpeta.

Una vez terminado el proceso nos dirigimos a la carpeta que compartidos desde el servidor

/home/user/webmin

Y debemos tener el archivo del webmin, esperando ansioso por ser instalado, asi que por favor no lo hagamos esperar…

dpkg –i nombredelpaquete

Si te salen los siguientes errores, sigue leyendo, sino puedes saltar esta parte.

aja

Esto significa que el paquete que descargamos tiene dependencias a otros paquetes que no tenemos instalados en nuestro equipo, pero no vamos a descargar uno por uno para luego instalarlo, no, solo usaremos un comando para que esto sea “automatico”.

apt-get –f install

NOTA PERSONAL: Una de las cosas que mas me gusta del APT es el mensaje al final de la ayuda “This APT has Super Cow Powers”

Despues de este comando el APT no solo instala las dependencias sino tambien el paquete del WebMin, debemos tener en cuenta que por defecto el webmin abre el puerto 10000, como bien lo indica el mensaje al final de la instalación.

aja1

Vamos a nuestro navegador de confianza (Firefox) y…

aja2

Puedes usar el ROOT para entrar…¡ Y a explorar el WebMin!!

Descargar WebMin.

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Curso de Python capitulo V

Posted by Epsilon On febrero - 12 - 2009

Poco a poco, vamos avanzando en el curso, y hemos llegado a una de las estructuras  mas importantes,  se trata de la estructura repetitiva o de ciclos llamada while. Esta estructura lo que hace es repetir las instrucciones que esten dentro de ella hasta que la condicion se cumpla. Que mejor que un ejemplo para entender mejor el concepto:

#!/usr/bin/env python
print “Numeros del 1 al 10:”
numero=1
while numero<=10:
print numero
print “-”
numero=numero+1
print “Fin”

¿Que hace este programa?  , este programa  imprime los numeros del 1 al 10, hay que recalcar cosas:

  1. Tengan muy  presente siempre la identacion, pues eso es lo que determina lo que va adentreo del while y lo que no, como lo pueden ver claramente en el ejemplo.
  2. La condicion en este caso, es que la variable numero sea menor que 10, esto se leeria “mientras que numero sea menor que 10 haga estas instruccion”.
  3. Algo que es muy importante es que dentro de la estructura debe haber alguna instruccion que cambie el valor de la variable,  por que si no se cambia el valor de la variable dentro del ciclo esto llevaria  a lo que un profesor de mi antigua universidad llamaria “Abrazo mortal”. Es decir, que la condicion nunca se cumpliria y se quedaria repitiendo las instrucciones infintas veces.

Este programa nos arrojara algo como esto:

cur_python6

Con esto aprendido ya podemos realizar muchas practicas, les propongo un ejercicio, para que lo hagan y practiquen, hagan un programa que imprima los 100 primeros numeros  pares, con eso practican todo lo que llevamos.

Etiquetas: , , , , , , , , , , ,

Microsoft Windows BROWSER protocol

Posted by SpiderM@N On febrero - 11 - 2009

Hoy tenia ganas de Sniffear la red de la empresa donde laboro. Quienes no saben que es Sniffear es la adaptación verbal a la acción de ejecutar un programa Sniffer, un Sniffer es un “capturador” de paquetes de datos, y digo capturador por que en realidad lo que hace el Sniffer es simplemente “escuchar” lo que pasa por nuestra interfase de red y mostrárnoslo.

¿Por que puede hacer esto? Hay varias razones, siendo la principal que en las de datos los paquetes se trasmiten para TODOS los computadores que están conectados a esta, pero solo el “verdadero” destinatario es quien “recoge” el paquete, ¿Quien es el verdadero destinatario? bueno si la aplicación que se esta usando es basada en TCP/ el destinatario será el equipo con la destino, campo que encontramos en el paquete de datos, ¿Y entonces por que lo pueden ver todos? por que es un protocolo que se encuentra en la Capa 3 del modelo OSI de , en otras palabras eso significa que IP funciona basado en protocolos inferiores los cuales no la tienen tan clara y como tal no fueron hechos única y exclusivamente para IP, es por ello que podemos ver los datos que se trasmiten, por que un Sniffer NO depende de IP para funcionar.

Dejando claro eso en primera instancia explicamos el segundo punto, ¿Y como se ven los datos? por razones que comienzan a ser obvias los datos no se ven como quisiéramos, se ven aun mas claros, obtenemos todo lo que envía un computador cuando se conecta a una red, claro esta que NO en un lenguaje tan sencillo como lo vemos en Outlook o en Messenger, pero si podemos entender bastante bien lo que dicen estos paquetes, mas adelante tendremos un ejemplo.

Después de esta pequeña introducción hablemos del protocolo que lleva el titulo de esta entrada. Windows Browser Protocol, la verdad no conocía este protocolo de red, fue desarrollado por para su famoso sistema operativo Windows, como muchas de las cosas que desarrolla este protocolo es de uso privativo y no tiene nada que ver con Internet o HTTP.

El Browser Protocol registra los nombres SMB (CIFS) o de NetBIOS de una red, los almacena y los comparte para los demás nodos de la red. No se puede confundir ni con SAMBA ni con el WINS los cuales cumplen funciones parecidas pero no iguales. ¿Para que almacenar los nombres NetBIOS de los computadores que hacen parte de la red?, bueno es que este protocolo no solo almacena el nombre, también tiene un campo en el que se incluyen los servicios que el host ofrece, claro los servicios que están integrados con el sistema operativo, en este caso, Windows.

Todos estos datos son enviados por parte del computador , el solo registra lo que lee en el campo del protocolo.

¿Que nos ofrece este campo? Este campo se llama Server Type y tenemos 8 grupos de 4 bits con los que podemos identificar que rol tiene un host en una red, debemos recordar que esto SOLO aplica para los host que usen un sistema operativo que tenga esta característica de MailSlot en SMB, principal y casi únicamente Windows.

Veamos un ejemplo de trama.

browser1

El campo en cuestión es el que esta subrayado, como podemos ver después del 0x tenemos 8 dígitos hexadecimales los cuales me pueden indicar lo siguiente:

browser2

He remarcado los bits que identifican al host en la red, es así como sabemos que esta es una Estación de trabajo (para Windows TODO es una estación de trabajo) y es un servidor (Para Windows todos los host pueden ser servidor), este es un ejemplo de un nodo sencillo, pero si vemos uno como esto:

browser4

Sabríamos que se trata de un equipo en la red, con sistema operativo Windows, que tiene una impresora conectada y compartida. Por ultimo como para ver hasta donde llega este protocolo podemos encontrarnos con información como esta:

browser5

Con lo que ya tendríamos mucha información y una muy posible víctima de ataque, valgan la redundancia.

DISCLAIMER: toda la información contenida en esta entrada es para fines educativos y de Pen Testing, JAMAS se ha pensando en modificar una trama de este tipo para generar un DoS sobre algún dominio, no puede haber alguien tan malo.

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Extension de Capitulo IV curso de Python

Posted by Epsilon On febrero - 11 - 2009

No quería seguir con el siguiente capitulo, sin antes comentar y explicar algo que es muy importante en la estructura condicional y en general en todas las estructuras y en la mayoría de lenguajes actuales (Por lo menos java y C++).

Hay que tener en cuenta los operadores relacionales que se deben aplicar cuando disponemos de una condición, estos operadores por lo menos en Python son:

  • == Igualdad
  • != Diferencia
  • < Menor
  • <= Menor igual
  • > mayor
  • >= mayor igual

Igualmente se tienen unos operadores logicos que nos permiten agrupar condiciones simples, esto ayuda  a que el programa sea mas compacto, corto, entendible y muchas veces evita que usemos estructuras anidadas, en Python tenemos los siguientes  operadores logicos:

  • And: Cuando agrupamos condiciones con este operador, las  dos condiciones se deben cumplir, para  que  sea verdadero, si por lo menos una de las dos condiciones no se cumple, es falso.
  • Or: Este operador indica que por lo menos una de las dos condiciones tiene que cumplirse para que sea verdadera, si las dos condiciones no se cumplen entonces  es falso.
  • Not: Simplemente es una negacion.

Creo que esto muchos lectores ya lo tenian claro, sin embargo,  hay personas que estan comenzando desde cero y no se puede obviar cualquier detalle, asi que espero que les haya quedado claro, es algo que no requiere ejemplo, pero si muy importante que no se puede dejar sin explicar. Si alguien tiene alguna duda con gusto la trataremos de responder. No siendo mas esperen ahora si el capitulo V.. Y vamos aumentando de nivel!!!!

Etiquetas: , , , , , , , , , , , , , ,

Curso de Python capitulo IV

Posted by Epsilon On febrero - 10 - 2009

Antes de seguir con este capitulo el cual es muy interesante, quiero pedir disculpas, puesto que  no me habia quedado mucho tiempo para dedicarle al blog, debido al estudio, trabajo, compromisos, etc.  Pero ahora estamos de vuelta y con algo muy  importante para el curso hoy vamos hablar de la estructura condicional IF.

Si han programado en otros lenguajes, sabran que para tomar una desicion en nuetsro programa  debemos usar esta estructura, sin embargo   implementa el concepto de la identacion, concepto que en otros lenguajes no es muy importante. la declaracion del IF  es de la siguiente forma:

if condicion:
todo el codigo que este identando.
else:
codigo identado, resultado de no cumplir la condicion.

Veamos un ejemplo practico de esto:

import random

numero=random.randint(1,20)
print numero
if numero<10:
print numero
print “el numero es de un solo digito”
else:
print numero

print “el numero  es de 2 digitos”
print “programa terminado”

Cabe resaltar que en nuestro programa  la instruccion print “programa terminado”, no esta identada por lo tanto  esta fuera de la condicional. Ahora si lo ejecutamos  nos arrojara algo como esto:

cur_python5

Hay que hacer varias anotaciones:

  1. Es muy importante la identacion, por lo tanto se debe ser organizado  en ese sentido.
  2. La funcion random es  la que nos devuelve un valor aleatorio en este caso entre 1 y 20.

Con esta estructura ya aprendida, podemos practicar mucho, ya que es un pilar fundamental en la programacion, espero que les haya gustado y  a medida que vamos avanzando se va ir subiendo el nivel, asi que a estudiar y practicar

Etiquetas: , , , , , , , , , , , , , , , ,

Curso de Python capitulo III

Posted by Epsilon On febrero - 8 - 2009

En esta parte del , hemos aprendido sobre, que es python, como funciona, como se declaran  las variables, como se muestran un mensaje o el valor de una variable en pantalla.

En este capitulo vamos aprender sobre los operadores matematicos, y las operaciones que se pueden hacer con estos.  Python maneja los siguientes  operadores matematicos:

+   Suma
-   Resta
*   Multiplicacion
/   Division de  reales
//Division de enteros
% Modulo (Residuo de la division)
** Potencia

Ejemplo:

Abrimos el editor de texto y escribimos lo siguiente:

#!/usr/bin/env python
n1=5
n2=10.5
print “suma: “,n1+n2
print ” Multiplicacion: “,n1*n2
print “Division: “,n2/n1
print “potencia :”, n1**2

Al ejecutarlo como ya hemos aprendido debe salir lo siguiente:

curso_python

Etiquetas: , , , , , , , , , , , , , ,

Instalando SAP GUI en GNU/Linux.

Posted by SpiderM@N On febrero - 7 - 2009

Hoy después de muchos problemas que tuve con mi anterior computador (tenia un Dell Optiplex 745, se daño la fuente de poder y cambié a un Optiplex 755 de mejores prestaciones), decidí instalar GNU/Linux en mi maquina, ¿que distribución? bueno, debo confesarles que me fui por lo bajo e instale Ubuntu 8.10, ¿porque? acá en la empresa no puedo darme el lujo de “perder” tiempo tratando de solucionar problemas que pueden surgir con otra distribución de GNU/Linux, si, ya se; a mi tampoco me convence esa explicación, pero es la verdad.

Una de las cosas que debo hacer casi que de manera inmediata cuando tengo un SO diferente de es instalar el cliente de SAP, en mi segundo remedo de , hice un “” de como instalar la R2 de SAPGUI para versiones GNU, sin embargo esta revisión dejo de serlo y ahora es un muy estable, con manejo de historial y hasta temas para hacer mas agradable la experiencia de usuario.

Antes de instalar el SAPGUI, debemos tener funcionando el entorno de ejecución de JAVA, es que lo que se conoce como el JRE, SUN lleva este paquete en la versión, así que vamos a la consola y ejecutamos

apt-get install sun-java6-jre

Esto toma unos minutos…después de que termine la instalación, podemos proceder con la ejecución del paquete SAPGUI, actualmente SAP REGALA el paquete SAPGUI sobre JAVA para ambientes GNU, bueno no solo para GNU incluso tambien para Windows, pero siempre y cuando sean sobre JAVA. La versión que podemos obtener por medio del sitio de descarga de SAP es la 7.10 r7, de manera que esa es la que vamos a instalar.

Cuando la tenemos en nuestro equipo vamos la consola y digitamos:

java -jar [nombredelarchivo]

java -jar PlatinGUI-Linux-710r7.jar

Inmediatamente despúes nos saldrá una pequeña ventana que no es mas que un asistente de instalación.

screenshot-sapgui-for-the-java-environment-installation-copy

screenshot-choose-installation-folder

es de lo mas parecido a Windows que se puede.

Screenshot-SAPGUI for Java.png

Luego de instalado, debemos ir a crear la entrada o el icono de acceso al mandante donde vamos a trabajar, asi que vamos a New, Advanced, activamos el modo experto, y digitamos los datos de asi

conn=/H/ipdeservidor/S/3200

Expliquemos, la H hace referecia al HOST o al servidor, y el S, al servicio de escucha en este caso 3200, el 00 es por que el numero de sistema es 00.

screenshot-add-new-connection-copy

No siendo mas doble clic sobre el acceso y listo, a disfrutar de SAP desde nuestro querido GNU/Linux.

screenshot-ced-1-000-copy

Descargar SAPGUI sobre JAVA para GNU/Linux.

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

1st Security Blogger Summit 2009

Posted by Epsilon On febrero - 7 - 2009

El pasado martes 3 de Febrero de 2009 se realizo en España el primero encuentro denominado  Security Blogger Summit, Este encuentro donde su tematica es la seguridad informatica fue  organizado por la multinacional española Panda Security, alli se reunieron especialistas y expertos en nuevas tecnologias y seguridad informatica, algunos nombres son:

  • Bruce Schneier, gurú y nº1 mundial sobre temas de Seguridad.
  • Steve Ragan responsable de la sección de Seguridad en The Tech Herald.
  • Andy Willingham Profesional IT del Sector Financiero y autor del blog Andy IT Guy
  • Josu Franco Corporate Customer Unit Director de Panda Security
  • Ero Carrera (Chief Research Officer de Collaborative Security en VirusTotal – Hispasec)
  • Entre otros….

En este evento se hablo y debatio sobre la actualidad de la seguridad, sin embargo hubo un tema el cual genero mucho impacto este fue, el papel que debían jugar las Empresas, las administraciones públicas y los usuarios, ya que finalmente todos estamos expuestos diariamente a ataques informáticos y virus, por lo que la seguridad nos compete a todos. Se habló de la rapidez con la que avanza el medio ()  y la dificultad de aprender de forma inmediata. Aca les dejo algunas impresiones de los asistentes y ponentes:

Sebastián Muriel:”El 80% de los problemas se solucionarían con sentido común”.
Bruce Schneier: “Hay problemas de adaptación generacional. No se puede educar a mucha gente porque los riesgos son móviles, cuando has educado a uno, los riesgos han cambiado”.
“En el caso de las tarjetas de crédito el gobierno no educó a los usuarios, trasladó el problema a las empresas y éstas investigaron. Hay que hacer lo mismo: no se puede trasladar el problema sólo a los usuarios, sino también a los bancos y a otras empresas, por ejemplo.”

Byron Acohido: “El 90% del problema no es del usuario. Si un sistema con errores se pone en el mercado no es problema del usuario”.

Antonio Ortiz: “No hay que extender el miedo hacia Internet, porque cuando hay miedo hacia algo se legisla para prohibir y sería muy peligroso legislar sobre Internet”

Javier Villacañas: “la responsabilidad debería ser compartida entre empresas, usuarios y organismos públicos. No sólo es cosa del usuario. El usuario es quien conduce y quien paga las consecuencias si tiene un accidente de tráfico y, sin embargo, se exige a los gobiernos que hagan campañas, que mejoren infraestructuras, etc.”.

Andy Willingham: “La educación ha sido un gran fracaso, pero no hay que rendirse porque la tecnología por sí sola no puede resolverlos (los problemas de seguridad). Pero hay que educar de manera que la gente nos entienda”

Bruce Schneier: “Es un problema internacional, lo que hace más difícil perseguirlo, recoger pruebas, etc. Somos buenos en robos locales, pero no en los transnacionales”.

César Lorenzana: “Es muy difícil seguir las pistas, ya que la mayoría de las veces las autoridades de un país tienen que pedir permiso a las de otro, éstas órdenes judiciales, etc. Cuando se consigue por fin una relacionada con el cibercriminal, esa ya no existe. El tiempo es crítico en los delitos cibernéticos y ahora no se es tan rápido”.

César Lorenzana: “Nunca habrá una seguridad al 100%. Hay que asumir que miles de personas están trabajando para derribar los sistemas de seguridad”

Steve Ragan: “En Estados Unidos se han propuesto algunas leyes, pero en cuanto los usuarios empiezan a ver que esas leyes se entrometen en su intimidad, las rechazan. Esto hace muy difícil legislar”.

Fuente: Aqui

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Curso de Python Capitulo II

Posted by Epsilon On febrero - 6 - 2009

En el capitulo anterior aprendimos las cosas basicas, que es PYTHON, como se instala, y  lo que  se hace inicialmente cuando estamos aprendiendo a programar en X  lenguaje el “hola mundo”

En este nuevo capitulo del curso vamos aprende a manejar las variables,  en python, como se declaran y que de datos existen en  este lenguaje.

Antes de empezar necesitamos saber los conceptos, del tema y que mejor que la wiki  para explicarnos esta parte:

En programación, las variables son estructuras de datos que, como su nombre indica, pueden cambiar de contenido a lo largo de la ejecución de un programa. Una variable corresponde a un área reservada en la memoria principal del ordenador pudiendo ser de longitud:

  • Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones — como las colecciones de otras variables (arrays) o las cadenas.
  • Variable.- Cuando el tamaño de la misma puede variar a lo largo de la ejecución. Típicamente colecciones de datos.

Ya teniendo claro que es una variable,  debemos saber algo mas. Python soporta varios tipos de datos estos son:

  • Entero
  • Flotante
  • Complejo
  • Cadena
  • Booleano

En Python es relativamente sencillo declarar variables, solo basta con ponerles algun valor. Por ejemplo

  • cantidad=5 -> Variable entera con  nombre cantidad y  valor 5
  • Sueldo=415.879 -> Variable  flotante con nombre sueldo y valo 415.879
  • indice= 5+w -> Variable compleja.
  • nombre=’PEPE’ ->Variable cadena
  • Pagado=false ->Variable booleana con el nombre pagado, su valor false

Por ultimo vamos a realizar un pequeño ejemplo  en el editor de texto vamos a crear un archivo hola.py,  y escribiremos alli nuestro de esta manera:

#!/usr/bin/env python
nombre=’
edad=21
dinero=150.000
casado=False
print “nombre: “, nombre,” edad: “, edad
print ” dinero: “, dinero, ” casado: “,casado

Despues de esto,  guardamos  y lo ejecutamos  de la misma forma que explicamo en el curso # 1 “python hola.py”, y esto nos arrojara  el siguiente resultado:

cur_python4

En este ejercicio practicamos  la asignacion de variables,  y la impresion en pantalla de las mismas, si quieren imprimir un salto de de linea es asi “\n”,  espero que hayan entendido y les haya gustado este capitulo.

Tip: Los comentarios en python comienzan con #

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Curso de Python Capitulo I

Posted by Epsilon On febrero - 5 - 2009

Hoy mientras estaba en clase de programación 4, me surgió una gran idea que quería compartir con todos ustedes. Desde hace ya  bastante tiempo he  deseado aprender a programar en un lenguaje multiparadigma como lo es PYTHON, pero por una u otra razón (Quizas el tiempo), no lo  he podido hacer,  alguna vez lo practique,  pero sin embargo   fueron cosas muy básicas,  y con el  pasar de los días, estos conceptos se han ido olvidando, es por esta razón, que me he puesto este propósito para  este semestre APRENDER PYTHON!!, pero esto no es todo, quería invitar a los lectores que se hicieran ese mismo propósito, y que avanzáramos juntos en este mundo de la programación.

De ahora en adelante, publicare todos mis avances para que los que estén siguiendo el curso vayan aprendiendo y practicando, hasta llegar al punto en el que por lo menos nos defendamos en este magnifico lenguaje, espero que les guste la idea y animo, a estudiar y practicar.

¿Que es Python?

Nada mejor que citar la Wiki para esta respuesta:

Python es un lenguaje de programación interpretado creado por Guido van Rossum en el año 1991.Se compara habitualmente con TCL, Perl, Scheme, Java y Ruby. Python es considerado como la “oposición leal” a Perl, lenguaje c el cual mantiene una rivalidad amistosa. Los usuarios de Python consideran a éste mucho más limpio y elegante para programar.Python permite dividir el programa en módulos reutilizables desde otros programas Python. Viene con una gran colección de módulos estándar que se pueden utilizar como base de los programas (o como ejemplos para empezar a aprender Python). También hay módulos incluidos que proporcionan E/S de ficheros, llamadas al sistema, sockets y hasta interfaces a GUI (interfaz gráfica con el ) como Tk, GTK, Qt entre otros.

Yo les diré un poco de todo lo que he leído sobre este lenguaje. Python tiene muchas ventajas en las que se encuentra  una que hay que recalcar y es que  este es un lenguaje interpretado (como PHP), lo que significa que  no tenemos necesidad de compilar nuestros programas,  lo cual ahorra mucho tiempo. Por otra parte en este lenguaje podemos hacer aplicaciones tanto para web, como aplicaciones de escritorio. Hoy en día existen muchos interpretes  para las diferentes plataformas (windows, GNU/Linux, Mac, etc), así que no hay excusa para no querer aprender!!!

Instalando  Python

Hay formas de instalar Python,  desde las fuentes, o simplemente con el comando magico, lo hare de la manera mas sencilla:

apt-get install python2.5

Para los usuarios de windows les queda de tarea investigar e instalar el software en su SO.

Con esto tendremos el interprete instalado y listo para usarse, sin embargo tambien existen ’S, para facilitar  y hacer mas agradable la programacion, lo digo por que hay personas que le tienen temor a la pantalla negra Asi que para este tipo de personas existe esto.

Despues de tenerlo instalado solo bastara con teclear en la consola:

python2.5

Y tendremos algo como esto:

cur_python

Este es el interprete alli podremos programar lo que queramos, sin embargo, tiene un problema, este  interprete  ejecuta solo una instruccion, asi que nos sera un  poco ineficiente cuando ya queramos hacer una aplicacion mas o menos robusta, pero no se preocupen para eso esta el IDE  o simplemente escribir tu programa en cualquier de textos,  empezar  el programa con esto “#!/usr/bin/env python ” guardarlo con extension  *.py  y despues ejecutarlo asi:

python nombredelarchivo.py

Ahora un ejemplo

  1. Por el interprete solo basta con escribir print “hola mundo”, despues del entere les aparecera esto:

cur_python2

2. Si lo hacemos de la otra forma (que es la mejor y mas eficiente) en consola crearemos un archivo  asi:

nano hola.py

Ya en el programa escribiremos:

#!/usr/bin/env pytho
print “hola mundo”

Para ejecutarlo sencillamente escribiremos “python2.5 hola.py ” y el resultado sera algo como esto:

cur_python3

Como pudieron ver la funcion print permite  imprimir en pantalla algun mensaje o el valor de alguna variable. Bueno creo que eso fue todo por hoy, espero que le shaya gustado y recibo dudas y sugerencias pero recuerden que estamos aprendiendo juntos

Etiquetas: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,