Pull Request Code Review in GitHub Actions
As a followup to OpenAI Codex CLI in GitHub Actions this new workflow automates pull request code reviews: Check out this demo repo that uses OpenAI Codex CLI + MCPs in GitHub Actions.
Markdown to Confluence Sync Workflow
I wanted to jot down a few notes about the Sync to Confluence workflow that keeps the markdown-to-confluence docs mirrored in Atlassian. Why it’s handy Keeping authoring in Markdown means the docs stay right beside the codebase, so assistants like GitHub Copilot (and other IDE-aware agents) can ingest real project guidance without leaving the editor. The same repo search powers autocomplete, inline explanations, and context-aware chat, which is way faster than switching to a browser tab and hunting through Confluence. Non-developers still get the polished Confluence pages produced by the workflow, so stakeholders have a familiar place to read without digging into Git. ...
Embedding Apache Superset Dashboards
A demonstration project showing how to embed Apache Superset dashboards into external applications using the Superset SDK. Overview Apache Superset is a powerful open-source data exploration and visualization platform. This demo project showcases how to embed Superset dashboards into a Spring Boot application, enabling seamless integration of analytics dashboards into your own applications. Repository: danielpaval/superset-embed-demo Project Stack The project combines several technologies: Apache Superset (Python) - The analytics platform Spring Boot (Java) - Backend application framework Docker - Containerized deployment Gradle - Build automation Key Configuration To enable embedding Superset dashboards, several configuration changes are required: ...
Spring Boot API Demo
This WIP spring-boot-api-demo repo gathers reusable components and common practices in building Spring Boot applications all the way from exposing a REST API to the ultimate SQL Server-based JPA persistence.
OpenAI Codex in GitHub Actions
Check out this demo repo that uses OpenAI Codex + MCPs in GitHub Actions:
Structurizr vs LikeC4
This WIP post compares Structurizr and LikeC4 with a focus on their export capabilities. 2. Export 2.1 Export to Static Site Structurizr Prerequisites: Graphviz dot Command: structurizr export -workspace workspace.dsl -format static Conlusions: ⚠️ The static export of Structurizr is a very trimmed version of the Lite version, without the top menu, just the navigation feature starting with the top context diagram LikeC4 likec4 build -o ./dist 2.2 Export to SVG/PNG Structurizr Structurizr CLI can export to SVG or PNG format via a Node.js and Puppeteer workaround: ...
Mermaid CLI
Let’s see how Mermaid’s CLI can generate images from diagrams: npm install -g @mermaid-js/mermaid-cli mmdc -i .\sequence_diagram.mmd -o sequence_diagram.png Output:
Hello, Mermaid!
Let’s try Hugo’s support of mermaid diagrams: --- config: look: neo theme: neo --- sequenceDiagram Alice->>John: Hello John, how are you? John-->>Alice: Great! Alice-)John: See you later! Hugo does not include out-of-the-box support for Mermaid diagrams, but it can be easily customized: See https://github.com/danielpaval/danielpaval.github.io/tree/master/layouts external to defined theme layouts/_default/_markup/render-codeblock-mermaid.html <pre class="mermaid"> {{ .Inner | htmlEscape | safeHTML }} </pre> {{ .Page.Store.Set "hasMermaid" true }} layouts/_default/baseof.html before </body> {{ if .Store.Get "hasMermaid" }} <script type="module"> import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs'; mermaid.initialize({ startOnLoad: true }); </script> {{ end }}
JSON Event Data Audit Demo
Context The opportunity for this analysis originated with the need to ingest highly-dynamic unstructured data produced by various events and be able to efficiently report on it both programmatically and to (business) users. In an ecommerce scenario, an event could be a customer registration, an order, a shipment, a return, etc.: { "type": "REGISTRATION", "data": { "name": "Jane Smith", "email": "jane.smith@example.com", "phone": "987-654-3210", "addresses": [ { "default": true, "street": "1742 Waverley Drive", "city": "Palo Alto", "state": "CA", "zip": 94301, "country": { "name": "United States", "code": "US" } } ] } } TLDR Chain of Thought & Prototyping The following steps roughly show the evolution of my ideas and solution components along the way. In order to proceed with an objective evaluation of improvements I tried to rely on a core set of non-functional metrics: ...
To Envoy or not to Envoy
I recently came across the need for a reusable microservice in the form of an OCI / Docker image to meet different authentication and authorization requirements depending on the end project and environment. While the current limited set of possible security configurations is handled by the microservice itself, I analyzed the possibility of delegating this aspect to a specialized sidecar container living in the same Kubernetes pod. After a bit of prompt engineering and wanting to consider something else than NGINX I decided to first try Envoy Proxy. Long story short, here’s a Docker Compose setup: ...