Jaime Gómez-Obregón Profile picture
Mar 20, 2022 28 tweets 10 min read Read on X
Esto es el ROLECE: el Registro Oficial de Licitadores y Empresas Clasificadas del Estado. Es un registro público de contratistas.

🚀 Quiero descargármelo para cruzarlo con los datos de contratación pública

🚫 Problema: el ROLECE no se puede descargar

…O no se «podía» 😆

🧵👇
El acceso al ROLECE es bajo certificado digital. Pero si accedes, no puedes consultar el listado. Solo puedes ver tu propia inscripción.

🔗 registrodelicitadores.gob.es/rolece registrodelicitadores.gob.es/rolece

Es la transparencia de Schrödinger: transparente y opaco a la vez. 🤷
El art. 344 de la Ley de Contratos del Sector Público (LCSP) establece que el ROLECE «será público y se podrá acceder de forma abierta previa identificación». Y que un reglamento «determinará modalidades y requisitos para la publicidad del Registro».

Pero no hay nada. 💩
✨ El Ministerio de Hacienda tiene este servicio para la consulta de expedientes de clasificación de contratistas. ¡Parece que toma sus datos del ROLECE!

🔗 …rviciostelematicosext.hacienda.gob.es/DGPE/Contratis…

🚫 Problema: tampoco permite la descarga completa del registro.
El buscador de Hacienda tiene seis campos. Solo uno es obligatorio: el nombre del contratista. Pero yo no quiero acceder al expediente de un contratista: ¡quiero acceder A TODOS!

Para cruzarlos informáticamente con la PLCSP y dar más transparencia a la contratación pública.
El buscador me obliga a consignar un mínimo de cuatro letras del nombre del contratista. ¿Por qué hacen esto? ¡Qué ganas de entorpecer el acceso a los datos públicos!

Puedo buscar «ZARA» o «IKEA». O Puedo teclear «FERRE» y encontrar todas las ferreterías.
Podría descargar todo el listado por fuerza bruta, automatizando búsquedas iterativas:

AAAA
AAAB
AAAC

ZZZX
ZZZY
ZZZZ

Pero sería una cochinada ineficiente:

26×26×26×26 = 456.976 búsquedas

Tiene que haber otra manera.
La validación de los datos de entrada de un formulario web puede hacerse en dos puntos del ciclo petición-respuesta:

1️⃣ En el cliente (el navegador del usuario); o,
2️⃣ En el servidor (la aplicación de Hacienda).

Siempre se recomienda validar los datos al menos en el servidor.
Observo que el buscador de Hacienda valida los datos en el cliente. Mi única esperanza es que no estén haciendo validación también en el servidor.

Juego todo a esta carta y comienzo a inspeccionar el campo de entrada que me interesa: el nombre del contratista.
Tiene asociados dos manejadores de eventos:

1️⃣ Uno al evento «change», que se dispara cuando el campo cambia.

2️⃣ Otro al evento «keypress», que se dispara cuando el usuario presiona una tecla con el foco en el campo.
Me interesa el evento «change», que se dispara después de «keypress».

Invoca una función ValidatorOnChange()
Exploro la función, voy trazando el código…
…y llego a una segunda función: ValidatorUpdateIsValid()

Que parece devolver un valor booleano:

— «verdadero» si todos los campos del formulario son válidos.
— «falso» si alguno de los seis campos tiene errores.
Quiero modificar esta función. Pero si está encapsulada en un módulo, una clase o un objeto, será complicado hacer nada con ella…

Afortunadamente para mí, está definida en el «scope» global 🎉. ¡Esto significa que puedo redefinirla desde el confort de mi navegador! 😜
Vamos a ver si hay suerte…

Asigno a AllValidatorsValid una nueva función que toma la misma entrada pero que siempre devuelve «verdadero».

Y en el campo del formulario consigno un valor ilegal: «A».

¿Colará?
…Y CUELAAAAAAaaaa!!!!!!111unouno
🎉 Con esto puedo sortear la validación del formulario. YEAH!

Ahora tengo que ver cómo iterar por las 26 letras del abecedario y bajarme todas las páginas del tirón. 🤓

Observo las peticiones al servidor y encuentro una llamada GET por XHR (Ajax).…
…a la que el servidor responde un JSON con los datos de mi interés.

✅ Son datos públicos.
✅ De un registro público.
✅ Que sirve Hacienda en internet.

Esto no es ningún crimen. ¡Es liberar datos públicos para que haya más transparencia en la contratación pública!
Replico la petición desde la línea de comandos, con cURL. Encuentro los parámetros que controlan el número de resultados por respuesta y la paginación de los resultados.

Con la letra «A» hay 9.953 registros, lo que son exactamente 100 páginas de 100 elementos cada una.
Hay mil formas de hacer esto, pero opto por seguir en la terminal y usar «seq»:

$ seq 0 100 10000

Genero así los valores del parámetro «iDisplayStart», que controla dónde comienza cada página.

Un poco de bricolaje y ya tengo un cerdoscript… 🐷
Curiosamente el dato más importante, el término de búsqueda, no viaja en ningún parámetro de las peticiones XHR. Parece que el servidor lo almacena en una variable de sesión y lo recupera de una cookie.

Es kafkiano, pero me da igual porque en el script paso la cookie… 🤷
Vuelvo al campo de búsqueda.

Puedo iterar 27 veces con todas las letras del abecedario. Y, para cada una de ellas, iterar a su vez por el número de páginas de resultados.

Pero no quiero iterar tanto.

¿Qué puedo hacer?
Tengo que darle al servidor al menos un caracter que me devuelva todos los registros. Pero, ¿cuál?

Pruebo con el espacio en blanco. ¿Funcionará?
¡No funciona!

La aplicación debe de estar haciendo un trim() de la cadena de texto que yo le envío, para eliminar los espacios en blanco antes de determinar si el valor está vacío.

Pero, ¿y si les envío algo que parezca un espacio pero no lo sea?
Esto es el caracter Unicode U+2800: un espacio vacío en Braille. Al ojo humano es indistinguible de un espacio tecleado con la barra espaciadora. Pero quizá trim() sí lo distinga…

¿Servirá para confundir al servidor de Hacienda?

🔗 compart.com/en/unicode/U+2…
🚀 ¡HASTA LA COCINA!
Añado ocho filas más al cerdoscript y me reclino satisfecho en el estrado imaginario de mi putoamismo mientras descargan a mi portatil todos los registros.

¡Ahora tengo 10.747 expedientes más para cruzar con los datos de contratación! 🥳

Síganme para más recetas. 🤣
Aquí va todo en un formato de más fácil lectura: typefully.com/JaimeObregon/l…

Y mi Patreon, ¡por si quieres ayudarme a seguir! 👇patreon.com/jaime_gomez_ob…

¡Espero que os guste! 🤓

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Jaime Gómez-Obregón

Jaime Gómez-Obregón Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @JaimeObregon

Aug 16
‼️ Vienen grandes cambios y es importante que sepas lo que va a pasar

¡Cuántas veces nos quejamos de servicios públicos digitales mal diseñados! Trámites terribles que luego todos tenemos que padecer y ya es casi imposible cambiar.

Ahora está en ciernes un cambio drástico en la forma de facturar en España. Afecta a más de tres millones de empresas y autónomos, pero también a ti, a mí y a todos, porque todos somos consumidores y recibimos facturas.

Y tal como se está planteando, esto va camino de ser otra «web de Renfe» de la que estaremos lamentándonos durante años.

👉 Pero esta vez los hechos aún no están consumados
👉 Los cambios no están en vigor todavía
👉 Estamos a tiempo de actuar ‼️

Como en todo lo que escribo, no encontrarás aquí partidismo, ideologías ni política. Esto no va de colores ni siglas. No es eso. Va de corregir el rumbo para aprovechar unos cambios normativos que —si se despliegan bien— podrían tener un impacto fabuloso. Va de mejorar el país.

📰📺 He contactado con periodistas de varios medios de comunicación relevantes. Ninguno se ha interesado por este asunto. ¿Ha abdicado el periodismo de su función de controlar el poder?

A continuación voy a hablarte de facturación electrónica, fraude en el IVA y reporte fiscal. Quizá te parezca un mundo gris, pero te aseguro que nos afecta a todos. Es por ello que voy a utilizar un lenguaje asequible y a omitir los detalles, para no perder de vista lo importante. Es un problema complejo que no voy a infantilizar, aunque sea al precio de que algunos se queden por el camino.

Así que si solo quieres actuar sin conocer el meollo… puedes saltar directamente al último tuit de este hilo.Verifactu
👉 El punto de partida ✨

Vienen grandes cambios a la forma de emitir y recibir facturas en España. Han sido introducidos por dos leyes recientes:

1️⃣ La Ley Antifraude (2021), que busca reducir el fraude fiscal controlando, entre otras cosas, que los programas de facturación no permitan ocultar ingresos.

2️⃣ La ley Crea y Crece (2022), que busca facilitar la creación de empresas, reducir obstáculos regulatorios y luchar contra la morosidad.

Se ha escrito mucho sobre estos cambios normativos. Pero todo lo que leerás en internet se queda en las leyes aprobadas, y siempre desde el ángulo teórico y jurídico. ¡Y las leyes están muy bien! El problema que nos viene encima no está en las leyes.

El problema está en los reglamentos que se están desarrollando para poner estos cambios en marcha, y que ignoran peligrosamente el follón que se va a montar y el coste que tendrá. Y que es urgente revisar, porque nos dirigimos a un caos que va a afectar a todo el tejido productivo del país.

Para escribirte este hilo con rigor y precisión me he sentado varias veces con una de las personas mejor informadas sobre la nueva normativa de facturación electrónica y reporte fiscal: Vicente Alciturri, vicepresidente de @CONETIC. Además de amigos, Vicente y yo somos ambos técnicos y sabemos lo que es montar una empresa y facturar. Nos conocemos desde hace veinte años y hemos coincidido en Conetic y otros foros.

¡Vamos allá!Comparación entre la ley (una jugosa hamburguesa) y el reglamento (un triste bollo con algo insípido dentro).
✨ La teoría 🦄

Si eres una empresa o autónomo, pronto dejarás de enviar y recibir tus facturas por correo en PDF. Porque va a ser obligatorio emitir facturas electrónicas, depositarlas en una plataforma digital pública e informar inmediatamente a la Agencia Tributaria (AEAT). Emitir, Depositar e Informar.

1️⃣ Emitir. Para facturar solo vas a poder utilizar programas de facturación capaces de generar ficheros XML en un formato normalizado. Olvídate de facturar con una hoja de cálculo o un ERP propio o anterior a las nuevas normas.

2️⃣ Depositar. Ya no enviarás tus facturas solo por correo electrónico. Las depositarás instantáneamente en la Solución de Plataforma Publica de Facturación Electrónica (SPFE). Y de allí las recogerán tus clientes. ¿Conoces el FACe que ya se usa para facturar al sector público? Pues algo así va a ser ahora obligatorio también para el sector privado. Empresas y particulares.

3️⃣ Informar. Por cada factura emitida notificarás inmediatamente a la AEAT del IVA de la operación y de todo lo necesario para identificarte a ti y, en general, también a tu cliente. El fisco estará informado ✨inmediata y automágicamente✨ de tus ventas. Esto es el reporte fiscal y se realizará a través de otro nuevo sistema público digital: Verifactu.

Vamos, que con tu próximo gin-tonic te darán un tique con un código QR generado en el TPV del garito por un programa declarado ante Hacienda que habrá enviado a la Agencia Tributaria un reporte de la transacción antes de que a ti te dé tiempo a alzar el cáliz y libar el elixir.

¿Y cuál es el problema con todo esto? ¡Ninguno! Servirá para reducir el fraude fiscal, controlar la morosidad y optimizar procesos administrativos en las empresas que ahora son muy ineficientes. Y, además, es una oportunidad para reducir la burocracia. 🎉

Otros países europeos ya han puesto en marcha sistemas parecidos.

Entonces, ¿por qué estás tan preocupado, Jaime?Esquema de la relación entre los componentes de Verifactu entre ellos y con la AEAT.
Read 7 tweets
Jul 11
5️⃣ IDEAS para la transformación digital de España 💡

Yo no sé de política, pero he hecho toda mi carrera profesional en la tecnología. Incluyendo fundar, desarrollar y vender una empresa tecnológica.

Aquí van mis propuestas para mejorar nuestro país. 🧵👇
1️⃣ Poner en marcha un Equipo de Desarrollo de Servicios Digitales.

Dotarlo de presupuesto y nombrar a alguien completamente ajeno a la Administración para que arranque y lidere un equipo con programadores y diseñadores de productos y servicios digitales.

Personas venidas de la empresa privada. Con generosos salarios. Lideradas por un técnico, no un político.

👉 Algo como Servicios Digitales de Aragón, pero de ámbito estatal. Y dándoles total libertad. O como lo que ha hecho Mercadona con Mercadona IT.

El Ministerio lo financia y se quita del medio.
2️⃣ Desarrollar «kits» verticales de código abierto.

⭐️ En España hay 8132 ayuntamientos —la mayoría pequeños— y cada uno contrata su sitio web, sede electrónica y gestor de expedientes cómo y dónde puede.

⭐️ También hay 19.184 centros educativos públicos, cada uno con un sitio web contratado por ahí a un proveedor local.

⭐️ Y 13.122 centros de salud públicos, 3.739 centros de mayores…

¿Qué sentido tiene que cada entidad pública contrate su tecnología por su cuenta? ¡Tropiezan una y otra vez con los mismos obstáculos! Organizaciones parecidas tienen necesidades parecidas.

El Equipo de Desarrollo de Servicios Digitales construiría…

— Un «Kit» de web municipal. Con su gestor de contenidos (CMS), su perfil del contratante, su directorio, su cartografía del IGN, sus textos legales…

— Un «Kit» de centro escolar. Con su propuesta de arquitectura de la información, su CMS, su área privada para familias, su herramienta de envío de boletines…

Y así con todo: «kit» para centros de atención primaria, «kit» para centros de mayores, «kit» para…

Cada kit proporcionaría, además de la tecnología, también recursos de diseño, procedimientos de buenas prácticas, instrucciones de despliegue, materiales formativos para el mantenimiento… Un trabajo integral y bien hecho™️.

Y que cada entidad pública descargue el kit y lo parametrice o adapte a sus propias necesidades. Que serán muy parecidas a las de otras entidades del mismo vertical. ¡Siempre será mejor partir de un kit bien hecho que reinventar la rueda!

¿Que el Ayuntamiento de Barcelona no quiere usar el kit estatal porque su caso es singular? ¡Perfecto!, nadie le obliga. ¿Que en Lepe prefieren contratar a no sé qué proveedor local? ¡Fenomenal!, el kit es software libre y el proveedor puede partir de él y adaptarlo como el ayuntamiento necesite.

👉 En resumen, hacer lo que hace el Consorcio AOC en Cataluña con los portales de transparencia para las entidades locales. O el Gobierno de Italia con los ayuntamientos y centros escolares.
Read 7 tweets
Dec 23, 2023
Susana es concejala y ha tenido una idea. 🫣
He estudiado y escrito tanto sobre esta fiebre que no sé ni por dónde comenzar a contestar a @SusanaHornillo. 😅

Quizá por el sentido del humor… 👇
Estimada @SusanaHornillo:

He estudiado más de cien «amazon locales» puestos en marcha con dinero público. He intentado visibilizar las conclusiones en artículos como este. Sin mucho éxito, parece. 👇

jaime.gomezobregon.com/la-fiebre-de-l…
Read 4 tweets
Nov 13, 2023
Mis 🔟 propuestas para mejorar la transparencia en la contratación del sector público.

Recién publicado hoy en European Public Mosaic, la revista de la @EAPCcat destinada a la mejora de la Administración:

🔗
(Página 80 y siguientes)gencat.cat/eapc/epum/N21/…





Image
Image
Image
Image
👆 Mi artículo en el enlace del tuit de arriba contiene muchos enlaces a los amenos hilos de Twitter donde he ido destripando cada problema y proponiendo soluciones.

👇 Aquí en castellano, también con abundantes enlaces a mis investigaciones:

🔗 jaime.gomezobregon.com/tmp/diez_propu…

Diez propuestas para una mejor transparencia en la contratación pública JAIME GÓMEZ-OBREGÓN En los últimos tres años he trabajado informáticamente 1,9 millones de expedientes de la plataforma española de contratación pública y los porta- les de transparencia. Lo he abordado con las herramientas de un ingeniero especializado en big data y la mirada curiosa de un ciudadano interesado en escrutar los asuntos públicos. Regreso de esta aventura con este decá- logo de ideas para mejorar la transparencia en las compras públicas. La opacidad en los asuntos públicos alienta la corrupción. Y cuando e...
Así es como he podido aflorar y dar visibilidad pública al hecho de que en algunas adjudica- ciones de contratos del Gobierno de Cantabria concurrían licitadores conchabados o varias sociedades controladas por un mismo empresario. O la adjudicación de un contrato de obra civil al que licitaban dos empresas promotoras diferentes que, ¡oh!, sin embargo comparten un mismo domicilio social y número de teléfono. Publicar un censo abierto de uniones temporales de empresas. ¿Cómo conectar sistemá- ticamente una Unión Temporal de Empresas (UTE) con cada una de las sociedades que la conforman? En la...
🎥 …Y aquí las diez propuestas desarrolladas en una ponencia que di en el Congreso Internacional de Transparencia, @COTransparencia:

Read 5 tweets
May 16, 2023
📈 Para mí es importante que nadie tenga que confiar en «mis» datos. ¡No son míos! Yo los extraigo de fuentes oficiales. Con sacacorchos, porque lo ponen difícil. Por eso acabo de añadir a mi herramienta algo imprescindible: el enlace de cada dato en las memorias del Gobierno. 😊
Creo que esto servirá para que mucha gente pueda buscar en mi herramienta fácilmente (¡y de forma divertida!) los datos de su interés. Y luego ir a tiro hecho a la infumable «fuente primaria» del Gobierno (PDF de más de 200 páginas) para confirmar la veracidad de los datos. Image
Creo que esto será útil…

✅ A la ciudadanía, para entender mejor su país.

✅ A los parlamentarios, para controlar mejor al Gobierno y detectar chanchullos.

✅ A los periodistas, para vigilar el reparto equitativo del dinero público. Image
Read 5 tweets
May 14, 2023
💡 ¿Cuáles son las campañas del Gobierno Vasco con menor y mayor presupuesto en los últimos cinco años?

🤏 La más modesta: 20 € en 2018 para la promoción de la seguridad alimentaria en Facebook.

🦣 La de mayor importe: 490 173 € en 2021 sobre el «Basque Green Deal». ImageImage
No sé qué es el «Basque Green Deal» (no soy vasco ni resido allí), pero esta es la información institucional que he encontrado en un vistazo rápido:

🔗 euskadi.eus/gobierno-vasco… Image
¿Y cuáles son los contratos más grandes de estos años y quiénes se los han llevado? Mi 🤖robotito come-contratos responde:

🥇 El récord lo tiene El Diario Vasco, que se llevó 245 000 € en 2018 por esta campaña sobre «Euskadi gastronómica». Repitió en 2019, con 220 000 €. Image
Read 6 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(