CriminalDataVE: Hackaton de Datos Abiertos (1er Lugar)

Entre lunes 28 y martes 29 de noviembre se efectuó el Hackaton de Datos Abiertos en Wayra, organizado por la gente de ChicasPoderosasVE, un excelente espacio de aprendizaje colaborativo y de compartir experiencias con otras personas que desean, cambiar el país que tenemos.

Fui con @BellaDesiree, fue una experiencia inolvidable, tanto para ella, como para mi, conocimos personas geniales y con mucho talento, nos involucramos en un proyecto el cual quedo con el nombre de @CriminalDataVE y que busca contar historias detrás de los homicidios y así generar una estadística general de todas las muertes violentas ocurridas en el país, con ello evaluar, estudiar y/o definir patrones de esos sucesos.

Logramos generar un prototipo de la aplicación (Web y un Launcher para IOS y Android), a las 4:00pm del martes 29 presentamos ante el jurado la solución al problema de la falta de data real acerca de las muertes violentas en el país, la cual encanto, al jurado y al publico presente, fuimos merecedores del 1er Lugar del Hackaton de Datos Abiertos.

Ahora, como equipo, continuamos trabajando para desarrollar la aplicación completa de esta solución, nos mantenemos en contacto y hasta buscamos financiamiento de parte de algunas personas y medios involucrados con el mundo periodístico.

photo_2016-11-30_14-10-08

 

Felicitaciones equipo y a continuar trabajando🙂

 

Happy Hacking

 

DetailView Django

Para entender un poco lo que es la Class Based View (CBV) podemos decir que:

A view is a callable which takes a request and returns a response. This can be more than just a function, and Django provides an example of some classes which can be used as views. These allow you to structure your views and reuse code by harnessing inheritance and mixins. There are also some generic views for simple tasks which we’ll get to later, but you may want to design your own structure of reusable views which suits your use case

Ahora bien, el DetailView de forma sencilla te la explico así:


from django.views.generic import DetailView
from .models import ModeloImportado
class DetailModeloimportado(DetailView):
template_name = 'detailview.html'
model = ModeloImportado
context_object_name = 'postdetail'
def get_context_data(self, **kwargs):
context = super(DetailModeloimportado, self).get_context_data(**kwargs)
context['postall'] = self.model.objects.all().order_by('-p_datecreated')
return context

 

Respetar las identaciones del código, a mi me fallan al momento de escribir este post.

Con esto simplemente en el views.py le diremos a Django que nos muestre de manera detallada cada uno de los objectos del modelo, ahora haremos unos cambios en el urls.py


url(r'^post/(?P[0-9]+)/$', DetailModeloimportado.as_view(), name='postall'),

Ahora en el template simplemente debemos colocarla el para que desde el enlace podamos navegar a través de los objectos del modelo.



Y en el detailview.html simplemente llamamos de la siguiente forma:


{{ postdetail.p_title }}

Como puedes ver en el detailview.html llamamos {{ postdetail.p_title }} el postdetail lo definimos en context_object_name = ‘postdetail’ en el views.py

Documentación Técnica con Sphinx

Saludos, vamos a hablar y a crear una documentación técnica usando sphinx, lo primero que debemos hacer es instalarlo en nuestra distro, si usas pip te será mucho más fácil hacer la instalación, ejecutando el comando pip install sphinx si, por desgracia usas Windows, no te preocupes también funciona ahí, te dejo este enlace para que veas el proceso de instalación http://sphinx-doc.org/latest/install.html

Una vez instalado debemos ejecutar el siguiente comando para crear el proyecto en el cual vamos a trabajar sphinx-quickstart


> Root path for the documentation [.]:
> Separate source and build directories (y/n) [n]:
> Name prefix for templates and static dir [_]:
> Project name:
> Author name(s):
> Project version:
> Project release [1]:
> Project language [en]:
> Source file suffix [.rst]:
> Name of your master document (without suffix) [index]:
> Do you want to use the epub builder (y/n) [n]:
> autodoc: automatically insert docstrings from modules (y/n) [n]:
> doctest: automatically test code snippets in doctest blocks (y/n) [n]:
> sphinx: link between Sphinx documentation of different projects (y/n):
> todo: write "todo" entries that can be shown or hidden on build (y/n) [n]:
> coverage: checks for documentation coverage (y/n) [n]:
> pngmath: include math, rendered as PNG images (y/n) [n]:
> mathjax: include math, rendered in the browser by MathJax (y/n) [n]:
> config: conditional inclusion of content based on config values (y/n):
> include links to the source code of documented Python objects (y/n):
> Create Makefile? (y/n) [y]:
> Create Windows command file? (y/n) [y]:
You should now populate your master file ./index.rst and create other documentation
source files. Use the Makefile to build the docs, like so:
make builder
where "builder" is one of the supported builders, e.g. html, latex or linkcheck.

Debes responder esa serie de preguntas referentes a tu proyecto, una vez hecho esto se te crearán las carpetas del mismo y quedará de la siguiente forma

prueba
├── _build
├── conf.py
├── index.rst
├── make.bat
├── Makefile
├── _static
└── _templates

En el index.rst está la definición de nuestro proyecto, ahí colocaremos los archivos .rst para crear la documentación


.. prueba documentation master file, created by
sphinx-quickstart on Tue Jun 2 09:58:20 2015.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.

Welcome to prueba's documentation!
==================================

Contents:

.. toctree::
:maxdepth: 2

intro

Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`

En la sección “Contents:” van los archivos .rst de nuestro proyecto.

creamos el archivo intro.rst y le damos el siguiente formato:

Introducción
================================
Una breve introducción a nuestro proyecto.

Agregamos el intro al Contents: del archivo index.rst y desde la consola ejecutamos make html, dentro de la carpeta _build quedarán los .html que hemos definido para nuestro proyecto.

Con eso tenemos la forma básica de crear documentación técnica, se puede modificar los temas de nuestro proyecto para darle mayor y mejor apariencia, los por defecto de sphinx están alojados aquí, tu también puedes crear los tuyos siguiendo la guía.

hasta pronto, espero les sea útil y cualquier comentario, duda y/o sugerencia ya saben donde dejarla.