[{"type_of":"article","id":3477706,"title":"The Formula Was Exact. The Assumption Was Wrong. That's Not an AI Problem.","description":"Your geology will always govern your geophysics.   My lecturer said it once. I wrote it down. I...","readable_publish_date":"Apr 10","slug":"the-formula-was-exact-the-assumption-was-wrong-thats-not-an-ai-problem-58dm","path":"/dannwaneri/the-formula-was-exact-the-assumption-was-wrong-thats-not-an-ai-problem-58dm","url":"https://dev.to/dannwaneri/the-formula-was-exact-the-assumption-was-wrong-thats-not-an-ai-problem-58dm","comments_count":3,"public_reactions_count":17,"collection_id":null,"published_timestamp":"2026-04-10T15:07:48Z","language":"en","subforem_id":1,"positive_reactions_count":17,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy28emsiflw6aqahqot7b.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy28emsiflw6aqahqot7b.jpg","canonical_url":"https://dev.to/dannwaneri/the-formula-was-exact-the-assumption-was-wrong-thats-not-an-ai-problem-58dm","created_at":"2026-04-09T17:46:00Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-10T15:07:48Z","last_comment_at":"2026-04-11T11:48:39Z","reading_time_minutes":5,"tag_list":["ai","webdev","career","python"],"tags":"ai, webdev, career, python","user":{"name":"Daniel Nwaneri","username":"dannwaneri","twitter_username":"dannwaneri","github_username":"dannwaneri","user_id":3606168,"website_url":"https://github.com/dannwaneri","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3606168%2Fa6853c87-4daa-4bea-87e8-d1bd0d8a59d7.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3606168%2Fa6853c87-4daa-4bea-87e8-d1bd0d8a59d7.jpg"}},{"type_of":"article","id":3485276,"title":"Build a Desktop File Organizer in 35 Lines of Python — Weekend Project","description":"Your Downloads folder is a mess. Mine was too — 400+ files, zero organization. So I spent a Saturday...","readable_publish_date":"Apr 11","slug":"build-a-desktop-file-organizer-in-35-lines-of-python-weekend-project-3o4h","path":"/automate-archit/build-a-desktop-file-organizer-in-35-lines-of-python-weekend-project-3o4h","url":"https://dev.to/automate-archit/build-a-desktop-file-organizer-in-35-lines-of-python-weekend-project-3o4h","comments_count":1,"public_reactions_count":5,"collection_id":null,"published_timestamp":"2026-04-11T04:50:20Z","language":"en","subforem_id":1,"positive_reactions_count":5,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu6bgfk2tcy9z2dfxm5yw.png","canonical_url":"https://dev.to/automate-archit/build-a-desktop-file-organizer-in-35-lines-of-python-weekend-project-3o4h","created_at":"2026-04-11T04:50:20Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-11T04:50:20Z","last_comment_at":"2026-04-12T21:04:46Z","reading_time_minutes":3,"tag_list":["python","automation","beginners","productivity"],"tags":"python, automation, beginners, productivity","user":{"name":"Archit Mittal","username":"automate-archit","twitter_username":null,"github_username":"archit1302","user_id":583571,"website_url":"https://www.linkedin.com/in/automate-archit","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F583571%2Fc2c0b665-b457-4281-a519-d6e76245e21f.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F583571%2Fc2c0b665-b457-4281-a519-d6e76245e21f.png"}},{"type_of":"article","id":3489011,"title":"Building a Football Analytics Pipeline: Patterns, Tradeoffs, and What Production Would Look Like","description":"Football is the most watched sport on the planet. Millions of fans follow their teams across leagues,...","readable_publish_date":"Apr 12","slug":"building-a-football-analytics-pipeline-patterns-tradeoffs-and-what-production-would-look-like-n66","path":"/ayoabass777/building-a-football-analytics-pipeline-patterns-tradeoffs-and-what-production-would-look-like-n66","url":"https://dev.to/ayoabass777/building-a-football-analytics-pipeline-patterns-tradeoffs-and-what-production-would-look-like-n66","comments_count":1,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2026-04-12T02:50:39Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwtyx04trbosvl0d97em.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmwtyx04trbosvl0d97em.png","canonical_url":"https://dev.to/ayoabass777/building-a-football-analytics-pipeline-patterns-tradeoffs-and-what-production-would-look-like-n66","created_at":"2026-04-12T02:50:39Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T02:50:39Z","last_comment_at":"2026-04-12T16:53:50Z","reading_time_minutes":9,"tag_list":["dataengineering","python","aws","dbt"],"tags":"dataengineering, python, aws, dbt","user":{"name":"ayoabass777","username":"ayoabass777","twitter_username":null,"github_username":"ayoabass777","user_id":3874283,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3874283%2F7c93aa46-f08a-4f5a-a2de-6a18c0800659.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3874283%2F7c93aa46-f08a-4f5a-a2de-6a18c0800659.png"}},{"type_of":"article","id":3484941,"title":"I got mass-flagged by GPTZero for my own writing. So I built an open-source alternative in pure Python.","description":"Every AI text detector is either paid or closed-source.  GPTZero charges $15/month. Originality.ai...","readable_publish_date":"Apr 11","slug":"i-got-mass-flagged-by-gptzero-for-my-own-writing-so-i-built-an-open-source-alternative-in-pure-5aj2","path":"/wd400/i-got-mass-flagged-by-gptzero-for-my-own-writing-so-i-built-an-open-source-alternative-in-pure-5aj2","url":"https://dev.to/wd400/i-got-mass-flagged-by-gptzero-for-my-own-writing-so-i-built-an-open-source-alternative-in-pure-5aj2","comments_count":1,"public_reactions_count":3,"collection_id":38454,"published_timestamp":"2026-04-11T03:18:51Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhzl5ave5fdvp3vj0gov1.png","canonical_url":"https://github.com/stef41/lmscan","created_at":"2026-04-11T03:18:51Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-11T03:18:51Z","last_comment_at":"2026-04-12T01:16:54Z","reading_time_minutes":2,"tag_list":["python","ai","opensource","showdev"],"tags":"python, ai, opensource, showdev","user":{"name":"wd400","username":"wd400","twitter_username":null,"github_username":"stef41","user_id":1355918,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1355918%2F247930ae-4e07-4667-a5c3-c261e6e08a4d.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1355918%2F247930ae-4e07-4667-a5c3-c261e6e08a4d.jpeg"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":3484943,"title":"I code-reviewed 3 \"vibe-coded\" PRs last week. Every one had hardcoded API keys. So I built a grader.","description":"\"Vibe coding\" is everywhere. You prompt an AI, it writes your whole project, you ship it.  Last week...","readable_publish_date":"Apr 11","slug":"i-code-reviewed-3-vibe-coded-prs-last-week-every-one-had-hardcoded-api-keys-so-i-built-a-grader-21ii","path":"/wd400/i-code-reviewed-3-vibe-coded-prs-last-week-every-one-had-hardcoded-api-keys-so-i-built-a-grader-21ii","url":"https://dev.to/wd400/i-code-reviewed-3-vibe-coded-prs-last-week-every-one-had-hardcoded-api-keys-so-i-built-a-grader-21ii","comments_count":2,"public_reactions_count":3,"collection_id":38454,"published_timestamp":"2026-04-11T03:19:17Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fa0g5hyygk2ptlpoljh2p.png","canonical_url":"https://dev.to/wd400/i-code-reviewed-3-vibe-coded-prs-last-week-every-one-had-hardcoded-api-keys-so-i-built-a-grader-21ii","created_at":"2026-04-11T03:19:17Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-11T03:19:17Z","last_comment_at":"2026-04-12T07:46:47Z","reading_time_minutes":2,"tag_list":["python","javascript","opensource","showdev"],"tags":"python, javascript, opensource, showdev","user":{"name":"wd400","username":"wd400","twitter_username":null,"github_username":"stef41","user_id":1355918,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1355918%2F247930ae-4e07-4667-a5c3-c261e6e08a4d.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1355918%2F247930ae-4e07-4667-a5c3-c261e6e08a4d.jpeg"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":3486957,"title":"I built a local screen reader that reads your screen aloud — no cloud, no API keys","description":"I got tired of switching between reading and listening, so I built sttts — a local pipeline that...","readable_publish_date":"Apr 11","slug":"i-built-a-local-screen-reader-that-reads-your-screen-aloud-no-cloud-no-api-keys-m9","path":"/paradisecy/i-built-a-local-screen-reader-that-reads-your-screen-aloud-no-cloud-no-api-keys-m9","url":"https://dev.to/paradisecy/i-built-a-local-screen-reader-that-reads-your-screen-aloud-no-cloud-no-api-keys-m9","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-11T12:30:17Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2d0r5jltz977yc2eu32y.png","canonical_url":"https://dev.to/paradisecy/i-built-a-local-screen-reader-that-reads-your-screen-aloud-no-cloud-no-api-keys-m9","created_at":"2026-04-11T12:30:17Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-11T12:30:17Z","last_comment_at":"2026-04-11T12:30:17Z","reading_time_minutes":2,"tag_list":["python","ai","opensource","a11y"],"tags":"python, ai, opensource, a11y","user":{"name":"Andreas Paradisiotis","username":"paradisecy","twitter_username":null,"github_username":null,"user_id":3873495,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3873495%2Fecce284d-4090-4227-bd33-ae632794df07.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3873495%2Fecce284d-4090-4227-bd33-ae632794df07.png"}},{"type_of":"article","id":3491452,"title":"I Thought the Hard Part Was the Code. Turns Out Production Is Where Security Assumptions Go to Die.","description":"This is Part 4 of a 4-part series on building AuthShield - a production-ready standalone...","readable_publish_date":"Apr 13","slug":"i-thought-the-hard-part-was-the-code-turns-out-production-is-where-security-assumptions-go-to-die-6j4","path":"/ravigupta97/i-thought-the-hard-part-was-the-code-turns-out-production-is-where-security-assumptions-go-to-die-6j4","url":"https://dev.to/ravigupta97/i-thought-the-hard-part-was-the-code-turns-out-production-is-where-security-assumptions-go-to-die-6j4","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2026-04-13T03:15:00Z","language":"en","subforem_id":1,"positive_reactions_count":2,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8erqt4rpq2bsa4zlnts6.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8erqt4rpq2bsa4zlnts6.png","canonical_url":"https://dev.to/ravigupta97/i-thought-the-hard-part-was-the-code-turns-out-production-is-where-security-assumptions-go-to-die-6j4","created_at":"2026-04-12T19:30:40Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T03:15:00Z","last_comment_at":"2026-04-13T03:15:00Z","reading_time_minutes":10,"tag_list":["python","security","docker","backend"],"tags":"python, security, docker, backend","user":{"name":"Ravi Gupta","username":"ravigupta97","twitter_username":null,"github_username":"ravigupta97","user_id":3784807,"website_url":"https://ravigupta-portfolio.vercel.app/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3784807%2F6af58333-fc08-430f-9df5-a19e579fcea9.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3784807%2F6af58333-fc08-430f-9df5-a19e579fcea9.jpg"}},{"type_of":"article","id":3491275,"title":"Tuning ML hyperparameters with a swarm optimizer inspired by parrot behavior","description":"When you train a neural network or any ML model, performance depends heavily on hyperparameters —...","readable_publish_date":"Apr 12","slug":"tuning-ml-hyperparameters-with-a-swarm-optimizer-inspired-by-parrot-behavior-1c3k","path":"/vijaygovindaraja/tuning-ml-hyperparameters-with-a-swarm-optimizer-inspired-by-parrot-behavior-1c3k","url":"https://dev.to/vijaygovindaraja/tuning-ml-hyperparameters-with-a-swarm-optimizer-inspired-by-parrot-behavior-1c3k","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2026-04-12T18:39:36Z","language":"en","subforem_id":1,"positive_reactions_count":2,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7lulfri6ramnwauus7pw.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7lulfri6ramnwauus7pw.png","canonical_url":"https://dev.to/vijaygovindaraja/tuning-ml-hyperparameters-with-a-swarm-optimizer-inspired-by-parrot-behavior-1c3k","created_at":"2026-04-12T18:38:00Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T18:39:36Z","last_comment_at":"2026-04-12T18:39:36Z","reading_time_minutes":7,"tag_list":["python","parrot","machinelearning","opensource"],"tags":"python, parrot, machinelearning, opensource","user":{"name":"Vijay Govindaraja","username":"vijaygovindaraja","twitter_username":null,"github_username":"vijaygovindaraja","user_id":3847163,"website_url":"https://vijaygovindaraja.github.io/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3847163%2Fd79d2436-e162-476b-ad26-80f01e4c119a.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3847163%2Fd79d2436-e162-476b-ad26-80f01e4c119a.jpeg"}},{"type_of":"article","id":3472944,"title":"Hardening the Documentation Pipeline: Why I Built a Security-First Markdown Analyzer in Pure Python","description":"🛡️ Beyond Broken Links: The Architecture of Zenzic \"The Sentinel\"   Documentation is often...","readable_publish_date":"Apr 8","slug":"hardening-the-documentation-pipeline-why-i-built-a-security-first-markdown-analyzer-in-pure-python-37h8","path":"/pythonwoods/hardening-the-documentation-pipeline-why-i-built-a-security-first-markdown-analyzer-in-pure-python-37h8","url":"https://dev.to/pythonwoods/hardening-the-documentation-pipeline-why-i-built-a-security-first-markdown-analyzer-in-pure-python-37h8","comments_count":3,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-08T19:38:57Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frhm8jbqbjpdw0puboe49.png","canonical_url":"https://dev.to/pythonwoods/hardening-the-documentation-pipeline-why-i-built-a-security-first-markdown-analyzer-in-pure-python-37h8","created_at":"2026-04-08T19:38:57Z","edited_at":"2026-04-10T20:14:11Z","crossposted_at":null,"published_at":"2026-04-08T19:38:57Z","last_comment_at":"2026-04-11T12:09:16Z","reading_time_minutes":2,"tag_list":["python","security","docusaurus","devops"],"tags":"python, security, docusaurus, devops","user":{"name":"PythonWoods","username":"pythonwoods","twitter_username":null,"github_username":null,"user_id":3868452,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3868452%2Fd98e5149-60d4-4406-bdba-7fe6ecca5adb.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3868452%2Fd98e5149-60d4-4406-bdba-7fe6ecca5adb.png"}},{"type_of":"article","id":3478937,"title":"I got tired of LaTeX, so I built a zero-config Python CLI to turn Markdown into premium PDFs","description":"Have you ever just wanted to turn your standard README.md into a nice, academic-looking PDF without...","readable_publish_date":"Apr 10","slug":"i-got-tired-of-latex-so-i-built-a-zero-config-python-cli-to-turn-markdown-into-premium-pdfs-oob","path":"/leonardosalasd/i-got-tired-of-latex-so-i-built-a-zero-config-python-cli-to-turn-markdown-into-premium-pdfs-oob","url":"https://dev.to/leonardosalasd/i-got-tired-of-latex-so-i-built-a-zero-config-python-cli-to-turn-markdown-into-premium-pdfs-oob","comments_count":0,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2026-04-10T03:08:37Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsb8d67ac087srey1liwc.png","canonical_url":"https://dev.to/leonardosalasd/i-got-tired-of-latex-so-i-built-a-zero-config-python-cli-to-turn-markdown-into-premium-pdfs-oob","created_at":"2026-04-10T03:08:37Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-10T03:08:37Z","last_comment_at":"2026-04-10T03:08:37Z","reading_time_minutes":2,"tag_list":["python","opensource","productivity","cli"],"tags":"python, opensource, productivity, cli","user":{"name":"Leonardo Salas","username":"leonardosalasd","twitter_username":null,"github_username":"leonardosalasd","user_id":3870802,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3870802%2Fc4940737-c509-4a8b-ae07-60efcaf64cc1.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3870802%2Fc4940737-c509-4a8b-ae07-60efcaf64cc1.jpeg"}},{"type_of":"article","id":3488404,"title":"FERPA Compliance in RAG Pipelines: Five Rules Your Enterprise System Probably Breaks","description":"If you are building a retrieval-augmented generation system for a higher-education institution, your...","readable_publish_date":"Apr 11","slug":"ferpa-compliance-in-rag-pipelines-five-rules-your-enterprise-system-probably-breaks-5762","path":"/ashutoshrana/ferpa-compliance-in-rag-pipelines-five-rules-your-enterprise-system-probably-breaks-5762","url":"https://dev.to/ashutoshrana/ferpa-compliance-in-rag-pipelines-five-rules-your-enterprise-system-probably-breaks-5762","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-11T20:50:23Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fay9ssewtdieabdfa27w0.png","canonical_url":"https://dev.to/ashutoshrana/ferpa-compliance-in-rag-pipelines-five-rules-your-enterprise-system-probably-breaks-5762","created_at":"2026-04-11T20:50:23Z","edited_at":"2026-04-12T02:57:52Z","crossposted_at":null,"published_at":"2026-04-11T20:50:23Z","last_comment_at":"2026-04-11T20:50:23Z","reading_time_minutes":6,"tag_list":["rag","python","compliance","enterpriseai"],"tags":"rag, python, compliance, enterpriseai","user":{"name":"Ashutosh Rana","username":"ashutoshrana","twitter_username":"AshutoshRana12","github_username":"ashutoshrana","user_id":3874099,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3874099%2F4e0f4a1a-9aed-4405-81da-2e162de258db.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3874099%2F4e0f4a1a-9aed-4405-81da-2e162de258db.png"}},{"type_of":"article","id":3484957,"title":"I built a Python CLI toolkit because everything felt fragmented","description":"Most Python CLI tools start simple… and then slowly turn into chaos.  You begin with a couple of...","readable_publish_date":"Apr 11","slug":"i-built-a-python-cli-toolkit-because-everything-felt-fragmented-37f6","path":"/arjun-m/i-built-a-python-cli-toolkit-because-everything-felt-fragmented-37f6","url":"https://dev.to/arjun-m/i-built-a-python-cli-toolkit-because-everything-felt-fragmented-37f6","comments_count":0,"public_reactions_count":2,"collection_id":null,"published_timestamp":"2026-04-11T03:28:37Z","language":"en","subforem_id":1,"positive_reactions_count":2,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fks3rk65qsl2ionlfub7p.png","canonical_url":"https://dev.to/arjun-m/i-built-a-python-cli-toolkit-because-everything-felt-fragmented-37f6","created_at":"2026-04-11T03:28:37Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-11T03:28:37Z","last_comment_at":"2026-04-11T03:28:37Z","reading_time_minutes":3,"tag_list":["cli","python","showdev","tooling"],"tags":"cli, python, showdev, tooling","user":{"name":"Arjun M","username":"arjun-m","twitter_username":null,"github_username":null,"user_id":3872726,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3872726%2F738e62b4-dc90-4280-893b-7a0a13df5c83.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3872726%2F738e62b4-dc90-4280-893b-7a0a13df5c83.png"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":3489836,"title":"My Journey Into Python: From Beginner to Building Real Projects","description":"🚀 My Journey Into Python   Hello everyone 👋  My name is Amir Hesham, and I’m an aspiring...","readable_publish_date":"Apr 12","slug":"my-journey-into-python-from-beginner-to-building-real-projects-1bif","path":"/amirheshamdev/my-journey-into-python-from-beginner-to-building-real-projects-1bif","url":"https://dev.to/amirheshamdev/my-journey-into-python-from-beginner-to-building-real-projects-1bif","comments_count":2,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-12T09:40:30Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp0lak78r28z4u3k1xqid.png","canonical_url":"https://dev.to/amirheshamdev/my-journey-into-python-from-beginner-to-building-real-projects-1bif","created_at":"2026-04-12T09:40:30Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T09:40:30Z","last_comment_at":"2026-04-12T21:32:30Z","reading_time_minutes":1,"tag_list":["beginners","codenewbie","programming","python"],"tags":"beginners, codenewbie, programming, python","user":{"name":"Amir hesham","username":"amirheshamdev","twitter_username":null,"github_username":null,"user_id":3874591,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3874591%2F05d9ff56-57f1-4cdf-8922-7e03d8e21a72.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3874591%2F05d9ff56-57f1-4cdf-8922-7e03d8e21a72.png"}},{"type_of":"article","id":3490893,"title":"Understanding Python Selenium Architecture","description":"Understanding Python Selenium Architecture  In today’s fast-moving tech world, testing web...","readable_publish_date":"Apr 12","slug":"understanding-python-selenium-architecture-4db9","path":"/ksingh2141/understanding-python-selenium-architecture-4db9","url":"https://dev.to/ksingh2141/understanding-python-selenium-architecture-4db9","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T16:22:09Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fefnmcfs1nk2z3id6gbm3.png","canonical_url":"https://dev.to/ksingh2141/understanding-python-selenium-architecture-4db9","created_at":"2026-04-12T16:22:09Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T16:22:09Z","last_comment_at":"2026-04-12T16:22:09Z","reading_time_minutes":2,"tag_list":["architecture","automation","python","testing"],"tags":"architecture, automation, python, testing","user":{"name":"ksingh2141","username":"ksingh2141","twitter_username":null,"github_username":"ksingh2141","user_id":3744737,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3744737%2F457fe734-d266-4c7b-9714-2669dce80d44.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3744737%2F457fe734-d266-4c7b-9714-2669dce80d44.png"}},{"type_of":"article","id":3487543,"title":"AtCoder Beginner Contest 453 参加記録と解答例 (A〜C問題)","description":"本記事は、AtCoder Beginner Contest 453 (ABC453)...","readable_publish_date":"Apr 11","slug":"atcoder-beginner-contest-453-can-jia-ji-lu-tojie-da-li-a-cwen-ti--534f","path":"/iwamutsu256/atcoder-beginner-contest-453-can-jia-ji-lu-tojie-da-li-a-cwen-ti--534f","url":"https://dev.to/iwamutsu256/atcoder-beginner-contest-453-can-jia-ji-lu-tojie-da-li-a-cwen-ti--534f","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-11T15:11:48Z","language":"ja","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvq1s0fwdllkk5vuj4j7v.png","canonical_url":"https://dev.to/iwamutsu256/atcoder-beginner-contest-453-can-jia-ji-lu-tojie-da-li-a-cwen-ti--534f","created_at":"2026-04-11T14:49:59Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-11T15:11:48Z","last_comment_at":"2026-04-11T15:11:48Z","reading_time_minutes":1,"tag_list":["atcoder","python","競技プログラミング","bit全探索"],"tags":"atcoder, python, 競技プログラミング, bit全探索","user":{"name":"iwamutsu256","username":"iwamutsu256","twitter_username":null,"github_username":"iwamutsu256","user_id":3813685,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3813685%2F8081b4c0-be7f-4be8-9f41-570e7dffbda6.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3813685%2F8081b4c0-be7f-4be8-9f41-570e7dffbda6.png"}},{"type_of":"article","id":3477630,"title":"How I Used Nemotron 3 to Help Me Find the Perfect Dishrack","description":"After recently moving into a new apartment, I realized how much time I was spending searching online...","readable_publish_date":"Apr 9","slug":"how-did-nemotron-3-help-me-find-the-perfect-dish-rack-479c","path":"/digitalocean/how-did-nemotron-3-help-me-find-the-perfect-dish-rack-479c","url":"https://dev.to/digitalocean/how-did-nemotron-3-help-me-find-the-perfect-dish-rack-479c","comments_count":0,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2026-04-09T18:00:00Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71eitu8as2mcrod9gp5m.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71eitu8as2mcrod9gp5m.png","canonical_url":"https://dev.to/digitalocean/how-did-nemotron-3-help-me-find-the-perfect-dish-rack-479c","created_at":"2026-04-09T17:14:11Z","edited_at":"2026-04-09T17:21:25Z","crossposted_at":null,"published_at":"2026-04-09T18:00:00Z","last_comment_at":"2026-04-09T18:00:00Z","reading_time_minutes":5,"tag_list":["ai","nemotron","python","llm"],"tags":"ai, nemotron, python, llm","user":{"name":"Andrew Dugan","username":"andrew_d","twitter_username":null,"github_username":null,"user_id":3802433,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3802433%2F9f67dbc3-15c2-4e32-b5d2-ced4340bacf3.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3802433%2F9f67dbc3-15c2-4e32-b5d2-ced4340bacf3.png"},"organization":{"name":"DigitalOcean","username":"digitalocean","slug":"digitalocean","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F175%2F369f1227-0eac-4a88-8d3c-08851bf0b117.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F175%2F369f1227-0eac-4a88-8d3c-08851bf0b117.png"}},{"type_of":"article","id":3488566,"title":"Unlocking Efficiency: Top Edge Computing Trends for a Smarter Future","description":"Edge Computing Trends: Revolutionizing Data Processing and Analytics           ...","readable_publish_date":"Apr 11","slug":"unlocking-efficiency-top-edge-computing-trends-for-a-smarter-future-3eah","path":"/pradeeppariyar/unlocking-efficiency-top-edge-computing-trends-for-a-smarter-future-3eah","url":"https://dev.to/pradeeppariyar/unlocking-efficiency-top-edge-computing-trends-for-a-smarter-future-3eah","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-11T22:09:45Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F11boe4blon5t1jluy2k7.png","canonical_url":"https://dev.to/pradeeppariyar/unlocking-efficiency-top-edge-computing-trends-for-a-smarter-future-3eah","created_at":"2026-04-11T22:09:22Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-11T22:09:45Z","last_comment_at":"2026-04-11T22:09:45Z","reading_time_minutes":3,"tag_list":["ai","machinelearning","python","technology"],"tags":"ai, machinelearning, python, technology","user":{"name":"pradeep","username":"pradeeppariyar","twitter_username":null,"github_username":"pradeeppariyar","user_id":1132122,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1132122%2Faa5cf7d8-f50a-4c6d-b83f-363ef6d334f2.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1132122%2Faa5cf7d8-f50a-4c6d-b83f-363ef6d334f2.png"}},{"type_of":"article","id":3491880,"title":"How to Automate Your Life with Python Scripts - Updated April 12, 2026","description":"Have you ever found yourself tangled in the repetitive tasks of daily life, wishing for a magical...","readable_publish_date":"Apr 12","slug":"how-to-automate-your-life-with-python-scripts-updated-april-12-2026-48n6","path":"/mukhtar_abdussalam_0de093/how-to-automate-your-life-with-python-scripts-updated-april-12-2026-48n6","url":"https://dev.to/mukhtar_abdussalam_0de093/how-to-automate-your-life-with-python-scripts-updated-april-12-2026-48n6","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-12T23:43:15Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foc3hfre99p5z67oxjit4.png","canonical_url":"https://dev.to/mukhtar_abdussalam_0de093/how-to-automate-your-life-with-python-scripts-updated-april-12-2026-48n6","created_at":"2026-04-12T23:43:15Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-12T23:43:15Z","last_comment_at":"2026-04-12T23:43:15Z","reading_time_minutes":3,"tag_list":["python","automation","productivity"],"tags":"python, automation, productivity","user":{"name":"Mukhtar Abdussalam","username":"mukhtar_abdussalam_0de093","twitter_username":null,"github_username":null,"user_id":3844235,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3844235%2F12baceec-e604-449b-9aae-0b8e8632d2a1.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3844235%2F12baceec-e604-449b-9aae-0b8e8632d2a1.jpg"}},{"type_of":"article","id":3489297,"title":"Building a Multimodal Agent with the ADK, Amazon ECS Express, and Gemini Flash Live 3.1","description":"Leveraging the Google Agent Development Kit (ADK) and the underlying Gemini LLM to build Agentic apps...","readable_publish_date":"Apr 12","slug":"building-a-multimodal-agent-with-the-adk-amazon-ecs-express-and-gemini-flash-live-31-25g9","path":"/aws-builders/building-a-multimodal-agent-with-the-adk-amazon-ecs-express-and-gemini-flash-live-31-25g9","url":"https://dev.to/aws-builders/building-a-multimodal-agent-with-the-adk-amazon-ecs-express-and-gemini-flash-live-31-25g9","comments_count":0,"public_reactions_count":0,"collection_id":36883,"published_timestamp":"2026-04-12T14:57:48Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0lh1oannhwtzedva2hk5.png","canonical_url":"https://xbill999.medium.com/building-a-multimodal-agent-with-the-adk-amazon-ecs-express-and-gemini-flash-live-3-1-c14186afb47f","created_at":"2026-04-12T05:24:00Z","edited_at":null,"crossposted_at":"2026-04-12T14:57:48Z","published_at":"2026-04-11T18:23:11Z","last_comment_at":"2026-04-11T18:23:11Z","reading_time_minutes":12,"tag_list":["googleadk","gemini","geminilive","python"],"tags":"googleadk, gemini, geminilive, python","user":{"name":"xbill","username":"xbill","twitter_username":null,"github_username":"xbill9","user_id":3490099,"website_url":"https://g.dev/xbill","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg"},"organization":{"name":"AWS Community Builders ","username":"aws-builders","slug":"aws-builders","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2794%2F88da75b6-aadd-4ea1-8083-ae2dfca8be94.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2794%2F88da75b6-aadd-4ea1-8083-ae2dfca8be94.png"}},{"type_of":"article","id":3488340,"title":"Nautilus Agent: Breaking the Read-Only Loop","description":"Nautilus Agent: Breaking the Read-Only Loop   In autonomous agent development, a common...","readable_publish_date":"Apr 11","slug":"nautilus-agent-breaking-the-read-only-loop-3925","path":"/chunxiaoxx/nautilus-agent-breaking-the-read-only-loop-3925","url":"https://dev.to/chunxiaoxx/nautilus-agent-breaking-the-read-only-loop-3925","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-11T20:07:19Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqzfze2vgshe9wusrr79x.png","canonical_url":"https://dev.to/chunxiaoxx/nautilus-agent-breaking-the-read-only-loop-3925","created_at":"2026-04-11T20:07:19Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-11T20:07:19Z","last_comment_at":"2026-04-11T20:07:19Z","reading_time_minutes":1,"tag_list":["ai","agents","python","development"],"tags":"ai, agents, python, development","user":{"name":"chunxiaoxx","username":"chunxiaoxx","twitter_username":"chunxiaoxx","github_username":"chunxiaoxx","user_id":3855870,"website_url":"https://www.nautilus.social/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3855870%2F4af130a7-28cc-44ac-8121-cd9c1396872c.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3855870%2F4af130a7-28cc-44ac-8121-cd9c1396872c.png"}},{"type_of":"article","id":3489296,"title":"Building a Multimodal Agent with the ADK, Amazon Lightsail, and Gemini Flash Live 3.1","description":"Leveraging the Google Agent Development Kit (ADK) and the underlying Gemini LLM to build Agentic apps...","readable_publish_date":"Apr 12","slug":"building-a-multimodal-agent-with-the-adk-amazon-lightsail-and-gemini-flash-live-31-33md","path":"/aws-builders/building-a-multimodal-agent-with-the-adk-amazon-lightsail-and-gemini-flash-live-31-33md","url":"https://dev.to/aws-builders/building-a-multimodal-agent-with-the-adk-amazon-lightsail-and-gemini-flash-live-31-33md","comments_count":0,"public_reactions_count":0,"collection_id":36883,"published_timestamp":"2026-04-12T14:58:16Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ocblgouuqsu2qopt90e.png","canonical_url":"https://xbill999.medium.com/building-a-multimodal-agent-with-the-adk-amazon-lightsail-and-gemini-flash-live-3-1-f2499f82d4d2","created_at":"2026-04-12T05:23:59Z","edited_at":null,"crossposted_at":"2026-04-12T14:58:16Z","published_at":"2026-04-11T14:31:32Z","last_comment_at":"2026-04-11T14:31:32Z","reading_time_minutes":11,"tag_list":["python","geminilive","adk","gemini"],"tags":"python, geminilive, adk, gemini","user":{"name":"xbill","username":"xbill","twitter_username":null,"github_username":"xbill9","user_id":3490099,"website_url":"https://g.dev/xbill","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg"},"organization":{"name":"AWS Community Builders ","username":"aws-builders","slug":"aws-builders","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2794%2F88da75b6-aadd-4ea1-8083-ae2dfca8be94.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2794%2F88da75b6-aadd-4ea1-8083-ae2dfca8be94.png"}},{"type_of":"article","id":3478380,"title":"Building a Multimodal Cross Cloud Live Agent with ADK, Amazon ECS Express, and Gemini CLI","description":"Leveraging the Google Agent Development Kit (ADK) and the underlying Gemini LLM to build cross cloud...","readable_publish_date":"Apr 10","slug":"building-a-multimodal-cross-cloud-live-agent-with-adk-amazon-ecs-express-and-gemini-cli-69l","path":"/aws-builders/building-a-multimodal-cross-cloud-live-agent-with-adk-amazon-ecs-express-and-gemini-cli-69l","url":"https://dev.to/aws-builders/building-a-multimodal-cross-cloud-live-agent-with-adk-amazon-ecs-express-and-gemini-cli-69l","comments_count":0,"public_reactions_count":0,"collection_id":36883,"published_timestamp":"2026-04-10T12:58:04Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2pkg39sri36vyt59zb0w.png","canonical_url":"https://xbill999.medium.com/building-a-multimodal-cross-cloud-live-agent-with-adk-amazon-ecs-express-and-gemini-cli-0ac29b5615fe","created_at":"2026-04-09T22:25:30Z","edited_at":null,"crossposted_at":"2026-04-10T12:58:04Z","published_at":"2026-04-09T14:14:43Z","last_comment_at":"2026-04-09T14:14:43Z","reading_time_minutes":6,"tag_list":["geminilive","python","gemini","googleadk"],"tags":"geminilive, python, gemini, googleadk","user":{"name":"xbill","username":"xbill","twitter_username":null,"github_username":"xbill9","user_id":3490099,"website_url":"https://g.dev/xbill","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3490099%2Fc6a975d0-cd94-485d-82b1-14ed5b344fcf.jpg"},"organization":{"name":"AWS Community Builders ","username":"aws-builders","slug":"aws-builders","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2794%2F88da75b6-aadd-4ea1-8083-ae2dfca8be94.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F2794%2F88da75b6-aadd-4ea1-8083-ae2dfca8be94.png"}},{"type_of":"article","id":3472607,"title":"Handling missing dict keys, revisited","description":"A while back, I wrote a post showing how to handle missing dict keys. In summary:   Using...","readable_publish_date":"Apr 8","slug":"handling-missing-dict-keys-revisited-4n53","path":"/wangonya/handling-missing-dict-keys-revisited-4n53","url":"https://dev.to/wangonya/handling-missing-dict-keys-revisited-4n53","comments_count":0,"public_reactions_count":1,"collection_id":null,"published_timestamp":"2026-04-08T17:12:04Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F252vf9p6b5zw9z1u32cw.png","canonical_url":"https://wangonya.com/blog/handling-missing-dict-keys-revisited/","created_at":"2026-04-08T17:12:04Z","edited_at":"2026-04-10T09:22:36Z","crossposted_at":null,"published_at":"2026-04-08T17:12:04Z","last_comment_at":"2026-04-08T17:12:04Z","reading_time_minutes":2,"tag_list":["python"],"tags":"python","user":{"name":"Kelvin Wangonya","username":"wangonya","twitter_username":"wang0nya","github_username":"wangonya","user_id":63723,"website_url":"https://wangonya.com/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F63723%2F5217688b-8091-43b7-8d55-8f89b6c1eeee.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F63723%2F5217688b-8091-43b7-8d55-8f89b6c1eeee.jpeg"}},{"type_of":"article","id":3480417,"title":"Friday Shipped \u0026 Scarred #3: PC Workman 1.7.1, The Foundation Great Release","description":"PC Workman v1.7.1 shipped this morning: 18 test cases rewritten (previously broken) ~130 lines dead...","readable_publish_date":"Apr 10","slug":"friday-shipped-scarred-3-pc-workman-171-the-foundation-great-release-10aj","path":"/huckler/friday-shipped-scarred-3-pc-workman-171-the-foundation-great-release-10aj","url":"https://dev.to/huckler/friday-shipped-scarred-3-pc-workman-171-the-foundation-great-release-10aj","comments_count":0,"public_reactions_count":6,"collection_id":null,"published_timestamp":"2026-04-10T08:32:02Z","language":"en","subforem_id":1,"positive_reactions_count":6,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1dzcdy5qayur8qi6wj7.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1dzcdy5qayur8qi6wj7.jpg","canonical_url":"https://dev.to/huckler/friday-shipped-scarred-3-pc-workman-171-the-foundation-great-release-10aj","created_at":"2026-04-10T08:32:02Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-10T08:32:02Z","last_comment_at":"2026-04-10T08:32:02Z","reading_time_minutes":7,"tag_list":["python","programming","github","opensource"],"tags":"python, programming, github, opensource","user":{"name":"Marcin Firmuga","username":"huckler","twitter_username":"hck_lab","github_username":"HuckleR2003","user_id":3693207,"website_url":"https://linktr.ee/marcin_firmuga","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3693207%2F6a4682e6-273e-4a98-9ce7-653391a5abcc.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3693207%2F6a4682e6-273e-4a98-9ce7-653391a5abcc.png"}},{"type_of":"article","id":3477771,"title":"Enterprise Search Just Got a Protocol Upgrade: Inside Pureinsights Discovery 2.8*","description":"The Shreesozo Dispatch | MCP \u0026amp; Agentic AI | April 2026           The Problem Nobody Was Fixing...","readable_publish_date":"Apr 9","slug":"enterprise-search-just-got-a-protocol-upgrade-inside-pureinsights-discovery-28-456k","path":"/om_shree_0709/enterprise-search-just-got-a-protocol-upgrade-inside-pureinsights-discovery-28-456k","url":"https://dev.to/om_shree_0709/enterprise-search-just-got-a-protocol-upgrade-inside-pureinsights-discovery-28-456k","comments_count":0,"public_reactions_count":22,"collection_id":null,"published_timestamp":"2026-04-09T18:12:48Z","language":"en","subforem_id":1,"positive_reactions_count":22,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlfzgmnsjgz2e66zrimz.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzlfzgmnsjgz2e66zrimz.png","canonical_url":"https://dev.to/om_shree_0709/enterprise-search-just-got-a-protocol-upgrade-inside-pureinsights-discovery-28-456k","created_at":"2026-04-09T18:12:48Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-09T18:12:48Z","last_comment_at":"2026-04-09T18:12:48Z","reading_time_minutes":5,"tag_list":["ai","programming","python","discuss"],"tags":"ai, programming, python, discuss","user":{"name":"Om Shree","username":"om_shree_0709","twitter_username":"OmShree0709","github_username":"Om-Shree-0709","user_id":2900392,"website_url":"https://shreesozo.com","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2900392%2F78ad1723-16ab-4e46-b39c-7f3feb416d23.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F2900392%2F78ad1723-16ab-4e46-b39c-7f3feb416d23.jpg"},"flare_tag":{"name":"discuss","bg_color_hex":"#71EA8B","text_color_hex":"#FFFFFF"}},{"type_of":"article","id":3473975,"title":"How I Built an Automated WhatsApp Invoice System for My Client in 3 Hours","description":"Last week, a CA firm in Jaipur reached out to me with a painfully familiar problem: their accountant...","readable_publish_date":"Apr 9","slug":"how-i-built-an-automated-whatsapp-invoice-system-for-my-client-in-3-hours-28dd","path":"/automate-archit/how-i-built-an-automated-whatsapp-invoice-system-for-my-client-in-3-hours-28dd","url":"https://dev.to/automate-archit/how-i-built-an-automated-whatsapp-invoice-system-for-my-client-in-3-hours-28dd","comments_count":0,"public_reactions_count":5,"collection_id":null,"published_timestamp":"2026-04-09T04:46:34Z","language":"en","subforem_id":1,"positive_reactions_count":5,"cover_image":null,"social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi475iugqtow5gaccr1lm.png","canonical_url":"https://dev.to/automate-archit/how-i-built-an-automated-whatsapp-invoice-system-for-my-client-in-3-hours-28dd","created_at":"2026-04-09T04:46:34Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-09T04:46:34Z","last_comment_at":"2026-04-09T04:46:34Z","reading_time_minutes":5,"tag_list":["python","automation","tutorial","productivity"],"tags":"python, automation, tutorial, productivity","user":{"name":"Archit Mittal","username":"automate-archit","twitter_username":null,"github_username":"archit1302","user_id":583571,"website_url":"https://www.linkedin.com/in/automate-archit","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F583571%2Fc2c0b665-b457-4281-a519-d6e76245e21f.png","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F583571%2Fc2c0b665-b457-4281-a519-d6e76245e21f.png"}},{"type_of":"article","id":3489715,"title":"Dev Log #4 A Week of Deep Integrations","description":"A high-output week with 33 commits and over 3,000 lines of new code. I focused heavily on database...","readable_publish_date":"Apr 13","slug":"dev-log-4-a-week-of-deep-integrations-4b27","path":"/yashksaini/dev-log-4-a-week-of-deep-integrations-4b27","url":"https://dev.to/yashksaini/dev-log-4-a-week-of-deep-integrations-4b27","comments_count":0,"public_reactions_count":5,"collection_id":null,"published_timestamp":"2026-04-13T05:41:21Z","language":"en","subforem_id":1,"positive_reactions_count":5,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5b4ubr5o7wc6nrf9fbh.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg5b4ubr5o7wc6nrf9fbh.png","canonical_url":"https://dev.to/yashksaini/dev-log-4-a-week-of-deep-integrations-4b27","created_at":"2026-04-12T08:56:24Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-13T05:41:21Z","last_comment_at":"2026-04-13T05:41:21Z","reading_time_minutes":4,"tag_list":["python","typescript","backend","consistency"],"tags":"python, typescript, backend, consistency","user":{"name":"Yash Kumar Saini","username":"yashksaini","twitter_username":"0xCracked_dev","github_username":"yashksaini-coder","user_id":1242333,"website_url":"https://yashksaini.systems/","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1242333%2F27bdd497-8c93-4290-a901-94eec3759056.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1242333%2F27bdd497-8c93-4290-a901-94eec3759056.jpeg"}},{"type_of":"article","id":3475632,"title":"I stopped writing prompts and started writing Python","description":"For an year, I treated LLMs like a command line. Type instructions, pray for output. Tweaking...","readable_publish_date":"Apr 9","slug":"i-stopped-writing-prompts-and-started-writing-python-2b4e","path":"/aliirz/i-stopped-writing-prompts-and-started-writing-python-2b4e","url":"https://dev.to/aliirz/i-stopped-writing-prompts-and-started-writing-python-2b4e","comments_count":1,"public_reactions_count":3,"collection_id":null,"published_timestamp":"2026-04-09T09:27:48Z","language":"en","subforem_id":1,"positive_reactions_count":3,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4iebkhrinfzurafygob.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr4iebkhrinfzurafygob.png","canonical_url":"https://dev.to/aliirz/i-stopped-writing-prompts-and-started-writing-python-2b4e","created_at":"2026-04-09T09:27:48Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-09T09:27:48Z","last_comment_at":"2026-04-09T19:36:21Z","reading_time_minutes":3,"tag_list":["dspy","python","ai","programming"],"tags":"dspy, python, ai, programming","user":{"name":"Ali Raza","username":"aliirz","twitter_username":null,"github_username":"aliirz","user_id":360533,"website_url":"https://aliirz.com","profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F360533%2F9ac51469-8688-4fc1-a7f8-9b8150938feb.jpg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F360533%2F9ac51469-8688-4fc1-a7f8-9b8150938feb.jpg"}},{"type_of":"article","id":3483107,"title":"How I Built a Web Interface for 1.4 Million Government Documents with FastAPI, HTMX, and SQLite","description":"When government agencies release the same document multiple times with different redaction patterns —...","readable_publish_date":"Apr 10","slug":"how-i-built-a-web-interface-for-14-million-government-documents-with-fastapi-htmx-and-sqlite-1ofm","path":"/networkingguru/how-i-built-a-web-interface-for-14-million-government-documents-with-fastapi-htmx-and-sqlite-1ofm","url":"https://dev.to/networkingguru/how-i-built-a-web-interface-for-14-million-government-documents-with-fastapi-htmx-and-sqlite-1ofm","comments_count":0,"public_reactions_count":0,"collection_id":null,"published_timestamp":"2026-04-10T17:51:21Z","language":"en","subforem_id":1,"positive_reactions_count":0,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw998hh91pwmfbh3p8d3q.jpg","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw998hh91pwmfbh3p8d3q.jpg","canonical_url":"https://dev.to/networkingguru/how-i-built-a-web-interface-for-14-million-government-documents-with-fastapi-htmx-and-sqlite-1ofm","created_at":"2026-04-10T17:51:21Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-10T17:51:21Z","last_comment_at":"2026-04-10T17:51:21Z","reading_time_minutes":3,"tag_list":["showdev","python","webdev","opensource"],"tags":"showdev, python, webdev, opensource","user":{"name":"networkingguru","username":"networkingguru","twitter_username":null,"github_username":"networkingguru","user_id":3872224,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3872224%2F883ff880-c0b8-4066-bea4-419b7d8dd155.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3872224%2F883ff880-c0b8-4066-bea4-419b7d8dd155.jpeg"},"flare_tag":{"name":"showdev","bg_color_hex":"#091b47","text_color_hex":"#b2ffe1"}},{"type_of":"article","id":3468858,"title":"Hexagonal Architecture in the Real World: Trade-offs, Pitfalls, and When Not to Use It","description":"The honest finale to the Hexagonal Architecture series. Real costs, common pitfalls, when the pattern is overkill, and a practical decision framework for Python engineers.","readable_publish_date":"Apr 9","slug":"hexagonal-architecture-in-the-real-world-trade-offs-pitfalls-and-when-not-to-use-it-4a2p","path":"/elpic/hexagonal-architecture-in-the-real-world-trade-offs-pitfalls-and-when-not-to-use-it-4a2p","url":"https://dev.to/elpic/hexagonal-architecture-in-the-real-world-trade-offs-pitfalls-and-when-not-to-use-it-4a2p","comments_count":0,"public_reactions_count":1,"collection_id":37349,"published_timestamp":"2026-04-09T14:50:20Z","language":"en","subforem_id":1,"positive_reactions_count":1,"cover_image":"https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F767c0jhezcdjcszo85q3.png","social_image":"https://media2.dev.to/dynamic/image/width=1200,height=627,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F767c0jhezcdjcszo85q3.png","canonical_url":"https://elpic.medium.com/hexagonal-architecture-in-the-real-world-trade-offs-pitfalls-and-when-not-to-use-it-1f304095f983","created_at":"2026-04-08T00:36:08Z","edited_at":null,"crossposted_at":null,"published_at":"2026-04-09T14:50:20Z","last_comment_at":"2026-04-09T14:50:20Z","reading_time_minutes":6,"tag_list":["python","architecture","fastapi","testing"],"tags":"python, architecture, fastapi, testing","user":{"name":"Pablo Ifrán","username":"elpic","twitter_username":null,"github_username":"elpic","user_id":59843,"website_url":null,"profile_image":"https://media2.dev.to/dynamic/image/width=640,height=640,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F59843%2F145073a9-3412-4e98-97bd-dd9bc8801e7f.jpeg","profile_image_90":"https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F59843%2F145073a9-3412-4e98-97bd-dd9bc8801e7f.jpeg"}}]