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

Solucion al brick en Linksys WRT54G2 V1

Teniendo en cuenta que se intenta cambiar el firmware del router Linksys WRT54G2 V1 y que en un punto de la historia todo falla, todo router solo enciende cuando le conectas un cable de red a uno de los puertos, tienes un nuevo pisa papel😮😮, calma, no todo se ha perdido, que debemos hacer para solucionar esto?, pues simple, primero que nada haremos lo siguiente:

Descargamos el firmware necesario ftp://dd-wrt.com/others/eko/WRT54G2V1%20Flashing/dd-wrt.v24-10709_NEWD_micro.bin

Estamos usando GNU/Linux, no, no es necesario que vayas a winbugs como dicen los manuales que rondan en la web. Instala tftp puedes hacerlo con
apt-get install tftp tftpd tftp-hda

Una vez descargado e instalado el tftp, procedemos a hacer el hard reset del router de la siguiente manera:

1.1 Desconecta absolutamente todos los cables del router menos el de alimentación.

1.2 Presiona el botón de reset al menos 30 Segundos (Parte de atrás con un lápiz)

1.3 Desconecta el cable de alimentación (OJO: No dejes de presionar el boton de reset con el lapiz)

1.4 Espera al menos 5 Segundos presionando el botón de reset.

1.5 Conecta el cable de alimentación (OJO: No dejes de presionar el boton de reset con el lapiz).

1.6 Espera al menos 5 segundos presionando el botón de reset.

1.7 Suelta el boton de reset eso es todo para el hard reset.

Desconectate de Internet (en caso de estar conectado) y debes asignarte una IP estática en el rango 192.168.1.x

Probemos que te conectas con el router, haz ping a la dirección 192.168.1.1, debe darte respuesta ese ping

Abre el tftp en tu consola, te va a pedir la direccion a la que deseas conectarte, escribe 192.168.1.1, una revisión rápida por los comandos del tftp te dirá cuales son los principales


tftp> ?
Commands may be abbreviated. Commands are:

connect connect to remote tftp
mode set file transfer mode
put send file
get receive file
quit exit tftp
verbose toggle verbose mode
trace toggle packet tracing
status show current status
binary set mode to octet
ascii set mode to netascii
rexmt set per-packet retransmission timeout
timeout set total retransmission timeout
? print help information

Te recomiendo activar el verbose y el trace para que veas que sucede, ahora situado en la carpeta donde tienes la descarga simplemente ejecuta
put dd-wrt.v24-10709_NEWD_micro.bin espera a que el proceso termine, no es mucho tiempo, espera a que las luces de tu router enciendan nuevamente y desde un navegador accede a la IP 192.168.1.1 debes ver el admin de dd-wrt

Con eso hemos solucionado el problema del brick🙂