Archive for the Uncategorized Category

resumiendo el libro de django (ll parte)

Posted in Uncategorized on 20 marzo 2009 by riverplatense

Sigo con el resumen del Djangobook.
(primera parte acá)

Expresiones regulares más usadas:

Símbolo Coincide con
. (punto) Cualquier carácter
\d Cualquier dígito
[A-Z] Cualquier carácter, A-Z (mayúsculas)
[a-z] Cualquier carácter, a-z (minúsculas)
[A-Za-z] Cualquier carácter, a-z (no distingue entre mayúscula y minúscula)
+ Una o más ocurrencias de la expresión anterior (ejemplo, \d+ coincidirá con uno o más dígitos)
[^/]+ Todos los caracteres excepto la barra.
* Cero o más ocurrencias de la expresión anterior (ejemplo, \d* coincidirá con cero o más dígitos)
{1,3} Entre una y tres (inclusive) ocurrencias de la expresión anterior

Veremos cómo es que procesa Django las peticiones:

El comando python manage.py runserver importa un archivo llamado settings.py desde el mismo directorio. Este archivo contiene todo tipo de configuraciones opcionales para esta instancia de Django en particular, pero una de las configuraciones más importantes es ROOT_URLCONF. La variable ROOT_URLCONF le dice a Django qué módulo de Python debería usar para la URLconf de este sitio Web.

Cuando llega una petición, digamos a la URL /time/ Django carga la URLconf apuntada por la variable ROOT_URLCONF. Luego comprueba cada uno de los patrones de URL en la URLconf en orden, comparando la URL solicitada con un patrón a la vez, hasta que encuentra uno
que coincida. Cuando encuentra uno que coincide, llama a la función de vista asociada con ese patrón, HttpRequest como primer parámetro de la función. (Veremos más de HttpRequest pasando un objeto luego).
La función de vista es responsable de retornar un objeto HttpResponse.

O sea que lo básico de Django es lo que tenemos hasta aquí. Es decir escribir funciones de vista y relacionarlas con URLs mediante URLconfs.

Una de las filosofías de Django es el llamado loose coupling (acoplamiento débil), es decir que si las partes (piezas) de un software están débilmente acopladas el cambio de una afectará poco o nada a la otra. En el ejemplo que tenemos, si queremos mover de /time/ a /hora/hacemos un pequeño cambio en URLconf y viceversa cambiando la función sin tocar la URL.

Si ponemos una URL que no existe, nos dará un error 404. Este error nos aparece bastante documentado porque estamos en el modo “debug” que es el modo que está por default cuando estamos desarrollando. Luego veremos como desactivarlo para el momento en que tenemos que poner el servidor en producción.

reunión con el senador Daniel Filmus por el tema del canon

Posted in Uncategorized on 14 marzo 2009 by riverplatense

Comunicado de las organizaciones que hemos participado ayer en la reunión con el senador Filmus.

Link al original

“No voy a presentar nada que no tenga consenso”

Tal fue la promesa del Senador de Capital Federal Daniel Filmus en la
reunión realizada ayer con once delegados de organizaciones no
gubernamentales preocupadas por el posible gravamen por copia privada
que impulsan las gestoras colectivas de derechos de autor y la cámara de
la industria fonográfica en Argentina. La segunda promesa fue abrir el
diálogo con los impulsores del canon para conversar y debatir en el
ámbito del senado.

La reunión se realizó en el despacho del Senador Filmus, quien junto a
sus asesores, recibió a una delegación de organizaciones integradas por
Nodo Tau de Rosario, Asociación civil Gleducar, Wikimedia Argentina,
Asociación Argentina de Usuarios de Internet Internauta Mar de Plata, la
Biblioteca Popular Bella Vista, la Fundación Pedro Milesi Córdoba, la
Escuela San Cayetano del CFP 401 Vicente Lopez, USLA (Usuarios de
Software Libre de Argentina), CaFeLUG (Grupo de Usuarios de Software
Libre de Capital Federal), Gcoop Cooperativa de trabajo de Software
Libre, Colectivo La Tribu y Fundación Vía Libre.

El senador dijo que el proyecto de gravamen por copia privada todavía no
está escrito, y que antes de comprometerse con un proyecto de este tipo
desea conocer todas las voces involucradas, pero quedó en evidencia por
su discurso que no se ha distanciado de la idea de imponer un canon a
los insumos informáticos. Si bien dijo que ningún proyecto que
perjudique a la ciudadanía y al consumidor contará con su apoyo, hizo
énfasis en que es necesario buscar formas de que el artista y el
escritor argentino reciban una compensación por su trabajo.

Esta última afirmación subrayó uno de los muchos momentos de la
conversación en los que el Legislador dio signos de estar bastante
confundido respecto del problema que tiene entre manos: su argumentación
mezcló la copia privada con todo lo relacionado con la copia ilegal, el
derecho de los creadores, el régimen de patentes y hasta el de marcas en
determinado momento. Así, la sensación de diálogo de sordos fue por
momentos inevitable, especialmente cuando no conseguíamos que
comprendiera que “copia ilegal” y “copia privada” son conceptos
completamente distintos y que no pueden discutirse juntos, tal como
pretenden los impulsores del canon.

Filmus mantuvo sus preocupaciones fielmente enmarcadas en el discurso de
los maximalistas del derecho de autor, mostrándose muy preocupado por el
“hecho” de que los artistas y escritores supuestamente no reciben una
remuneración justa por su trabajo (“hecho” que no consiguió fundamentar
con evidencia más seria que una anécdota de cómo uno de sus ayudantes
compró un CD trucho con música de Adriana Varela por $3 en la calle). Si
bien hizo foco en que el problema está en los intermediarios (uno de los
pocos puntos de mediano consenso del encuentro) no quedó claro por qué
mantiene en estudio la posibilidad de un proyecto cuyo efecto será
recaudar dinero del gran público para dárselo precisamente a los
intermediarios para su administración.

El problema mayor de la reunión fue que pocas veces logramos hablar de
lo que realmente era el tema del encuentro: la copia privada. En todo
momento, el senador reforzaba el problema de la fotocopia en los libros
y el supuesto daño que esto produce a los escritores (tema sobre el cual
están preparando un proyecto de ley del que Filmus sí se comprometió a
ser firmante) y la cuestión global de la remuneración para el trabajo
del artista local, sin diferenciar que el tema de la reunión era si se
debe gravar o no la copia privada. Vale aclarar que la copia privada no
es lo que se conoce como copia trucha, ilegal o “pirata” sino que es
toda aquella copia sin fin de lucro que usted hace de un disco que
compró legalmente para escuchar en su mp3, su celular, su computadora o
llevar en su auto.

Quizás el momento de mayor desconexión se dio cuando el senador llegó a
sugerir que no le quedaba clara la diferencia entre nuestras objeciones
y las que ya le han hecho llegar las grandes multinacionales de la
industria del hardware, que se mostraron preocupadas por el impacto que
una medida como esta tendrá en el precio final de los dispositivos. Con
énfasis, el Senador se manifestó contrario a que fabricantes de hardware
como Dell[1] lucren con el trabajo de los artistas nacionales sin
remunerarlos.

En este contexto de lobbies cruzados, parecía desconocer que el proyecto
de gravamen por copia privada impulsado por su colega de bancada, la
Senadora formoseña Adriana Bortolozzi cita como fundamento de la ley
el lobby de la Embajada de los EEUU de Norteamérica en Argentina y a su
embajador Anthony Wayne como fuente, a quien responde positivamente con
el mencionado proyecto.

Es sabido que estas iniciativas de expansión del régimen de derecho de
autor a entornos nunca antes cubiertos, como la esfera privada de la
vida de los ciudadanos, responden a un lobby de las corporaciones
internacionales de la industria del entretenimiento (principalmente de
los EEUU, cuyos intereses defiende el embajador de ese país).

Lo que viene más allá de esta reunión es la promesa de frenar todo tipo
de proyecto de gravamen sobre la copia privada hasta que no se llegue a
algún tipo de consenso entre las partes, y el compromiso de convocar, en
dos semanas, a una audiencia con más legisladores y con los artistas
para que discutamos las diferentes posiciones con miras a encontrar
alguna que permita avanzar o no en esta materia.

En pocos días tendremos novedades sobre esta iniciativa que tendrá lugar
en una sala del mismo Senado y que contará con la participación de
nuestras organizaciones agrupadas contra el canon y los sectores de la
industria del entretenimiento que lo impulsan.

[1] Mencionó a Dell sólo por citar un ejemplo, ya que la computadora
sobre la mesa era de esa marca, pero incluyó en la problemática a todos
los fabricantes de hardware, que según él, no contribuyen al desarrollo
nacional.

resumiendo el libro de Django

Posted in Linux, python, software libre, Uncategorized with tags , , on 28 febrero 2009 by riverplatense

En mi camino de aprender Django, me encontré con el Djangobook, y a partir de allí El libro de Django, traducción del original hecha entre otros por el amigo Humitos. Ahora les paso un resumen de ese libro, en esta primera entrega llegamos a hacer nuestra primer página dinámica con este framework.

Resumen del Djangobook

Para crear el proyecto mysite en el directorio actual

$ django-admin.py startproject mysite

Crea los siguientes archivos:

__init__.py
: Un archivo requerido para que Python trate a este directorio como un paquete
manage.py: Una utilidad de línea de comandos para interactuar con la aplicación
settings.py: Opciones y configuraciones del proyecto
urls.py: Tabla de contenidos del proyecto

Django trae un pequeño servidor para probar el proyecto. NO usarlo en reemplazo de Apache u otro de producción, es sólo para probar mientras uno desarrolla.

$ python manage.py runserver

Aparece algo parecido a:

Validating models…
0 errors found.
Django version 1.0, using settings ‘mysite.settings’
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

Eso quiere decir que el servidor está corriendo y si voy al navegador y entro en http://localhost:8000 voy a ver la página de prueba.

Ahora que sabemos que funciona, vamos a hacer nuestra primera página dinámica, para empezar haremos una que indique la hora actual. Se debe hacer una *función de vista* (view function) que es una función que toma como argumento una petición web y retorna una respuesta web. Es decir una página, un error 404, un documento, etc. Entonces creamos un archivo llamado vistas.py en el directorio mysite y escribimos:

from django.http import HttpResponse
import datetime

def dia_hora_actual(request):
ahora = datetime.datetime.now()
html = "Ahora es %s." % ahora

return HttpResponse(html)

Repasemos línea por línea:

* Primero importamos la clase HttpResponse
* Luego importamos el módulo datetime desde la biblioteca standard de Python
* Definimos la funcion dia_hora_actual() que es una funcióń de vista. Toda función de vista toma como primer argumento un objeto HttpRequest al que se le asigna el nombre “request”
* Calculamos el valor de ahora mediante la biblioteca estandard de Python
* Generamos el html con la respuesta
* Generamos el objeto HttpResponse con la respuesta. Casi siempre una función de vista es responsable de crear un objeto HttpResponse

Ahora bien, cómo le “decimos” a Django que use ese archivo? Allí empiezan a tallar las *URLconfs*. Son tablas de contenido que le indican a Django “para tal URL usá este archivo, para esta otra URL usá este otro código, etc”

Veamos el archivo urls.py que se generó al crear tu proyecto:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
# Example:
# (r'^mysite/', include('mysite.foo.urls')),

# Uncomment the next line to enable the admin:
# (r'^admin/(.*)', admin.site.root),
)

Repasemos este archivo línea por línea:

Primero importamos todos los objetos desde el módulo django.conf.urls.defaults, en ese paquete obtendremos una función llamada “patterns”

Luego llamamos a esa función patterns() y guardamos el resultado en la variable urlpatterns. El argumento de la función es una cadena vacía. Todas las demás líneas están comentadas.

En este momento nuestra aplicación está en blanco, nueva, entonces Django sabe que debe mostrar la página “It worked!”. Vamos a cambiar este archivo para que podamos mostrar la hora y fecha actuales:

from django.conf.urls.defaults import *
from mysite.vistas import dia_hora_actual

urlpatterns = patterns('',
(r'^time/$', dia_hora_actual),
)

Lo que hacemos es importar la función dia_hora_actual desde vistas.py y por otro lado agregamos la línea (r’^time/$’, dia_hora_actual), que es una tupla compuesta por una expresión regular y la denominacipon de la función. En español, le decimos a Django que toda petición web URL /time sea manejada por la función dia_hora_actual

La expresión regular implica que la URL debe ser exclusivamente “time”. El ^ al principio y el $ al final indican “eso y nada más que eso”.

Ya podemos ir al navegador y ponemos localhost:8000/time y deberemos ver la página que generamos.

…97 !!!!!!

Posted in actualidad, democracia, dictadura militar, Uncategorized with tags , , , , on 14 febrero 2009 by riverplatense
Antonio y Beatriz

Antonio y Beatriz

Es la emoción renovada, la admiración a las Abuelas que siguen trabajando con ese ardor que la mayoría carece. Imposible manternerse estoico, sereno, pasivo. El corazón grita y baila. Se encontró una nieta más. La hermana lo definió como “un embarazo de 32 años” y la alegría que sienten hoy es el motor que, recién afinado, nos lleva otra vez a no bajar las banderas, a seguir trabajando por la verdadera justicia social. Gracias Abuelas, gracias Antonio y Beatriz, dondequiera que estén. Gracias Juliana por seguir y encontrar a tu hermana. Gracias por mostrarnos el camino verdadero.

cortita y al pie

Posted in Uncategorized with tags , on 8 febrero 2009 by riverplatense

Parece que la cualidad de ser traidor es hereditaria

Gracias Guille por la contribución.

Año nuevo

Posted in Uncategorized with tags on 1 enero 2009 by riverplatense

Lejos estaba aún de su casa. El monte estaba particularmente oscuro. Un viento arremolinado insistía en tirarle ramas, hojas y lo que fuere en la cara. Venía con la espalda cargada de leños, para su modesta cocina. El Ruben seguramente ya había carneado el chivo y la estaba esperando. Hacía mucho que no lo veía. Desde ese día que él volvió de la cosecha de la papa, con olor a vino. Sin plata. Sucio. Y le pegó. Ella lloró dos días y al tercero lo echó. Discutieron todo el cuarto día y al quinto Ruben se fue. Hoy se volverían a encontrar. Él le había enviado un mensajito para que pasaran ese fin de año juntos. Después de todo, romperse por dentro es una forma de pedir perdón. Después de todo, lo hecho, hecho está. Ella dudó, no lo quiere, pero lo hizo por la Marcela, tan chiquita y sin su papá. Bastante tiene con las privaciones materiales.

Carla bajó de la camioneta, repleta ésta de bolsas de supermercado. Llamó a su empleada para que las descargara. En realidad no hizo falta llamarla, ella ya estaba allí, al sentir el motor de la poderosa maquinaria, se había aprontado cerca del garaje. Sabía que la señora Carla se enfurecía si las cosas no se hacían rápido. Qué distinto era allá en Catamarca! QUé distinto era en su niñez!. El tiempo valía uno y no medio. Las cosas se saboreaban y no se consumían. El apuro era para los partos y para los accidentes. No más. Aquí, Carla la ponía en un frenesí continuado. En un bailongo eterno. Triste, anodino. Los chiquitos de la casa gritaban, peleaban, aullaban. Era año nuevo. Todos estaban estresados.

chau luisito

Posted in Uncategorized with tags on 16 diciembre 2008 by riverplatense
Luis

.
Nos dejó Luis. Peleándola hasta el final. Tal cual fue su vida. Crió hijos maravillosos. Me brindó a su hija. Le compensé con nietos. Me dió su casa, construyó la mía. Bostero, de los que respetan. Siempre nos entendimos en el fútbol a pesar de estar en veredas opuestas. Peronista luchador en su peronismo obrero militante.

Dejó valores, asados, amigos, amigos, ejemplo. Simple, trabajador, gaucho de los de antes. Acompañó como debe acompañar un padre, siempre atento y la mar de discreto. Disfrutó de sus nietos como nadie.. Nunca olvidaré su imagen cuando lo de Marquitos. Traía una camioneta más grande que él. Como su corazón. Ese que resistió los embates de la enfermedad. Su casa siempre abierta, en el sentido amplio y hermoso de la palabra, sembró. Sembró. Jugaba a la lucha con Enzo y compinche de Marcos. Quiso a Belu como si de una nieta se tratara.
Tuviste mil personas que vivieron en tu casa y comieron tu pan. Eso no se ve a menudo, y siempre con el perfil más bajo que pudiese existir.
Seguramente ya nada te dolerá. Te he respetado siempre y te he querido como un padre, querido Luis. Vaya mi agradecimiento eterno por lo que me has regalado, y quedate bien tranquilo que tu paso ha sido hermoso. Me has enseñado una parva de esas cosas que no se enseñan en escuela alguna. Desamor a lo material, solidaridad extrema, lealtad, lucha, dejar vivir a los hijos, trabajo honrado, amistad, calle, amor.

Un abrazo grande (como te bautizaron tus nietos), “Tata” querido