We solve a simple wooden puzzle with MiniZinc. The Snake-Cube puzzle is a good introductory problem and thus a number of formal modeling techniques are explained. We also touch advanced topic like symmetries and discuss a bit our modeling choices.| Lucas DiCioccio's Blog
We help Santa Elves optimize cutting wrapping paper to accomodate various shapes. The difficult optimization requires a dedicated solver in MiniZinc. Haskell allows to integrate with MiniZinc, reads JSON and outputs a PNG image with the footprint of the positionned shapes to cut. This article shows that a one-day-of-work project can reach pretty far.| Lucas DiCioccio's Blog
A photo gallery from a summer trip to Cabourg, France.| Lucas DiCioccio's Blog
A personal public-achievements and todo list, for this blog or other things of life.| Lucas DiCioccio's Blog
Notes that could become part of articles.| Lucas DiCioccio's Blog
A list of slides (with recording links when available) for presentations I gave. Also some template documents for architecture/devops.| Lucas DiCioccio's Blog
A rolling photo gallery with mostly portraits.| Lucas DiCioccio's Blog
The NATO phonetic alphabet if it were written by...| Lucas DiCioccio's Blog
A collection of tips that also serves as a personal cheat-sheet.| dicioccio.fr
An article discussing the tradeoffs of self-hosting.| dicioccio.fr
An introduction to agents-exe: A tool, library, and/or framework for running and researching AI-agents. "on peut prompter une fois mille personnes mais on ne peut pas prompter mille fois mille personnes"| dicioccio.fr
PostgREST is a relatively widely adopted solution for exposing a PostgreSQL database via an HTTP interface. We'll explore the benefits of considering PostgREST for your development and production environments.| Lucas DiCioccio's Blog
There is so much confusion in people's mind about tax brackets and marginal tax rates. In France, people confuse the marginal tax rate with the effective tax rates. We commonly see people who believe they will be have less money home if they change tax bracket. This _explainator_ helps pin what occurs at various tax brackets and income ranges.| Lucas DiCioccio's Blog
I am Lucas DiCioccio, a scientist and engineer. I apply modern techniques to engineering and lead #teams to deliver successful results.| dicioccio.fr
Just an announce about Minitools, a collection of PureScript/Halogen utilities to help making web-applications.| Lucas DiCioccio's Blog
A TODO-application demonstrating my recent article series on PureScript/Halogen applications architecture.| dicioccio.fr
This article is an inflammatory rant about the typical SQL explanation of what joins are in SQL. That said, I try to do a better explanation too, so it's not _just a rant_. Feel free to roast me.| Lucas DiCioccio's Blog
This article is the third part of a series about web-application patterns emerging from writing non-trivial web applications.| Lucas DiCioccio's Blog
Some tips about using scripts to help you blog, directly in vim.| Lucas DiCioccio's Blog
This article is the second part of a series about web-application patterns emerging from writing non-trivial web applications.| dicioccio.fr
As a pastime project last year, I rewrote two non-trivial web applications in Halogen; some patterns eventually emerged. I believe these patterns haven't been documented thoroughly, particularly in the realm of pure-functional programming and web-application. I now architect my PureScript application in Halogen with a form of Entity-Component-System with one-main-handler loop. I organize page sub-components into Widgets, and Bricks. Widgets and Bricks play a similar role, but we can distingui...| dicioccio.fr
Postgrest-Table is a powerful, browser-based exploration and dashboard tool that simplifies data analysis and visualization. By eliminating server-side dependencies and minimizing setup requirements, it's ideal for development, troubleshooting, and creating custom dashboards. With its auto-refresh feature, AJAX capabilities, customizable knobs, and graphing capabilities, Postgrest-Table augments the usefulness of your Postgres database without taking much space in your life.| Lucas DiCioccio's Blog
Recently I was co-organizing [Salon Daguerre](https://www.salondaguerre.paris/en/), an international photo competition, as a tech helper. In this article I give you a sneak peek of how the judgment works.| Lucas DiCioccio's Blog
A word game where you need to find what my daughter says. Each day a new word.| Lucas DiCioccio's Blog
Happy summer! reflecting on my yearly goals.| Lucas DiCioccio's Blog
Real-world decisions are tradeoffs under constraints. We like to simplify some tradeoffs with triangular decisions like "cheap, good, fast -- pick two". Let's see what we can learn from these triangles.| Lucas DiCioccio's Blog
Happy new year!| Lucas DiCioccio's Blog
Deciding is difficult, we always want to improve our decision making. What's more or at least as difficult? gauging whether a decision is good or not.| Lucas DiCioccio's Blog
A demo of a [ECharts-for-Halogen](https://github.com/lucasdicioccio/purescript-halogen-echarts-simple) library.| Lucas DiCioccio's Blog
After having written a [number of articles](/topics/web.html) about my blog-engine. And motivated by curious people wanting to see how it's built, I've open-sourced my blog-engine and named it _Kitchen Sink_.| Lucas DiCioccio's Blog
I have ran into a number of product-owner puzzled by how often #developers in their team express a need to "refactor". Cannot they do it once for the quarter? This prompted me to write some notes and eventually an article to demistify a bit the "always-refactoring team".| Lucas DiCioccio's Blog
A live Prometheus-endpoints monitor visualizer. If you are a developer running software locally or if you are an SRE investigating production hiccups, you sometime want to look at how one metric evolves in a specific job.| Lucas DiCioccio's Blog
An application to illustrate how the changing scope of projects affects the delivery, coverage.| Lucas DiCioccio's Blog
In past experiences I ran into a number of product-owner and staekholders puzzled by how often developers in their team express a need to "refactor". Cannot they do it once for the quarter? This prompted me to write some notes and eventually an article. This article will be followed by a second part focused on the topic of refactoring. However before jumping directly into hard topics, we must discuss some key dynamics of a #project, in particular regarding the scope of projects (#project-scope).| Lucas DiCioccio's Blog
A demo of using Dhall as an intermediary step for my blog-engine sections.| Lucas DiCioccio's Blog
Different projects require different organization structure. So-called tactical projects tend to fall on you rather than being planned upfront. My recipe to tackle them is a few communication tools and empowered individuals free to roam within constraints.| Lucas DiCioccio's Blog
An illustration of how to model a constraint-problem to optimally distribute testing samples to laboratories.| Lucas DiCioccio's Blog
The overengineering behind this blog. Or is it not over-engineered?| dicioccio.fr
A collection of links and readings.| dicioccio.fr
Duality is technical jargon for "complementary". Programmers often overlook the role dualities in programming and hence fail to recognize them, even if they are hiding in plain sight. In this article we focus on two important pairs of dual concepts: producers and consumers, sum types and product types. I also spend some time ranting about default values being as bad as null values.| dicioccio.fr