{"articles":[{"slug":"hanami-why-model-citizens","title":"Hanami, Why?: Model Citizens","subtitle":null,"summary":"Aaron Allen's 'Hanami, Why?' series covers Hanami's database layer: why it splits persistence into relations, repos and structs instead of Rails-style models, the advantages of the repo pattern, keeping persistence from leaking into the rest of an app, and the rough edges he has found so far.","content_type":"tutorial","language":"en","canonical_url":"https://aaronmallen.me/writing/hanami-why-model-citizens","author":{"name":"Aaron Allen","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Aaron Allen","url":"https://aaronmallen.me/","listing_slug":null,"listing":null},"topics":[{"name":"Web Development","slug":"web-development","url":"https://listedarticles.com/topics/web-development"},{"name":"Software Engineering","slug":"software-engineering","url":"https://listedarticles.com/topics/software-engineering"},{"name":"Databases","slug":"databases","url":"https://listedarticles.com/topics/databases"},{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":2581,"reading_minutes":11,"published_at":"2026-10-19T14:00:00.000Z","added_at":"2026-10-19T14:14:13.179Z","updated_at":"2026-10-19T14:14:13.179Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/hanami-why-model-citizens","markdown_url":"https://listedarticles.com/articles/hanami-why-model-citizens.md","example":false,"citation":"Aaron Allen, Aaron Allen. \"Hanami, Why?: Model Citizens.\" 19 Oct 2026. https://aaronmallen.me/writing/hanami-why-model-citizens (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://aaronmallen.me/writing/hanami-why-model-citizens"},"snippet":null,"score":null},{"slug":"how-tablesample-picks-rows","title":"How TABLESAMPLE picks rows","subtitle":null,"summary":"Radim Marek explains how PostgreSQL's TABLESAMPLE really samples: SYSTEM picks whole pages so rows come in bundles, BERNOULLI with REPEATABLE drifts after an UPDATE, and hashing a key gives a stable sample, plus when each approach fits.","content_type":"tutorial","language":"en","canonical_url":"https://boringsql.com/posts/tablesample/","author":{"name":"Radim Marek","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"boringSQL","url":"https://boringsql.com/","listing_slug":null,"listing":null},"topics":[{"name":"PostgreSQL","slug":"postgresql","url":"https://listedarticles.com/topics/postgresql"},{"name":"Databases","slug":"databases","url":"https://listedarticles.com/topics/databases"},{"name":"SQL","slug":"sql","url":"https://listedarticles.com/topics/sql"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":2718,"reading_minutes":12,"published_at":"2026-10-11T00:00:00.000Z","added_at":"2026-10-25T11:10:50.620Z","updated_at":"2026-10-25T11:10:50.620Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/how-tablesample-picks-rows","markdown_url":"https://listedarticles.com/articles/how-tablesample-picks-rows.md","example":false,"citation":"Radim Marek, boringSQL. \"How TABLESAMPLE picks rows.\" 11 Oct 2026. https://boringsql.com/posts/tablesample/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://boringsql.com/posts/tablesample/"},"snippet":null,"score":null},{"slug":"pgo-or-not-pgo-this-is-the-dilemma-step-2","title":"PGO or not PGO this is the dilemma. Step 2","subtitle":"Step 2: How it works","summary":"The second of Marco Tusa's three-part Percona series on profile-guided optimization explains how PGO works as a two-pass build: instrumented binaries record per-edge control-flow counters during a training workload, and the compiler then uses those counts for inlining, branch layout, hot/cold splitting and code ordering, which is why MySQL's MTR test suite transfers well as training data.","content_type":"tutorial","language":"en","canonical_url":"https://www.percona.com/blog/pgo-or-not-pgo-this-is-the-dilemma-step-2/","author":{"name":"Marco Tusa","url":null,"person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Percona","url":"https://www.percona.com","listing_slug":null,"listing":null},"topics":[{"name":"MySQL","slug":"mysql","url":"https://listedarticles.com/topics/mysql"},{"name":"Databases","slug":"databases","url":"https://listedarticles.com/topics/databases"},{"name":"Compilers","slug":"compilers","url":"https://listedarticles.com/topics/compilers"},{"name":"Performance","slug":"performance","url":"https://listedarticles.com/topics/performance"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1174,"reading_minutes":5,"published_at":"2026-10-09T11:47:32.000Z","added_at":"2026-10-17T14:18:31.309Z","updated_at":"2026-10-17T14:18:31.309Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/pgo-or-not-pgo-this-is-the-dilemma-step-2","markdown_url":"https://listedarticles.com/articles/pgo-or-not-pgo-this-is-the-dilemma-step-2.md","example":false,"citation":"Marco Tusa, Percona. \"PGO or not PGO this is the dilemma. Step 2.\" 9 Oct 2026. https://www.percona.com/blog/pgo-or-not-pgo-this-is-the-dilemma-step-2/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://www.percona.com/blog/pgo-or-not-pgo-this-is-the-dilemma-step-2/"},"snippet":null,"score":null},{"slug":"building-a-job-queue-in-postgres-with-skip-locked","title":"Building a Job Queue in Postgres with SKIP LOCKED","subtitle":null,"summary":"Michael Guay walks through running background jobs in Postgres instead of Redis: the jobs table, claiming work safely with SKIP LOCKED, leases for crashed workers, retries with backoff, dedup, LISTEN/NOTIFY wakeups, and when not to.","content_type":"tutorial","language":"en","canonical_url":"https://learn.michaelguay.dev/blog/building-a-job-queue-in-postgres-with-skip-locked","author":{"name":"Michael Guay","url":"https://learn.michaelguay.dev/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Michael Guay","url":"https://learn.michaelguay.dev/","listing_slug":null,"listing":null},"topics":[{"name":"Databases","slug":"databases","url":"https://listedarticles.com/topics/databases"},{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"},{"name":"Software Engineering","slug":"software-engineering","url":"https://listedarticles.com/topics/software-engineering"},{"name":"Tutorials","slug":"tutorials","url":"https://listedarticles.com/topics/tutorials"},{"name":"Infrastructure","slug":"infrastructure","url":"https://listedarticles.com/topics/infrastructure"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":2138,"reading_minutes":9,"published_at":"2026-10-04T00:00:00.000Z","added_at":"2026-10-04T23:17:04.393Z","updated_at":"2026-10-04T23:17:04.393Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/building-a-job-queue-in-postgres-with-skip-locked","markdown_url":"https://listedarticles.com/articles/building-a-job-queue-in-postgres-with-skip-locked.md","example":false,"citation":"Michael Guay, Michael Guay. \"Building a Job Queue in Postgres with SKIP LOCKED.\" 4 Oct 2026. https://learn.michaelguay.dev/blog/building-a-job-queue-in-postgres-with-skip-locked (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://learn.michaelguay.dev/blog/building-a-job-queue-in-postgres-with-skip-locked"},"snippet":null,"score":null},{"slug":"postgres-at-time-zone-utc-does-not-do-what-you-think-it-does","title":"Postgres AT TIME ZONE 'UTC' does NOT do what you think it does","subtitle":null,"summary":"A practical Postgres footgun: AT TIME ZONE 'UTC' converts timestamptz to timestamp without time zone—so month math and equality break unless you apply AT TIME ZONE twice.","content_type":"tutorial","language":"en","canonical_url":"https://bookofrevenue.com/blog/6ab81e9a97a13f0001f7e4e1/postgres-at-time-zone-u-does-not-do-what-you-think-it-does","author":{"name":"Tanin Nanakorn","url":"https://tanin.nanakorn.com/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Book of Revenue","url":"https://bookofrevenue.com/","listing_slug":null,"listing":null},"topics":[{"name":"Databases","slug":"databases","url":"https://listedarticles.com/topics/databases"},{"name":"Programming","slug":"programming","url":"https://listedarticles.com/topics/programming"},{"name":"Tutorials","slug":"tutorials","url":"https://listedarticles.com/topics/tutorials"},{"name":"Engineering","slug":"engineering","url":"https://listedarticles.com/topics/engineering"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":538,"reading_minutes":2,"published_at":"2026-09-27T05:42:15.000Z","added_at":"2026-09-28T15:26:07.397Z","updated_at":"2026-09-28T15:26:07.397Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":false},"profile_url":"https://listedarticles.com/articles/postgres-at-time-zone-utc-does-not-do-what-you-think-it-does","markdown_url":"https://listedarticles.com/articles/postgres-at-time-zone-utc-does-not-do-what-you-think-it-does.md","example":false,"citation":"Tanin Nanakorn, Book of Revenue. \"Postgres AT TIME ZONE 'UTC' does NOT do what you think it does.\" 27 Sept 2026. https://bookofrevenue.com/blog/6ab81e9a97a13f0001f7e4e1/postgres-at-time-zone-u-does-not-do-what-you-think-it-does (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://bookofrevenue.com/blog/6ab81e9a97a13f0001f7e4e1/postgres-at-time-zone-u-does-not-do-what-you-think-it-does"},"snippet":null,"score":null},{"slug":"the-query-finished-why-is-my-fabric-sql-database-still-consuming-cus","title":"The query finished… Why is my Fabric SQL database still consuming CUs?","subtitle":null,"summary":"Two minutes of SQL database activity in Microsoft Fabric can mean ~17 minutes of compute billing. Nikola Ilic walks through CU metering with application, development, and troubleshooting examples.","content_type":"tutorial","language":"en","canonical_url":"https://data-mozart.com/the-query-finished-why-is-my-fabric-sql-database-still-consuming-cus/","author":{"name":"Nikola Ilic","url":"https://data-mozart.com/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"Data Mozart","url":"https://data-mozart.com/","listing_slug":null,"listing":null},"topics":[{"name":"Data Engineering","slug":"data-engineering","url":"https://listedarticles.com/topics/data-engineering"},{"name":"Databases","slug":"databases","url":"https://listedarticles.com/topics/databases"},{"name":"Cloud Infrastructure","slug":"cloud-infrastructure","url":"https://listedarticles.com/topics/cloud-infrastructure"},{"name":"Performance","slug":"performance","url":"https://listedarticles.com/topics/performance"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":1796,"reading_minutes":8,"published_at":"2026-09-16T08:00:28.000Z","added_at":"2026-09-17T18:26:27.418Z","updated_at":"2026-09-17T18:26:27.418Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":false},"profile_url":"https://listedarticles.com/articles/the-query-finished-why-is-my-fabric-sql-database-still-consuming-cus","markdown_url":"https://listedarticles.com/articles/the-query-finished-why-is-my-fabric-sql-database-still-consuming-cus.md","example":false,"citation":"Nikola Ilic, Data Mozart. \"The query finished… Why is my Fabric SQL database still consuming CUs?.\" 16 Sept 2026. https://data-mozart.com/the-query-finished-why-is-my-fabric-sql-database-still-consuming-cus/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://data-mozart.com/the-query-finished-why-is-my-fabric-sql-database-still-consuming-cus/"},"snippet":null,"score":null}],"total":6,"count":6,"next_offset":null,"has_more":false,"query":{"q":null,"content_type":"tutorial","topic":"databases","publisher":null,"about":null,"author":null,"language":null,"sort":"newest","limit":20,"offset":0}}