Pandas Styler: Mejora la presentación de tus DataFrames

Publicado el 25 de December de 2025 en Programación • Etiquetado con pandas, python, data-science, visualizacion, estilo

Descubre cómo el objeto Styler de Pandas te permite aplicar formato condicional y estilos CSS a tus DataFrames para una mejor visualización y presentación de datos.


Seguir leyendo

Reduce el Ruido en tus Logs de Python: Un enfoque inteligente

Publicado el 25 de December de 2025 en Programación • Etiquetado con python, logging, logs, depuracion, desarrollo

Aprende a configurar el módulo logging de Python para evitar la sobrecarga de mensajes de librerías de terceros, manteniendo tus logs limpios y útiles.


Seguir leyendo

Poe the Poet: Automatizando tareas en proyectos Python con uv

Publicado el 25 de December de 2025 en Programación • Etiquetado con python, uv, poethepoet, automatizacion, pyproject.toml

Descubre cómo Poe the Poet te permite definir y ejecutar comandos personalizados directamente desde tu pyproject.toml, optimizando tu flujo de trabajo en entornos uv.


Seguir leyendo

Cómo uso git worktrees para trabajo concurrente

Publicado el 23 de July de 2025 en Programación • Etiquetado con git, worktrees, flujo-trabajo, productividad

Un enfoque práctico para usar git worktrees y maximizar la productividad con múltiples contextos de trabajo simultáneos


Seguir leyendo

Búsqueda híbrida con SQLite: vector + texto completo

Publicado el 06 de October de 2024 en Programación • Etiquetado con sqlite, búsqueda, vectores, fts, sql

Combinando búsqueda vectorial y texto completo en SQLite usando Reciprocal Rank Fusion para obtener mejores resultados


Seguir leyendo

Conflación de datos geoespaciales con DuckDB y embeddings

Publicado el 01 de October de 2024 en Programación • Etiquetado con duckdb, geoespacial, embeddings, ollama, h3

Técnicas avanzadas para integrar fuentes de datos geoespaciales usando DuckDB, H3, Ollama y modelos de embeddings


Seguir leyendo

HTTPX: Cliente HTTP moderno para Python

Publicado el 23 de September de 2024 en Programación • Etiquetado con python, http, httpx, async, requests

HTTPX emerge como el sucesor natural de requests, ofreciendo soporte async, HTTP/2 y una API moderna para aplicaciones Python contemporáneas


Seguir leyendo

Server-Sent Events: Comunicación en tiempo real simplificada

Publicado el 23 de September de 2024 en Programación • Etiquetado con javascript, sse, tiempo-real, web-apis

Server-Sent Events ofrece una alternativa simple y eficiente a WebSockets para comunicación unidireccional servidor-cliente en aplicaciones web


Seguir leyendo

Repitiendo una función con hilos

Publicado el 03 de May de 2015 en Programación • Etiquetado con python

Vamos a utilizar hilos en python para ejecutar periodicamente una función


Seguir leyendo

Cierra Google Code

Publicado el 13 de March de 2015 en Programación • Etiquetado con python

Lo dicho, Google anunció el cierre de Google Code.

Hoy mismo recibí el correo avisandome (tenía un proyecto de prueba alojado allí) de que podía mover mis proyectos de forma simple a github, el repositorio de facto hoy en día del software libre (lo siento por bitbucket y sobre todo …


Seguir leyendo

pgcli el descubrimiento de hoy

Publicado el 02 de March de 2015 en Programación • Etiquetado con postgresql

postresql command line


Seguir leyendo

Decorador vista ajax

Publicado el 21 de November de 2014 en Programación • Etiquetado con python, django

Para obligar que una vista django sea llamada sólo mediante llamamas AJAX.

def ajax_required(f):
    """
    AJAX request required decorator
    use it in your views:

    @ajax_required
    def my_view(request):
        ....

    """
    def wrap(request, *args, **kwargs):
        if not request.is_ajax():
            return HttpResponseBadRequest()
        return f(request, *args, **kwargs)
    wrap.__doc__ = f.__doc__
    wrap.__name__ …

Seguir leyendo

Función genérica para usar como upload_to

Publicado el 11 de October de 2014 en Programación • Etiquetado con django, python

Los FileField en django necesitan ana función upload_to que determine donde se subirá el fichero. Yo suelo tener en utils.py una función genérica que los deja en una subcarpeta con el nombre del modelo.

import os

def generic_upload_to(instance, filename):
    """
    Generic `upload_to` function for models.FileField and models.ImageField …

Seguir leyendo

Django: enlaces en listado de objectos

Publicado el 21 de May de 2014 en Programación • Etiquetado con django, python

En mis proyectos suelo usar enlaces a elementos relacionados en el change_list del admin.

Ficheros

utils.py

Tengo esto en utils.py

from django.contrib import admin
from django.contrib.contenttypes.models import ContentType
from django.core import urlresolvers
from django.utils.datastructures import SortedDict
from …

Seguir leyendo

Settings vars processor

Publicado el 08 de January de 2014 en Programación • Etiquetado con python, django

Lo suelo usar durante el principio de los proyectos.

from django.conf import settings as django_settings
from django.core.exceptions import ImproperlyConfigured


def settings(request):
    """
    Adds the settings specified in settings.TEMPLATE_VISIBLE_SETTINGS to
    the request context.
    """
    new_settings = {}
    for attr in django_settings.TEMPLATE_VISIBLE_SETTINGS:
        try:
            new_settings[attr] = getattr(django_settings, attr)
        except AttributeError …

Seguir leyendo

Depurando Tomcat

Publicado el 24 de October de 2012 en Programación • Etiquetado con java

Se usa Java Platform Debuging Architecture JPDA https://confluence.sakaiproject.org/display/BOOT/Setting+Up+Tomcat+For+Remote+Debugging

Autorelad en plone

Publicado el 27 de July de 2012 en Programación • Etiquetado con zope

Otro recordatorio. Para recargar mientras desarrollo una browserview en plone:
$ when-changed.py *.py -c wget -q -O /dev/null  \
http://admin:admin@localhost:8080/@@reload?action=code
Basta pues con usar when-changed y plone.reload Se que existen extensiones  para el navegador  que recargan una  pestaña cuando cambia un fichero …

Seguir leyendo

scp con compresión

Publicado el 04 de March de 2011 en Programación • Etiquetado con linux, zope

La mejor forma de descargar una zodb:
scp -C -o CompressionLevel=9 user@yoursite.com:~/plonefolder/zinstance/var/filestorage/Data.fs .
Leído en: http://blog.mfabrik.com/2011/03/02/scp-file-copy-with-on-line-compression/

Zen Coding y komodo edit

Publicado el 15 de October de 2010 en Programación • Etiquetado con zope

Mi editor favorito Komodo Edit tiene un plugin de Zen Coding y este funciona muy bien también con plantillas zpt. Por ejemplo: Así una expresión como la siguente
dl>tal:rep[tal:repeat]>dt+dd
Se convierte en el siguiente trozo de html con los nesesarios tabstops:
Muy pero que …

Seguir leyendo

Progreso en un reindexado de zope

Publicado el 18 de September de 2010 en Programación • Etiquetado con zope

Visto en el producto contentleadimage:
from Products.ZCatalog.ProgressHandler import ZLogHandler
ctool.reindexIndex(['hasContentLeadImage'], portal.REQUEST, pghandler=ZLogHandler())
Esto muestra un progreso en la consola si estás ejecutando en primer plano.

Zope y noatime

Publicado el 25 de July de 2010 en Programación • Etiquetado con zope

Una fácil mejora para el rendimiento de un zope con problemas de acceso a disco es no actualizar la fecha de último acceso al fichero de la base de datos Data.fs:
chattr -R +A Data.fs
Simple y efectivo.

Subversion: Añadiendo contenido a un directorio sin descargarlo

Publicado el 16 de July de 2010 en Programación

Caso práctico. Tengo un directorio dev dentro del subversión con un montón de código con sus correspondientes ramas de trunk, branches, tags, etc. Quiero añadir un nuevo producto pero no descargar todo ese enorme directorio dev:
svn co --depth empty https://repositorio/dev dev
cp loquesea nuevo_producto
svn add loquesea …

Seguir leyendo

Restaurando objectos plone borrados

Publicado el 14 de July de 2010 en Programación • Etiquetado con zope

Para esas situaciones donde no funciona el undo, la salvación se llama dm.historical Un claro ejemplo en esta entrada del Blog de Andreas Jung

Completar mientras se depura en zope

Publicado el 28 de April de 2010 en Programación • Etiquetado con web

Siempre tengo que buscar esto en google, para esto tengo el blog:
$ bin/instance debug
>>> import readline, rlcompleter
>>> readline.parse_and_bind('tab: complete')
>>> app.
Display all 760 possibilities? (y or n)
>>> 

Kbabel es Lokalize en kde4

Publicado el 25 de March de 2010 en Programación

Ya era la segunda vez que no encontraba el maravilloso kbabel y es que en kde4 su sucesor se llama lokalize

Colores desde web developer tools

Publicado el 10 de November de 2009 en Programación • Etiquetado con web

Últimamente uso tanto firebug que ni me acuerdo de las Web Developer Tools. Escribo esto para recordar que sigue siendo muy útil esta extensión. Por ejemplo, puedo ver los colores (css) usados en una página web a través del menú Información, seleccionando Ver información del color.

CSS: Estilos de selección de texto

Publicado el 09 de July de 2009 en Programación • Etiquetado con web

Una de esas declaraciones de CSS3 que ya aceptan muchos navegadores actuales es ::selection. Se puede utilizar así:
p::selection {
	background: #ccaacc; /* Safari */
	}
p::-moz-selection {
	background: #ccaacc; /* Firefox */
}

Contenedor de Floats: How to IE & FF

Publicado el 21 de May de 2009 en Programación • Etiquetado con web

Espero no olvidar esto más así que dejo la notita. Si tienes un elemento (por ejemplo un div#padre), que contiene sólo flotantes (otros divs por ejemplo), no será capaz IE de calcular bien su tamaño (se ve muy claro con un background). Para que funcione con explorer y firefox …

Seguir leyendo

Siempre el último Dragonfly en Opera

Publicado el 30 de January de 2009 en Programación

Para tener la versión de desarrollo de dragon fly en el opera basta con seguir la ruta: about:config -> Developer Tools -> Developer Tools url Luego, introducir la url siguiente http://dragonfly.opera.com/app/cutting-edge/

¿Cómo hacer un "svn export" con git?

Publicado el 14 de November de 2008 en Programación

Si tienes que descargarte un árbol git pero sin los metadatos, porque por ejemplo sólo quieres el código para congerlarlo versionado en el subversion de tu proyecto, lo más fácil es: git clone {clone-url} rm -rf .gitignore .git

svn:ignore

Publicado el 13 de November de 2008 en Programación

Esta entrada  es para recordar los dos comandos: svn propedit svn:ignore ./some_path svn -R propset svn:ignore -F ../.svnignore . donde .svnignore contiene un patron por línea como *.pyc

Error con setuptools y subversion 1.5

Publicado el 14 de September de 2008 en Programación • Etiquetado con python

La actual versión de setuptools no se lleva bien el subversion 1.5 (también el actual en mi ubuntu). Normalmente acostumbro a usar virtualenv y me he encontrado con el error:
NameError: global name 'log' is not defined
Ya está arreglado en el desarrollo de setuptools. Una posible solución es …

Seguir leyendo

Buscando una fuente para escribir código

Publicado el 22 de July de 2008 en Programación

Varios enlaces interesantes sobre este tema. Personalmente, la Bitstream Vera Sans Mono, me parece una fuente bastante aceptable. Me gusta mucho …

Seguir leyendo

Ejecutar comandos en python

Publicado el 04 de March de 2008 en Programación • Etiquetado con python

Hago a menudo pequeños scripts en python. Y muchas de las veces necesito ejecutar algún comando del sistema. Habitualmente importaba el módulo os y llamaba a alguna de sus funciones (las popen). Pero en general no hace falta importar os. Existe un módulo llamado commands (sólo para unix) que permite …

Seguir leyendo