{"generator":"Jekyll","link":[{"@attributes":{"href":"https:\/\/f2r.github.io\/feed\/en.xml","rel":"self","type":"application\/atom+xml"}},{"@attributes":{"href":"https:\/\/f2r.github.io\/","rel":"alternate","type":"text\/html"}}],"updated":"2026-05-27T13:28:47+00:00","id":"https:\/\/f2r.github.io\/feed\/en.xml","title":"F2R Articles | En","subtitle":"All articles wrote by F2R: PHP, methodology, web, architecture, development, programming, and so.","author":{"name":"Frederic Bouchery"},"entry":[{"title":"I'm Becoming a Markdown Developer","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/markdown-developer.html","rel":"alternate","type":"text\/html","title":"I'm Becoming a Markdown Developer"}},"published":"2026-05-27T00:00:00+00:00","updated":"2026-05-27T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/markdown-developer","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}},{"title":"AI Produces Garbage?","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/ai-produces-garbage.html","rel":"alternate","type":"text\/html","title":"AI Produces Garbage?"}},"published":"2026-05-03T00:00:00+00:00","updated":"2026-05-03T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/ai-produces-garbage","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}},{"title":"When Did You Start Being Ashamed of Your Code?","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/ashamed-of-your-code.html","rel":"alternate","type":"text\/html","title":"When Did You Start Being Ashamed of Your Code?"}},"published":"2026-03-31T00:00:00+00:00","updated":"2026-03-31T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/ashamed-of-your-code","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}},{"title":"LLM: From Probability to Orchestration","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/llm-probability-orchestration.html","rel":"alternate","type":"text\/html","title":"LLM: From Probability to Orchestration"}},"published":"2026-03-04T00:00:00+00:00","updated":"2026-03-04T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/llm-probability-orchestration","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}},{"title":"Why use static closures?","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/static-closures.html","rel":"alternate","type":"text\/html","title":"Why use static closures?"}},"published":"2026-03-03T00:00:00+00:00","updated":"2026-03-03T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/static-closures","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}},{"title":"Asynchronous Programming in PHP","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/asynchrone.html","rel":"alternate","type":"text\/html","title":"Asynchronous Programming in PHP"}},"published":"2025-05-25T00:00:00+00:00","updated":"2025-05-25T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/asynchrone","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}},{"title":"Exploring Concurrent Access Handling","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/concurrent-access.html","rel":"alternate","type":"text\/html","title":"Exploring Concurrent Access Handling"}},"published":"2025-02-09T00:00:00+00:00","updated":"2025-02-09T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/concurrent-access","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}},{"title":"Stop using Pseudo-Types","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/stop-using-pseudo-types.html","rel":"alternate","type":"text\/html","title":"Stop using Pseudo-Types"}},"published":"2025-01-20T00:00:00+00:00","updated":"2025-01-20T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/stop-using-pseudo-types","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}},{"title":"Understanding Dependency Injection","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/dependancy-injection.html","rel":"alternate","type":"text\/html","title":"Understanding Dependency Injection"}},"published":"2024-12-16T00:00:00+00:00","updated":"2024-12-16T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/dependancy-injection","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}},{"title":"DRY at all costs: The trap of premature abstraction","link":{"@attributes":{"href":"https:\/\/f2r.github.io\/en\/hasty-abstraction.html","rel":"alternate","type":"text\/html","title":"DRY at all costs: The trap of premature abstraction"}},"published":"2024-11-27T00:00:00+00:00","updated":"2024-11-27T00:00:00+00:00","id":"https:\/\/f2r.github.io\/en\/hasty-abstraction","author":{"name":"Frederic Bouchery"},"category":{"@attributes":{"term":"en"}},"summary":{"@attributes":{"type":"html"}}}]}