Juan Pedro Fisanotti: La prensa en China

   Publicado:

Cómo la mayoría sabrá, Google cerró su sitio de China (www.google.cn) por no estar de acuerdo con la censura que el gobierno de ese país le obligaba a tener. El gobierno habló públicamente sobre la decisión, pero también envió las siguientes instrucciones a todos los medios de prensa del país, acerca de cómo deben informar sobre el asunto.
Después de leerlas, siento pena por la población de China. Es una dictadura peor de lo que pensaba...

(sacado del Washington Post, lo traduje rápido para que lo puedan leer quienes no sepan inglés)

A todos los editores en jefe y administradores:
Google ha oficialmente anunciado su retirada del mercado de China. Este es un incidente de alto impacto. Ha desatado discusiones de los usuarios de internet que no están limitadas al ámbito comercial. Por ende por favor presten estricta atención a los siguientes requerimientos para el contenido durante este período:

A. Secciones de noticias:

1. Solo utilicen el contenido del sitio web del Gobierno Central; no utilicen contenido de otras fuentes.

2. Al hacer re-posting no deben cambiar el título. (n. del t.: re-posting = postear el contenido en otro sitio)

3. Las recomendaciones de lectura deben apuntar al sitio principal de contenido del Gobierno Central.

4. No produzcan páginas de tópico relevante; no creen sesiones de discusión; no lleven a cabo reportes de investigaciones relacionadas.

5. Programas en linea con expertos y estudiantes sobre esta materia deben solicitar autorización por adelantado. Este tipo de producción de programas auto iniciada está estrictamente prohibido.

6. Administren cuidadosamente los comentarios en los post de noticias.

B. Foros, blogs, y otros tipos de secciones interactivas:

1. No está permitido mantener discusiones o investigaciones sobre el tópico de Google.

2. Las secciones interactivas no deben recomendar este tópico, no posicionen este tópico y comentarios relacionados al inicio.

3. Todos los sitios por favor quiten todo texto, imagen y sonido y video que ataque al Partido, Estado, agencias del gobierno, políticas de Internet con la excusa de este evento.

4. Todos los sitios por favor quiten todo texto, imagen y sonido y video que apoye a Google, dedique flores a Google, pida a Google quedarse, felicite a Google y otros que tengan un tono diferente al de la política del gobierno.

5. En tópicos relacionados a Google, administren cuidadosamente los intercambios de información, comentarios y otras sesiones interactivas.

6. Administradores en jefe de las diferentes regiones por favor asignen esfuerzo humano específico para monitorear la información relacionada a Google; si existen información acerca de incidentes en masa, por favor repórtenlos con el tiempo suficiente.

Le solicitamos al Grupo de Monitoreo y Control un seguimiento inmediato del monitoreo y control de las acciones detalladas en las directivas anteriores; cuando cualquier problema sea descubierto, por favor ponganse en contacto con las respectivas sesiones con el tiempo suficiente.

Lineamientos adicionales:

-- No participen ni reporten en los comunicados de prensa/información de Google.

-- No reporten acerca de Google ejerciendo presión en nuestro país por medio de personas o eventos.

-- Los reportes relacionados deben poner nuestra historia/perspectiva/información en el centro, no provean a Google de materiales con los cuales atacar políticas relevantes de nuestro país.

-- Utilicen los puntos de vista acerca de Google abandonando China publicados por los departamentos relevantes.

Fuente: artículo del Washington Post

Pablo Alejandro Costesich: Python Memory Tools

   Publicado:

Ayer publiqué por primera vez una herramienta sobre la que estuve trabajando para resolver un par de problemas en Galaktia. Se trata de un conjunto de funciones decoradoras y clases para implementar el Memory Pattern en callables y brindarles una pseudo transparencia referencial (porque el valor debería depender sólo de los parámetros y no causar efectos colaterales). Es útil para funciones computacionalmente caras e inmutables (o que la actualización de sus valores de retorno tenga un tiempo de expiración largo).

Es una librería muy sencilla y fácil de entender, aunque seguro implementada miles de veces y de distintas maneras. Mi objetivo fue que sea fácil de usar (para mí), donde cada storage se asemeje lo más posible a un diccionario. Esto hace que pueda reemplazar muchas partes de código viejo sin romperlo.

Un ejemplo muy simple de la librería:

from memtools.storages import RedisMemory, MemcacheMemory, Alzheimer
mem = RedisMemory(debug=True)
mem2 = MemcacheMemory(debug=True) # podría usarlo del mismo modo
mem3 = Alzheimer(True) # easter egg, pierde valores a lo random.
@mem
def fib(n):
if n in (0, 1):
return 1
else:
return fib(n - 1) + fib(n - 2)

print fib(2)
print fib(5)
print fib(3)

mem["asd"] = 1
print mem["asd"]


La biblioteca está bajo licencia BSD y fue escrita enteramente por mí. En una época fue parte del proyecto Galaktia (@galaktia), pero gracias a Manuel Aráoz (@maraoz) y el resto del equipo pude separarla, así que ahora está disponible para todos. Agradezco cualquier modificación, sugerencia o cambio que pueda hacerse para mejorarla (son libres de hacerlo o no). Un fork&merge sería un halago.

Pueden encontrar el código en GitHub o en PyPI.

Puede ser que en un futuro le agregue soporte para memcache en Google App Engine y on-demand value updates (recalcular los valores almacenados para una clave cuando se cumpla una condición).

Mariano Reingart: Clase Abierta: Introducción a Python, PythonCard y Web2Py

   Publicado:

Invitamos a los interesados en programación, desarrollo de aplicaciones y diseño web a presenciar una clase abierta de la carrera Analista de Sistemas de nuestro instituto, donde analizaremos las virtudes del lenguaje de programación Python, herramienta PythonCard para diseño simple de aplicaciones visuales (GUI) y Web2Py para diseño ágil de sitios interactivos web 2.0.

Fecha: Miércoles 31 de Marzo de 2010
Horario: 18:15 a 22:30
Lugar: Instituto Superior Tecnológico Blaise Pascal
Dirección: Puerto Argentino 4238 - González Catán - Buenos Aires - Argentina
Entrada libre y gratuita previa confirmación por email debido a cupos limitados.
http://www.institutopascal.edu.ar

Temario:

1. Introducción a Python: ¿Que es python?; El Interprete; Estructura Básica; Tipos de datos simples; Tipos de datos compuestos; Control de Flujo; Funciones, Clases y Objetos; Excepciones; Módulos, paquetes y espacios de nombre
2. Introducción a la Biblioteca Estándar: sistema operativo, fecha y hora, expresiones regulares, números decimales, aleatorios, matemática, acceso a sitios web, manejo de email, xml, compresión
3. Interfaces gráficas "visuales" con PythonCard. Similitudes y diferencias con Visual Basic.
4. Desarrollo web 2.0 con web2py. Similitudes y diferencias con PHP. Diseño web HTML/CSS. Interactividad con Ajax (javascript).

Se agradece difusión.

Juan Pedro Fisanotti: n900

   Publicado:

un detalle que vale mas que mil palabras: el n900 trae de fabrica una consola de linux instalada :)

John Lenton: Thank you vates

   Publicado:

A veces creo que debería sucumbir y unirme a Facebook. Por suerte, cuando eso pasa nunca falta quien me convenza de postergarlo un año más. Vates me invita a Facebook

John Lenton: PyCamp

   Publicado:

El fin de semana me pude hacer una escapada el PyCamp. Fue muy lindo ver cómo seguía teniendo la misma idea (por demás simple) de juntar pythoneros para que hueveen hasta el hartazgo (o hasta quedarse sin voz de hablar de cómo arreglar el país y el mundo, o darse cuenta a las 5am que era la hora que era y que el resto se había ido a dormir horas antes mientras vos cazabas ese bug tan interesante).

Me pude desenchufar por dos días de la carrera contra reloj que es meter cosas nuevas en Lucid (que es mi trabajo). Y, mientras estuve ahí, construí una cosa. Bah, dos.

Por un lado, hice una aplicacioncita GTK+ que te deja bajar videos de YouTube eligiendo su resolución. Como soy super original, le puse YouTube Downloader.

YouTube Downloader screenshot

Por otro lado, como parte de lo anterior, hice una librería para bajar cosas asincrónicamente desde aplicaciones hechas en pygtk. Usa solamente gio, sin usar threads ni nada así (por lo menos que uno se entere). Y por ahora, es parte de ytd. Se usa así:

AsyncDownloader('http://pyvore.com/bg.jpg', file_factory, done_cb)

con eso, cuando termina de bajar el archivo se llama a done_cb con el objeto que devolvió file_factory (por ejemplo, file_factory puede ser tempfile.NamedTemporaryFile). Es así de fácil! Tiene ganchos para complicarla, por ejemplo para mostrar progreso, pero es la misma idea.

Sebastian Bassi: Downgrade pago

   Publicado:

Downgrade pago
Cargado originalmente por sbassi
Cartel visto en una librería en el barrio de Congreso. Proponen pagar para hacer un downgrade. Como para no tenerle lástima a los usuarios de Windows.

Juan Pedro Fisanotti: PyCamp 2010, día 4

   Publicado:

Bueno, ya estoy en Retiro, en un rato estoy saliendo para Rafaela. Así que posteo el resumen de hoy. Probablemente después haga un post más completo con mis conclusiones de lso 4 días.


Algo muy interesante de hoy fué el hacking con OpenCV. Se hizo un programita que detecta cuando hay una cara cerca del monitor, si no hay nadie pone solo el protector de pantalla, y si hay alguien lo saca. Está genial :).


Y a la tarde se hizo el cierre, donde se expuso brevemente las cosas que se habían logrado en cada uno de los proyectos, y se charlaron algunas ideas para el próximo PyCamp, y PyCon.

Estoy muerto, pero estuvo todo muy, muy bueno. Después haré el resumen. Saludos!!

Juan Pedro Fisanotti: Pycamp 2010, día 3

   Publicado:

Resumen de hoy :)


A la mañana me quedé medio dormido, jeje, porque anoche nos habíamos quedado hasta las 4 a.m.


A la siesta participé en un mini-cursito de empaquetado de aplicaciones Python para Debian. La verdad que era más complejo de lo que esperaba, pero nada que un programador no pueda hacer. Conclusión: tengo que aprender setuptools


Más tarde participé en el Bug Day de Python: cada uno elegía algún bug de Python y trataba de mandar un parche con la corrección. No pude hacer ningún parche, pero aprendí un poco viendo código de cómo está hecho Python, lo que estuvo bueno.


Y ahora a la noche, después de comer empanadas y panqueques, vuelvo a programar un poco el juego que empezamos el sábado.


Saludos!!


update!: me acabo de enganchar en una reunión de otro juego que se va a desarrollar para una competencia, veremos que onda :)

Juan Pedro Fisanotti: PyCamp 2010, día 2

   Publicado:

Ayer no postee porque no tuve tiempo en todo el día, así que posteo ahora el resumen. Supongo que esta noche volveré a postear con el resumen de hoy


Lo más interesante de ayer fue el sprint de Django. Sprint = gente que se junta a programar, Django = framework para hacer desarrollo web usando Python, el mejor que probé hasta ahora. O sea, los que querían se juntaron para sobre todo corregir bugs en Django, para la versión nueva que va a salir dentro de unos días. Sinceramente fui más que nada para ver y aprender, porque pensaba que estaba a un nivel en el que yo no podía aportar mucho. Pero para mi sorpresa, terminamos corrigiendo un bug de Django juntos con Javi :). Mi granito de arena para Django, así devuelvo algo de todo lo que me está sirviendo.


Por la tarde me enganché en el momento de cocos2d (el framework para juegos que nació en un PyCamp anterior, que estamos usando para el juego que empezamos el sábado). Me enganché medio tarde, pero estuvo bueno, me ayudó a entenderlo mejor.


Finalmente, a la noche tuvimos el "fogón", pero sin fuego porque no se consiguió leña. Se empezó hablando de los temas más comunitarios, objetivos, realidad de Python en Argentina, etc. Se habló también de PyCon Atlanta 2010 y PyCon Argentina 2010. Y después se terminó hablando de política, sociedad, valores, ideologías, etc. Discusiones acaloradas pero muy interesantes. Algo parecido a los threads de PyAr, jajaja.


Hoy viene siendo interesante también, pero esta noche hago el resumen. Saludos!

Share