jueves, 23 de febrero de 2012

python - lenguaje orientado a objeto

Hola!, hoy quiero presentarles un lenguaje de programación que vengo
aprendiendo. Se trata de Python, una apuesta por la simplicidad,
versatilidad y rapidez de desarrollo, así profesan desde su web
www.python.org
Este lenguaje va teniendo cada vez mas poder en la red, lo usan empresas
como yahoo, google, entre muchas mas, es muy censillo usarlo y sobre todo
potente, vamos a explorarlo un poco.

Python es un lenguaje de scripting independiente de plataforma y orientado a
objetos, preparado para realizar cualquier tipo de programa, desde
aplicaciones Windows a servidores de red o incluso, páginas web. Es un
lenguaje interpretado, lo que significa que no se necesita compilar el
código fuente para poder ejecutarlo, lo que ofrece ventajas como la rapidez
de desarrollo e inconvenientes como una menor velocidad.

En los últimos años el lenguaje se ha hecho muy popular, gracias a varias
razones como:
.La cantidad de librerías que contiene, tipos de datos y funciones
incorporadas en el propio lenguaje, que ayudan a realizar muchas tareas
habituales sin necesidad de tener que programarlas desde cero.
.La sencillez y velocidad con la que se crean los programas. Un programa en
Python puede tener de 3 a 5 líneas de código menos que su equivalente en
Java o C.
.La cantidad de plataformas en las que podemos desarrollar, como Unix,
Windows, OS/2, Mac, Amiga y otros.
.Además, Python es gratuito, incluso para propósitos empresariales.

Características del lenguaje

Propósito general:
Se pueden crear todo tipo de programas. No es un lenguaje creado
específicamente para la web, aunque entre sus posibilidades sí se encuentra
el desarrollo de páginas.

Multiplataforma:
Hay versiones disponibles de Python en muchos sistemas informáticos
distintos. Originalmente se desarrolló para Unix, aunque cualquier sistema
es compatible con el lenguaje siempre y cuando exista un intérprete
programado para él.

Interpretado:
Quiere decir que no se debe compilar el código antes de su ejecución. En
realidad sí que se realiza una compilación, pero esta se realiza de manera
transparente para el programador. En ciertos casos, cuando se ejecuta por
primera vez un código, se producen unos bytecodes que se guardan en el
sistema y que sirven para acelerar la compilación implícita que realiza el
intérprete cada vez que se ejecuta el mismo código.

Interactivo:
Python dispone de un intérprete por línea de comandos en el que se pueden
introducir sentencias. Cada sentencia se ejecuta y produce un resultado
visible, que puede ayudarnos a entender mejor el lenguaje y probar los
resultados de la ejecución de porciones de código rápidamente.

Orientado a Objetos:
La programación orientada a objetos está soportada en Python y ofrece en
muchos casos una manera sencilla de crear programas con componentes
reutilizables.

Sintaxis:
Por último, destacar que Python tiene una sintaxis muy visual, gracias a
una notación identada (con márgenes) de obligado cumplimiento. En muchos
lenguajes, para separar porciones de código, se utilizan elementos como las
llaves o las palabras clave begin y end. Para separar las porciones de
código en Python se debe tabular hacia dentro, colocando un margen al código
que iría dentro de una función o un bucle. Esto ayuda a que todos los
programadores adopten unas mismas notaciones y que los programas de
cualquier persona tengan un aspecto muy similar. Quizas esta indentación
complica un poco a los programadores ciegos pero con un buen editor y la
perfecta configuración del lector de pantalla se puede llevar.

Funciones y librerías:
Dispone de muchas funciones incorporadas en el propio lenguaje, para el
tratamiento de strings, números, archivos, etc. Además, existen muchas
librerías que podemos importar en los programas para tratar temas
específicos como la programación de ventanas o sistemas en red o cosas tan
interesantes como crear archivos comprimidos en .zip.
Librerías Estándar para Manejo Web:

Módulo URLLIB:
este módulo es uno de los más importantes, y contiene varias funciones que
permiten obtener información de la web, accediendo páginas y enviando
datos -por ejemplo, obtenidos con un formulario realizado con un simple
documento HTML-, y su ventaja es que sólo necesita una URL válida para poder
trabajar. Algunas de sus principales funciones, son:
.urllib.urlopen(): abre una conexión web con la url, retornando un puntero
al archivo.
.urllib.urlretrieve(): descarga el contenido de la url en un archivo de la
computadora, en la locación que ha sido especificada para ello. De lo
contrario, utiliza los temporales.
.urllib.quote(): toma datos de la cadena de la url, y las codifica. También
existe la función urllib.quote_plus(), y las funciones antagónicas,
urllib.unquote(), y urllib.unquote_plus().
.urllib.urlencode(): usando un diccionario de palabras clave, las codifica
como parte de una consulta en un pedido de url. EL formato es "clave=valor",
los cuales se mandan a quote_plus() para que sean codificados.

Módulo URLPARSE:
este módulo contiene funciones especiales para la desestructuración y
reestructuración de cadenas de URL, es decir que provee abstracciones
ideales para manipular cadenas de URL, que pueden obtenerse por una simple
lectura raw, transformada en secuencia de caracteres. Hay tres funciones que
merecen ser destacadas:
.urlparse.urlparse(): desarma una cadena de URL en todos los componentes de
la misma, considerando una séxtupla con (prot_sch, net_loc, ruta,
parámetros, consulta, frag).
.urlparse.urlunparse(): hace lo contrario que la función anterior, reuniendo
la séxtupla en una sola variable que contiene la cadena url.
.urlparse.urljoin(): es muy útil para unir url de diferentes páginas de una
misma web. Toma la url base, y la une con la ruta base en la nueva url.

Módulo CGI:
esta es una librería que facilita la escritura de scripts CGI: provee
principalmente funciones para el acceso a variables globales y de entrada
estándar de los scripts antes mencionado. Esto facilita en gran medida, el
manejo de las entradas recibidas desde formularios (por ejemplo, los creados
con HTML). A su vez, contiene funciones de escape que permiten el uso de
caracteres no comunes

Módulo FTPLIB:
Como su nombre lo indica, esta librería dispone de funciones para
implementar la forma de cliente, en un protocolo ftp.

Módulo BASEHTTPSERVER:
esta librería permite implementar el lado servidor del protocolo HTTP.
Debido a la orientación a objetos que expone el presente módulo, se puede
simplemente derivar de la clase correspondiente, para crear un servidor
HTTP, y comenzar a trabajar con él, haciendo uso de las demás funciones
ofrecidas por ésta, y otras librerías.

Ya en futuro post podremos ir viendo mas librerías, aunque este lenguaje
por tener la indentación me volvió loco durante 2 años, no me dejaré vencer,
así que los invito a probarlo y si encuentran módulos o clases interesantes
me avisan para armar una nueva entrada.

miércoles, 22 de febrero de 2012

twitter - una herramienta social

Hola!, inspirado por algunos followers (seguidores) de la red twitter.com me
inspiré a escribir este post. que me preguntan:
* ¿Qué es esto de twitter?
* ¿porqué me seguís?
* ?porqué me hablas por mensaje directo?
entre otras preguntas y temas...vamos a comentar un poco el funcionamiento
de una red social y buenas prácticas (bajo mi punto de vista).

Twitter: es el híbrido de red social y micro-blog, básicamente un nuevo
medio de comunicación con el que se puede enviar un mensaje de hasta 140
caracteres a mucha gente al mismo tiempo. Esta red que tiene actualmente mas
de 200 millones de usuarios: entre personas famosas (artistas,
instituciones), empresas, medios de comunicación, profesionales, y no
profesionales. La misma se rige por seguidores (followers) y seguidos
(Friends).
¿Porqué sigues mi cuenta en twitter?: porque estás dentro de una red
social, y lo rico de esto es poder generar redes, conocer gente de
diferentes puntos geográficos e intercambiar cultura, ideas, puntos de vista
e información. porque tengas otro punto de vista diferente al mío, no veo la
razón para dejarte de seguir, cada persona es libre de opinar y defender su
posición. Porque no coincidas con todos no deberían darte unfollow:
'Encontrar y debatir puntos de vista contrarios siempre enriquece'.

Twitter está hecho para intercambiar información, pero no es un chat, no
satures tu timeline (público) con docenas de tweet sin sentido, si tienes
que opinar sobre un tema intenta de ponerte en el lugar de tus lectores
(leer 50 veces saludos de buenos días, o 30 veces tu misma postura sobre la
temática agota) para eso están los md (mensajes directo) intenta hablar
directamente y por privado a la hora de saludar o conocer a las personas.
Twitter puede salvarte de meterte en un buen trafico en la hora pico;
puede ayudarte a conseguir información más rápido, más relevante y más
eficiente que un buscador más avanzado. Twitter literalmente te mantiene
conectado pero no en un sentido lineal (persona-persona) sino geométrico
(muchas de personas - muchas de personas). no tengas miedo a participar,
ingresa a la era de la información, pero sé respetuoso, pues detrás de una
cuenta de Twitter hay una persona.

Twitter es una herramienta, y como cada herramienta puedes usarlo en tu
favor o de una manera poca productiva. Igual que un ordenador de sobremesa,
que es una herramienta muy productiva, pero no sirve para mucho si viajas
toda la semana. En esta red podés encontrar herramientas muy interesantes
como el RT. cuando veas que alguien necesita ayuda o crees que la
información es interesante. no tengas miedo. Retuitéalo.

es recomendable decidir cuándo te conectas a Twitter. No hay que dejarlo
abierto todo el día, porque es una gran distracción. Lo mismo pasa en la
vida 'real': si pasas todo el día haciendo networking, ¿cuando estás creando
tu producto?.

contáctame por twitter e intercambiemos información, animate a sumarte a
esta red y usalo en forma productiva, brinda a la red información
relevante!.
me encontrarás como @barrazamiguel.
¿la herramienta está en tus manos, te animarás a usarla?, ¡te espero!.

sábado, 18 de febrero de 2012

La Nomofobia (una nueva enfermedad)

La Nomofobia - la aversión a estar sin celular, sigue aumentando.

Un nuevo estudio realizado en el Reino Unido ha traído sorprendentes
resultados: dos de cada tres adultos se vería afectado por la nomofobia.

Nomo-qué?

Se le conoce como nomofobia al temor irracional de salir de casa sin el
teléfono móvil. Este término viene de "no mobile phone phobia", utilizado
por primera vez en otro estudio realizado por la Oficina de Correos del
Reino Unido, para determinar la ansiedad que se sufre al ser dueño de un
teléfono móvil

Este nuevo estudio realizado ha demostrado que el 66% de las 1.000 personas
entrevistadas se preocupan en salir de casa sin el celular, para poder
permanecer en contacto constantemente. La cifra ha aumentado, pues el último
estudio realizado al respecto, hace cuatro años, ponía la cifra en 50%. De
ese 66%, el 41% de los entrevistados
incluso contaba con dos o más teléfonos.

Entre otros datos, se descubrió que son las mujeres las que tienen mayor
temor de perder sus teléfonos, con 70%, contra el 61% de los hombres.
Dividiéndolo por edad, los más nomofóbicos caen en el rango de 25-34 años,
con un 68%.

De este estudio también obtuvimos algunos datos interesantes de seguridad:
sólo el 41% utiliza un código de acceso (PIN), 10% encripta sus
dispositivos, y un enorme porcentaje, 46%, no utiliza protección alguna.
Teniendo en cuenta que el 58% de los encuestados utiliza al menos un
dispositivo para negocios / trabajo, es uno de los puntos más preocupantes.

Ahora, si bien las cifras suenan bastante impresionantes, debemos cuestionar
la severidad del problema. Las respuestas parecen apuntar más a personas
preocupadas por haber dejado el teléfono en casa, en lugar de una verdadera
fobia, un temor o miedo irracional, algo mucho
más severo.

Aún así, dada nuestra creciente dependencia tecnológica, no sorprende que
este temor o preocupación por dejar abandonado el teléfono móvil /
smartphone cada vez que salimos, siga en aumento con el paso de los años.