Generación de SVG y PDF en Django

Para un proyecto personal me interesa generar PDFs desde Python, dos páginas con un maquetado específico, y me ha dado por hacer una revisión del estado del arte.

Mi primera idea fue dibujar en inkscape y tagear el svg para luego convertirlo a PDF incluso con qt, pero inkscape los textos multilínea te los expande a N textos monolínea lo cual no me ayuda nada. Necesitaba algo más inteligente. Luego pensé en APIs para dibujar SVGs a pelo, como pysvg o svgwrite comparadas por Florian Berger. Durante el camino me encontré con svgfig que saca cosas muy chulas y que ...

Ago15


Integración de Dinette en Pinax

Trabajando con un proyecto de Pinax (en concreto, el social_project), tuve la necesidad de agregar una aplicación de foros al montaje de pinax. En el blog de django existe una comparativa de los mejores foros en python (ver comparativa) y, puesto que ya he trabajado anteriormente con él, escogí la aplicación de foros Dinette.

Para realizar la integración realicé la instalación de pinax, creando un social_project (proyecto con todas las apps de pinax) y configurándolo según mis condiciones (seguir la doc de pinax de instalación). El resultado debe ser algo como:

Jun27


Branchs en git

En un proyecto en el que trabajo hay varios desarrolladores. Uno de ellos no tiene acceso al repositorio central y ha estado trabajando en cosas que deben ser puestas en él. Mi trabajo es asegurarme de que su trabajo esté en condiciones de ser subido a dicho repositorio, para lo cual lo más sencillo es utilizar un branch local.

Creo un branch local, hago un pull desde su repositorio remoto. Mi intención era comenzar a trabajar, así que vuelvo al branch master para ver que ficheros ha modificado y .... Ahhh!!!!

Los ficheros que he descargado desde el remote de este ...

Jun17


Usando itertools

Hace algún tiempo escribí un snippet para generar combinaciones en juegos de lotería del tipo 49/6 (en España la primitiva y bono-loto). Lo hice usando seis bucles anidados, así que no era eficiente en absoluto. Esta vez quiero hacer algo parecido para Euromillones, pero lo haré usando itertools.

Euromillones es sencillo. Hay números y estrellas. Una combinación es válida si tiene 5 números y dos estrellas. En esta entrada me concentraré en, dados una lista de números y estrellas, generar todas las combinaciones validas posibles.

En primer lugar necesitamos todas las combinaciones de números posibles. Asumiendo que self.numbers ...

Jun02


Actualizción de bcfg2forge.galotecnia.com

Hola a todos. Hemos actualizado http://bcfg2forge.galotecnia.com. Hay cambios en muchos aspectos del sitio, cosas que no se ven y cosas que si. Entre las cosas que no se ven el cambio más importante es la forma de organizar los ficheros de las recetas en el servidor, siendo este mucho más potente ahora que lo que había antes.

En las cosas que si se ven hemos hecho cambios estéticos en los formularios, ahora todos son bastante parecidos, tanto funcionalmente como estéticamente. Tenemos un botonaco para incitar a los administradores de sistemas del mundo que nos sigan en twitter ...

Dic07


SOAPLIB + DJANGO 1.2 + CSRF

Ya había trabajado con Soaplib y Django anteriormente para desarrollar servicios webs, pero con la versión 0.96. La nueva (y mejor) versión de Django incorpora herramientas para evitar la falsificación de petición en sitios cruzados (CSRF). Para trabajar con ambas una serie de consideraciones:

Por defecto, Django añade el middleware 'django.middleware.csrf.CsrfViewMiddleware', el cual se encarga de gestionar las peticiones anteriormente mencionadas para cada una de las vistas de nuestra aplicación, aunque Django nos ofrece más formas de uso (decorar las vistas con 'django.views.decorators.csrf.csrf_protect' o el tag 'csrf_token' en los formularios de las ...

Nov03


Libre Software World Conference

Desde Galotecnia queremos difundir el evento más importante jamás realizado por la comunidad empresarial del Software Libre Español. La Libre Software World Conference.

Desgraciadamente nos va a ser imposible asistir. Intentamos contribuir con lo poco que podemos, al menos difundiendo la nota de prensa del evento.

Madrid-Málaga, 22 OCT 2010.- ASOLIF, la federación nacional de empresas de Software Libre, y Andalibre, la patronal andaluza, representantes ambas de más de 200 empresas tecnológicas de toda España, conjuntamente con el Ayuntamiento de Málaga y en colaboración con otras entidades van a convertir por un día a la capital de la Costa del ...

Oct24


Debian + supervisor + virtualenv + gunicorn + django + nginx

Al parecer, según varios benckmarks que podemos encontrar en la web la combinación ganador para desplegar aplicaciones en Django es nginx + uWSGI. Estoy de acuerdo en que los números lo dan como ganador, pero a la hora de hacer los despliegues es bastante más engorroso estar compilando nginx con soporte uWSGI que hacer el despliegue con otro tipo de herramientas.

Creo que pensando en ser un poco más pragmático, me quedo con la opinión del autor de esta otra comparativa, en la que pesa algo más la facilidad de despliegue de gunicorn frente al desempeño de uWSGI. También he de ...

Oct23


parse-sniffusb2.pl mods

En los últimos días, he estado haciendo ingeniería inversa a un driver Windows, del que ya haré un blog cuando tenga algún resultado digno de ver. Para ello, hago uso de SniffUSB 2.0, de una versión modificada del script perl parse-sniffusb2.pl y de paciencia.

Expongo una primera versión de las modificaciones, que muestra tambien las tramas URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER. Iré actualizando este blog con las últimas modificaciones que le vaya haciendo.

Oct21


Pequeño cambio para smbldap-password

Esta herramienta es parte de smbldap-tools. Un conjunto de scripts en perl diseñados para gestionar grupos y cuentas de usuario almacenadas en un LDAP, de forma que, no sólo gestiona los atributos posix sino que también se encarga de aquellos necesarios para el correcto funcionamiento de SAMBA.

Cuando tenemos que actualizar la información de un gran número de cuentas de usuario mediante un script podemos utilizar smbldap-usermod, pero si además de los atributos básicos necesitamos cambiar la contraseña del usuario tenemos un problema, ya que por defecto smbldap-password no nos da ninguna facilidad para hacer este tipo de cosas.

Una ...

Oct18


Página 1 de 2 1 2 »