mvvm

El patrón MVVM en Xamarin Forms

En el anterior artículo vimos una breve introducción al patrón de diseño MVVM. Tal como decía en ese post, está considerado una buena práctica el uso de dicho patrón a la hora de desarrollar un proyecto, tanto con Xamarin tradicional, como con Xamarin Forms. El objetivo de esta entrada es continuar profundizando en el desarrollo con Xamarin Forms aplicando MVVM. Los orígenes de […]

xamarin-cross

Xamarin Forms, apps nativas multiplataforma. Introducción

Hoy en día, crear aplicaciones móviles para múltiples plataformas supone todo un reto para los desarrolladores. Tratar de abordar un desarrollo usando los toolkits nativos de cada sistema requiere de una cantidad enorme de conocimientos específicos para cada uno de ellos. Nos encontraremos con un panorama enormemente complejo, con múltiples lenguajes, varios entornos de desarrollo y APIs de todos los colores. Xamarin trata de poner solución a esta problemática ofreciéndonos un conjunto […]

aprende python

Aprender Python en 10 minutos

Antes de empezar tengo que advertirte que ningún lenguaje de programación, por simple que sea, puede aprenderse en profundidad en tan poco tiempo, a no ser que se requiera de experiencia previa en otros lenguajes. Dominar la programación precisa de experiencia, lo cual a su vez requiere de un tiempo mínimo que permita afianzar las estructuras mentales necesarias para […]

django vagrant ansible

Servidor de desarrollo Django con Vagrant y Ansible (parte 1)

Vagrant es una de esas herramientas que a priori parece que no tiene cabida en tu stack, pero una vez que comienzas a utilizarla se vuelve indispensable. En una entrada anterior vimos como hacer uso de la misma con el driver de Digital Ocean, en ese caso para desplegar Droplets, aunque el objetivo principal de esta herramienta es crear entornos de desarrollo aislados. Vagrant permite […]

docker swarm digital ocean

Cluster de servidores con Docker Swarm en Digital Ocean

Docker Swarm es una herramienta integrada en el ecosistema de Docker que permite la gestión de un cluster de servidores. Pone a nuestra disposición una API con la que podemos administrar las  tareas y asignación de recursos de cada contenedor dentro de cada una de las máquinas. Dicha API nos permite gestionar el cluster como si se tratase de […]

django-testing

Testing de modelos en Django, buenas prácticas.

El testing es una de las partes más importantes de cualquier proyecto de software, ya que aporta calidad y seguridad a nuestro código.  En esta entrada voy a tratar de exponer algunas prácticas muy recomendables para testear modelos en Django de forma eficiente y segura.

nginx-ssl

<Tip/> Configurar un servidor HTTPS con Nginx

Dudaba sobre si hacer esta entrada o no, ya que hay mucha documentación al respecto en la red (aunque algo desordenada a mi entender), pero la principal motivación del blog es que las entradas me sirvan a mi mismo, así que prefiero publicarlo a que quede perdido en una nota de Evernote. Bueno vamos a […]

vagrant-do

Desplegando instancias de DigitalOcean con Vagrant

Vagrant es una potente herramienta open source para la configuración y despliegue de múltiples entornos, tanto de desarrollo, como de producción. Está diseñado para funcionar en Linux, Mac OS X o Windows. Por defecto utiliza VirtualBox para la capa de virtualización, se puede utilizar también con otros proveedores como VMware o AWS. En esta entrada vamos a configurarlo utilizando el driver de DigitalOcean […]

django-users

Cómo extender el User de Django

El sistema de usuarios y autenticación integrado en Django es muy completo,  lo podemos adaptar a la mayoria de los casos de uso, pero hay situaciones en las que no podemos utilizarlo “out-of-the-box”. Por ejemplo, si nuestro proyecto tuviese carácter social es probable que necesitásemos almacenar una pequeña biografía, la localización del usuario y alguna otra información de […]

Django-rest

Optimizar Django REST Framework

Django REST Framework es una aplicación Django que permite desarrollar de forma simple APIs muy robustas. Sin embargo, los serializadores propios de la aplicación pueden ser un “kill performance” para nuestro sistema. La raíz del problema es el denominado “N+1 selects problem”, este se da al acceder a un objeto concreto y sus a N objetos relacionados, normalmente a […]