[{"data":1,"prerenderedAt":669},["ShallowReactive",2],{"recent-posts":3},[4,277,579],{"id":5,"title":6,"body":7,"categories":264,"date":266,"description":259,"extension":267,"meta":268,"navigation":269,"path":270,"seo":271,"stem":272,"tags":273,"__hash__":276},"blog\u002Fblog\u002Foutput\u002Fposts\u002F2025-08-05-what-is-sepa\u002Findex.md","What is SEPA?",{"type":8,"value":9,"toc":258},"minimark",[10,25,36,44,47,70,73,86,89,94,200,204,215,220,223,228,234,238,241,245,251,255],[11,12,13,20],"figure",{},[14,15,16],"p",{},[17,18],"img",{"alt":6,"src":19,"title":6},"\u002Fimages\u002F2025-08-05-what-is-sepa\u002Fimage-1.png",[21,22,23],"figcaption",{},[14,24,6],{},[14,26,27,28,35],{},"SEPA stands for Single Euro Payments Area. It was created to simplify international euro transfers between EU member states. It allows you to send and receive payments in euros between two cross-border bank accounts in the eurozone. You can read more about Single Euro Payments Area from the ECB ",[29,30,34],"a",{"href":31,"rel":32},"https:\u002F\u002Fwww.ecb.europa.eu\u002Fpaym\u002Fintegration\u002Fretail\u002Fsepa\u002Fhtml\u002Findex.en.html",[33],"nofollow","here",".",[14,37,38,39,43],{},"The Single Euro Payments Area now includes ",[40,41,42],"strong",{},"41 countries"," as of mid‑2025, including EU & EFTA members as well as EU-accession states like Moldova, Serbia, Montenegro, North Macedonia, and Albania.",[14,45,46],{},"It ensures that payments made across the eurozone are as simple as domestic transactions. This promotes economic integration and the mobility of people within the eurozone. A single market for payments services increases competition thereby reducing costs of moving money throughout the eurozone.",[14,48,49,50,57,58,61,62,69],{},"The primary instrument for making payments in the Single Euro Payments Area is the ",[40,51,52],{},[29,53,56],{"href":54,"rel":55},"https:\u002F\u002Fdavegarry.com\u002Flife-cycle-of-a-sepa-credit-transfer-sct-message\u002F",[33],"SEPA Credit Transfer (SCT)",". Other instruments include ",[40,59,60],{},"SEPA Instant Credit Transfer (SCT Inst)"," and ",[40,63,64],{},[29,65,68],{"href":66,"rel":67},"https:\u002F\u002Fdavegarry.com\u002Flife-cycle-of-a-sepa-direct-debit-sdd-message\u002F",[33],"SEPA Direct Debit (SDD)",":",[14,71,72],{},"In order to make an SCT Payment, you need:",[74,75,76,80,83],"ul",{},[77,78,79],"li",{},"IBAN of the person you want to pay",[77,81,82],{},"The bank receiving the payment must be a Single Euro Payments Area member",[77,84,85],{},"The payment must be in euro",[14,87,88],{},"The Single Euro Payments Area is regulated by the European Payments Council (EPC).",[90,91,93],"h2",{"id":92},"table-of-sepa-schemes","Table of SEPA Schemes",[95,96,97,129],"table",{},[98,99,100],"thead",{},[101,102,103,109,114,119,124],"tr",{},[104,105,106],"th",{},[40,107,108],{},"Scheme Type",[104,110,111],{},[40,112,113],{},"Purpose",[104,115,116],{},[40,117,118],{},"Processing Time",[104,120,121],{},[40,122,123],{},"Refund Rights",[104,125,126],{},[40,127,128],{},"Who Uses It",[130,131,132,150,166,183],"tbody",{},[101,133,134,138,141,144,147],{},[135,136,137],"td",{},"SCT",[135,139,140],{},"One-off transfer",[135,142,143],{},"≤ 1 business day",[135,145,146],{},"N\u002FA",[135,148,149],{},"Individuals & businesses",[101,151,152,155,158,161,163],{},[135,153,154],{},"SCT Inst",[135,156,157],{},"On-demand instant pay",[135,159,160],{},"≤ 10 seconds, any time",[135,162,146],{},[135,164,165],{},"Supported by participating banks",[101,167,168,171,174,177,180],{},[135,169,170],{},"SDD Core",[135,172,173],{},"Recurring direct debit",[135,175,176],{},"1–2 days (with mandate)",[135,178,179],{},"8‑week refund window",[135,181,182],{},"Consumer debit mandates",[101,184,185,188,191,194,197],{},[135,186,187],{},"SDD B2B",[135,189,190],{},"Business direct debit",[135,192,193],{},"Similar to Core",[135,195,196],{},"No refund rights",[135,198,199],{},"Business-only mandates",[90,201,203],{"id":202},"advantages-of-sepa","Advantages of SEPA",[11,205,206,211],{},[14,207,208],{},[17,209],{"alt":203,"src":210,"title":203},"\u002Fimages\u002F2025-08-05-what-is-sepa\u002Fsepa-advantages-6-1024x337.png",[21,212,213],{},[14,214,203],{},[216,217,219],"h4",{"id":218},"four-types-of-sepapayment","Four types of SEPA payment",[14,221,222],{},"There are four different types of SEPA payment. All of these payment types have their message definitions defined in the ISO 20022 framework.",[224,225,227],"h5",{"id":226},"sepa-credit-transfer","SEPA Credit Transfer",[14,229,230,231],{},"Usually used for one-off transfers, while PSPs move payments from one bank account to another within the eurozone. For more information, please see ",[29,232,34],{"href":54,"rel":233},[33],[224,235,237],{"id":236},"sepa-instant-credit-transfer","SEPA Instant Credit Transfer",[14,239,240],{},"Unlike an SCT, an instant credit transfer can move money from one account to another in less than ten seconds.",[224,242,244],{"id":243},"sepa-direct-debit-transfer-core","SEPA Direct Debit Transfer Core",[14,246,247,248],{},"Used for subscription services as well as monthly items like utility bills. These are fundamentally different to credit transfers, as it is the recipient that requests the money transfer from the sender rather than the other way around. For more information, please see ",[29,249,34],{"href":66,"rel":250},[33],[224,252,254],{"id":253},"sepa-direct-debit-business-to-business","SEPA Direct Debit Business-to-Business",[14,256,257],{},"Available if you are collecting Direct Debit payments from other businesses",{"title":259,"searchDepth":260,"depth":260,"links":261},"",2,[262,263],{"id":92,"depth":260,"text":93},{"id":202,"depth":260,"text":203},[265],"sepa","2025-08-05","md",{},true,"\u002Fblog\u002Foutput\u002Fposts\u002F2025-08-05-what-is-sepa",{"title":6,"description":259},"blog\u002Foutput\u002Fposts\u002F2025-08-05-what-is-sepa\u002Findex",[274,275,265],"iso20022","payments","mWMKXVdBaGa3KpkX899zAJ_lgtHwPEcOyF3Mx7dBhH0",{"id":278,"title":279,"body":280,"categories":570,"date":572,"description":259,"extension":267,"meta":573,"navigation":269,"path":574,"seo":575,"stem":576,"tags":577,"__hash__":578},"blog\u002Fblog\u002Foutput\u002Fposts\u002F_drafts\u002F2025-01-20-replacing-traditional-coding-techniques-with-ai-agents\u002Findex.md","Replacing Traditional Coding techniques with AI Agents",{"type":8,"value":281,"toc":550},[282,286,289,292,295,298,305,309,312,323,326,330,333,341,344,355,362,365,372,375,395,398,405,408,419,423,429,445,452,455,461,464,472,485,491,494,498,501,512,516,537,541,544,547],[90,283,285],{"id":284},"introduction","Introduction",[14,287,288],{},"I was interested in researching how I could use AI tools and techniques, particularl, AI Agents, within my software projects in place of traditional coding techniques.",[14,290,291],{},"I built a simple Tic-Tac-Tic program in order to try this out. When creating a simple game like thus, you might initially think of using traditional design strategies—logic-driven rules, if-else conditions, and some clever heuristics.",[14,293,294],{},"However, there’s another path: leveraging Artificial Intelligence (AI). In this post, I’ll show you how I built a Tic-Tac-Toe project using a fully connected feed-forward neural network powered by the Deep Q-Network (DQN) algorithm.",[14,296,297],{},"Hopefully its an good example of how developers can use AI to solve problems that would otherwise require extensive rule-based logic.",[14,299,300,301],{},"All code for this project is available at ",[29,302,303],{"href":303,"rel":304},"https:\u002F\u002Fgithub.com\u002Fgarry-svg\u002FAI-Agent-TicTacToe",[33],[90,306,308],{"id":307},"traditional-coding-techniques-for-tic-tac-toe","Traditional Coding techniques for Tic-Tac-Toe",[14,310,311],{},"In a traditional implementation of Tic-Tac-Toe, the developer explicitly defines the game’s logic. For instance, you might:",[74,313,314,317,320],{},[77,315,316],{},"Use if-else conditions to check for winning combinations.",[77,318,319],{},"Implement heuristics to determine strategic moves, such as prioritizing the center or blocking an opponent’s winning move.",[77,321,322],{},"Create exhaustive case-based logic to evaluate all possible board states.",[14,324,325],{},"While this approach works for simple games like Tic-Tac-Toe, it becomes unsuitable for more complex problems with large state spaces. It’s here where using AI can really shine..",[90,327,329],{"id":328},"ai-approach-ai-agents","AI Approach: AI Agents",[14,331,332],{},"In my project, I replaced traditional logic with an AI agent. The key components of this system were:",[334,335,337,338],"h3",{"id":336},"_1-environment","1. ",[40,339,340],{},"Environment",[14,342,343],{},"The environment represents the game’s world—the Tic-Tac-Toe board in this case. Using Python's Gymnasium library, I defined the board as a grid of nine positions, each of which could hold an X, O, or remain empty. The environment provides the rules of the game:",[74,345,346,349,352],{},[77,347,348],{},"Valid moves.",[77,350,351],{},"Win, lose, or draw conditions.",[77,353,354],{},"Rewards for each move.",[334,356,358,359],{"id":357},"_2-ai-agent","2. AI ",[40,360,361],{},"Agent",[14,363,364],{},"The agent interacts with the environment. It observes the board state and selects actions (moves) to maximize its cumulative reward. The agent is powered by a neural network trained using the DQN algorithm.",[334,366,368,369],{"id":367},"_3-neural-network","3. ",[40,370,371],{},"Neural Network",[14,373,374],{},"The neural network is a fully connected feed-forward network:",[74,376,377,383,389],{},[77,378,379,382],{},[40,380,381],{},"Input Nodes:"," 9 nodes representing the state of the Tic-Tac-Toe board.",[77,384,385,388],{},[40,386,387],{},"Hidden Layers:"," Layers that process patterns and relationships within the data.",[77,390,391,394],{},[40,392,393],{},"Output Nodes:"," 9 nodes corresponding to the Q-values of possible moves.",[14,396,397],{},"Each Q-value represents the expected cumulative reward of making a specific move in the current board state.",[334,399,401,402],{"id":400},"_4-dqn-algorithm","4. ",[40,403,404],{},"DQN Algorithm",[14,406,407],{},"The Deep Q-Network algorithm trains the neural network to predict Q-values. Here’s how it works:",[74,409,410,413,416],{},[77,411,412],{},"The agent plays games against itself, exploring different moves.",[77,414,415],{},"It receives rewards based on the outcomes of its actions (e.g., +10 for winning, -10 for losing, 0 for a draw).",[77,417,418],{},"The DQN algorithm updates the neural network’s weights to improve its predictions, reinforcing moves that lead to better outcomes.",[90,420,422],{"id":421},"steps-to-build-the-tic-tac-toe-ai-agent","Steps to Build the Tic-Tac-Toe AI Agent",[216,424,337,426],{"id":425},"_1-define-the-environment",[40,427,428],{},"Define the Environment",[14,430,431,432,436,437,440,441,444],{},"Using Gymnasium, I implemented a custom environment for Tic-Tac-Toe. The environment included methods like ",[433,434,435],"code",{},"reset()"," (to initialize the board), ",[433,438,439],{},"step()"," (to process moves), and ",[433,442,443],{},"render()"," (to display the board).",[216,446,448,449],{"id":447},"_2-set-up-the-neural-network","2. ",[40,450,451],{},"Set Up the Neural Network",[14,453,454],{},"Stable Baselines3 provided the neural network architecture. I didn’t need to design the network from scratch—the library’s default implementation for DQN included a fully connected feed-forward network.",[216,456,368,458],{"id":457},"_3-train-the-model",[40,459,460],{},"Train the Model",[14,462,463],{},"I trained the model using the DQN algorithm by running simulations:",[74,465,466,469],{},[77,467,468],{},"The agent played 10,000 games against itself.",[77,470,471],{},"It learned which moves maximized its rewards over time.",[11,473,474,480],{},[14,475,476],{},[17,477],{"alt":478,"src":479},"training AI model","\u002Fimages\u002F2025-01-20-replacing-traditional-coding-techniques-with-ai-agents\u002Fimage-1018x1024.png",[21,481,482],{},[14,483,484],{},"Training the model",[216,486,401,488],{"id":487},"_4-integrate-a-user-interface",[40,489,490],{},"Integrate a User Interface",[14,492,493],{},"To make the game interactive, I built a simple web interface using Flask. The interface allowed a human player to compete against the AI agent, showcasing the AI’s ability to make strategic moves.",[90,495,497],{"id":496},"why-use-ai-agents","Why Use AI Agents?",[14,499,500],{},"Using AI for Tic-Tac-Toe might seem excessive, but it demonstrates concepts that scale to more complex problems. Unlike traditional logic, AI doesn’t require predefined rules. Instead, it learns optimal strategies through training, making it adaptable to:",[74,502,503,506,509],{},[77,504,505],{},"Games with larger state spaces (e.g., Chess or Go).",[77,507,508],{},"Dynamic systems where rules evolve.",[77,510,511],{},"Complex decision-making scenarios.",[334,513,515],{"id":514},"key-takeaways","Key Takeaways",[517,518,519,525,531],"ol",{},[77,520,521,524],{},[40,522,523],{},"AI Simplifies Complexity:"," For simple games like Tic-Tac-Toe, traditional methods are sufficient, but AI shines when scaling to more complex environments.",[77,526,527,530],{},[40,528,529],{},"Reusable Frameworks:"," Libraries like Stable Baselines3 and Gymnasium make it easy to implement and train AI agents.",[77,532,533,536],{},[40,534,535],{},"Hands-On Learning:"," Building this project deepened my understanding of reinforcement learning, neural networks, and the interplay between agents and environments.",[90,538,540],{"id":539},"conclusion","Conclusion",[14,542,543],{},"The Tic-Tac-Toe project is a foundational example of how to build an AI agent. It highlights the shift from rule-based programming to learning-based systems, opening doors to more sophisticated AI applications.",[14,545,546],{},"Whether you’re tackling games, robotics, or real-world optimization problems, the principles demonstrated here are a great starting point for leveraging AI effectively.",[14,548,549],{},"Have you built your own AI agent or explored reinforcement learning? Share your thoughts in the comments below!",{"title":259,"searchDepth":260,"depth":260,"links":551},[552,553,554,565,566,569],{"id":284,"depth":260,"text":285},{"id":307,"depth":260,"text":308},{"id":328,"depth":260,"text":329,"children":555},[556,559,561,563],{"id":336,"depth":557,"text":558},3,"1. Environment",{"id":357,"depth":557,"text":560},"2. AI Agent",{"id":367,"depth":557,"text":562},"3. Neural Network",{"id":400,"depth":557,"text":564},"4. DQN Algorithm",{"id":421,"depth":260,"text":422},{"id":496,"depth":260,"text":497,"children":567},[568],{"id":514,"depth":557,"text":515},{"id":539,"depth":260,"text":540},[571],"ai","2025-01-20",{"draft":269},"\u002Fblog\u002Foutput\u002Fposts\u002F_drafts\u002F2025-01-20-replacing-traditional-coding-techniques-with-ai-agents",{"title":279,"description":259},"blog\u002Foutput\u002Fposts\u002F_drafts\u002F2025-01-20-replacing-traditional-coding-techniques-with-ai-agents\u002Findex",null,"BBCMeYRQ5VEppqJxXAwDlWkdyPSgwn7mn2WHiFbssho",{"id":580,"title":581,"body":582,"categories":659,"date":662,"description":663,"extension":267,"meta":664,"navigation":269,"path":665,"seo":666,"stem":667,"tags":577,"__hash__":668},"blog\u002Fblog\u002Foutput\u002Fposts\u002F2023-07-16-ripple-and-iso-20022\u002Findex.md","Ripple and ISO 20022",{"type":8,"value":583,"toc":654},[584,598,602,608,617,626,630,633,636,639,642,645,648,651],[14,585,586,591,592,597],{},[29,587,590],{"href":588,"rel":589},"https:\u002F\u002Fripple.com\u002F",[33],"Ripple"," is a technology company that leverages decentralised block chain technology in order to facilitate cheaper and faster cross-border payments. ",[29,593,596],{"href":594,"rel":595},"https:\u002F\u002Fdavegarry.com\u002Fwhat-is-iso-20022\u002F",[33],"ISO 20022"," is the common language and model for financial messages being exchanged across the world. This blog post discusses what Ripple is and its adoption of ISO 20022.",[90,599,601],{"id":600},"what-is-ripple","What is Ripple?",[14,603,604],{},[17,605],{"alt":606,"src":607,"title":606},"Ripple and ISO 200222","\u002Fimages\u002F2023-07-16-ripple-and-iso-20022\u002Fimage.png",[14,609,610,611,616],{},"Ripple is a ",[29,612,615],{"href":613,"rel":614},"https:\u002F\u002Fdavegarry.com\u002Fwhat-is-real-time-gross-settlement\u002F",[33],"RTGS",", currency exchange and remittance network that is available to financial institutions. It uses cryptocurrency to power cross-border transactions.",[14,618,619,620,625],{},"Ripple was designed to be a replacement for the ",[29,621,624],{"href":622,"rel":623},"https:\u002F\u002Fdavegarry.com\u002Fwho-are-swift\u002F",[33],"SWIFT"," network. It facilitates the transfer of a number of fiat currencies and cryptocurrencies between financial institutions for a small amount of XRP. This fee is small in comparison to the amount charged by banks for cross-border payments.",[90,627,629],{"id":628},"what-is-xrp","What is XRP?",[14,631,632],{},"XRP is the cryptocurrency native to RippleNet, the Ripple platform. It uses a decentralised blockchain known as the XRP Ledger (XRPL). XRP uses the Ripple transaction protocol (RTXP) to process transaction.",[14,634,635],{},"Distributed ledger technologies (DLT) have the potential to reduce costs of transactions. They also speed up the transaction processing because they remove the need for a central authority such as central banks or financial networks like SWIFT.",[14,637,638],{},"RippleNet has a facility, ODL, On-Demand Liquidity, which is used to buy XRP on the market when needed and selling it when received, effectively eliminating volatility by completing both transactions within seconds.",[90,640,581],{"id":641},"ripple-and-iso-20022",[14,643,644],{},"Ripple is part of the ISO 20022 standards body with a particular focus on distributed ledger technology. Its membership will allow customers to use RippleNet to access a network of global financial institutions and connect to one standardized API for all counterparty transactions.",[14,646,647],{},"Ripple can now provide RippleNet at a greater scale by conforming to the same standard that SWIFT and its members will use. SWIFT members will integrate more easily with RippleNet as they will adhere to the same message standard.",[14,649,650],{},"The use of distributed ledger technology within ISO 20022 will allow faster transaction processing and cross-border payments via a standardised API. ISO 20022 stands to become the global payments language and Ripple will benefit from this.",[14,652,653],{},"In a sense Ripple and ISO 20022 are quite complementary; both hope to make cross-border payments cheap, easy and automatic.",{"title":259,"searchDepth":260,"depth":260,"links":655},[656,657,658],{"id":600,"depth":260,"text":601},{"id":628,"depth":260,"text":629},{"id":641,"depth":260,"text":581},[660,661],"iso-20022","ripple","2023-07-16","Ripple is a technology company that leverages decentralised block chain technology in order to facilitate cheaper and faster cross-border payments. ISO 20022 is the common language and model for financial messages being exchanged across the world. This blog post discusses what Ripple is and its adoption of ISO 20022.",{},"\u002Fblog\u002Foutput\u002Fposts\u002F2023-07-16-ripple-and-iso-20022",{"title":581,"description":663},"blog\u002Foutput\u002Fposts\u002F2023-07-16-ripple-and-iso-20022\u002Findex","fo1TbTu5nJUWaJ6s_kQ6qUAw0mApiaxv4rAz8_QlDXg",1778189599228]