Gestionando instalaciones desde GitHub con gah

Publicado el Wed 11 February 2026 en Linux • Etiquetado con linux, herramientas, cli

Instala binarios directamente desde releases de GitHub de forma sencilla con gah.


Seguir leyendo

YAML Multilínea: Entendiendo y probando cadenas de texto complejas

Publicado el Thu 25 December 2025 en Herramientas • Etiquetado con yaml, configuracion, desarrollo, herramientas, multiline, strings

Explora las opciones de YAML para manejar cadenas de texto multilínea de forma efectiva, con una demo interactiva que te permite probarlas en tiempo real.


Seguir leyendo

Pandas Styler: Mejora la presentación de tus DataFrames

Publicado el Thu 25 December 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

`fresh`: Mi editor de terminal preferido para el día a día

Publicado el Thu 25 December 2025 en Herramientas • Etiquetado con fresh, terminal, editor, productividad, linux, herramientas, cli

Descubre fresh, un editor de texto en terminal rápido, moderno y sin modos, ideal para la edición casual de archivos, superando a nano y vim en simplicidad para el uso habitual.


Seguir leyendo

Cómo ver los archivos de un paquete RPM en Linux

Publicado el Thu 25 December 2025 en Sistemas • Etiquetado con linux, rpm, paquetes, comandos, sistemas, administración, dnf, yum

Guía rápida para inspeccionar el contenido de paquetes RPM y determinar qué paquetes poseen determinados archivos en tu sistema Linux.


Seguir leyendo

Kooha: Captura de pantalla sencilla y elegante en Linux

Publicado el Thu 25 December 2025 en Herramientas • Etiquetado con linux, kooha, screen-recorder, productividad, herramientas, open-source

Descubre Kooha, una aplicación de grabación de pantalla minimalista para Linux que combina facilidad de uso con funcionalidades esenciales.


Seguir leyendo

OpenEvidence: La plataforma líder en información médica para profesionales

Publicado el Thu 25 December 2025 en Sin Categoría • Etiquetado con open-evidence, medicina, salud, informacion-medica, profesionales-salud, investigacion, clinica

Explorando OpenEvidence, una plataforma líder que consolida información médica, hallazgos clínicos y guías de práctica para profesionales de la salud en EE.UU.


Seguir leyendo

`direnv`: Gestiona tus entornos de desarrollo de forma inteligente

Publicado el Thu 25 December 2025 en Herramientas • Etiquetado con direnv, shell, entorno, productividad, desarrollo, linux, herramientas

Descubre direnv, una extensión de shell que carga y descarga variables de entorno automáticamente al cambiar de directorio, manteniendo tu configuración limpia y organizada.


Seguir leyendo

`docker-http-https-echo`: Una herramienta esencial para depuración de red

Publicado el Thu 25 December 2025 en Herramientas • Etiquetado con docker, http, https, depuracion, redes, herramientas, contenedores

mendhak/docker-http-https-echo es un contenedor Docker simple que facilita la depuración de configuraciones de red, proxies y balanceadores de carga.


Seguir leyendo

Kubegres: Gestión simplificada de PostgreSQL en Kubernetes

Publicado el Thu 25 December 2025 en DevOps • Etiquetado con kubernetes, postgresql, kubegres, operador, base-de-datos, devops

Descubre Kubegres, un operador de Kubernetes que simplifica la implementación y gestión de clusters PostgreSQL altamente disponibles y escalables.


Seguir leyendo

Estados de Conexión TCP en GNU/Linux: netstat y ss

Publicado el Thu 25 December 2025 en Sistemas • Etiquetado con linux, redes, tcp, netstat, ss, sistemas

Comprende los diferentes estados de conexión TCP reportados por netstat y ss, desde el establecimiento hasta la terminación, para un mejor diagnóstico de red.


Seguir leyendo

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

Publicado el Thu 25 December 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

Kitty como terminal de acceso rápido: La comodidad de un desplegable

Publicado el Thu 25 December 2025 en Sistemas • Etiquetado con kitty, terminal, acceso-rapido, productividad, linux, atajos

Configura Kitty para un acceso instantáneo y eficiente, combinando la potencia de un terminal moderno con la conveniencia de un desplegable.


Seguir leyendo

Atajos de teclado esenciales en Kitty: Dominando tu terminal

Publicado el Thu 25 December 2025 en Sistemas • Etiquetado con kitty, terminal, atajos, teclado, productividad

Una guía rápida a los atajos de teclado más útiles de Kitty para optimizar tu flujo de trabajo en la línea de comandos.


Seguir leyendo

De Yakuake a Kitty: Mi transición a un terminal moderno

Publicado el Thu 25 December 2025 en Sistemas • Etiquetado con kitty, yakuake, terminal, linux, productividad, herramientas

Explorando las razones y beneficios de cambiar de Yakuake a Kitty para una experiencia de terminal más potente y personalizable.


Seguir leyendo

Poe the Poet: Automatizando tareas en proyectos Python con uv

Publicado el Thu 25 December 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 Wed 23 July 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 Sun 06 October 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 Tue 01 October 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 Mon 23 September 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 Mon 23 September 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

Una de versiones

Publicado el Mon 01 May 2017 en Progamación • Etiquetado con python


Seguir leyendo

MobaXterm. Mucho más que un cliente ssh

Publicado el Tue 11 April 2017 en Trucos • Etiquetado con linux


Seguir leyendo

PosteRazor: Crea pósters gigantes desde cualquier imagen

Publicado el Fri 24 February 2017 en Herramientas • Etiquetado con posterazor, impresión, pósters, diy, herramientas

PosteRazor convierte cualquier imagen en un póster gigante dividiendo la imagen en páginas imprimibles que puedes ensamblar


Seguir leyendo

Correo no leído en pestaña principal de gmail

Publicado el Thu 28 July 2016 en Trucos • Etiquetado con linux

Lo de siempre, otra nota recordatoria.

Si filtras el correo en gmail por no leído (is:unread), obtienes todo el correo no leído, que en mi caso siempre incluye cientos de notificaciones, social, promociones o foros que no suele ser lo que busco.

Para buscar los correos no leídos de …


Seguir leyendo

Documentación técnica con Sphinx, Paver y Cog

Publicado el Thu 14 July 2016 en Documentación • Etiquetado con sphinx, paver, cog, documentación, rst, automation

Workflow automatizado para crear documentación técnica usando Sphinx, Paver y Cog, eliminando tareas repetitivas y errores manuales en ejemplos de código


Seguir leyendo

Determinar slots de RAM en uso en Linux

Publicado el Wed 13 July 2016 en Linux • Etiquetado con linux, ram, dmidecode, lshw, hardware, memoria

Comandos de Linux para determinar cuántos slots de RAM están ocupados y su capacidad usando dmidecode, lshw y técnicas de inspección de hardware


Seguir leyendo

Introducción a los sistemas de trading de alta frecuencia

Publicado el Mon 27 June 2016 en Finanzas • Etiquetado con trading, hft, high-frequency, algoritmos, finanzas

Conceptos fundamentales sobre los sistemas de trading de alta frecuencia (HFT), programas que ejecutan miles de operaciones por día en fracciones de segundo


Seguir leyendo

Cómo encontrar hosts vivos en tu red local

Publicado el Mon 27 June 2016 en Seguridad • Etiquetado con nmap, network-discovery, arp-scan, netdiscover, seguridad

Métodos y herramientas para descubrir dispositivos activos en redes locales usando nmap, arp-scan, netdiscover y otras técnicas de reconocimiento


Seguir leyendo

Potentes herramientas para desarrolladores desde línea de comandos

Publicado el Tue 07 June 2016 en Herramientas • Etiquetado con cli, herramientas, desarrollo, networking, testing

Colección de herramientas de línea de comandos esenciales para desarrolladores: curl, ngrep, netcat, sshuttle, siege y mitmproxy


Seguir leyendo

Sysdig: Plataforma de seguridad cloud-nativa con IA

Publicado el Wed 10 February 2016 en Herramientas • Etiquetado con sysdig, seguridad, cloud, kubernetes, falco

Sysdig ofrece una plataforma de seguridad integral para entornos cloud-nativos que combina IA, visibilidad en tiempo real e innovación open source


Seguir leyendo

Python: Crear generadores repetibles (repeating generators)

Publicado el Tue 09 February 2016 en Python • Etiquetado con python, generadores, itertools, decoradores, yield

Técnicas en Python para crear generadores que se pueden iterar múltiples veces, superando la limitación de "una sola vez" de los generadores estándar


Seguir leyendo

Botón central en firefox

Publicado el Fri 01 January 2016 en Sistemas • Etiquetado con linux

Que firefox deje de abrir la url pegada con el botón central del ratón


Seguir leyendo

Bootstrap: Dos enlaces en la misma fila en dropdown

Publicado el Tue 15 December 2015 en Frontend • Etiquetado con bootstrap, css, dropdown, flexbox, html

Técnica CSS para colocar dos enlaces en la misma fila horizontal dentro de un menú dropdown de Bootstrap usando flexbox


Seguir leyendo

Galen Framework: Testing automatizado para diseño responsive

Publicado el Fri 13 November 2015 en Testing • Etiquetado con galen, testing, responsive, layout, selenium

Galen Framework simplifica el testing automatizado de layouts responsivos verificando la posición y apariencia de elementos across different dispositivos


Seguir leyendo

La historia detrás de X-Forwarded-For y X-Real-IP

Publicado el Wed 21 October 2015 en Redes • Etiquetado con headers, x-forwarded-for, x-real-ip, proxy, nginx

Análisis de los headers X-Forwarded-For y X-Real-IP, sus orígenes, diferencias y cómo determinar la IP real del cliente en arquitecturas con múltiples proxies


Seguir leyendo

Nginx: Configurar X-Forwarded-For en reverse proxy

Publicado el Wed 21 October 2015 en DevOps • Etiquetado con nginx, reverse-proxy, x-forwarded-for, ip-real, configuración

Cómo configurar Nginx para pasar la IP real del cliente a servidores backend usando el header X-Forwarded-For en configuraciones de reverse proxy


Seguir leyendo

SQL: Seleccionar filas con valor máximo por grupo

Publicado el Wed 21 October 2015 en SQL • Etiquetado con sql, mysql, consultas, window-functions, joins

Técnicas SQL para seleccionar filas completas con el valor máximo de una columna dentro de grupos, comparando rendimiento de subqueries, joins y window functions


Seguir leyendo

Repitiendo una función con hilos

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

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


Seguir leyendo

Instalar InSync en Opensuse

Publicado el Mon 20 April 2015 en Sistemas • Etiquetado con django, python


Seguir leyendo

NetHogs ver ancho de banda consumido

Publicado el Thu 16 April 2015 en Sistemas • Etiquetado con linux

Para medir el ancho de banda que estoy utilizando en este momento utilizo NetHogs

Por defecto busca una interfaz de red llamada "eth0" si no la encuenta se queja así:

ioctl failed while establishing local IP for selected device eth0. You may specify the device on the command line.

Puedes …


Seguir leyendo

Cierra Google Code

Publicado el Fri 13 March 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 Mon 02 March 2015 en Programación • Etiquetado con postgresql

postresql command line


Seguir leyendo

Reactivando el blog

Publicado el Fri 20 February 2015 en Personal • Etiquetado con python

Ya estoy de nuevo escribiendo.


Seguir leyendo

Decorador vista ajax

Publicado el Fri 21 November 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 Sat 11 October 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 Wed 21 May 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 Wed 08 January 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

pyinotify: Ejecutar comando cuando se modifica un fichero

Publicado el Wed 03 April 2013 en Sistemas • Etiquetado con python, linux

Ya he comentado por aquí un comando when-changed. Ahora anoto otra alternativa, esta vez python. Se trata de pyinotify. Yo lo uso para generar la documentación de sphinx mientras estoy escribiendo:
python -m pyinotify -r -c "make html" -e IN_MODIFY source

A vueltas con suse

Publicado el Mon 25 March 2013 en Sin Categoría

Algunos comandos de zypper para recordar: Para borrar un paquete y también las dependencias:
zypper remove  --clean-deps packate
Listar paquetes huérfanos:
LC_ALL=C zypper se -s | fgrep '(System Packages)'

Paso de ubuntu a suse

Publicado el Fri 01 February 2013 en Sistemas • Etiquetado con linux

En mi nuevo portátil del trabajo he pasado de Ubuntu a OpenSuse. Una distribución muy estable y sobre todo con el mejor soporte de KDE. Pero hay una cuantas cosas que nunca recuerdo. Como este blog se llama anotaciones...
Debian OpenSuse
dpkg -S fichero rpm -q -f fichero
dpkg -L …

Seguir leyendo

reducir recursos de KDE

Publicado el Wed 24 October 2012 en Sistemas • Etiquetado con linux

Mágnifica entrada que explica como acelerar un poco tu sistema kde: http://parduslife.com/2011/02/17/como-acelerar-el-entorno-de-escritorio-plasma-de-la-kde-sc/ No uso akonadi y siempre he querido pararlo. Así no tienes que hacer un
akonadictl stop
tras arrancar.   http://mschlander.wordpress.com/2011/08/18/disable-akonadi-in-kde-sc-4-7/    

Cambiar de lugar un virtualenv

Publicado el Wed 24 October 2012 en Sin Categoría • Etiquetado con python

La opción --relocate no funciona bien. Lo mejor es usar virtualenv-tools.

Depurando Tomcat

Publicado el Wed 24 October 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

Importar clave gpg. kgpg que gran programa

Publicado el Wed 24 October 2012 en Sistemas • Etiquetado con linux

        gpg --keyserver pgp.rediris.es --search-keys erevilla@yaco.es

gpg: buscando «erevilla@yaco.es» de hkp servidor pgp.rediris.es
(1) Ernesto Revilla Derksen (Yaco)
1024 bit DSA key 3E455F5A, creado: 2009-09-16
Keys 1-1 of 1 for "erevilla@yaco.es". Introduzca número(s), O)tro, o F)in > 1
gpg …

Seguir leyendo

Traducciones y APT

Publicado el Wed 24 October 2012 en Sistemas • Etiquetado con linux

http://mindref.blogspot.com.es/2012/10/apt-translations.html http://manpages.ubuntu.com/manpages/natty/man5/apt.conf.5.html


Mostrar Usuarios y roles existentes en postgres

Publicado el Wed 24 October 2012 en Sistemas

Se utiliza \du
$ sudo su - postgres
$ psql 
postgres=# \du
                           List of roles
 Role name |                   Attributes                   | Member of 
-----------+------------------------------------------------+-----------
 openerp   | Superuser, Create role, Create DB, Replication | {}
 postgres  | Superuser, Create role, Create DB, Replication | {}

postgres=#

Uso práctico de ngrep

Publicado el Wed 12 September 2012 en Sistemas • Etiquetado con linux

Ejemplo de uso común de ngrep:
sudo ngrep -d any port 80 -W byline
Esto es para examinar lo que circula por el puerto 80.

Autorelad en plone

Publicado el Fri 27 July 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

virtualbox: Actualizar las Guest Additions en máquinas ubuntu

Publicado el Wed 24 August 2011 en Sistemas • Etiquetado con linux

Si usas vagrant para gestionar máquinas virtuales con virtualbox, un buen lugar para obtener boxes es vagrantboxes. Pero a veces la versión que traen de las Guest Additions no coincide con el virtualbox que tienes (en mi caso el último). Vagrant se queja y puede ocasionar problemas. Lo más simple …

Seguir leyendo

Cambiar mapa de teclado en linux

Publicado el Wed 24 August 2011 en Sistemas • Etiquetado con linux

Siempre olvido esto:
sudo keymap es

Deshabilitar autocompletado en vim

Publicado el Mon 20 June 2011 en Sistemas • Etiquetado con linux

Uso poco vim, sólo cuando en servidores no tengo jed. Para pegar texto en el fichero actual sin que te haga un horrible indentado en cascada:
:setlocal noautoindent
:setlocal nocindent
:setlocal nosmartindent
:setlocal indentexpr=
O su equivalente:
:setl noai nocin nosi inde=
Referencia: http://vim.wikia.com/wiki/How_to_stop_auto_indenting

Diccionario de español para komodo edit

Publicado el Mon 13 June 2011 en Sin Categoría

Para instalarlo se siguen estas instrucciones descargando previamente el addon. No he probado a ver si funciona en el perfil de usuario, pero eso estaría mejor.

21/3

Publicado el Tue 22 March 2011 en Sin Categoría

Han pasado ya tres días 21 en lo que llevamos de año. Ayer, fue un día de reivindicaciones, para exigir la visibilidad necesaria y el respecto que esta sociedad todavía niega. Cuando en el día de hoy se habla de guerra y emisiones radiactivas, yo he aprendido en este último …

Seguir leyendo

scp con compresión

Publicado el Fri 04 March 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/

Actualizar Mercurial usando ppa en ubuntu

Publicado el Fri 25 February 2011 en Sistemas • Etiquetado con linux

Existen tres PPA para mercurial: https://launchpad.net/~mercurial-ppa/+archive/releases (última release, actualmente 1.7.5-0ppa1~maverick1) https://launchpad.net/~mercurial-ppa/+archive/stable-snapshots (snapshots de la rama estable, actualmente 1.7.5+2-5fc7c84ed9b0-0ppa1~maverick1) https://launchpad.net/~mercurial-ppa/+archive/snapshots (snapshots de lo último, actualmente 1.8~1.7 …

Seguir leyendo

Añadiendo un repositio PPA en karmic

Publicado el Wed 23 February 2011 en Sin Categoría

Este comandito te añade sola la fuente (ojo, en el directorio /etc/apt/sources.list.d) y pide las claves:
sudo add-apt-repository ppa:chromium-daily

Dos pantallas al inicio de kdm

Publicado el Tue 01 February 2011 en Sistemas

Para que ya el mismo kdm se ejecute con dos pantallas basta con poner la configuración deseada (usando xrandr) en el fichero /etc/kde4/kdm/Xsetup. Por ejemplo, en mi caso uso dos pantallas en la oficina de modo que ese fichero contiene:
INT="LVDS1"
EXT="VGA1"
xrandr -q | grep …

Seguir leyendo

Zen Coding y komodo edit

Publicado el Fri 15 October 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 Sat 18 September 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 Sun 25 July 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 Fri 16 July 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 Wed 14 July 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

Opciones típicas rsync

Publicado el Thu 08 July 2010 en Sistemas • Etiquetado con linux

Para usar un rsync como un scp (pero con las ventajas de rsync como que puedo parar y continuar después):
rsync -azPrv -e 'ssh' usuario@host:/path/to/folder /path/to/destination

Completar mientras se depura en zope

Publicado el Wed 28 April 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 Thu 25 March 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

Descargar una web para visualización local con wget

Publicado el Mon 22 February 2010 en Sin Categoría

El comando es
$ wget -E -H -k -K -p  http://www.google.es
Con -p hacemos que se descarguen los enlaces requeridos (css, javascript), con -k convertimos los enlaces dentro del html para visualización local (-K copia de seguriad) y con -E aseguramos que los ficheros descargados tengan extensión html …

Seguir leyendo

Plone: Registrar pasos de importación con zcml

Publicado el Wed 27 January 2010 en Sin Categoría

Registrar un paso de importación con xml el el profile, puede fallar cuando quitas el paquete del buildout. Un paso roto se que queda dentro de portal_setup_tool. En algunas versiones de plone esto da un error, haciendo imposible aplicar el perfil nunca más. En otras versiones (plone 3.2 hacia …

Seguir leyendo

Descargar código de un repositorio publicado con gitweb

Publicado el Mon 04 January 2010 en Sin Categoría

Quería probar un software disponible en la red (Perfect Sale). Sabía que tenía que usar git clone pero no la url.

No queda claro (al menos a mí) en el repositorio gitweb la url a usar.

Al fin, encontré la solución en un repositorio mejor documentado (gracias).

El protocolo es …


Seguir leyendo

Crear base de datos mysql a partir de un backup

Publicado el Thu 17 December 2009 en Sistemas

Primero crear la base de datos:
pcaro@davinci$ mysql --user=root -p
mysql> show databases;
mysql> create database piwik;
mysql> GRANT ALL ON piwik.* TO pcaro@localhost IDENTIFIED BY "piwik"
mysql> show tables;
Luego restaurar el backup:
mysql --user=root --pass=*** --host=localhost piwik < piwik_Thursday.sql
Comprobar todo esta bien …

Seguir leyendo

Parcheando, parcheando ...

Publicado el Wed 16 December 2009 en Sistemas • Etiquetado con linux

Siempre tengo que buscar cómo usar patch. Como tengo un blog que se llama anotaciones pues apunto:
$ patch -p1 < baz.diff
Donde el número 1 viene de mirar en el fichero .diff y contar las barras "/" que hay antes que el directorio donde estoy. Por ejemplo si veo /users/stephen …

Seguir leyendo

Que las aplicaciones GTK+ luzcan mejor en kubuntu karmic

Publicado el Thu 10 December 2009 en Sistemas • Etiquetado con linux

Basta con seguir este tutorial, que indica como instalar el tema Oxygen-Molecule.

Añadir PPA desde la consola a ubuntu karmic

Publicado el Wed 09 December 2009 en Sistemas • Etiquetado con linux

Para añadir un PPA a ubuntu karmic desde la consola basta con:
 sudo add-apt-repository ppa:kubuntu-ppa/ppa

[sudo] password for pcaro:                                
Executing: gpg --ignore-time-conflict --no-options --no-default-keyring --secret-keyring /etc/apt/secring.gpg --trustdb-name /etc/apt/trustdb.gpg --keyring /etc/apt/trusted.gpg --keyserver keyserver.ubuntu.com --recv E4DFEC907DEDA4B8A670E8042836CB0A8AC93F7A                                                                                  
gpg: solicitando clave …

Seguir leyendo

Cambiar dpi en kde

Publicado el Fri 04 December 2009 en Sistemas • Etiquetado con linux

Siempre que reinstalo me encuentro con el mismo problema. No tengo el dpi estándar de 96, sino uno extraño de 113.
pcaro@davinci$ xdpyinfo | grep resolutio
  resolution:    113x113 dots per inch
Como resultado, muchas páginas webs no se visualizan correctamente. Para solucionarlo tengo que decirle al servidor X que arranque …

Seguir leyendo

Actualizando postgres en debian y derivados

Publicado el Thu 26 November 2009 en Sistemas

Siempre que se habla de debian, se alaba su paquetería. Y yo estoy de acuerdo de que es uno de los puntos fuertes de la distribución. Hoy me refiero a la facilidad de tener instaladas y conviviendo felices varias versiones de la base de datos postgres. Ya comenté esto en …

Seguir leyendo

Añadiendo lenguaje procedural a base de datos postgres: createlang

Publicado el Thu 12 November 2009 en Sistemas

Postgres 8.3 incluye 4 lenguajes procedurales en la distribución y se pueden instalar más, pero hay que activarlos por base de datos. Para ello, hay varios métodos (lo clásico es create language) pero los más cómodo es usar createlang. Usa droplang para eliminar el lenguaje.

Colores desde web developer tools

Publicado el Tue 10 November 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.

Que apache sirva el contenido de un fichero .py

Publicado el Tue 13 October 2009 en Sin Categoría

Para que el servidor apache de webfaction no intentara ejecutar los scripts python que dejo para la descarga en este blog, me creé un fichero .htaccess y dentro:
removeHandler cgi-script .pl .py .cgi

Cambiar pantalla anunciadora de kde: Ksplash theme generator

Publicado el Sun 20 September 2009 en Sin Categoría

Lo dicho en la nota anterior sobre KDM Theme Generator aplica también para su aplicación hermana Ksplash theme generator

Cambiar el aspecto de kdm: kdm theme generator

Publicado el Sun 20 September 2009 en Sin Categoría

KDM Theme Generator es una de esas aplicaciones simples y sencillas (sin interfaz gráfica siquiera), con una utilidad concretísima pero que funciona tan bien que da gloria de usar. Siguiendo las instrucciones de instalación, te crea un tema para KDM basado en el tema plasma activo y tu fondo de …

Seguir leyendo

Cambiar la codificación de un fichero de texto

Publicado el Mon 27 July 2009 en Sistemas • Etiquetado con linux

Una nota para recordar el comando iconv:
iconv -f fromEncoding -t toEncoding inputFile > outputFile

CSS: Estilos de selección de texto

Publicado el Thu 09 July 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 */
}

Manejo de árboles en bases de datos

Publicado el Tue 07 July 2009 en Sin Categoría

Hay cuatro formas de guardar árboles en bases de datos relacionales:
  1. Adjacency List
  2. Materialized Paths
  3. Nested Sets o Modified Preorder Tree Traversal (MPTT)
  4. Nested intervals
Dejo unos enlaces:

Seguir leyendo

Mostrar el código de funciones en postgres

Publicado el Tue 07 July 2009 en Sistemas

Puede resultar muy util ver el código de algún procedimiento almacenado en postgres. El código de a continuación tomado de Postgresql General Bits de A. Elein Mustain puede resultar muy útil.
create or replace view showfunctions as
select
l.lanname,
t.typname || ' = ' || n.nspname || '.' ||
    p.proname || '(' || pg_catalog.oidvectortypes(p.proargtypes …

Seguir leyendo

Instalar postgres 8.2 en jaunty

Publicado el Tue 30 June 2009 en Sistemas • Etiquetado con linux

Postgres 8.3 no me permitía crear una base de datos con un encoding distinto a los instalados en mi maquina, y yo debía recuperar una copia de seguridad de una base de datos para la ampliación de unos trabajos que vienen de antiguo. Si intentaba importar los datos fallaba …

Seguir leyendo

Listar las bases de datos postgres que tengo instaladas

Publicado el Mon 29 June 2009 en Sin Categoría

Para ello:
pcaro@davinci$ sudo /etc/init.d/postgresql-8.3 start
pcaro@davinci$ sudo su - postgres
postgres@davinci:~$ psql -l

Un servidor web de bolsillo gracias a python

Publicado el Tue 16 June 2009 en Sin Categoría • Etiquetado con python

Otra cosita para recordar. La forma más simple de servir unos ficheros vía web:
python -m SimpleHTTPServer 8080
Nota: Antes usaba:
python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"
Pero no permite indicar el puerto y es más tedioso de escribir.

Convertir filtros de kmail a filtros sieve

Publicado el Sat 06 June 2009 en Sistemas • Etiquetado con python, linux

No hace mucho que dejé de usar POP en mis correos para pasarme al IMAP desconectado de kmail con toda las ventaja que ello supone. Pero todavía seguía utilizando los mismos filtros en kmail que me ordenan los correos por carpeta. Con este sistema el filtrado se realiza una vez …

Seguir leyendo

Contenedor de Floats: How to IE & FF

Publicado el Thu 21 May 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

Comandos útiles en la consola de postgres (pgsql)

Publicado el Mon 30 March 2009 en Sin Categoría

Otra de las cosas que simpre olvido. Así que lo anoto. Para sacar el resultado de una consulta sql a un fichero desde el pgsql.
  1. \a
  2. \f ,
  3. \o /tmp/salida.csv
  4. select * from ...
Se trata de:
  1. Cambiar entre modo de salida alineado y sin alinear
  2. Definir separador de campos (en …

Seguir leyendo

Cambiar ipython para copiar y pegar luego como doctest

Publicado el Mon 02 February 2009 en Sin Categoría • Etiquetado con python

Otra de las ordenes que nunca recuerdo. Estando dentro de ipython para cambiar el prompt de forma que luego sea fácil crear doctests: %doctest_mode Esto entra en  el modo doctest de ipython. También puede ayudar %history -tn para recordar los commandos introducidos previamente.

Importar claves gpg de repositorios ubuntu

Publicado el Sun 01 February 2009 en Sistemas • Etiquetado con linux

Ante un error como este: W: GPG error: http://ppa.launchpad.net intrepid Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 3B81A3FBA47394CE Hay que importar las claves:
gpg --keyserver keyserver.ubuntu.com --recv 3B81A3FBA47394CE
gpg --export --armor 3B81A3FBA47394CE | sudo apt-key add -

UPDATE:
Corregido …

Seguir leyendo

Formatear de la forma más fácil una tarjeta SD en ubuntu

Publicado el Fri 30 January 2009 en Sin Categoría

Otra anotación para recordar en un futuro. La forma más fácil de formatear una tarjeta SD es:
  1. Identificar el dispositivo (si esta montada la tarjeta lo ves con el comando mount por ejemplo).
  2. Si no lo tienes ya, instalar el paquete dosfstools.
  3. Ejecutar (con el dispositivo desmontado): sudo mkdosfs DISPOSITIVO …

Seguir leyendo

Siempre el último Dragonfly en Opera

Publicado el Fri 30 January 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/

Feliz Navidad

Publicado el Wed 24 December 2008 en Sin Categoría

Ni árboles, ni reyes, ni trineos, simplemente eso, Feliz Navidad de corazón para todos.

La potencia de los permisos

Publicado el Mon 01 December 2008 en Sistemas • Etiquetado con linux

Recordar los comandos para controlar las listas de control de acceso en linux. man setfacl man getfacl Tras "setfacl -m user:joe:rwx dir", verás que ls -d dir muestra un signo + al final que indica que se están utilizado permisos ampliados. Si quieres saber más, el tío google te …

Seguir leyendo

Usar find para detectar enlaces simbólicos rotos

Publicado el Thu 20 November 2008 en Sistemas • Etiquetado con linux

for f in $(find /usr/local/bin -type l); do if [ ! -e "$f" ]; then echo $f; fi; done

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

Publicado el Fri 14 November 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 Thu 13 November 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

Reproducir flash con Opera en Ubuntu

Publicado el Wed 12 November 2008 en Sin Categoría

Traducción de un comentario. A menudo Opera no pude encontrar el reproductor de flas sin tu ayuda. Te mostramos lo que puedes hacer. Primero, asegurate que flash está instalado y funciona en firefox. Una vez confirmado, abre un terminal: $ cd ~/.opera En este directorio verás un archivo denominado pluginpath.ini …

Seguir leyendo

Varios monitores en linux

Publicado el Mon 10 November 2008 en Sistemas • Etiquetado con linux

Esta anotación es sólo para comentar el comando xrandr que uso en kubuntu intrepid para trabajar con dos monitores. sudo xrandr --output VGA --auto sudo xrandr --output VGA --above LVDS

Compartir ficheros gracias a python

Publicado el Sat 08 November 2008 en Sin Categoría • Etiquetado con python

Para compartir de forma rápida unos ficheros vía web graias a python, lo más fácil es:
python -c "import SimpleHTTPServer;SimpleHTTPServer.test()"

Error con setuptools y subversion 1.5

Publicado el Sun 14 September 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

Editores: Mostrar los números de linea en emacs y en jed

Publicado el Thu 11 September 2008 en Sin Categoría

Para evitar esos odiosos porcentajes cuandos editas un fichero (¿de verdad le sirven a alguien?) y poner en su lugar el número de la linea en que te encuentras dejo aquí la anotación.
  1. En emacs:
  2. ;; ========== Enable Line and Column Numbering ==========
    ;; Show line-number in the mode line
    (line-number-mode 1)
    ;; Show column-number …

Seguir leyendo

Grabar CD de 800MB en linux

Publicado el Wed 23 July 2008 en Sistemas

Tenía que grabar unos datos. Eran 730MB aproximadamente, con un CD habitual (700MB) iba a ser imposible, pero tenía por ahí un CD philips de 90 minutos (800MB). Y teniendo ese CD ¿por qué usar un DVD que son más caros? Mi sorpresa llega cuando el k3b (que uso habitualmente …

Seguir leyendo

Buscando una fuente para escribir código

Publicado el Tue 22 July 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

Mi wordle

Publicado el Fri 13 June 2008 en Personal

Siguiendo una cadena,aquí tenéis mi wordle a partir de mis enlaces de del.icio.us: ¿Cómo es el tuyo?

Convertir disco vmware

Publicado el Sun 11 May 2008 en Sistemas

pcaro@davinci$ vmware-vdiskmanager -r Windows\ XP\ Professional.vmdk -t 0 WindowsXPProfessionalUnico.vmdk
Creating disk 'WindowsXPProfessionalUnico.vmdk'
Convert: 100% done.
Virtual disk conversion successful.
    

¿Qué ejecutas tu desde la consola?

Publicado el Sun 13 April 2008 en Sin Categoría

Un meme para ver que ejecutas desde la consola:

pcaro@davinci$ history|awk '{a[$2]++} END{for(i in a){printf "%5d\t%s\n",a[i],i}}'|sort -rn|head
95   sudo
71   ls
67   cd
33   svn
29   dentro
24   clear
18   ssh
15   i2e-cli
14   ps
13 …

Seguir leyendo

Más comandos a recordar

Publicado el Wed 09 April 2008 en Sistemas

Otra nota para que no se me vuelvan a olvidar algunos de los super-mini-comandos unix.
  • Para desconectar un programa de la consola desde la que se está ejecutando y no pare por ejemplo si muere la conexión ssh, hay que usar disown.  Es una de esas herramientas para control de …

Seguir leyendo

Timing en "psql" la consola de postgres

Publicado el Mon 31 March 2008 en Sin Categoría

Recordar:
timing
También podemos utilizar para más información "explain analyze":
EXPLAIN ANALYZE select ...

Ejecutar comandos en python

Publicado el Tue 04 March 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

Rendimiento y Monitorización de procesos en windows

Publicado el Tue 12 February 2008 en Sistemas

Prácticamente nunca uso windows, y por trabajo, cuando tengo que hacerlo es para ver errores. Resulta útil ver los procesos. Para no olvidarme como simpre dejo mi nota aquí:
  • Para ver el rendimiento del sistema, Monitor de rendimiento: Incio, ejecutar: perfmon
  • Un buen monitor de procesos se encuentra entres las …

Seguir leyendo

Continuar con una descarga

Publicado el Sun 27 January 2008 en Sin Categoría

scp no permite continuar con copias que se cortan, pero lo permite rsync. El comando para recordar es: alias scpresume="rsync --partial --progress --rsh=ssh"Eso claro, siempre que tengas rsync

ubuntu, wordpress, php5 y mysql

Publicado el Sun 25 November 2007 en Sin Categoría

Configurando un wordpress local para pruebas (con lighttpd), me encuentro con el siguiente error: Your PHP installation appears to be missing the MySQL which is required for WordPress. Sabía que php5 no tiene incluido el soporte para mysql pero para mi sorpresa en mi ubuntu yo sí tenía instalado el …

Seguir leyendo

Para aprender javascript

Publicado el Thu 01 November 2007 en Sin Categoría • Etiquetado con javascript

Para aprender una tecnología todos conocemos nuestro punto de referencia. Pero "El Buscador" no es punto de partida más recomendable para aprender javascript. Existen cientos, miles, millones, de tutoriales donde aprender mal javascript. No hablo de aprender las palabras clave y las sentencias de control. Para eso te vale cualquiera …

Seguir leyendo

Knetworkmanager

Publicado el Sat 06 October 2007 en Sistemas • Etiquetado con linux

Ahora una de esas entradas para que me sirva de recordatorio. Habitualmente estoy acostumbrado, cuando voy a un lugar y me dan conexión wifi, a configurarla a mano en /etc/network/interfaces. Esto hace que deje de funcionar el knetwormanager. Indica "configuración manual de red". Para que vuelva a tomar …

Seguir leyendo

Mi nueva cámara

Publicado el Sat 25 August 2007 en Personal

Me acabo de compar una cámara digital compacta. No soy muy dado a fotos pero ya hora de tener una cámara digital. La elegida ha sido una Panasonic DMC-FX10 de 6 Mpx y lentes Leica. La prueba de fuego la ha tenido en Granada. Es el peor sito para una …

Seguir leyendo

¡Que práctico es python!: svnrevisions.py

Publicado el Tue 10 April 2007 en Sin Categoría • Etiquetado con python

Pongo a continuación un script rápido que hice hace ya un tiempo. En ese momento estaba realizando un backport de código y de forma sucia realicé varios
svn up -rTAL
De esa forma y con unos pequeños cambios obtuve el cambio que necesitaba. Pero después de un rato no recordaba …

Seguir leyendo

Error al grabar CDs con k3b

Publicado el Mon 18 December 2006 en Sistemas • Etiquetado con linux

Tengo un Dell latitude D610 y kubuntu edgy. Desde dapper siempre me ha ocurrido un error al copiar cds con k3b. El problema es que no tengo acceso al dispositivo /dev/sg0 con sudo chown /dev/sg0 root:cdrom sudo root:cdrom /dev/sg0 lo soluciono (doy grupo cdrom a …

Seguir leyendo

Siempre la coma como símbolo decimal en un formulario .net

Publicado el Fri 15 December 2006 en Sin Categoría • Etiquetado con .net

Entre los muchos lenguajes que me ha tocado codificar (únicamente no me arrepiento de hacerlo en python) se encuentra .net. Es una chusquería que me solicitó un cliente. Quería que en un formulario al pulsar el punto del teclado numérico la entrada fuera una coma (no dependiera de la configuración …

Seguir leyendo

Corrector ortográfico de firefox 2.0 en castellano

Publicado el Tue 14 November 2006 en Sin Categoría

En la url escribir: about:config Filtras las propiedades por "dic". Y estableces el valor de la propiedad "spellchecker.dictionary" a es_ES.

Primera anotación de prueba

Publicado el Tue 10 October 2006 en Sin Categoría

Como todo blog que comienza, es de obligado cumplimiento una primera entrada "sólo para probar". En la primera entrada además del maravilloso lorem ipsum aprovecho para felicitar al autor del tema que estoy probando a priori: Orange Dream de Buddha. Por cierto que luego veré si puedo traducir esto :-D …

Seguir leyendo