martes, 23 de diciembre de 2014

Django PostgreSQL Idle in Transaction

Es u problema muy común en los sitos que corren django y PostgreSql que allá conexiones que queden en "Idle in Transaction" Son producto de transacciones sin cerrar o esperando commit o roolback.

Este tipo de problema tiene dos posibles momentos en los que sucede esto. Uno es a la hora de hacer responder peticiones y otra es a la hora de señales de django que se ejecutan al cargar un modelo.

Para cuando las consultas queda abiertas al hacer peticiones, django trae consigo TransactionMiddleware, al añadir al final 'django.middleware.transaction.TransactionMiddleware' a MIDDLEWARE_CLASSES debería solucionarse de manera definitiva el problema.

En el otro caso me sucedió en un sistema, que estaba ejecutado una consulta en class_prepared.connect. Y dejaba u proceso abierto que evitaba que el resto de las consultas se ejecutara. ¿Solución? Estas dos lineas de código y listo:


from django.db import connection
#cierro la ejecución despues de terminar de ejecutar las cosultas
connection.close()

Ninja 3D Blender


Hoy les dejo mi primer ninja echo en Blender. Espero que les guste y pronto espero colocar más información sobre blender.

Three.js ninja ejemplo:
http://bomba1990.pythonanywhere.com/sosinformatico/js/ninja-blender

Blender:
https://www.dropbox.com/s/g71vtjgm0xmrudj/ninja2.blend?dl=0

lunes, 22 de diciembre de 2014

Packt’s $5 eBonanza returns



Following the success of last year’s festive offer, Packt Publishing will be celebrating the holiday season with an even bigger $5 offer.
From Thursday 18th December, every eBook and video will be available on the publisher’s website for just $5. Customers are invited to purchase as many as they like before the offer ends on Tuesday January 6th, making it the perfect opportunity to try something new or to take your skills to the next level as 2015 begins.
With all $5 products available in a range of formats and DRM-free, customers will find great value content delivered exactly how they want it across Packt’s website this Xmas and New Year.

Find out more at http://bit.ly/1w1Vkps

sábado, 29 de noviembre de 2014

Django models añadir permisos para ver a todos. (view_*)

Algo muy común que se usa en Django son los permisos de modelo para controlar quien puede objetos particulares. Django provee permisos por defectos en todos los modelos, crear, editar y eliminar.

Hay varias formas de agregar este permiso de "ver" en la web, pero la forma más sencilla que yo e visto es hacerlo en "post_syncdb". Cuando uses el comando syncdb, todos los modelos de tu sistema se chequeara si tienen el permiso view y si no se los creara.

Solo tienes que poner el siguiente script en el __init.py en el directorio de management/ de cualquiera de tus aplicaciones. Necesita estar dentro de un directorio de management o si no, no sera descubierto por el comando syncdb.

from django.db.models.signals import post_syncdb
from django.contrib.contenttypes.models import ContentType
from django.contrib.auth.models import Permission
 
def add_view_permissions(sender, **kwargs):
    """
    This syncdb hooks takes care of adding a view permission too all our 
    content types.
    """
    # for each of our content types
    for content_type in ContentType.objects.all():
        # build our permission slug
        codename = "view_%s" % content_type.model
 
        # if it doesn't exist..
        if not Permission.objects.filter(content_type=content_type, codename=codename):
            # add it
            Permission.objects.create(content_type=content_type,
                                      codename=codename,
                                      name="Can view %s" % content_type.name)
            print "Added view permission for %s" % content_type.name
 
# check for all our view permissions after a syncdb
post_syncdb.connect(add_view_permissions)

3D city Project. Three.js HTML5 WebGL

Hoy queria compartir con ustedes un proyecto muy chevere que descubri hoy, es una especi de simscity en la web. Super cool y util para evaluar el desempeño de los navegadores web para este tipo de juegos.

Aparte de todo el proyecto esta colocado en github y es de codigo abierto asi que pueden copiarlo ver como lo hicieron y si quieres crear el suyo propio.




lunes, 17 de noviembre de 2014

Learning Unity 2D Game Development by Example



Is a very beginner book, the first 4 chapters are bored for someone that as a background in programming. From chapter 6 begins the real examples, but are so easy. it take at most one hour to complete each example. Although are good examples to practice the skill, and learn some things.

The book lacks much on scripting, 2D Animation, GUI, etc... Enter to a intermediate level of development a game with Unity. Exists best content on the official page of unity.





domingo, 16 de noviembre de 2014

Cocos2d-x Game Development Essentials



I'm an intermediate level programmer in the game development. This book gave me the foundation I needed to take full advantage of what Cocos2dX has to offer. Every chapter is very clearly written, and teaches step by step the necesary to learn how to work with this Game development Platform.

I like to learn by doing, so I was glad that examples with sample data are included in every chapter. You learn and try it out.

The writing is very clear, and the editing is clean. The author is concise, specific, and never wasteful. This book has been a tremendous help at my job, and the skills I've learned have allowed me to take on many new responsibilities.

If you are like me, new to cocos2dx this is a very usefull book.


https://www.packtpub.com/game-development/cocos2d-x-game-development-essentials

miércoles, 29 de octubre de 2014

Añadir nuevos permisos a los modelos en DJANGO

Un problema muy común cuando empezamos a trabajar con permisos y autenticación en DJANGO es que empezamos a añadir permisos propios a los modelos y el migrate de south no lo reconoce y el syncdb tampoco. Como en este ejemplo:


class T21Turma(models.Model):
 class Meta:
 permissions = (("can_view_boletim", "Can view boletim"),
 ("can_view_mensalidades", "Can view mensalidades"),)


Para obligar que el sistema lo agregue simplemente hay que hacer:

python manage.py syncdb --all

Espero que les sirva, a mi me funciono.

Creando un juego "Infinite Runner" en 2D con Unity 4.3 (Tutorial)

Hoy les muestro una lista de reproducción que me encanta, con la cual te enseñan a crear un juego 2d con unity 3d. Son 26 videos que no tienen perdida.

Saludos....

jueves, 16 de octubre de 2014

Unity 4 Game Development HOTSHOT [REVIEW]



Yo ya e leido varios libros anteriores sobre unity, y este me encanto, porque me permite irme adentrando en características especificas del desarrollo de juego con unity que son imprescindibles para poder llegar a un nivel avanzado de desarrollo con unity.

El libro realiza paso a paso ejecicios practicos que estan descritos de una manera tan sencilla que con muy poco conocimiento de programación te permite seguirlo, y llegar al resultado final sin muchos contratiempos. .

Además los ejemplos me permitieron a mi avanzar un bastante en perfeccionar el juego que estoy desarrollando, añadir características que desconocía sobre unity a mi juego. Y darle una mayor calidad a mi trabajo.


I already has read many books of Unity, and i love this book, because it allows me to go deeper into specific features of game development with unity that are essential to reach an advanced level of development with unity.

The book makes a practical step by step tasks. the tasks are described in a simple way that with very little knowledge of unity allows you to follow and reach the final result without many setbacks. .


In addition the examples allowed me to improve my game development a lot, giving higher quality at my work



viernes, 15 de agosto de 2014

Learning iPhone Game Development with Cocos2D 3.0



I need more than 5 stars to rate this book. I've bought and read many other technical books in the past. This is the first time, i'm program for ios. Very easy to follow, great examples. You will build amazing games while you learn all the new cool features that come with cocos2D.

It's even better than official documentation!.


If you want to develop games using cocos2D,is a very nicely book. Don't think it twice… it's really worth it!


https://www.packtpub.com/game-development/learning-iphone-game-development-cocos2d-30

viernes, 4 de julio de 2014

CSS3 Transition

Otra de las características interesantes de CSS3, es que ahora soporta las animaciones cuando hay un cambio de estilo, es decir una transición animada sin necesidad de javascript, ni flash. 

Lo cual nos permite darle un toque animado a nuestras paginas, sin javascript, y de paso de una manera sumamente sensilla.

Soporte de los Navegadores.
Este característica es soportada por Chrome, Firefox, Opera, Safari, IE10. cada uno con su correspondiente prefijo. http://caniuse.com/#feat=css-transitions

Como funciona?
Esta nueva funcionalidad hace que la modificación de las propiedades de un elemento se hagan de manera gradual, y estas modificaciones tienen que ocurrir por un evento o tiene que suceder algo que las desencadene. Para usarlas debemos especificar la duración de la transición en segundos solamente, aparte podemos especificar el delay, el tipo de efecto de la transición: linear, ease, ease-in, ease-out, ease-in-out y cubic-bezier(n,n,n,n) que permite crear nuestra propia animación, ademas también podemos especificar a que propiedad vamos a aplicar cada animación.

Syntax

transition: propiedad duración efecto-transición (delay|initial|inherit);
  • Propiedad: es la propiedad a la cual se le va a aplicar la transición.
  • Duración el tiempo que va a durar la transición.
  • Efecto-transicion: la funcion que se va a aplicar en el tiempo espacio. 
  • delay: seria el tiempo que va a tardar la transición en iniciar.
  • initial: estable esta propiedad a su valor inicial.
  • inherit: hereda la propiedad de su padre.

Funciones

  • transition-delay
  • transition-duration 
  • transition-property
  • transition-timing-function



Ejemplo: http://bomba1990.pythonanywhere.com/sosinformatico/js/css3-transition

.prueba{
  width:150px;
  height:100px;
  border:1px solid red;
  margin:30px;
 }
       #prueba1{transition: 1s ease-in-out; }
 #prueba1:hover{
  transform: rotate(30deg);
  -webkit-transform: rotate(30deg);
  -moz-transform: rotate(30deg);
  -o-transform: rotate(30deg);
 }
       #prueba2{transition: 1s ease-out, width 2s cubic-bezier(.03,1.77,1,-0.67); }
 #prueba2:hover{
                width:500px;
  transform: translate(20px,20px);
  -webkit-transform: translate(20px,20px);
  -moz-transform: translate(20px,20px);
  -o-transform: translate(20px,20px);
 }



Para crear sus propias curvas de animación con la función cubic-bezier les recomiendo: http://cubic-bezier.com


Modular Mobile/PhoneGap Apps Backbone.js

Aqui les dejo una aplicación creada con Backbonejs, Phonegap y jquery mobile. Ya tiene algun tiempo. Pero puede servir de guia o ayuda para alguien. tiene una gaeria un blog y algunas cosas.


Saludos..


https://play.google.com/store/apps/details?id=com.nonvulgi
https://github.com/bomba1990/Nonvulgi-Backbone-JS-Application

lunes, 30 de junio de 2014

Packt Publishing celebrates 10 years with a special $10 offer



t has been 10 years since Packt Publishing embarked on its mission to deliver effective learning and information services to IT professionals. In that time, it has published over 2000 titles and helped projects become household names, awarding over $400,000 through its Open Source Project Royalty Scheme.
To celebrate this huge milestone, Packt is offering all of its eBooks and Videos at just $10 each – this promotion covers every title and customers can stock up on as many copies as they like until July 5th.
If you’ve already tried a Packt title in the past, you’ll know this is a great opportunity to explore what’s new and maintain your personal and professional development. If you’re new to Packt, then now is the time to try their extensive range – Within their 2000+ titles range, you’ll find the knowledge you really need , whether that’s specific learning on an emerging technology or the key skills to keep you ahead of the competition in more established tech fields.’

More information is available at: http://bit.ly/1jCdcmj

viernes, 20 de junio de 2014

Eliminar Filas duplicadas en sql

Hoy les traigo un pequeño codigo, para eliminar filas duplicadas, algo bastante sencillo:



delete from {{db}} where {{id}} in (SELECT {{id}} FROM {{db}} GROUP BY {{unique_column}} HAVING COUNT(*) > 1) 

Donde id seria el indice de la tabla, db, el nombre de la tabla, unique_column la columna que debería ser unica.

lunes, 9 de junio de 2014

Review Getting Started with Backbone Marionette

 

 Is a excellent book about a excellent framework, Its help you to introduce at the fascinating world of Backbonejs & Marionettejs, Each chapter covers the basics in a very concise way and moves on to more useful concepts and examples applicable to developing a real world application.

The book start with the basic, Router, Views, initial application, for test purposes. Continue with great chapters about how to manage many views on the same page, regions , and how to make a modularity app, thinking on grow in the future. There are a great chapter on using AMD with require.js.

In summary: i am very pleased whit this book, and is a good start to learn about this framework.

lunes, 5 de mayo de 2014

Packt celebrates International Day Against DRM, May 6th 2014



According to the definition of DRM on Wikipedia, Digital Rights Management (DRM) is a class of technologies that are used by hardware manufacturers, publishers, copyright holders, and individuals with the intent to control the use of digital content and devices after sale.

However, Packt Publishing firmly believes that you should be able to read and interact with your content when you want, where you want, and how you want – to that end they have been advocates of DRM-free content since their very first eBook was published back in 2004.


To show their continuing support for Day Against DRM, Packt Publishing is offering all its DRM-free content at $10 for 24 hours only on May 6th – that’s all 2000+ eBooks and Videos. Check it out at: http://bit.ly/1q6bpha

domingo, 6 de abril de 2014

Dropbox MySQL Backup Python


Dropbox se a vuelto hoy en día una de las herramientas más imprescindibles para cualquier negocio. Esta pequeña startup ha conseguido que todos mantengamos nuestros archivos en la nube y podamos disponer de ellos de una forma sincronizada y en cualquiera de nuestros dispositivos (android, ios, mac, pc linux, etc...). Hace un tiempo lanzo una API en su espacio para desarrolladores para poder acceder a los archivos y, lo más importante, crear aplicaciones sobre su servicio de almacenamiento en la nube.
Es un servicio, que permite la creación de un mundo infinito de aplicaciones, que aunque se puede hacer con otro tipo de servicios, el api de dropbox nos ofrece una facilidad inigualable a la hora de desarrollarlo. 
La API cuenta con SDKs para iOS, Android, Python, Ruby y Java. Las aplicaciones creadas deberán ser registradas en Dropbox para obtener un App Key, los usuarios concederán acceso a las aplicaciones de forma centralizada desde la propio web de Dropbox. En principio todas las aplicaciones que desarrollemos accederán a un carpeta dedicada, sólo determinadas aplicaciones aprobadas y revisadas por Dropbox podrán solicitar permisos para acceder a todos los ficheros del usuario. Se podrá buscar, descargar y subir ficheros. Las peticiones REST API viajan por SSL para mayor seguridad

DROPBOX API BACKUP PostgreSQL PYTHON

Hoy les voy a dejar un ejemplo de para hacer un backup  automático de nuestra base de datos MySQL con dropbox. Realmente nos va a servir no solo para respaldar la base de datos sino para cualquier archivo que necesitemos respaldar en el Dropbox.
Este fichero lo hago con el fin de poder respaldar de manera automática la base de datos de un sistema en producción, y así ahorrarse la problemática de estarlo haciendo a diario o semanal, y tener que descargar directamente a nuestra computadora la base de datos.  Sino que simplemente un Cron y listo.


Python Wrap
Junto con el src del dropbox viene un archivo de ejemplo que es una consola interactiva con comandos comunes en linux como ls, cat, cd, put, etc... e adaptado un poco esta consola para manejar archivos, y simplificar AUN MAS el uso del API de dropbox. Nos permite logear un usuario, y guardar la sesión del usuario en un archivo, para no tener que re-introducir los datos.

backup.py

Lo primero que necesitamos es registrar nuestra aplicación en dropbox https://www.dropbox.com/developers/apps/create, luego necesitamos tener instalado gzip, para comprimir archivos o cualquier otro comando que necesitemos. y este es el archivo:
import os, datetime

from DropboxWrap import DropboxTerm

# app key y secret de la pagina de desarolladores de dropbox
app_key = ''
app_secret = ''

#Datos para conectarnos a la base de datos
username = ""
password = ""
hostname = ""
database = ""

today = datetime.datetime.today()

#Le damos nombre a la base de datos
filename = database+"-"+today.strftime("%d-%b-%Y-%H:%M:%S.sql")
filename_gz = filename+".gz"

#instanciamos la clase 
d = DropboxTerm(app_key,app_secret)

#comprobamos si esta el usuario logeado o no
if d.is_logged() == False:
    d.login()

#ejecutamos el comando y comprimimos el resultado, para que sea más ligero el archivo
os.popen("mysqldump -u %s --password='%s' -h %s -e --opt -c %s | gzip -c > '%s'" % (username, password, hostname, database, filename_gz))

#montamos el archivo resultante en el dropbox
print d.put(filename_gz,'/database/'+filename_gz)

#listo


Ya lo que nos quedaría es ejecutarlo por primera vez,  para autorizar el acceso a la aplicación y configurar el cronjob y listo.

Source en GITHUB

sábado, 22 de marzo de 2014

Android App Opensource Ley de Infogobierno

Ley de Infogobierno Android

"La Asamblea Nacional (AN) publicó en Gaceta Oficial N° 40.274, de fecha 17 de octubre, la Ley de Infogobierno, con el objetivo de establecer los principios, bases y lineamientos que regirán el uso de las Tecnologías de Información en el Poder Público a fin de mejorar la gestión y los servicios que se prestan a las ciudadanas y ciudadanos."

Lo e publicado en github con la intención de que la sirva de guía a otros que este comenzando con android. Es un proyecto Opensource, que puedes ver también en el Playstore.

Requisitos Android Support v7.

GITHUB: https://github.com/bomba1990/Ley-de-Infogobierno

PLAY STORE https://play.google.com/store/apps/details?id=com.publisnet.leydeinfogobierno