<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">
    <channel>
        <title><![CDATA[Sandro Maglione — Essays]]></title>
        <description><![CDATA[Evergreen technical guides and essays from Sandro Maglione.]]></description>
        <link>https://www.sandromaglione.com</link>
        <image>
            <url>https://www.sandromaglione.com/static/images/icon.png</url>
            <title>Sandro Maglione — Essays</title>
            <link>https://www.sandromaglione.com</link>
        </image>
        <generator>RSS for Node</generator>
        <lastBuildDate>Fri, 10 Jul 2026 13:24:41 GMT</lastBuildDate>
        <atom:link href="https://www.sandromaglione.com/articles/feed" rel="self" type="application/rss+xml"/>
        <language><![CDATA[en]]></language>
        <managingEditor><![CDATA[Sandro Maglione]]></managingEditor>
        <webMaster><![CDATA[Sandro Maglione]]></webMaster>
        <ttl>60</ttl>
        <item>
            <title><![CDATA[Creative Constraints]]></title>
            <description><![CDATA[I have so many ideas, so many interesting topics to explore. How exciting. Where do I start? Let's think, think, think, complete freedom. Yeah, but no action. If that's you, you need less freedom, not more. Constraints.]]></description>
            <link>https://www.sandromaglione.com/articles/creative-constraints</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/creative-constraints</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 25 Apr 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Structured Goals]]></title>
            <description><![CDATA[I never failed a goal after breaking it down into small, daily, actionable steps. There is a formula behind reaching goals. They can be structured, planned. And it invariably works, every time the same.]]></description>
            <link>https://www.sandromaglione.com/articles/structured-goals</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/structured-goals</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 29 Jan 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The Rules of the Game]]></title>
            <description><![CDATA[A game is a set of constraints that guide you towards a meaningful destination. What constraints? Turns out video games can teach us some lessons. In this case, the game is Genshin Impact (原神).]]></description>
            <link>https://www.sandromaglione.com/articles/the-rules-of-the-game</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/the-rules-of-the-game</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 20 Jan 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Greatness takes time]]></title>
            <description><![CDATA[Time doesn't wait. It's the intrinsic cost of anything on your journey to mastery. Since time is a limited currency, greatness is only possible in a small set of skills. But you need to get started.]]></description>
            <link>https://www.sandromaglione.com/articles/greatness-takes-time</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/greatness-takes-time</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 14 Jan 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Game Economy: Challenge and Reward]]></title>
            <description><![CDATA[How do you balance an economy in games, society, and your personal life? The principles are the same. A game economy is a model to understand the allocation of resources and time investments.]]></description>
            <link>https://www.sandromaglione.com/articles/game-economy-challenge-and-reward</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/game-economy-challenge-and-reward</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 07 Jan 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How games make money: fairness and gacha]]></title>
            <description><![CDATA[Games are businesses. It's in the interest of both producer and player to find a fair accord to sustain the game long-term. What options exist to make money with a game without disrupting the player experience?]]></description>
            <link>https://www.sandromaglione.com/articles/how-games-make-money-fairness-and-gacha</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-games-make-money-fairness-and-gacha</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 05 Jan 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The 4 Pillars]]></title>
            <description><![CDATA[Your healthy is in your control. It anchors on 4 pillars: sleep, hydration, diet, physical activity. Taking care of these 4 is in your direct control and your responsibility. Some notes on how.]]></description>
            <link>https://www.sandromaglione.com/articles/the-4-pillars</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/the-4-pillars</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 01 Jan 2025 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The Reality of life as a Game]]></title>
            <description><![CDATA[Life shares all the elements of the most interesting games. Games originate from real life. But there is a key difference: life is slower and more restrictive. Can you turn life into a videogame?]]></description>
            <link>https://www.sandromaglione.com/articles/the-reality-of-life-as-a-game</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/the-reality-of-life-as-a-game</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 27 Dec 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Wizard Mastery]]></title>
            <description><![CDATA[Most wizards try to learn as many spell as possible. You should fear those that don't need to do that.]]></description>
            <link>https://www.sandromaglione.com/articles/wizard-mastery</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/wizard-mastery</guid>
            <category><![CDATA[stories]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 24 Dec 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Notes on writing a 100k fiction novel draft]]></title>
            <description><![CDATA[I wrote the first draft of my first fiction novel. It took me 82 days, 162 hours, 2 hours every day, for a final draft of 100'000 words. This is what I learned.]]></description>
            <link>https://www.sandromaglione.com/articles/notes-on-writing-a-100k-fiction-novel-draft</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/notes-on-writing-a-100k-fiction-novel-draft</guid>
            <category><![CDATA[stories]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 23 Dec 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[5 days habits reset retreat]]></title>
            <description><![CDATA[Productivity is often found in consistent daily effort. Over time daily habits tend to accumulate and become obsolete. A 5 days retreat is a practice that forces you to revisit your actions and goals.]]></description>
            <link>https://www.sandromaglione.com/articles/5-days-habits-reset-retreat</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/5-days-habits-reset-retreat</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 23 Sep 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[心が折れる]]></title>
            <description><![CDATA[Kokoro ga oreru is a Japanese word that means 'broken spirit'. It's a vivid expression of what it means to lose your willpower. Stories are the best way to depict this sensation.]]></description>
            <link>https://www.sandromaglione.com/articles/kokoro-ga-oreru</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/kokoro-ga-oreru</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 20 Sep 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The 6 growth stages of ideas]]></title>
            <description><![CDATA[I picture the process of refining ideas in 6 growth stages. The more an idea is refined, the more confidence you have on applying it in a variety of situations.]]></description>
            <link>https://www.sandromaglione.com/articles/the-6-growth-stages-of-ideas</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/the-6-growth-stages-of-ideas</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 18 Sep 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Going about learning something]]></title>
            <description><![CDATA[Discover the hidden dangers of excessive research. Why practice-first is the key to effective learning and how mindless exploration can fuel your intuition.]]></description>
            <link>https://www.sandromaglione.com/articles/going-about-learning-something</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/going-about-learning-something</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 11 Sep 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Come to life]]></title>
            <description><![CDATA[Imagine ordinary objects have come to life. How would your life be different? What would your new friends say about you? Let's play it from the start, the start of a new day.]]></description>
            <link>https://www.sandromaglione.com/articles/come-to-life</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/come-to-life</guid>
            <category><![CDATA[stories]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Extend and advance]]></title>
            <description><![CDATA[The life of a king in the enjoyment of everyday life. No pressure, no judgment, only a straight path. The path of a warrior. Strive, reflect, accrue wisdom. Repeat.]]></description>
            <link>https://www.sandromaglione.com/articles/extend-and-advance</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/extend-and-advance</guid>
            <category><![CDATA[stories]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Pawn Raising]]></title>
            <description><![CDATA[A warrior's strength is based on the rules of chess. A Queen can wipe out an entire army, a bishop can kill a legion, rooks, a battalion. While a pawn is lucky if he can kill 14 men. You are a mere pawn, what do you think you can do?]]></description>
            <link>https://www.sandromaglione.com/articles/pawn-raising</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/pawn-raising</guid>
            <category><![CDATA[stories]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 29 Aug 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[useState, useReducer and State machines for state management]]></title>
            <description><![CDATA[Implement a form using useState, useReducer, and state machines with XState. Understand the differences and tradeoffs of state machines for state management.]]></description>
            <link>https://www.sandromaglione.com/articles/use-state-use-reducer-and-state-machines-for-state-management</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/use-state-use-reducer-and-state-machines-for-state-management</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 22 Aug 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[State machines will save you from useState]]></title>
            <description><![CDATA[useState is easy to use and learn. But it's definitely not ideal for complex state management. This is how state machines and XState will save your project.]]></description>
            <link>https://www.sandromaglione.com/articles/state-machines-will-save-you-from-use-state</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/state-machines-will-save-you-from-use-state</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 21 Aug 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[NextJs Authentication with Effect and React 19]]></title>
            <description><![CDATA[Implement authentication in nextjs using Effect: dependency injection, configuration variables, cookies service, middleware, everything composable and testable.]]></description>
            <link>https://www.sandromaglione.com/articles/next-js-authentication-with-effect-and-react-19</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/next-js-authentication-with-effect-and-react-19</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 20 Jun 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to compile and run MDX in React]]></title>
            <description><![CDATA[Custom integration of the mdx compiler to compile and run mdx content as a React components, with full control on the mdx integration and plugins.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-compile-and-run-mdx-in-react</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-compile-and-run-mdx-in-react</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 27 May 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Scale complexity in software applications]]></title>
            <description><![CDATA[A new paradigm to scale complexity in software applications: use types to define errors and dependencies, and use the compiler to guide the implementation and unlock local reasoning.]]></description>
            <link>https://www.sandromaglione.com/articles/scale-complexity-in-software-applications</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/scale-complexity-in-software-applications</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 28 Feb 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Why using Effect in Typescript: refactoring example and benefits]]></title>
            <description><![CDATA[Why should I use Effect? What benefit does Effect provide? What are some real world examples of using Effect? Learn how to use Effect to refactor a real world example from plain Typescript.]]></description>
            <link>https://www.sandromaglione.com/articles/typescript-code-with-and-without-effect</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/typescript-code-with-and-without-effect</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 21 Feb 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[State machines and Actors in XState v5]]></title>
            <description><![CDATA[Learn how to implement a state machine using actors in XState v5, how to organize the code for context, input, events, and actions, and how to invoke and use actors in a state machine.]]></description>
            <link>https://www.sandromaglione.com/articles/state-machines-and-actors-in-xstate-v5</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/state-machines-and-actors-in-xstate-v5</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 14 Feb 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Build and publish an npx command to npm with Typescript]]></title>
            <description><![CDATA[Learn how to implement a custom script with Typescript and publish it as an npx command on npm: write script, package.json configuration, bundle code, release on npm.]]></description>
            <link>https://www.sandromaglione.com/articles/build-and-publish-an-npx-command-to-npm-with-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/build-and-publish-an-npx-command-to-npm-with-typescript</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 07 Feb 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Macros, Static Metaprogramming, and Primary Constructors in Dart and Flutter]]></title>
            <description><![CDATA[Some new features are coming to the dart programming language: static metaprogramming and primary constructors. Learn how macros, static metaprogramming, and primary constructors work, why they matter, and how to use them.]]></description>
            <link>https://www.sandromaglione.com/articles/macros-static-metaprogramming-and-primary-constructors-in-dart-and-flutter</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/macros-static-metaprogramming-and-primary-constructors-in-dart-and-flutter</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 01 Feb 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to build a complete Flutter app: step by step example]]></title>
            <description><![CDATA[Learn how to create a Flutter app with the most common features: routing, navigation, data models, data storage, dependency injection, error handling, state management, and Flutter widgets.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-build-a-complete-flutter-app-step-by-step-example</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-build-a-complete-flutter-app-step-by-step-example</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 31 Jan 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Create a blog with Effect, NextJs and MDX]]></title>
            <description><![CDATA[Learn how to create your personal blog using Effect, NextJs, and MDX. Store local mdx articles, collect them using Effect, and create the article page in react using NextJs.]]></description>
            <link>https://www.sandromaglione.com/articles/create-blog-with-effect-nextjs-and-mdx</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/create-blog-with-effect-nextjs-and-mdx</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 24 Jan 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Flutter State Management: Riverpod, Bloc, Signals, GetX]]></title>
            <description><![CDATA[State management in flutter using riverpod, bloc, signals, getX: how to install them, how to define the state, how to use them in your flutter app, and their pros and cons.]]></description>
            <link>https://www.sandromaglione.com/articles/flutter-state-management-riverpod-bloc-signals-getx</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/flutter-state-management-riverpod-bloc-signals-getx</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 17 Jan 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to implement a data structure in Typescript]]></title>
            <description><![CDATA[Learn how to implement a data structure with typescript: performance, stack safety, immutability, how to make it iterable, inspectable, how to add equality and refinement.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-implement-a-data-structure-in-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-implement-a-data-structure-in-typescript</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 10 Jan 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Complete introduction to using Effect in Typescript]]></title>
            <description><![CDATA[Complete introduction to using Effect in Typescript: why using Effect, what is the Effect type, how to use it, and what are the main modules of Effect.]]></description>
            <link>https://www.sandromaglione.com/articles/complete-introduction-to-using-effect-in-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/complete-introduction-to-using-effect-in-typescript</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 03 Jan 2024 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to implement State Machines and Statecharts in dart and Flutter]]></title>
            <description><![CDATA[Implement State Machines and Statecharts in dart and flutter: how to model a state machine, how to use generics to make the machine type-safe, and how to extend the state machine to make it a statechart.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-implement-state-machines-and-statecharts-in-dart-and-flutter</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-implement-state-machines-and-statecharts-in-dart-and-flutter</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 27 Dec 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Getting started with XState and Effect - Audio Player]]></title>
            <description><![CDATA[Learn how to use XState and Effect to implement an audio player in react: stately visual editor to define the state machine, actions implemented using Effect, and use the machine in a react component.]]></description>
            <link>https://www.sandromaglione.com/articles/getting-started-with-xstate-and-effect-audio-player</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/getting-started-with-xstate-and-effect-audio-player</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 20 Dec 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Making Games with Flutter - Getting started using flame]]></title>
            <description><![CDATA[Create games in Flutter. Learn how to develop games in Flutter using the flame package: how to setup flame, how it works, and how to create your first game.]]></description>
            <link>https://www.sandromaglione.com/articles/making-games-with-flutter-getting-started-using-flame</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/making-games-with-flutter-getting-started-using-flame</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 13 Dec 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Getting started with OCaml and Functional Programming]]></title>
            <description><![CDATA[Get started writing functional programming code using the OCaml programming language: install OCaml, create a new project using dune, learn how to write functional programming code.]]></description>
            <link>https://www.sandromaglione.com/articles/getting-started-with-ocaml-and-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/getting-started-with-ocaml-and-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 06 Dec 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to implement a Dart CLI using fpdart]]></title>
            <description><![CDATA[Learn how to implement a CLI application in dart: what a CLI app is, how to create a CLI using the dart programming language, how to organize and implement a CLI using fpdart.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-implement-a-dart-cli-using-fpdart</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-implement-a-dart-cli-using-fpdart</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 29 Nov 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to test a Typescript app using vitest and msw]]></title>
            <description><![CDATA[Learn how to use vitest and msw (Mock Service Worker) to test a typescript app: intercept HTTP request, mock response, define and organize all tests.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-test-typescript-app-using-vitest-and-msw</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-test-typescript-app-using-vitest-and-msw</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 24 Nov 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to implement a Custom Newsletter form with ConvertKit and Effect]]></title>
            <description><![CDATA[Learn how to use Effect and Typescript to perform a request to subscribe a user to your newsletter on ConvertKit]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-implement-a-custom-newsletter-form-with-convertkit-and-effect</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-implement-a-custom-newsletter-form-with-convertkit-and-effect</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 23 Nov 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Covariant, Contravariant, and Invariant in Typescript]]></title>
            <description><![CDATA[Learn how variance works in Typescript with concrete example: Covariant, Contravariant, Invariant, and Bivariant. Learn also how variance is related to composition and assignability.]]></description>
            <link>https://www.sandromaglione.com/articles/covariant-contravariant-and-invariant-in-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/covariant-contravariant-and-invariant-in-typescript</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 27 Oct 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How "this" works in Typescript]]></title>
            <description><![CDATA[Learn how the "this" keyword works in Typescript. You can use "this" in any Typescript interface to reference the interface itself, and this allows to encode Higher-Kinded Types in Typescript.]]></description>
            <link>https://www.sandromaglione.com/articles/how-this-works-in-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-this-works-in-typescript</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 19 Oct 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to model a Typescript app using Effect: docgen]]></title>
            <description><![CDATA[Learn how to read and understand any project written using the Effect library. Step by step overview of the docgen library written using Effect.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-model-typescript-app-with-effect-docgen</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-model-typescript-app-with-effect-docgen</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 18 Oct 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Japanese Kanji with Furigana parser in Typescript]]></title>
            <description><![CDATA[Code snippet of a parser for Japanese Kanji with Furigana characters, written in Typescript. The function extracts kanji, furigana, and kana characters from a string, verifying the correct formatting of the input.]]></description>
            <link>https://www.sandromaglione.com/articles/japanese-kanji-with-furigana-typescript-parser</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/japanese-kanji-with-furigana-typescript-parser</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sat, 02 Sep 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to execute an Android intent in Flutter]]></title>
            <description><![CDATA[Learn how to implement and execute a platform-specific functionality directly inside your Flutter app. Create an Android intent, write some Kotlin code to read the intent, and forward the intent value to Flutter by using a MethodChannel.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-execute-an-android-intent-in-flutter</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-execute-an-android-intent-in-flutter</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 01 Sep 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Testing fpdart code using mocktail | Fpdart and Riverpod Functional Programming in Flutter]]></title>
            <description><![CDATA[Learn how to test an app written using functional programming and fpdart. Learn how functional programming makes testing easier, and how to use the mocktail package to create mocks and test your app in all situations.]]></description>
            <link>https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-6</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-6</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 29 Aug 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How creating a Game in a week looks like]]></title>
            <description><![CDATA[I made a game in a week. Learn how to create a game in a week, where to start, how to plan, how to organize the implementation, what problems you will encounter, and how to make sure you complete everything in time for the final deadline.]]></description>
            <link>https://www.sandromaglione.com/articles/how-creating-a-game-in-a-week-looks-like</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-creating-a-game-in-a-week-looks-like</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 27 Aug 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Complete Platformer Game Camera Setup]]></title>
            <description><![CDATA[Learn how to implement a complete camera movement for every platformer game. Learn all the common strategies used to implement the camera movement, how they work, their limitations, and what is the ideal setup for every platformer game]]></description>
            <link>https://www.sandromaglione.com/articles/complete-platformer-game-camera-setup</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/complete-platformer-game-camera-setup</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 18 Aug 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Pixel art Platformer level design - Full Guide]]></title>
            <description><![CDATA[Learn how to plan, design, and create a professional pixel art platformer level. Learn the different layers that compose a platformer level and the rules and principles to make your level design stand out.]]></description>
            <link>https://www.sandromaglione.com/articles/pixel-art-platformer-level-design-full-guide</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/pixel-art-platformer-level-design-full-guide</guid>
            <category><![CDATA[pixel-art]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 17 Aug 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to implement a State Machine in Godot]]></title>
            <description><![CDATA[Learn what a state machine is and how to implement a complete state machine in Godot. Learn how to organize nodes for a state machine, how to define each state, and how to implement transitions and parameters.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-implement-state-machine-pattern-in-godot</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-implement-state-machine-pattern-in-godot</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sat, 12 Aug 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Pixel Art Game Tileset made easier]]></title>
            <description><![CDATA[Learn a new and unique strategy to design a complete tileset for your pixel art game faster and better: use smaller tiles, each unique and with multiple variations, used to build all kinds of levels and environments.]]></description>
            <link>https://www.sandromaglione.com/articles/pixel-art-game-tileset-made-easier</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/pixel-art-game-tileset-made-easier</guid>
            <category><![CDATA[pixel-art]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sat, 12 Aug 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to create a Pixel Art Tileset - Complete Guide]]></title>
            <description><![CDATA[Complete guide on how to create a pixel art tileset: learn how to design a new tileset, how many tiles are necessary, and some common strategies to make your tileset stand out.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-create-a-pixel-art-tileset-complete-guide</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-create-a-pixel-art-tileset-complete-guide</guid>
            <category><![CDATA[pixel-art]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 11 Aug 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Business logic with fpdart and the Do notation | Fpdart and Riverpod Functional Programming in Flutter]]></title>
            <description><![CDATA[Learn how to implement the business logic of any dart and flutter application using fpdart. Learn how to use the ReaderTask type and the new Do notation in fpdart.]]></description>
            <link>https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-5</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-5</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 10 Aug 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Pixel art Character Animations guide]]></title>
            <description><![CDATA[Learn how to create and animate your own pixel art character for your personal game. Learn the principles of animations step by step with an example of idle, walking, jumping, attacking, and climbing animation.]]></description>
            <link>https://www.sandromaglione.com/articles/pixel-art-character-animations-guide</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/pixel-art-character-animations-guide</guid>
            <category><![CDATA[pixel-art]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sat, 05 Aug 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to implement Top-down Grid Movement in Godot]]></title>
            <description><![CDATA[Step by step guide on how to implement a tile-based movement on a grid for a top-down game in Godot. We learn how to set up a Godot project for pixel art sprites and tiles, how to use TileMap and TileSet, and how to move and animated the player.]]></description>
            <link>https://www.sandromaglione.com/articles/top-down-grid-movement-in-godot-game-engine</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/top-down-grid-movement-in-godot-game-engine</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 31 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Pixel art eyes design - Techniques and styles]]></title>
            <description><![CDATA[Learn and study different styles and designs for pixel art eyes at different resolutions (8x8, 16x16, 32x32, 64x64). Explore limitations and strategies to give more personality to the eyes of your character design in pixel art.]]></description>
            <link>https://www.sandromaglione.com/articles/pixel-art-eyes-techniques-and-styles</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/pixel-art-eyes-techniques-and-styles</guid>
            <category><![CDATA[pixel-art]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 31 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Top-down game Pixel art - Design and Animations]]></title>
            <description><![CDATA[Overview of different styles and designs for pixel art sprites in a top-down game. Learn the most common strategies and tips on how to create and animate your own sprite in a top-down game.]]></description>
            <link>https://www.sandromaglione.com/articles/pixel-art-top-down-game-sprite-design-and-animation</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/pixel-art-top-down-game-sprite-design-and-animation</guid>
            <category><![CDATA[pixel-art]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 31 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to use fpdart and riverpod in Flutter | Fpdart and Riverpod Functional Programming in Flutter]]></title>
            <description><![CDATA[Learn how to take advantage of both fpdart and riverpod in your application. Learn how to use the ReaderTask type from fpdart and how to define a riverpod provider that executes code written using fpdart and functional programming.]]></description>
            <link>https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-4</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-4</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 28 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Getting started with fpdart and Functional programming in dart]]></title>
            <description><![CDATA[Complete guide on how to get started with fpdart and functional programming in dart and flutter. Learn all the types provided by fpdart, how they work, and how to use them.]]></description>
            <link>https://www.sandromaglione.com/articles/getting-started-with-fpdart-v1-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/getting-started-with-fpdart-v1-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 26 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The History of fpdart | Functional programming in Dart]]></title>
            <description><![CDATA[fpdart today is the standard solution for functional programming in dart. Learn the history of how fpdart came to be. From the early days of dart v1 and the dartz package, the growing interest in functional programming, and the innovation that fpdart brought to the community.]]></description>
            <link>https://www.sandromaglione.com/articles/the-history-of-fpdart-functional-programming-in-dart</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/the-history-of-fpdart-functional-programming-in-dart</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 26 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Godot game engine introduction for beginners]]></title>
            <description><![CDATA[I finally tried the Godot game engine for the first time after years of Unity. I share some of the lessons I learned building my first project, explaining how to implement a 2d top-down game using all the features provided by Godot.]]></description>
            <link>https://www.sandromaglione.com/articles/introduction-to-godot-game-engine-beginner</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/introduction-to-godot-game-engine-beginner</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 16 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Infinite HTML canvas with zoom and pan]]></title>
            <description><![CDATA[Simulate an infinite html canvas in typescript by using math to map the real coordinates to new virtual values. Implement zooming and panning effect by listening to touch events on mobile.]]></description>
            <link>https://www.sandromaglione.com/articles/infinite-canvas-html-with-zoom-and-pan</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/infinite-canvas-html-with-zoom-and-pan</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 13 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Getting started with Pixel Art - A beginner perspective]]></title>
            <description><![CDATA[I recently started my journey into pixel art. After watching many tutorials and reading countless articles and guides, I share my learnings and insights into the art of pixel images.]]></description>
            <link>https://www.sandromaglione.com/articles/getting-started-with-pixel-art</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/getting-started-with-pixel-art</guid>
            <category><![CDATA[pixel-art]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 12 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The meaning of a Personal Project]]></title>
            <description><![CDATA[Start from nothing, an idea, a spark of excitement. Experience the up and downs, from no knowledge, pure vision, to something that can stand on its own, something to share. And then look back, you are different than before, better.]]></description>
            <link>https://www.sandromaglione.com/articles/the-meaning-of-a-personal-project</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/the-meaning-of-a-personal-project</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 03 Jul 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[From fp-ts to effect-ts: How to guide]]></title>
            <description><![CDATA[I recently migrated my personal blog from fp-ts to effect-ts. I share what are the main changes, how the structure of the app changes, and what are the advantages of effect-ts over fp-ts.]]></description>
            <link>https://www.sandromaglione.com/articles/from-fp-ts-to-effect-ts-migration-guide</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/from-fp-ts-to-effect-ts-migration-guide</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 28 Jun 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Dependencies and Errors in Functional Programming | Fpdart and Riverpod Functional Programming in Flutter]]></title>
            <description><![CDATA[Learn how to define and use dependencies and errors in functional programming with fpdart: dependency injection, Either type, records, pattern matching, and using ReaderTaskEither to put all together.]]></description>
            <link>https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-3</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-3</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 22 Jun 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Game rendering loop using HTML canvas and Typescript]]></title>
            <description><![CDATA[Learn how to implement an animation/game rendering loop for animated simulations, simple games, and algorithm visualizations, all running on the web using typescript, HTML canvas, and requestAnimationFrame.]]></description>
            <link>https://www.sandromaglione.com/articles/game-rendering-loop-in-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/game-rendering-loop-in-typescript</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 15 Jun 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Data model and Storage interface | Fpdart and Riverpod Functional Programming in Flutter]]></title>
            <description><![CDATA[Learn how to define a complete immutable data class in dart and flutter, why using immutable classes, how immutability makes your code better, and how to define a abstraction for your API.]]></description>
            <link>https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-2</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-2</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 13 Jun 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Project objectives and configuration | Fpdart and Riverpod Functional Programming in Flutter]]></title>
            <description><![CDATA[Learn what it is means to built a safe, maintainable, and testable flutter app by using fpdart, riverpod, setting up linting and installing dependencies.]]></description>
            <link>https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-1</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/fpdart-riverpod-functional-programming-flutter-part-1</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 06 Jun 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Trie | Data structure implementation in Typescript]]></title>
            <description><![CDATA[Implementation of the Trie data structure using Typescript / Javascript. Build a Trie from a list of words and efficiently search and add new words.]]></description>
            <link>https://www.sandromaglione.com/articles/trie-data-structure-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/trie-data-structure-typescript</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 05 Jun 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Records and Pattern Matching in dart - Complete Guide]]></title>
            <description><![CDATA[Dart 3 introduces Records, Pattern Matching, and Sealed classes to the language. Learn everything on how to use records and patterns in dart 3.]]></description>
            <link>https://www.sandromaglione.com/articles/records-and-patterns-dart-language</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/records-and-patterns-dart-language</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 27 Apr 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Supabase functions in dart - Complete Guide]]></title>
            <description><![CDATA[Learn how to create, configure, implement, and deploy an Edge Function on Supabase using the Dart programming language with the edge package.]]></description>
            <link>https://www.sandromaglione.com/articles/supabase-dart-edge-functions-guide</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/supabase-dart-edge-functions-guide</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 25 Apr 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Type validation in dart]]></title>
            <description><![CDATA[Most of the times primitive types are too generic, and this can cause problems. Learn how to properly validate your models and make your app completely type-safe.]]></description>
            <link>https://www.sandromaglione.com/articles/type-safe-validation-dart-models</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/type-safe-validation-dart-models</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 10 Jan 2023 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Open Meteo API - Functional programming with fpdart (Part 2)]]></title>
            <description><![CDATA[Convert the Open Meteo API from imperative code to functional programming in dart using fpdart. Introduction to the code and why using TaskEither as return type.]]></description>
            <link>https://www.sandromaglione.com/articles/real_example_fpdart_open_meteo_api_part_2</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/real_example_fpdart_open_meteo_api_part_2</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 16 Dec 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Flutter Supabase Functional Programming with fpdart]]></title>
            <description><![CDATA[Learn how to use Supabase in your Flutter app. Add Supabase database to your Flutter app to get, insert, update, and delete data in your remote database.]]></description>
            <link>https://www.sandromaglione.com/articles/flutter-dart-functional-programming-fpdart-supabase-app</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/flutter-dart-functional-programming-fpdart-supabase-app</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 06 Dec 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Flutter Supabase Database - Complete tutorial]]></title>
            <description><![CDATA[Learn how to use Supabase in your Flutter app. Add Supabase database to your Flutter app to get, insert, update, and delete data in your remote database.]]></description>
            <link>https://www.sandromaglione.com/articles/flutter-supabase-database-complete-tutorial</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/flutter-supabase-database-complete-tutorial</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 29 Nov 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Users sign up and Row Level Security - Supabase Database tutorial]]></title>
            <description><![CDATA[Create an Authentication system using Supabase to sign up every user, store the user information in the database, and secure them using Row Level Security.]]></description>
            <link>https://www.sandromaglione.com/articles/supabase-database-user-sign-up-and-row-level-security</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/supabase-database-user-sign-up-and-row-level-security</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 21 Nov 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Either - Error Handling in Functional Programming]]></title>
            <description><![CDATA[Either allows to explicitly handle errors in your code. Either is an alternative to try/catch. Let's learn how Either works, how it is defined, and how it differs from try/catch.]]></description>
            <link>https://www.sandromaglione.com/articles/either-error-handling-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/either-error-handling-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 09 Nov 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Open Meteo API - Functional programming with fpdart (Part 1)]]></title>
            <description><![CDATA[Convert the Open Meteo API from imperative code to functional programming in dart using fpdart. Introduction to the code and why using TaskEither as return type.]]></description>
            <link>https://www.sandromaglione.com/articles/real_example_fpdart_open_meteo_api_part_1</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/real_example_fpdart_open_meteo_api_part_1</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 02 Nov 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Future & Task: asynchronous Functional Programming]]></title>
            <description><![CDATA[Differences and similarities of Future (Promise) and Task for asynchronous programming: how asynchronous requests are made using functional programming compared to imperative code.]]></description>
            <link>https://www.sandromaglione.com/articles/async-requests-future-and-task-dart</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/async-requests-future-and-task-dart</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 27 Oct 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Option type and Null Safety in dart]]></title>
            <description><![CDATA[Option and Null Safety are similar, which one should you choose? Let's compare them: when to use nullable types, when to use Option, and how to use both of them together.]]></description>
            <link>https://www.sandromaglione.com/articles/option_type_and_null_safety_dart</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/option_type_and_null_safety_dart</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 21 Oct 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Local Storage Database with Typescript]]></title>
            <description><![CDATA[Local storage database implementation in typescript with schema validation and error handling, using functional programming (fp-ts) and zod.]]></description>
            <link>https://www.sandromaglione.com/articles/local-storage-database-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/local-storage-database-typescript</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 20 Oct 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Flutter Supabase Authentication - Complete tutorial]]></title>
            <description><![CDATA[Learn how to use the newest version of Supabase in Flutter to implement a complete authentication system from scratch: sign up, sign in, and sign out.]]></description>
            <link>https://www.sandromaglione.com/articles/flutter-supabase-authentication-complete-tutorial</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/flutter-supabase-authentication-complete-tutorial</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 28 Sep 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to make API requests with validation in fpdart]]></title>
            <description><![CDATA[Learn how to perform a complete API request with validation in Dart and Flutter using fpdart and Functional Programming.]]></description>
            <link>https://www.sandromaglione.com/articles/fpdart-api-request-with-validation-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/fpdart-api-request-with-validation-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 15 Sep 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[zod and newtype-ts | Full type-safety in Typescript]]></title>
            <description><![CDATA[Achieve full type safety in Typescript by using newtype-ts, monocle-ts, and zod to validate your types at compile time.]]></description>
            <link>https://www.sandromaglione.com/articles/zod-and-newtype-ts-full-type-safety-with-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/zod-and-newtype-ts-full-type-safety-with-typescript</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 06 Sep 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to implement Dependency Injection in Flutter]]></title>
            <description><![CDATA[Dependency Injection is a pattern that allows you to manage dependencies inside your app. We use get_it and injectable to implement Dependency Injection in Flutter.]]></description>
            <link>https://www.sandromaglione.com/articles/how_to_implement_dependecy_injection_in_flutter</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how_to_implement_dependecy_injection_in_flutter</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 30 Aug 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to setup Routing in a Flutter app]]></title>
            <description><![CDATA[Having a powerful routing configuration is at the core of every Flutter app: let's learn how to setup a robust and scalable routing system.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-setup-routing-flutter-app</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-setup-routing-flutter-app</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 23 Aug 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to use Environmental Variables in Flutter]]></title>
            <description><![CDATA[Environmental variables allows you to define global constants shared in an app, for things like API keys, base URLs, and such.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-use-environmental-variables-in-flutter</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-use-environmental-variables-in-flutter</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 09 Aug 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The Joy and Curse of Game Development]]></title>
            <description><![CDATA[Have you ever tried developing your own game? There are many skills you must acquire: art, music, programming, writing. Creating a game can be frustrating and time consuming, but maybe you should try anyway.]]></description>
            <link>https://www.sandromaglione.com/articles/the-joy-and-curse-of-game-development</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/the-joy-and-curse-of-game-development</guid>
            <category><![CDATA[games]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 24 Jul 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[isNotNullable - Check if a variable is not nullable in Typescript]]></title>
            <description><![CDATA[Function used to check if a variable is not nullable and narrow its type using Typescript.]]></description>
            <link>https://www.sandromaglione.com/articles/check-if-variable-is-not-nullable-typescript</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/check-if-variable-is-not-nullable-typescript</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 22 Jun 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Why Open Source libraries are missing documentation]]></title>
            <description><![CDATA[Open Source is fun and rewarding, but if you want your work to bring any value you need documentation. Why many library are missing it?]]></description>
            <link>https://www.sandromaglione.com/articles/why-open-source-library-is-missing-documentation</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/why-open-source-library-is-missing-documentation</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 12 May 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to add a Dynamic Sitemap to your NextJs Blog]]></title>
            <description><![CDATA[Create a dynamic sitemap with all your posts using NextJs and contentlayer, and learn how to submit it to Search Engines.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-add-dynamic-sitemap-nextjs-blog</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-add-dynamic-sitemap-nextjs-blog</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 28 Apr 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to create a Blog with Contentlayer and NextJs]]></title>
            <description><![CDATA[Create a fully customizable blog using the power of nextjs, contentlayer, and mdx.]]></description>
            <link>https://www.sandromaglione.com/articles/contentlayer-blog-template-with-nextjs</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/contentlayer-blog-template-with-nextjs</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 26 Apr 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to use TaskEither in fpdart]]></title>
            <description><![CDATA[TaskEither is the most used type in Functional Programming with fpdart. Do you know what TaskEither is in Functional Programming? In this post we are going to learn how to use TaskEither in fpdart.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-use-task-either-fpdart-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-use-task-either-fpdart-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 07 Feb 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to map an Either to a Future in fpdart]]></title>
            <description><![CDATA[Learn the difference between sync and async in Functional Programming, and how to work with asynchronous functions. What is the difference between Either and TaskEither? Option and TaskOption? IO and Task?]]></description>
            <link>https://www.sandromaglione.com/articles/from-sync-to-async-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/from-sync-to-async-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 26 Jan 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Form data validation hook with fp-ts and functional programming]]></title>
            <description><![CDATA[React hook used to store, update, and validate data using functional programming with fp-ts.]]></description>
            <link>https://www.sandromaglione.com/articles/form-data-validation-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/form-data-validation-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 16 Jan 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Pure function to shuffle an array in Typescript using fp-ts]]></title>
            <description><![CDATA[A pure function that allows you to shuffle an array using functional programming with fp-ts in Typescript.]]></description>
            <link>https://www.sandromaglione.com/articles/shuffle-array-with-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/shuffle-array-with-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 16 Jan 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Pure function to update elements in array that are equal in Typescript]]></title>
            <description><![CDATA[A pure function that allows to update all the elements in an array that are equal to a given equality check.]]></description>
            <link>https://www.sandromaglione.com/articles/update-where-array-fp-ts</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/update-where-array-fp-ts</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 16 Jan 2022 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[useDebounceUpdate - Running an effect after a timeout]]></title>
            <description><![CDATA[Execute a function after a timeout every time your data changes. Reset the timer if the data changes again during the timeout.]]></description>
            <link>https://www.sandromaglione.com/articles/use-debounce-update-react</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/use-debounce-update-react</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 17 Dec 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[useCounterSelection - Increment and Decrement number with fp-ts]]></title>
            <description><![CDATA[Abstraction for storing a number value that can be incremented and decremented by a given amount of steps.]]></description>
            <link>https://www.sandromaglione.com/articles/use-counter-selection-add-subtract-selected-value-fp-ts</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/use-counter-selection-add-subtract-selected-value-fp-ts</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 16 Dec 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Collecting payments using Stripe Elements – Subscription with Supabase and Stripe Billing | Part 3]]></title>
            <description><![CDATA[Collection payments using Stripe Elements. We learn how to use Stripe Elements to collect the card information for Stripe Billing.]]></description>
            <link>https://www.sandromaglione.com/articles/collecting-payments-stripe-elements-stripe-billing-supabase-tutorial</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/collecting-payments-stripe-elements-stripe-billing-supabase-tutorial</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 09 Nov 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Create a NextJs project with Typescript, ESLint, Prettier and TailwindCSS]]></title>
            <description><![CDATA[Learn how to create a NextJs project with Typescript, ESLint, Prettier and TailwindCSS. Using NextJs and Typescript for your next project.]]></description>
            <link>https://www.sandromaglione.com/articles/create-nextjs-project-with-typescript-eslint-prettier-tailwindcss</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/create-nextjs-project-with-typescript-eslint-prettier-tailwindcss</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 07 Sep 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Loops using fold – Practical Functional Programming | Part 4]]></title>
            <description><![CDATA[Loops using fold in Functional Programming. Learn why you do not need loops, and how to use the fold function in Functional Programming.]]></description>
            <link>https://www.sandromaglione.com/articles/loops-using-fold-practical-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/loops-using-fold-practical-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sat, 04 Sep 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Immutability – Practical Functional Programming | Part 3]]></title>
            <description><![CDATA[Immutability in Functional Programming. Learn what Immutability is, why Immutability is important, and how to write Immutable code.]]></description>
            <link>https://www.sandromaglione.com/articles/immutability-practical-functional-programming-part-3</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/immutability-practical-functional-programming-part-3</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 31 Aug 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Pure Functions - Practical Functional Programming | Part 2]]></title>
            <description><![CDATA[Learn Pure functions in Functional Programming. Why using Pure functions, what a pure function is, and how to write code using pure functions.]]></description>
            <link>https://www.sandromaglione.com/articles/practical-functional-programming-pure-functions-part-2</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/practical-functional-programming-pure-functions-part-2</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 17 Aug 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Static Metaprogramming in Dart and Flutter: macro_prototype overview]]></title>
            <description><![CDATA[Static Metaprogramming in dart and flutter is coming. Learn about the macro prototype and how to use metaprogramming in dart and flutter.]]></description>
            <link>https://www.sandromaglione.com/articles/dart-flutter-static-metaprogramming-macro-prototype</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/dart-flutter-static-metaprogramming-macro-prototype</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 13 Aug 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Redux with Typescript for State Management]]></title>
            <description><![CDATA[Lear how to use Redux for state management using Typescript. Redux and Typescript in your react application for state management.]]></description>
            <link>https://www.sandromaglione.com/articles/redux-with-typescript-for-state-management</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/redux-with-typescript-for-state-management</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 11 Aug 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Practical Functional Programming - Find repeated characters | Part 1]]></title>
            <description><![CDATA[Practical Functional Programming, uncover the principles of Functional Programming in Haskell, Typescript, and Dart. Part 1 of the series. This post has been published in my newsletter.]]></description>
            <link>https://www.sandromaglione.com/articles/practical-functional-programming-step-by-step-haskell-typescript-dart-part-1</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/practical-functional-programming-step-by-step-haskell-typescript-dart-part-1</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 10 Aug 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Unlimited resources, limited attention]]></title>
            <description><![CDATA[It is not what we fear that will ruin us, but what we desire. You attention is limited, and the web is playing against you. What will you do?]]></description>
            <link>https://www.sandromaglione.com/articles/unlimited-resources-limited-attention</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/unlimited-resources-limited-attention</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 06 Aug 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Chain functions using Option type - Functional Programming]]></title>
            <description><![CDATA[Learn how to chain functions using the Functional Programming type Option. Use alt, andThen, flatMap, and getOrElse methods in simple example.]]></description>
            <link>https://www.sandromaglione.com/articles/chain-functions-using-option-type-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/chain-functions-using-option-type-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 26 Jul 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Functional Programming Option type - Introduction]]></title>
            <description><![CDATA[Learn Functional Programming Option (Maybe) type. Tutorial about the Option type, how to use it with examples in Functional Programming.]]></description>
            <link>https://www.sandromaglione.com/articles/functional-programming-option-type-tutorial</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/functional-programming-option-type-tutorial</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 20 Jul 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Pure Functional app in Flutter - Pokemon app using fpdart and Functional Programming]]></title>
            <description><![CDATA[Pure functional app in Flutter using fpdart and Functional Programming. Explore a Pokemon app using Functional Programming and Flutter.]]></description>
            <link>https://www.sandromaglione.com/articles/pure-functional-app-in-flutter-using-fpdart-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/pure-functional-app-in-flutter-using-fpdart-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 12 Jul 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[5 Lessons from Functional Programming in Scala, By Paul Chiusano and Runar Bjarnason]]></title>
            <description><![CDATA[5 key lessons from Functional Programming in Scala. Learn the core principles of Functional Programming and learn Functional coding.]]></description>
            <link>https://www.sandromaglione.com/articles/functional-programming-5-key-lessons-functional-programming-in-scala</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/functional-programming-5-key-lessons-functional-programming-in-scala</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 07 Jul 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to use fpdart Functional Programming in your Dart and Flutter app]]></title>
            <description><![CDATA[Learn how to use fpdart and Functional Programming in your Dart and Flutter app. Example of how to use fpdart in a real flutter package.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-use-fpdart-functional-programming-in-dart-and-flutter</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-use-fpdart-functional-programming-in-dart-and-flutter</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 01 Jul 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Fpdart, Functional Programming in Dart and Flutter]]></title>
            <description><![CDATA[Fpdart, Functional Programming in Dart and Flutter. Learn why learning Functional Programming and how to import and use fpdart.]]></description>
            <link>https://www.sandromaglione.com/articles/fpdart-functional-programming-in-dart-and-flutter</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/fpdart-functional-programming-in-dart-and-flutter</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 28 Jun 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Maybe | Practical Functional Programming]]></title>
            <description><![CDATA[Learn to use functional programming. Practical functional programming about the Maybe type. Learn how to use Maybe in functional programming.]]></description>
            <link>https://www.sandromaglione.com/articles/maybe-practical-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/maybe-practical-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 13 May 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Stripe Billing Tutorial: Products, Prices, and Webhook – Subscription with Supabase and Stripe Billing | Part 2]]></title>
            <description><![CDATA[Learn how Stripe Billing works. In this Stripe Billing Tutorial, you will learn about Stripe billing Products, Prices, and Webhooks.]]></description>
            <link>https://www.sandromaglione.com/articles/stripe-billing-products-prices-webhook-subscription-supabase</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/stripe-billing-products-prices-webhook-subscription-supabase</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Wed, 05 May 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Supabase Authentication and create Stripe customer - Subscription with Supabase and Stripe Billing | Part 1]]></title>
            <description><![CDATA[Learn how to implement Supabase Authentication and Stripe Billing Subscriptions. Create a Supabase user and a Stripe Billing customer.]]></description>
            <link>https://www.sandromaglione.com/articles/supabase-auth-create-stripe-customer-subscription-supabase-stripe-billing-part-1</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/supabase-auth-create-stripe-customer-subscription-supabase-stripe-billing-part-1</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 29 Apr 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Flutter Supabase Authentication]]></title>
            <description><![CDATA[Learn how to use Supabase in your Flutter app. Add Supabase authentication to your Flutter app to authenticate your user in no time.]]></description>
            <link>https://www.sandromaglione.com/articles/flutter-supabase-authentication</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/flutter-supabase-authentication</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sat, 24 Apr 2021 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Setup Typescript with NuxtJs]]></title>
            <description><![CDATA[Typescript is a must-have for any javascript application. Learn how to setup Typescript in a NuxtJs project. From creating a NuxtJs app to having full Typescript support.]]></description>
            <link>https://www.sandromaglione.com/articles/setup-typescript-with-nuxtjs</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/setup-typescript-with-nuxtjs</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 06 Dec 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Auto-generate usecase classes from your repository - Clean Architecture Flutter]]></title>
            <description><![CDATA[repo_case is a Flutter package to auto generate usecase classes from your repository signature, based on the Clean Architecture of Reso Coder.]]></description>
            <link>https://www.sandromaglione.com/articles/auto-generate-usecase-classes-from-your-repository-clean-architecture-flutter</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/auto-generate-usecase-classes-from-your-repository-clean-architecture-flutter</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 20 Nov 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The key to consistency]]></title>
            <description><![CDATA[Being productive and accomplish goals is less about hard work and more about consistency. The question is: what is the key to consistency?]]></description>
            <link>https://www.sandromaglione.com/articles/key-to-consistency</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/key-to-consistency</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Tue, 10 Nov 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[My first-time pure functional programming]]></title>
            <description><![CDATA[Do you know what functional programming really is? This is my first experience with pure functional programming in Haskell.]]></description>
            <link>https://www.sandromaglione.com/articles/first-time-pure-functional-programming</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/first-time-pure-functional-programming</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sat, 07 Nov 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[The time to write has come]]></title>
            <description><![CDATA[Do you ever feel you would like to write? Me too. That is what I did and what I am doing to start writing more and better.]]></description>
            <link>https://www.sandromaglione.com/articles/the-time-to-write-has-come</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/the-time-to-write-has-come</guid>
            <category><![CDATA[free-thinking]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 30 Oct 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How To Use Tween | Learn All About Flutter Animations – Part 2]]></title>
            <description><![CDATA[In this tutorial series, we learn all about Flutter Animations. In this part 2, we use Tweens to create beautiful animations of all types and values.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-use-tween-learn-all-about-flutter-animations-part-2</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-use-tween-learn-all-about-flutter-animations-part-2</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sat, 29 Feb 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Overcome Your Endurance Limits  | Endure, by Alex Hutchinson]]></title>
            <description><![CDATA[Endure by Alex Hutchinson explains what factors, both mental and physical, contribute to limiting athletes' endurance and how to overcome them.]]></description>
            <link>https://www.sandromaglione.com/articles/overcome-endurance-limit-endure-by-alex-hutchinson</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/overcome-endurance-limit-endure-by-alex-hutchinson</guid>
            <category><![CDATA[books]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 20 Feb 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[AnimationController and setState | Learn All About Flutter Animations - Part 1]]></title>
            <description><![CDATA[In this tutorial series, we are going to learn all about Flutter Animations. In this article we create our first animation using setState() and AnimationController.]]></description>
            <link>https://www.sandromaglione.com/articles/animationcontroller-and-setstate-or-learn-all-about-flutter-animations-part-1</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/animationcontroller-and-setstate-or-learn-all-about-flutter-animations-part-1</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Mon, 17 Feb 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Reaching Real Success | The Third Door, by Alex Banayan]]></title>
            <description><![CDATA[The Third Door, the story of Alex Banayan in his mission to uncover the secret of how the most successful people of the planet lauched their careers.]]></description>
            <link>https://www.sandromaglione.com/articles/reaching-real-success-the-third-door-by-alex-banayan</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/reaching-real-success-the-third-door-by-alex-banayan</guid>
            <category><![CDATA[books]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 07 Feb 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[How to develop a Flutter package | Flutter Tutorial]]></title>
            <description><![CDATA[Learn how to develop a flutter package and how to publish your open-source Flutter package on pub.dev. This tutorial will explain everything step by step.]]></description>
            <link>https://www.sandromaglione.com/articles/how-to-develop-a-flutter-package-flutter-tutorial</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/how-to-develop-a-flutter-package-flutter-tutorial</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 02 Feb 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Guide To The Startup World | Lost and Founder, by Rand Fishkin]]></title>
            <description><![CDATA[Lost and Founder is the story of the creator of Moz SEO Rand Fishkin. He shares his experience in the startup world, highlighting all the mistakes and lessons learned while building Moz.]]></description>
            <link>https://www.sandromaglione.com/articles/startup-world-guide-lost-and-founder-by-rand-fishkin</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/startup-world-guide-lost-and-founder-by-rand-fishkin</guid>
            <category><![CDATA[books]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Thu, 30 Jan 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Netflix before you knew it | That Will Never Work, by Marc Randolph]]></title>
            <description><![CDATA[The book is a memoir of Marc Randolph about how the idea of Netflix came to be and what challenges and obstacles the company overcame to become what it is today.]]></description>
            <link>https://www.sandromaglione.com/articles/netflix-before-you-knew-it-that-will-never-work-by-marc-randolph</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/netflix-before-you-knew-it-that-will-never-work-by-marc-randolph</guid>
            <category><![CDATA[books]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Sun, 26 Jan 2020 00:00:00 GMT</pubDate>
        </item>
        <item>
            <title><![CDATA[Step Progress Indicator | Flutter package tutorial]]></title>
            <description><![CDATA[Flutter tutorial on how to use the step progress indicator widget package. Learn how to use all the the attributes and parameters from examples and images.]]></description>
            <link>https://www.sandromaglione.com/articles/step-progress-indicator-flutter-package-tutorial</link>
            <guid isPermaLink="false">https://www.sandromaglione.com/articles/step-progress-indicator-flutter-package-tutorial</guid>
            <category><![CDATA[software-development]]></category>
            <dc:creator><![CDATA[Sandro Maglione]]></dc:creator>
            <pubDate>Fri, 24 Jan 2020 00:00:00 GMT</pubDate>
        </item>
    </channel>
</rss>