Adrián Laborda ✇ (@adrilaborda) header
Adrián Laborda ✇ (@adrilaborda) profile picture

Software @ Ministerio del Interior. Información ≠ inteligencia. Tecnología en la Administración. Vierto opiniones personales.

Madrid. España
Joined October 2011
Photo by Adrián Laborda ✇ (@adrilaborda)Photo by Adrián Laborda ✇ (@adrilaborda)Photo by Adrián Laborda ✇ (@adrilaborda)Photo by Adrián Laborda ✇ (@adrilaborda)Photo by Adrián Laborda ✇ (@adrilaborda)Photo by Adrián Laborda ✇ (@adrilaborda)Photo by Adrián Laborda ✇ (@adrilaborda)Photo by Adrián Laborda ✇ (@adrilaborda)
Desarrollar software en la Administración te cambia la forma de ver muchos problemas tecnológicos. Legacy. Interoperabilidad. Datos. Sistemas críticos. No todo lo que parece absurdo desde fuera lo es cuando conoces las restricciones. Aquí hablamos de eso.
5
1
2
21
10,163
Adrián Laborda ✇ retweeted
228
2,322
132
8,384
212,235
Cómo ya conté por aquí, estamos extrayendo el sistema de diseño de la última aplicación que se desarrolló para aplicárselo progresivamente a todas. Así es más fácil, cómodo e intuitivo para el usuario. Y más fácil de mantener para nosotros. Win-win. Y está mal que lo diga yo, pero nos está quedando refacherito, eh 🤭 PD: hay mucho pixelado, pero qué le vamos a hacer (y eso que todos los datos de las capturas son sintéticos)🫠. This is the only way.
1
2
296
Esto de Dax, totally agree. Nosotros ya veníamos de entornos multirrepo (realmente, un repo raíz y submódulos, en cada suite) y nos planteamos pasar a monorrepo por todo lo que se hablaba. Tras mucha tormenta de ideas, seguimos con el multirrepo y, hasta ahora, nos ha funcionado de maravilla. Pequeños consejos: 1. Instrucciones escritas con cómo quieres trabajar tú para que al agente lo sepa y sea consistente (actualizar el puntero de la raíz con cada commit o cómo lo hagas tú); 2. Añade referencias a los archivos relacionados en los archivos donde tenga sentido. Ahorra contexto, evitas búsquedas innecesarias y que el agente invente. 3. No volverse loco. Los modelos siguen mejorando exponencialmente y creo que es un error cambiar por completo tu forma de trabajar, cuando quizá en 6 meses el problema ya no será un problema. Es cojonudo adaptarse y aprender (que no se entienda lo contrario), pero creo que con algunas cosas se nos ha ido un poquito de las manos y nos hemos autoimpuesto una rigidez inexplicable.
i think i kept seeing people say "monorepos are good for agents" but we just switched to multi repos. i have a hard time caring about the benefits of monorepos anymore
176
Adrián Laborda ✇ retweeted
Replying to @3kept1c
Me imagino, me imagino. El sistema está completamente roto, las licitaciones son un modelo que no puede seguir así. – at Madrid, Spain
1
2
28
3,154
Cómo poco vas a tener que usar las mismas herramientas que van a usar "ellos". Si alguien va a estar corriendo un agente 24/7 buscando fallos en tu aplicación, tú no te puedes permitir menos o será cuestión de tiempo caer. Nuevos tiempos, nuevas reglas.
Esto que comentó @juanmacias es más vigente hoy. La clave a partir de ahora es que el código sea seguro. Integrado en los procesos de desarrollo y despliegue. Con pen test periódicos. Revisando las vulnerabilidades en las librerías de terceros y en los entornos
1
4
183
Soy el único al que le parece que la sub de Chatgpt se la han cargado y no dura una miseria? Mira que la uso con Pi como buen tokenpoor, pero de unos días a esta parte no dura nada.
2
3
233
Procedo a arremangarme y meterme en el berenjenal. Cómo siempre, mi intención no es excusar la basura de aplicaciones que nuestra querida Administración brinda a los ciudadanos, pero sí lo es dar contexto para que sepamos lo que hay. 1. INTENCIÓN. Lo primero de todo, en la Administración no hay desarrolladores como tal, porque no se desarrolla. No hay capacidad humana ni ganas de que la haya. Cómo se ha dicho ya mil veces, la práctica totalidad va por licitaciones. Puedo contar con las manos las aplicaciones que se han desarrollado internamente. 2. INCENTIVOS. Las decisiones (casi todas ellas) se toman en la capa política, bien por cargo político como tal (ministro) o cargos de libre elección (secretario de estado, subsecretario, director general subdirector general....). Y ninguno de ellos (sería un unicornio) es de perfil técnico, son de carrera... política. Esto tampoco dista mucho de la gran empresa. Tengo amigos en bancos grandes en los que para cambiar el texto de un botón hay que pasar por el CEO (caso real, LMAO). Los 4 que estamos abajo con el pico y la pala muchas veces nos sorprendemos por la cantidad de decisiones absurdas que se toman y con total desconocimiento de la operativa real del día a día, pero hay que seguirlas. 3. ELEFANTIASIS. Cómo he dicho, somos 4 gatos y la cantidad de aplicaciones que hay en producción es completamente abrumadora e inmanejable (solo en mi ámbito tenemos casi dos millares de aplicaciones en producción en el CPD, ahí es na). Y, aunque siempre hay risas con el funcionario medio, la gente que me rodea es tremendamente responsable y se lleva trabajo a casa para tratar de apañar todos los desaguisados con la cinta americana o las bridas que nos dan. Sin ir más mejor, yo estoy de permiso de paternidad y ya he tenido que entrar con el remoto varias veces, porque, me repito, somos 4 y hay aplicaciones que o las levanto yo o no hay nadie más. Y eso que todas mis aplicaciones son para uso interno. 4. RESPONSABILIDAD. Cómo cualquiera que esté por aquí sabe, la Administración no puede vibecodear una herramienta en 1 día, ni en 10. Ni ningún dev de ella pushearia nada a producción de esa forma, porque no solo se juega su culo, sino el de todos los ciudadanos. A ver quién es el guapo, que con su nombre y firma, publica en nombre de la Administración, y con ella como responsable última, una aplicación abierta al uso de cualquier ciudadano y más una como Autofirma (por poner el ejemplo del tuit citado), que tiene una importancia bastante elevada. Diría que crítica. Y ahí lleva más de una década, integrada en todos lados, años de cambios de navegadores... No digo que no tenga mérito (ni mucho menos), pero hacer y publicar algo por tu cuenta y riesgo vs hacerlo en nombre de la Administración son responsabilidades que nada tienen que ver. 5. CASH. Vuelvo con Autofirma, por seguir con el ejemplo. Cuantos Ayuntamientos dependerán en su Administración Electrónica de ella? Si sacas una nueva y deprecas la antigua, les fuerzas a adaptarse. Suena guay, en teoría. En la práctica, cuántos Aytos. de 100, 500 o 1000 personas van a tener presupuesto para ello? De primeras ya les haces un boquete en los paupérrimos presupuestos que tendrán. De segundas, el Gobierno tendría que sacar líneas de ayudas para todos esos Aytos y/o Administraciones que no podrán ni serán capaces de adaptarse o les costaría años. En resumen, más billetes al fuego para cambiar algo que, mal que bien, funciona. Soy consciente de que esto es polémico, que X es el mundo del color de rosa, donde todos los devs saben y programan mejor que Claude y en sus trabajos no hay fricciones y todo va suave como la seda, pero yo estoy por aquí para ser sincero y transparente. En la Administración el grado de complejidad, para bien o para mal, es de varios órdenes de magnitud distintos. Repito, como empecé, que no excuso a la Administración ni a los que estamos en ella. Hay mucho por hacer y mucho que cambiar, pero como ciudadanos también habemus de ser responsables y conscientes con lo que pedimos.
que el Estado gaste chopocientos millones de € en hacer la basura suprema que es AutoFirma (que sigue sin funcionar de manera decente) y que aparezca alguien y vibecodee una alternativa mejor en 1 día da muchas pistas sobre cómo se gestiona el dinero público en este país
9
18
7
80
8,625
Adrián Laborda ✇ retweeted
Las ayudas sin condición y sin fecha de caducidad solo son un incentivo perverso para nunca abandonarlas. No sacan a nadie de la pobreza sino que la cronifican. Un estado responsable con el dinero de todos no puede generar estos incentivos porque acabarán con el estado del bienestar para todos.
El Ingreso Mínimo Vital subirá en torno a un 14% en 2027 al estar vinculado por ley a las pensiones no contributivas, que deben alcanzar el 75% del umbral de la pobreza. La cuantía para un adulto solo pasará de 733,60 a unos 836 euros al mes, elevando también el límite de ingresos para solicitar la ayuda. social-nt.com/sxuKUk
16
158
4
378
9,942
La segunda paternidad me ha atropellado por completo 🤣. Pero, gracias a las maravillas de la época que vivimos, puedo seguir haciendo cosas desde el móvil y a una mano. Incluso con auriculares. Puedes revisar cambios y dictarle que te haga cosas a una especie de esclavo muy listo que trabaja 24/7. No sé vosotros, pero yo sigo en fase de asombro y no sé cuándo saldré de ella.
1
5
387
Adrián Laborda ✇ retweeted
Increíble el videoblog de @Saulgmz_ sobre el primer café Helmcode, con entrevistas a @iamzenitram , @cangri2k5 y @adrilaborda 😍😍 y explicando increíble el problema que muchos sufrimos el fin de semana con el fútbol Si te perdiste el café Helmcode Madrid, este es el mejor resumen! Id a verlo ya! 👇 youtu.be/lIXmndG-CdU?is=vfW9…
2
4
25
2,425
Qué tiempos tan f*cking maravillosos vivimos para el cacharreo. Todavía no me creo lo que es posible hacer en un par de horas. Me compré una cerradura Nuki Pro 5 y mi idea era usar Matter sobre Thread para evitar tirar del wifi (por consumo de batería). Como tengo también Tado X con su Bridge, que es un thread border router, daba por hecho que la cosa iría suave (cosas de dar por hecho nada). Pero resulta que Tado (desconozco el oscuro motivo) tiene capado este router y, aunque el Bridge X crea una red Thread perfectamente válida, Tado no te da una forma soportada de reutilizar sus credenciales para meter en ella dispositivos de otros ecosistemas desde Home Assistant. Cuestión resumida: me cago en sus muertos y, como me niego a tener que comprar otro solamente para este uso, he puesto a currar a GLM (NaN Powered). He conectado el Pixel por ADB al portátil, le he dado el contexto y el objetivo de analizar la app de Tado para buscar alguna forma de recuperar el dataset de esa red Thread y él solito (más allá de 4 ideas vagas) ha encontrado un punto flaco a través de la webapp y ha recuperado el dataset. Para los más cafeteros del lugar, sigo en el hilo.
2
1
5
1,227
La primera hipótesis que le di fue que estuviera en el xredential store de Android. GLM se montó incluso una APK mínima para comprobarlo, pero, como suponía, no estaba ahí. Tado no publica su red Thread en el almacén de Google. Tirando del hilo, descompiló la app de Tado y acabó encontrando que parte del flujo de instalación de Tado X vive en una webapp dentro de la propia aplicación. Analizando ese flujo encontró por dónde obtenía Tado el dataset de su red Thread desde su backend. A partir de ahí pudo recuperarlo usando mi sesión. Con ese dataset GLM hizo prácticamente todo lo demás, importó la red de Tado en HA y la dejó como red Thread preferida. Y el máquina de GLM decidió (por su cuenta) reutilizar la APK (que no había servido para nada, salvo para comprobar que el almacén estaba vacío) para meter el dataset recuperado en el almacén del móvil. A partir de ahí, todo fue sencillo. Hice el commissioning y a funcionar. Nuki integrada en Home Assistant y funcionando por Thread. Todo esto en unas horas y de forma prácticamente inasistida. Qué locura. Yo le di el objetivo y algunas ideas. GLM fue probando hipótesis, escribió una APK, hizo ingeniería inversa de la app, siguió el flujo de la webapp y terminó dejando la integración funcionando. De camino han salido un par de hallazgos de seguridad, que supongo que tocará hacer el disclosure y quejarse porque tengan el bridge así de mal planteado (aunque sospecho que es intencional). Y una última derivada de todo esto (abro paraguas): Android >>> iOS. Y lo mismo con Linux frente a macOS/Windows. Poder tener un agente que corra libremente por tu sistema, inspeccione procesos, use ADB, escriba scripts, cree una APK, la instale, lea logs, depure, pruebe hipótesis y vuelva a empezar sin que tú estés encima es… jodidamente maravilloso. @Recuenco lo repite mucho: los humanos vemos fácilmente los efectos inmediatos, pero para los efectos de segundo, tercer, cuarto (infinito) orden somos muy malos. A ver qué termina ocurriendo por este lado. PD: si alguien más está en mi misma situación tengo los scripts guardados y el flujo completo.
2
1
4
1,420
Mi recomendación dominical es leerse la newsletter de hoy de @weareDMNTRs. Es directa, va a al grano y define lo que está por esperar. En mi opinión, es la mayor oportunidad que va a tener la Administración para dejar de sacar pliegos y licitaciones. Debemos usar ese dinero para contratar personal y formarlo, comprar hardware. dmntr.news/archive/27-de-sep…
2
2
1
6
718
Aunque por aquí hablamos principalmente de Administración Publica y de lo que hago en ella, no vamos a dejar de contar los side projects, ¿no? Unos familiares (y cracks) necesitaban una web para mostrar su trabajo y no podía ser estéticamente una más:
1
6
289
Y todo esto sin perder rendimiento, para los de es que "Wordpress mimimimi":
1
34
Cómo por aquí anda mucho experto en la materia, abierto a cosillas en las que os fijéis y sean mejorables.. Que siempre hay algo (o mucho) que aprender. Y aprovecho de paso para hacer publi a este par de cracks, porque lo que hacen es increíble: ideasdpapel.com
34
Adrián Laborda ✇ retweeted
📸 Missed the first Café Helmcode? You're going to wish you hadn't. Here's a recap video of how it went. Lots of people sharing, lots of people having a great time, and a community we're building around open models that left wanting more. Spot any familiar faces? Thanks to @adrilaborda @iamzenitram and @cangri2k5 for sharing their projects with everyone and sparking the conversations. And a huge thank you to @Saulgmz_ for shooting this amazing video. The GOAT 📷 There'll be more. Many more! Coming to the next one?
4
7
586
Ayer me hicieron una muy buena pregunta en la charla del Café @helmcode. Iba sobre si la IA no va a empeorar una situación que ya existe. Tenemos muchísimas aplicaciones en producción y, si ahora desarrollar nuevas es mucho más barato y rápido, es bastante probable que acabemos teniendo todavía más. Y entremos en una espiral de violencia. Justamente por eso, y es una de las cosas que más trabajo me están implicando actualmente, estoy extrayendo toda la capa común de UI a un paquete compartido. Me está suponiendo muchas horas de trabajo, pero lo hago porque espero que a medio plazo me ayude a simplificar los repositorios y, sobre todo, a poder hacer buena parte de los cambios comunes del front una sola vez y propagarlos después al resto de aplicaciones. Ahora mismo cada aplicación tiene su front completamente independiente y supone bastante carga de trabajo cambiar siete veces prácticamente lo mismo en siete aplicaciones distintas. La idea es unificar todo lo posible esa capa de UI, evidentemente, no la lógica interna de cada aplicación, pero sí, por decirlo de alguna forma, cómo “pintan” ese botón. Podría estar haciéndolo de forma más autónoma quizá, pero por ahora, cada vez que movemos un componente al paquete común, vuelvo a levantar la aplicación y compruebo que todo sigue funcionando como debe. Con esto también espero unificar la experiencia de usuario entre las distintas aplicaciones que están bajo mi paraguas, para que a los usuarios les resulte más sencillo moverse de una a otra. Y también, con toda la intención, de que cuando venzan ciertos contratos, tratar de mantener esas aplicaciones in house. Let’s play.
3
2
23
1,531