Peewee, un ORM para Python


Estoy acostumbrándome a usar Django para casi todo, y su ORM para acceder a la base de datos. Es muy completo y permite evitar tener que escribir SQL a mano, añadiendo la posibilidad de cambiar de motor de base de datos sin que sea traumático.

Sin embargo, a veces necesito guardar cosas en disco desde programas de línea de órdenes, y no me parece bien depender de Django para algo así. En estos casos suelo usar Shelve, de la librería estándar, pero no es lo suficientemente versátil: no admite concurrencia.

En este post voy a explicar cómo utilizar Peewee como ORM.

Leer más…


Cómo funciona Internet


Recientemente, la Audiencia nacional ha dado un plazo de 72 horas a los proveedores de Internet para bloquear (censurar) todo acceso a The Pirate Bay:

Éste es un artículo en el que voy a contar cómo se ponen puertas al campo, cómo se ha aplicado esta resolución y, en general, cómo funciona Internet.

Es algo que podríais encontrar en cualquier libro de redes básico, como comprobaréis los lectores más avanzados.

Leer más…


Python distribuido: Celery


Ahora están de modas las arquitecturas SOA (Service Oriented Architectures). Estas arquitecturas consisten en pequeños servicios muy específicos, de manera que interactúan unos con otros.

En esta ocasión voy a contar cómo utilizar Celery para crear una arquitectura SOA.

Leer más…


Django lo hizo un mago: plantillas y contextos


En el tutorial Django lo hizo un mago expliqué los conceptos básicos de Django. En Django lo hizo un mago: paginación y detalle añadimos paginación y la ventana de detalle. En esta ocasión vamos a ponerlo bonito mediante plantillas, y crearemos cierto estilo añadiendo también contextos.

Para los que sepan algo de Django, no es necesario seguir los tutoriales anteriores, aunque sí es recomendable para los más novatos :D

Leer más…


JavaScript limpio


No soy quién para escribir un post sobre JavaScript, y menos sobre buenas prácticas. Sin embargo, el otro día mi colega @pladaria, que sí que es un crac de JavaScript, me dio un curso intensivo de 10 minutos... y le pedí permiso para transcribirlo en mi blog.

Me gustó todo lo que dijo, así que trataré de ser fiel.

Leer más…


Git: recuperación de changesets perdidos


Hoy me he enfrentado a un problema algo desagradable en Git: Borré un commit. Básicamente había perdido un artículo de mi blog y algunos cambios más.

En condiciones normales, esto hubiera sido una pérdida terrible. Pero en este caso Git vino al rescate.

Pondré un ejemplo para perder changeset y después recuperarlos. Si tenéis prisa, saltad directamente a la sección "cómo recuperar un commit" :D

Leer más…



Django lo hizo un mago


En las películas, a menudo, se encuentran errores imposibles de explicar: un tarro que se derrama y aparece lleno, gafas que aparecen y desaparecen, espadas que se transforman en martillos... En esos casos decimos que "lo hizo un mago".

En esta ocasión no es que un mago haya hecho Django, sino que hay un equipo impresionante detrás. Pero sí es cierto que Django hace mucha magia.

Me gustaría comenzar aquí un pequeño tutorial rápido para usar Django, utilizando toda la magia. Este tutorial no valdrá en todos los casos, pero dará un buen punto de comienzo para aplicaciones más avanzadas.

Este artículo utiliza el mismo ejemplo que el que escribí hace tiempo Django: Creación de un sitio básico, pero creo que lo encontraréis muy mejorado.

Leer más…



Principios básicos de programación


A menudo nos centramos tanto en cosas complejas que nos olvidamos de lo básico.

Precisamente por eso, voy a comenzar una serie de posts comenzando desde cero.

En este caso, explicaré lo más básico de la programación. Y temo que esto es sólo teoría y además es independiente del lenguaje.

Leer más…