Ya vimos en el anterior post cómo instalar el agente opencode que nos va a permitir utilizar distintos proveedores de IA en nuestros flujos de trabajo (en concreto a mi para programar, pero quien sabe para qué querréis usarlos vosotros), vimos cómo configurarlo con un proveedor externo (por tanto de pago), pero nada nos impide utilizar un proveedor local (si tenéis una tarjeta con GPU solo tenéis que seguir algunos de mis posts al respecto) y ya tendréis un ollama operativo del que tirar. Así que, si cumplís los requisitos vamos a ver cómo configurar nuestra instalación de opencode para dejar de gastar dinero en proveedores externos y usar nuestra propia GPU.
No hay una forma «gráfica» de configurar el modelo, así que vamos con las instrucciones para hacerlo de manera manual:
Crea el archivo opencode.jsonc (en mi caso en ~/.config/opencode ). si habéis seguido la guía de instalación previa os sonará porque es donde hemos metido la configuración mcp
En este caso hemos supuesto que tenemos el servidor ollama corriendo en nuestra propia máquina y el modelo que hemos elegido es qwen3… Pero eso tiene cierto truco, si usas el modelo tal cual te lo bajas no va a funcionar porque el contexto en ollama para este modelo es demasiado pequeño, antes tienes que hacer esto:
docker exec -it ollama bash
# ollama run qwen3:latest
>>> /set parameter num_ctx 16384
Set parameter 'num_ctx' to '16384'
>>> /save qwen3:latest-16k
Created new model 'qwen3:8b-16k'
>>> /bye
Si todo ha ido bien, cuando abras opencode en cualquier proyecto ya podrás elegir este modelo:
Y, dependiendo de los recursos de tu máquina podrás disfrutar de todas las ventajas de un modelo local. Eso si, para utilizar las capacidades de opencode aseguraos de que el modelo que estéis usando tenga capacidades para tools y thinking. Podéis verlo, por ejemplo con este modelo de nvidia (si tienes 20Gb de memoria en tu GPU es un buen candidato):
Es posible que, aunque tenga acceso a tools no nos permita ejecutar cosas tan simples como listar un directorio o editar un archivo. Eso es debido a que no está accediendo a las herramientas propias de opencode. He tenido que hacer algunos malabares para hacer funcionar algunos modelos concretos, así que dejo en vuestras manos el poder sacar lo mejor del sistema… Sin tener que pagar a otros proveedores ni enviarles información igual demasiado privada.
Al hilo de mi anterior hilo, hoy se acaba de conocer que el gobierno ha pospuesto la puesta en marcha de la obligatoriedad del sistema un año completo.
Todo un alivio para las pymes y autónomos que estaban muy perdidos con las nuevas obligaciones que emanaban de este nuevo sistema tributario.
Desde hace unos meses hay una palabra que suena mucho por todas partes, no es una peli, no es un disco, no es un nuevo escándalo financiero y no afecta a todo el mundo… Pero es algo muy importante para pymes y autónomos, esa palabra es VeriFactu (o Veri*Factu).
¿Qué es Veri*Factu?
VERI*FACTU es el nuevo sistema de emisión de facturas “verificables” definido por la Agencia Tributaria española dentro de la Ley Antifraude, pensado para que el software de facturación genere registros inalterables y, opcionalmente, los envíe en tiempo real a Hacienda.
¿Porqué se está hablando de esto?
Se habla tanto de VERI*FACTU en estos meses porque su implementación obligatoria se acerca rápidamente, con plazos clave en 2025-2026 que generan urgencia entre pymes, autónomos y desarrolladores de software.
El 29 de julio de 2025 era la fecha límite para que los fabricantes adapten y homologuen sus programas de facturación.?
Desde el 1 de enero de 2026, las sociedades mercantiles deben usar sistemas compatibles; para autónomos y personas físicas, el 1 de julio de 2026.?
Artículos recientes destacan que solo el 8% de pymes está preparado, con un mes restante para la primera fase.?
Cómo funciona en la práctica
El programa de facturación genera, por cada factura, un registro firmado electrónicamente, con huella (hash) y datos clave (número, fecha, importe, NIF, tipo de factura, etc.), y lo encadena con los anteriores para asegurar la trazabilidad.?
En modo “VeriFactu”, el software envía estos registros automáticamente a la AEAT; en modo “no VeriFactu”, los conserva y solo los remite si se le requieren, pero cumpliendo igualmente requisitos estrictos de seguridad y conservación.?
Las facturas incluyen un código QR que permite a cliente y AEAT comprobar que la factura está registrada, así como la leyenda “VERIFACTU” o “Factura verificable en la sede electrónica de la AEAT”.?
Esa marca funciona como “sello de calidad fiscal”: indica que el emisor usa un sistema que cumple con el reglamento de facturación verificable y con los requisitos técnicos oficiales.
De hecho, según las respuestas a preguntas frecuentes de la AEAT. incluso si se elige el modo «no VeriFactu» se debería incluir el código QR siempre que se haya generado con un programa informático que tenga la opción «no VeriFactu».
¿Qué puedo hacer o como desarrollador?
En primer lugar informarte sobre todo esto, ya que tarde o temprano terminará cayendo sobre ti parte de este marrón. La información principal puedes encontrarla en la AEAT, y si no queréis cambiar de sistema de generación de facturas todavía, os recomiendo utilizar DocuFactu. DocuFactu es un sistema sencillo que permite, en base a las facturas en el formato actual generar e incrustar un QR verificable en la misma para que cumpla la normativa. Además, si deseas usar el modo VeriFactu usa inteligencia artificial para extraer los datos de la factura y enviarlos al registro de la agencia tributaria en tu nombre. Tiene una API muy sencilla (REST con API KEY) y permite cumplir con la ley sin demasiados quebraderos de cabeza. Si queréis más información, solo tenéis que visitar su web (DocuFactu – VeriFactu fácil) o enviar un correo a info@docufactu.com.
En un mes justo veremos si esto echa a andar o los múltiples problemas que nos genera tener que adaptar algo tan importante como la facturación a una norma tan restrictiva hacen que se retrase su puesta en marcha.
Los piratas no descansan y las bases de datos de contraseñas no dejan de crecer. Hay filtraciones constantes y, por mucho que lo intentes, no haces más que reutilizar contraseñas y a no ser que utilices algo como nomorepass (muy recomendado) tu memoria tiene sus límites y es muy posible que lo último que hayas cambiado es tu contraseña de acceso.
En el caso de linux, que es lo que yo uso todos los días, si tienes un acceso por ssh que llegue a tu ordenador es bastante sencillo que algún escaner de puertos lo haya detectado, aunque sea por azar, y te encuentres con que están intentando acceder a tu cuenta por fuerza bruta. Hay varios métodos muy recomendables para evitarlo, pero aún así si te dejaste «olvidada» tu contraseña en algún sistema que fue comprometido, bueno, se te pueden meter hasta la cocina.
En este post te comento cómo configurar ubuntu 24.04 (probablemente funcione igual en otras distribuciones) para que te pida un segundo factor de seguridad (que tendrás en el teléfono) y puedes usar google authenticator o cualquier otro sistema compatible on TOTP (códigos generados dependientes del tiempo).
Paso 1:
sudo apt install libpam-google-authenticator
Paso 2:
Añade la siguiente línea al archivo /etc/pam.d/sshd
auth requiered pam_google_authenticator.so
Modifica el archivo /etc/ssh/sshd_config para cambiar y descomentar este valor:
KbdInteractiveAuthentication yes
Ahora reinicia el servicio ssh
sudo systemctl restart ssh
Y ya es momento de configurar tu authenticator
google-authenticator
Te mostrará un QR enorme en pantalla que podrás escanear con tu app de authenticator (yo uso nomorepass) o bien copiar la secret key. Luego siempre puedes copiar los códigos de mergencia por si pierdes el acceso al teléfono (y no los guardes en donde no debes, que nos conocemos)…
Luego ya configuras el resto de cosas de seguridad a los valores recomendados y ya estaría.
Ahora la siguiente vez que intentes entrar te pedirá la constraseña y el código de verificación… Una puerta menos para los hackers.
Cualquier equipo, se dedique a lo que se dedique, cuando lo componen varias personas hay un momento en que alguien debe pararse y decir, ¿estamos haciendo las cosas bien? ¿en el orden correcto? ¿dedicando el tiempo necesario a cada una? ¿tenemos controlado el trabajo o el trabajo nos controla a nosotros? Lo que antes eran reuniones y encargos sencillos se ha convertido en un sin fin de recordatorios de cosas que no se han hecho, se han hecho sin necesidad o se han hecho demasiado tarde o demasiado pronto. En este punto es cuando la elección de una buena herramienta de gestión de tareas se hace necesaria.
Si esperáis que os diga cual es la correcta para el desarrollo de software, bueno, pues os equivocáis, todavía no he encontrado la que sea perfecta, pero si que puedo ofreceros mi visión sobre lo que necesitaría tener esa herramienta y los intentos de encontrarla que he tenido durante estos casi 30 años en el oficio.
Primero lo primero, cuales son las necesidades que queremos cubrir con esta herramienta:
Queremos poder registrar el tiempo dedicado y estimado para cada tarea sin que nos quite tiempo de trabajo efectivo.
Necesitamos saber la prioridad de las distintas tareas y poder ordenarlas en el tiempo.
Necesitamos saber quien tiene que trabajar en una tarea y qué es lo que tiene que hacer en la misma
Necesitamos saber el estado de cada tarea y el grado de avance general de la tarea y del proyecto al que pertenece
Es preciso poder descomponer el trabajo en tareas más pequeñas que puedan ser abordadas por una sola persona o, en el caso de requerir múltiples participantes al mismo tiempo que esté controlado el tiempo dedicado por cada persona
Queremos que cada proyecto tenga una visión clara de las tareas en curso y las que están en distintos estados del workflow de desarrollo
Necesitamos que haya una trazabilidad completa de las tareas desde su creación hasta que esta se termina
Es imprescindible disponer de documentación y una forma de asociarla a las tareas, pero de manera más independiente ya que la documentación ha de permanecer más allá de la vida de la tarea
Se necesita una manera ágil de comunicación entre los distintos componentes del equipo y, posiblemente, con elementos fuera de los equipos de desarrollo (usuarios, QA, dirección) aunque no es imprescindible que esté ligado al mismo sistema si que se necesita una manera sencilla de referirse a las tareas externamente.
Es deseable poder implementar distintos ciclos de vida a distintos tipos de proyectos y no limitarse a uno solo.
Si se usa un sistema el directorio de usuarios debe estar en sincronía con el de la empresa y la autenticación deberá ser compatible con la existente.
Evidentemente cada organización, empresa o grupo puede tener más o menos necesidades, pero en la lista anterior creo que he incluido las principales. El objetivo final es saber qué trabajo queda por hacer, qué hacer primero, tener previsiones de cuando estará un cierto trabajo complejo y saber cómo se están aprovechando los recursos. Obviamente cuanto más sencillo sea el sistema y cuanto menos tiempo nos quite de las tareas reales más efectivo será.
Y, para que sirva de referencia os voy a contar mi historia con los distintos sistemas de gestión de tareas que he tenido el «honor» de probar.
En el 97 empecé a trabajar profesionalmente en esto de la informática después de haber terminado la carrera y haber obtenido toda la teoría necesaria sobre gestión de proyectos y haber hecho un curso de CEPADE sobre gestión de proyectos tecnológicos. En la empresa en la que entré se gestionaba todo con Microsoft Project, por suerte generalmente la planificación moría en el momento en que el proyecto empezaba. Lo único que se esperaba respetar eran los plazos y los entregables. El tiempo dedicado no se actualizaba nunca y solo se ampliaban los plazos o, si el cliente se ponía pegigero, se cambiaba el alcance y se eliminaban o añadían tareas sin demasiado control.
Microsoft desarrolló una especie de project on-line para que los usuarios que estuviesen participando en un proyecto pudiesen imputar las horas o indicar cuando se habían acabado las tareas. Ahora mismo no recuerdo el nombre del producto, lo que si recuerdo es que era tan dificil de instalar y hacer funcionar correctamente que lo usamos solo en un proyecto antes del olvidarlo completamente. Project se quedó para el papeleo y marcar las fechas esperadas y controlar, por tanto, el retraso de las tareas y del proyecto en general.
Seguí usando project (sin ningún online y con control mediante arcaicas hojas excel) hasta que evolucioné lo suficiente (y puse mi propia empresa) como para usar Linux como mi máquina principal… Mira por donde ahí no había forma de ejecutar el project y me las vehía y deseaba para generar los gantt de manera medianamente atractiva para presentársela a los clientes (si, ya era para mis propios clientes). Llegados a este punto descubrí una herramienta online que, aunque inicialmente no creada para ello, servía perfectamente para hacer seguimiento del tiempo dedicado a las tareas de un proyecto, se trataba de trac. Tal como contaba en su página (hoy casi abandonada)
Trac es un sistema wiki mejorado y de seguimiento de incidencias para proyectos de desarrollo de software. Trac utiliza un enfoque minimalista para la gestión de proyectos de software basados en la web.
trac era un sistema de tickets, con un wiki para la documentación y conexión con subversion para el control de código. Si a esto le unimos que permitía indicar el número de horas dedicadas a cada incidencia, ya teníamos una primera forma de controlar en tiempo real las tareas. El wiki no era perfecto y la búsqueda también podía mejorarse, pero cumplió muy bien con su cometido durante unos cuantos años. De hecho el problema sobrevino cuando dejaron de mantener el producto y ya teníamos muchos proyectos gestionados con este sistema. Tengo que decir que antes de llegar a trac (que inicialmente se llamó svntrac) estuvimos usando cvstrac y cvs en lugar de subversion… Y si, tuvimos que migrar de cvs a subversion y de eso a git (es lo que tiene llevar más de 20 años produciendo código sin querer perder nada).
El caso es que descubrimos un poco después que había un programa que tenía todo lo que tenía trac (y algunas cosas más) que era completamente software libre y, además, rapidísimo y se llama Redmine. Aunque lleva creado desde 2006 no fue hasta 2018 que decidí implantarlo en mi empresa (y en la de algún cliente posteriormente). Aunque seguía sin ser perfecta nos ofrecía todo lo que necesitábamos para el control de tareas, nos permitía comunicarnos con los clientes via incidencias, llevar un tracking completo de todo en lo que hemos trabajado de cada proyecto, con múltiples proyectos completamente aislados unos de otros y con usuarios igualmente aislados y con roles diferenciados. Todos nuestros proyectos con mantenimiento se iniciaban como proyecto redmine y evolucionaba a proyecto de mantenimiento abierto a que los clientes pudieran dar de alta sus incidencias y hacer seguimiento de la evolución del mismo.
El mayor problema de redmine es que tremendamente poco intuitivo o, dicho en castellano «es feo de cojones». Aunque tiene todo lo que necesitamos para un equipo de desarrollo (aunque feo-feo), es imposible a día de hoy intentar que un cliente entre por el aro de reonocer esto como una aplicación web… Ahora se espera utilizar llamativos tableros kanvan (inutilizables cuando el número de tareas es alto o los equipos grandes) y modificaciones instantaneas via clicks y sin tener que escribir nada, solo pinchar y arrastrar. Me he pasado los últimos años buscando herramientas software libre que me permitiesen tener la misma privacidad y funcionalidad que redmine pero con un aspecto nuevo y renovado. He probado desde Trello hasta monday.com pasando por Jira y Asana (igual Jira no es tampoco demasiado atractivo). Quitando que ninguna de estas herramientas son libres de verdad y varias de ellas o son demasiado completas o carecen de alguna de las características que hemos descrito anteriormente todas ellas son carísimas… Sigo buscando ya que aunque redmine me viene bien para gestionar un equipo de desarrollo se atraganta a otro tipo de perfil menos hecho a lidiar con informes y formularios. ¿Conocéis alguno bueno y, a ser posible, open source o con una versión realmente barata?
Gestionar el consentimiento de las cookies
Si, es un coñazo, pero tengo que ponerte este aviso sobre las cookies y mi
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 se utiliza exclusivamente con fines estadísticos anónimos. Sin un requerimiento, el cumplimiento voluntario por parte de tu 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 identificarte.
Marketing
El almacenamiento o acceso técnico es necesario para crear perfiles de usuario para enviar publicidad, o para rastrear al usuario en una web o en varias web con fines de marketing similares.