Category > Programacion

Hack Manso: Mejorar la velocidad de SQLite en Google App Engine SDK

Estaba tratando de inicializar una base de datos en local, con el Google App Engine SDK y me estaba volviendo loco.
Ni siquiera era factible usar –use_sqlite que introdujeron en la versión 1.3.3. La velocidad de los inserts a la base de datos iban superlentos, en plan, diez por segundo. Infumable.
Vale, vale, es el SDK, y [...]

Continue reading

, , , , ,

Truco Manso: obtener una cadena hexadecimal aleatoria en python

Obtener una cadena de bytes aleatoria es una de esas cosas que hacen falta de vez en cuando.
La opción más sencilla en python es importar uuid y hacer la siguiente llamada:
uuid.uuid4().hex
Ale, con esa llamada ya tenemos 32 caracteres hexadecimales aleatorios (16 bytes aleatorios).
¿Sabes de algún otro método?

Continue reading

,

TrucoManso: Transformar el tiempo en formato 24h a formato 12h (Python)

Truco manso para transformar una cadena de tiempo en formato de 24h en formato de 12h (AM/PM)

def ampmformat (hhmmss):
“”"
This method converts time in 24h format to 12h format
Example: “00:32″ is “12:32 AM”
[...]

Continue reading

, ,

Truco Manso: Obtener la latitud/longitud a partir de una dirección

Para un proyecto que espero que pronto vea la luz, he estado investigando cómo determinar la localización geográfica de cualquier sitio. Esto es, determinar la latitud/longitud a partir de una frase en plan “Elche, Alicante, Spain”
A esto se le llama Geocoding y a poco que he buscado tanto Google como Yahoo tienen APIs REST que [...]

Continue reading

, , , , ,

Soporte de unicode en Python: Frustraciones y Soluciones

Personalmente el soporte de unicode en Python anterior a Python 3, siendo finos, es una puta mierda. Casi prefiero el soporte que tiene PHP 5.x de unicode (cero patatero).
Sinceramente es para volverse loco, porque cosas que a priori van, luego petan, o realmente no petan, sólo petan cuando intentas mostrarlas por la consola haciendo print…
En [...]

Continue reading

, , ,

Serializando datos nativos en Python

Resulta que para un proyecto en Python en el que estoy trabajando necesitaba serializar algunas estructuras. El tema es que únicamente hacía falta serializar tipos nativos como listas, diccionarios, cadenas, enteros, etc…
Lo que me hacía falta era:

representación compacta
serialización/deserialización rápida
legible / editable por un humano

Así que después de pensar un rato, he encontrado 3 posibles soluciones [...]

Continue reading

, , , , ,

bbcodeutils: BBCode parser and BBCode to HTML for Python

Ayer anduve buscando algún módulo para Python para parsear Bulletin Board Code (bbcode para los amigos) o que fuera capaz de transformarlo en HTML.
Como ninguna solución cumplía mis necesidades al 100% he creado bbcodeutils que no es mas que un conjunto de clases en Python para parsear, generar y transformar bbcode. He intentado que sea [...]

Continue reading

, , ,

[SOLVED] Añadir claves únicas en Google App Engine en 3 lineas

El problema:
Google App Engine mola, y la verdad es que programar en Python se me está empezando a hacer agradable, aunque me sigue gustando más la indentación con llaves…
En fin, la base de datos que usa Google es superpotente y supersencilla, si bien tiene algunas limitaciones con las que hay que aprender a vivir. Con [...]

Continue reading

, , , ,

Truco Manso: eliminar tags HTML en Python

La idea es eliminar todos los tags HTML de una determinada cadena.
El siguiente no es el mejor código del mundo, pero hace el papel.

def stripHTMLTags (html):
"""
Strip HTML tags from any string and transfrom special entities
"""
import re
text = html
 
# apply rules in [...]

Continue reading

, , , ,

Truco Manso: formatear con ceros al principio de un número en javascript

Hasta ayer echaba en falta un método sencillo y legible para rellenar con ceros cualquier número o cadena en javascript.
Un ejemplo típico es cuando quieres mostrar la hora y quieres que el formato sea hh:mm. No hay ningún problema cuando son las 12:40, pero si es la una y cinco, se muestra 1:5 en vez [...]

Continue reading

, , ,

prev posts