• Saltar al contenido principal
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Cachivaches
  • Ubuntu
  • Servicios en la nube
  • Raspberry Pi
  • ¿Preguntas?
    • ¿Quieres hablar?

Kacharreando

Kacharreando desde antes que montara este blog

Hosting Estupendos baratos

Primeros pasos para controlar tus finanzas con Beancount

noviembre 29, 2021 Deja un comentario

Una vez que se ingresa la nómina, en mi caso es cuando gestiono la facturación, queda organizar los dineros.

Dicho así puede sonar muy fácil, pero es más complicado de lo que uno cree.
No solo por las decisiones que hay que tomar.
Sino porque la gestión de la tesorería y como se mueve el dinero entre los distintos gastos y estrategias es lo complicado.
Además ahorrar para el futuro.

Y así diversas cosas más.
Porque los impuestos no se pagan solos.
Los traspasos entre cuentas tampoco.

Durante años he ido trabajando en distintas manera de apuntar los datos hasta que he llegado a la solución que por ahora voy a trabajar.
Empecé con una hoja de Excel.
Hasta que he llegado a este punto de finanzas personales.

Espero que no aparezca nada mejor en el futuro.
Si llega pues volveré a aprender.
Esto es lo que tiene la tecnología.

Una buena herramienta de contabilidad te ayudará mucho en la toma de decisiones de cuales son aquellos gastos que te aportan felicidad, y esos otros que te generan ventanas de tiempo para trabajar en proyectos a largo plazo.

Primeros pasos de tus finanzas personales con beancount

Instalación de beancount

Voy a instalar beancount en un entorno virtual de python porque me permite para que sea independiende de lo que tenga instalado en el ordenador. Además puedo hacer uso de librerías que en un momento dado puedan entrar en conflicto con las del sistema.

Un entorno virtual de python se compone de un intérprete de Python, una configuración específica y librerías independientes.

Instalación de Virtualenv

En python 3 exite un paquete que se llama venv y nos permite gestionar entornos virtuales, pero tiene menos característica que la biblioteca virtualenv y esta es la que vamos a utilizar.

Para instalar virtualenv en python 3 utilizamos el siguiente comando:

pip3 install --upgrade pip
pip3 install virtualenv

Luego vemos donde tenemos instalado python 3:

which python3
/usr/bin/python3

Con esto instalaremos y activaremos el entorno virtual:

virtualenv -p /usr/bin/python3 bean
source bean/bin/activate
pip install package-name
sudo apt-get zlib1g-dev # For lxml to build
pip install lxml
pip install beancount

Cuando hayas finalizado tu trabajo y quieras desactivar el entorno virtual, ejecuta lo siguiente:

(bean) [server]$ deactivate

Y si quieres eliminar el entorno solo tienes que eliminar la carpeta del proyecto.

Librerías de Python para Beancount

Voy a describir algunas librerías interesantes a la hora de trabajar con Beancount, que luego puede que utilice o no. Yo las voy a añadir en el proceso de instalación porque seguro que a la larga las utilizo.

Cualquiera de las siguientes paquetes lo puedes instalar con el siguiente comando:

pip3 install librería

Las librerías son las siguientes:

  • python-dateutil: esta librería proporciona a Beancount la capacidad de analizar fechas en varios formatos, es interesante para aquellos usuarios que quieran tener opciones flexibles en la línea de comandos y en el shell SQL.
  • bottle: la interfaz de Beancount (que se genera a través de bean-web) ejecuta un pequeño servidor web autónomo accesible localmente en tu ordenador. Esto se implementa mediante una pequeña biblioteca que hace fácil implementar este tipo de aplicaciones web.
  • ply, las consultas (bean-query) que se usan para extraer las tablas de datos de un archivo de contabilidad depende de un analizador de parseo, la biblioteca ply de Dave Beazly (versión 3.4 o superior) hace que sea sencillo implementar un analizador de lenguaje SQL personalizado.
  • lxml, proporciona una herramienta para convertir la versión HTML estática de la interfaz web en un archivo zip (bean-bake). Esto es interesante para compartir archivos con un usuario que no tiene el software instalado. El código de escrapeo web que se usa para hacer esto es la biblioteca de análisis HTML lxml.
  • google-api-python-client: Esta librería se utiliza para algunos scripts que exportan las salidas a Google Drive (así como las secuencias de comandos para mantener y descargar la documentación). No necesitas instalar esas librerías si no vas a exportar a Google Drive, todo lo demás funciona sin esto.
    python-magic (optional): Esta librería tiene la funcionalidad de identificar, extraer y rellenar transacciones de archivos descargados externamente para importarlos en Beancount. Cómo esto es para algo antiguo puede que no lo usemos nunca.

Soporte de Editores

Poder trabajar con el archivo beancount desde tu editor de texto favorito es muy práctico, por lo que si utilizas alguno de los siguientes editores te será fácil trabajar con beancount.

  • Emacs tiene un plugin para trabajar con beancount gracias a un repositorio externo. Puedes ver su documentación con las instrucciones para instalarlo.
  • Sublime tiene soporte para trabajar con beancount gracias a Martín Andreas Anderesen.
  • Vim también tiene soporte para beancount y poder editar archivos beancount gracias a Nathan Grigg. Puedes ver su repositorio de Github.
  • Visual Studio Code tiene dos extensiones disponibles. Ambos se han probado para linux.
  • Beancount, este plugin te permite verificación de sintaxis (bean-check) y soporta cuentas, divisas, etc. Puedes seleccionar cuentas abiertas existentes y también muestra el saldo y otros metadatos.
  • Beancount Formatter, este otro plugin puede formatear todo el documento, alienar los números, etc. utilizando el formato bean.

Archivo Beancount

Con el entorno que hemos instalado de Beancount podemos generar un archivo bastante realista de el historico de entradas de un usuario, el comando sería el siguiente:

bean-example > example.beancount

Esto está muy bien para coger ideas, pero vamos pasito a pasito para ir explicando cada cosa y poder montar nuestro propio archivo desde el principio.

Primera entrada en el archivo

Para empezar voy a crear una entrada mínima en el archivo con dos cuentas y una transacción simple. Puedes copiar el siguiente texto a un archivo de texto:

2014-01-01 open Assets:Checking  
2014-01-01 open Equity:Opening-Balances  

2014-01-02 * "Deposit"  
 Assets:Checking           100.00 EUR
 Equity:Opening-Balances

Veremos en este y sucesivos artículos los términos en inglés, por lo que dejo a continuación que son cada uno:

  • Expenses, son los gastos de toda la vida, donde va el dinero.
  • Assets, activos o donde tenemos el dinero.
  • Income, son los ingresos, que es donde obtenemos el dinero.
  • Liabilities: el dinero que te han prestado o dicho de otra manera el dinero que debes.
  • Equity, el capital, que viene a ser el valor real de tu propiedad.

Breve descripción general de la sintaxis

La sintaxis daría para una enciclopedia entera, pero eso lo iremos viendo con el tiempo y sobre todo con el uso que es la mejor manera de que se nos asiente todo el aprendizaje.

Sobre la sintaxis hay que tener en cuenta lo siguiente:

  • Las monedas deben estar completamente en mayúsculas (permitiendo números y algunos caracteres especiales, como «_» ó «-«). La sintaxis no admite símbolos de moneda (cómo $ ó €).
  • Los nombres de cuenta no admiten espacios (aunque se pueden usar guiones) y deben tener al menos dos componentes, separados por dos puntos.
  • Las cadenas de texto que describen una transacción deben estar entre comillas, como por ejemplo esta: «VISA Compra Mercadona».
  • Las fechas de las transacciones solo se analizan en formato ISO8601, es decir, AAAA-MM-DD.
  • Las etiquetas en el archivo beancount deben comenzar con «#» y los enlaces con «^».

Así que con la entrada anterior que hemos hecho podemos ver dos bloques, uno que describe donde tenemos dinero y el capital.

El siguiente bloque nos indica una transacción de depósito, por lo tanto primero indicamos donde tenemos el dinero (Assets) y lo siguiente es el capital, es decir que es capital tuyo (Equity).

Validar el archivo

Una vez que hemos empezado a generar el archivo, con Beancount vamos a poder producir informes a partir de este archivo (ya sea en la consola o mostrarlo a través de su inferfaz web).

En un siguiente artículo vamos a ver cómo añadir opciones al archivo de Beancount para tener nuestras finanzas organizadas.

Con el archivo inicial de beancount que hemos creado podemos probar la herramienta que trae el sistema para validarlo, así cuando tengamos un archivo mucho más grande o hayamos hecho cambios, podemos ver si todas las modificaciones no contienen errores.

Aunque Beancount es bastante estricto, por lo que algo que nos ayude a comprobar que los datos están bien es de agradecer, la herramienta es ben-check y se usa de la siguiente manera:

bean-check /camino/a/tu/archivo.beancount

Con esto verás los errores por la consola, o en el caso de que esté bien, no saldrá nada por pantalla. Si eres fan de Emacs podrás importar los errores que reconocerá perfectamente.

Visualización de la interfaz web

Una vez creado nuestro archivo y mientras vamos añadiendo registros podemos ver en una interfaz web, informes sobre todo lo que hemos hecho. Para esto tenemos la herramienta bean-web con el archivo de entrada.

Para esto utilizamos el siguiente comando:

bean-web /path/to/your/file.beancount

Una vez ejecutado podremos ver una web en la dirección http://localhost:8080 y ver los diversos informes que genera la herramienta de Beancount.

Con esto ya puedes cambiar lo que te parezca del archivo y volver a cargar la página web donde se verán reflejados los cambios, reflejando lo que hayas hecho en el archivo.

Conclusiones

Recuerda que si te ha gustado lo que has leído puedes apoyar este proyecto a través de tus compras en Amazon, si, si, has leído bien, apoyar el proyecto. Con las compras que hagas de amazon me estarás ayudando a seguir haciendo este tipo de artículos.

Solo tienes que ir aquí y pegar la URL del producto de amazon que quieres comprar.

Tan simple como eso.

Y tan fácil.

Se feliz, y disfruta este día como si fuera una gran aventura.

Publicado en: Ubuntu Etiquetado como: Beginner

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Barra lateral principal

Descubre Más

Generar documentación para los scripts de bash

Generar documentación para los scripts de bash

julio 1, 2022

Drawing edita imágenes de manera sencilla

Instalar drawing con soporte Webp

enero 20, 2022

Placa impresa pcb roja

How to root Galaxy Tab 2 10.1 in linux with heimdall

octubre 15, 2021

Entrada de dinero enfrente de un cajero

Introducción al formato ledger de finanzas personales

septiembre 24, 2021

Tags

Beginner Comienzo Expert Intermediate Markdown

Footer

Temas de Kacharreo

Supongo que habrás llegado hasta aquí porque eres un culo inquieto, o simplemente tienes curiosidad por algún tema.

Hasta que tu mente no se queda extasiada resolviendo aquello que no te deja dormir no has parado.

Vas a encontrar temas sobre Ubuntu, Cachivaches que hacen cosas, Servicios en la Nube que puedes aprovechar, y temas sobre Rasberry Pi. Hasta es posible que a veces introduzca temas relacionados.

Todo es posible.

Vaya comentarios!!

  • luidelkacha en Instalar y configurar un proxy http en Ubuntu con Squid – Mega Guía
  • Pichibw en Instalar y configurar un proxy http en Ubuntu con Squid – Mega Guía
  • luidelkacha en Un potente editor de texto para nuestro sistema operativo Ubuntu

Canal en Telegram

telegram-iconSíguenos en Telegram

Buscar las llaves

Temas Dispersos

Beginner Comienzo Expert Intermediate Markdown

Creative Commons Atribución -CompartirIgual 4.0 Internacional pa las tontás que publico © 2025 · Acceder
Aviso Legal y Política de Privacidad | Política de Cookies

Gestionar el Consentimiento de las Cookies
Utilizamos cookies para optimizar nuestro sitio web y nuestro servicio.
Funcional Siempre activo
El almacenamiento o acceso técnico es estrictamente necesario para el propósito legítimo de permitir el uso de un servicio específico explícitamente solicitado por el abonado o usuario, o con el único propósito de llevar a cabo la transmisión de una comunicación a través de una red de comunicaciones electrónicas.
Preferencias
El almacenamiento o acceso técnico es necesario para la finalidad legítima de almacenar preferencias no solicitadas por el abonado o usuario.
Estadísticas
El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos. El almacenamiento o acceso técnico que es utilizado exclusivamente con fines estadísticos anónimos. Sin una requerimiento, el cumplimiento voluntario por parte de su proveedor de servicios de Internet, o los registros adicionales de un tercero, la información almacenada o recuperada sólo para este propósito no se puede utilizar para identificarlo.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en un sitio web o en varios sitios web con fines de marketing similares.
Administrar opciones Gestionar los servicios Gestionar {vendor_count} proveedores Leer más sobre estos propósitos
Ver preferencias
{title} {title} {title}