<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Mahmoud EL-kariouny</title>
    <description>The latest articles on DEV Community by Mahmoud EL-kariouny (@mahmoudessam).</description>
    <link>https://dev.to/mahmoudessam</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F414014%2F497d9816-6f2d-46b8-b9e9-f4c3c79fda63.png</url>
      <title>DEV Community: Mahmoud EL-kariouny</title>
      <link>https://dev.to/mahmoudessam</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mahmoudessam"/>
    <language>en</language>
    <item>
      <title>Why SQL Still Rules the Data World: Surprising Truths from the Relational Revolution</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Sun, 14 Jun 2026 14:34:51 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/why-sql-still-rules-the-data-world-surprising-truths-from-the-relational-revolution-1go6</link>
      <guid>https://dev.to/mahmoudessam/why-sql-still-rules-the-data-world-surprising-truths-from-the-relational-revolution-1go6</guid>
      <description>&lt;p&gt;In the hyper-accelerated world of software development, where programming languages often have the shelf life of a smartphone, SQL stands as a defiant outlier. With roots stretching back to the early 1970s, it has not only survived the rise and fall of countless "modern" competitors but has thrived. &lt;/p&gt;

&lt;p&gt;As we struggle to navigate an unprecedented deluge of digital information, it is a fascinating paradox: this "ancient" tool, born in the era of magnetic tapes, remains the industry’s most sophisticated way to manage the complexities of data. To understand why, we have to look past the syntax and into the architectural soul of the relational model.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "High-Power Zoom Lens" of Data
&lt;/h3&gt;

&lt;p&gt;The enduring success of relational databases lies in their unique ability to handle massive datasets without losing focus.  Many alternative database management systems break down under heavy loads. &lt;/p&gt;

&lt;p&gt;&lt;em&gt;The reason is usually architectural:&lt;/em&gt; their focus is too narrow. They are designed to do one thing well, but they lack versatility. In these systems, the “lens” is effectively stuck on maximum zoom, making it impossible to see the forest for the trees.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;SQL, by contrast, functions like a high-precision instrument for data. As Alan Beaulieu notes in &lt;em&gt;Learning SQL&lt;/em&gt;:&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"SQL is akin to one of those snazzy digital cameras with the&lt;br&gt;
high-power zoom lens in that you can use SQL to look at large sets of&lt;br&gt;
data, or you can zoom in on individual rows (or anywhere in between)."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This versatility allows us to act as both microscopes and telescopes. We can perform macro-scale analysis—identifying multi-year trends across millions of records—and then instantly zoom in to inspect a single micro-scale transaction. It is this specific ability to scale perspective that has allowed the relational model to defeat almost every attempt to dethrone it.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Zen of Giving Up Control
&lt;/h3&gt;

&lt;p&gt;For developers raised on Java, C++, or Python, the hardest part of mastering SQL isn’t the keywords—it’s the fundamental shift in mindset. Most languages are &lt;strong&gt;procedural&lt;/strong&gt;; the programmer is the micromanager, defining both the desired result and the specific process to achieve it. SQL is a &lt;strong&gt;nonprocedural&lt;/strong&gt; language, which requires a "Zen-like" surrender of control to an external agent: the &lt;strong&gt;Optimizer&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;The "What" (SQL):&lt;/strong&gt; You define the inputs and the desired output (e.g., "Show me all customers in &lt;a href="https://en.wikipedia.org/wiki/Alexandria" rel="noopener noreferrer"&gt;Alexandria&lt;/a&gt; with active accounts").&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;The "How" (Procedural):&lt;/strong&gt; The Optimizer analyzes your query, evaluates table configurations and available indexes, and then picks an &lt;strong&gt;Execution Plan&lt;/strong&gt;, which the server uses to actually retrieve the data.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Trusting the &lt;strong&gt;Optimizer&lt;/strong&gt; to generate this &lt;strong&gt;Execution Plan&lt;/strong&gt; is a rite of passage. While we can occasionally influence these decisions with "hints," the database engine is almost always better at navigating the physical complexities of the data than a human writing manual loops and pointers.&lt;/p&gt;

&lt;h3&gt;
  
  
  The "Four-Letter Word" That Isn't What You Think
&lt;/h3&gt;

&lt;p&gt;In the realm of data integrity, there is one four-letter word that causes more bugs for beginners than any other: &lt;code&gt;NULL&lt;/code&gt;. &lt;/p&gt;

&lt;p&gt;To a junior developer, &lt;code&gt;NULL&lt;/code&gt; looks like a zero or an empty string. To an architect, it is the &lt;strong&gt;absence of value&lt;/strong&gt;. According to the source context, &lt;code&gt;NULL&lt;/code&gt; specifically represents data that is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;Not applicable&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;Unknown&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;An empty set&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A senior practitioner will tell you that a zero is a number and an empty string is a character, but a &lt;code&gt;NULL&lt;/code&gt; is a question mark. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pro-Tip:&lt;/strong&gt; You cannot use the equality operator (&lt;code&gt;=&lt;/code&gt;) with &lt;code&gt;NULL&lt;/code&gt;. To find non-terminated employees, for example, a Senior Architect would warn you to use the specific syntax &lt;code&gt;WHERE end_date IS NULL&lt;/code&gt;. Attempting to use &lt;code&gt;WHERE end_date = NULL&lt;/code&gt; will return nothing, as the absence of a value cannot be "equal" to anything.&lt;/p&gt;

&lt;h3&gt;
  
  
  Why "Redundant" Data Is Actually a Clean Design
&lt;/h3&gt;

&lt;p&gt;It is counter-intuitive, but the relational model’s use of "redundant" data—specifically foreign keys—is the secret to its reliability. This is the heart of &lt;strong&gt;Normalization&lt;/strong&gt;. We refine a design to ensure every independent piece of information exists in exactly one place.&lt;/p&gt;

&lt;p&gt;Consider a "Person Table." A common beginner mistake is to create a "compound object" column, like a &lt;code&gt;name&lt;/code&gt; column containing both first and last names, or an &lt;code&gt;address&lt;/code&gt; column containing street, city, and zip. This is a violation of normalization. Why? Because as the source material warns:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"...otherwise, the data might be changed in one place but not another,&lt;br&gt;
causing the data in the database to be unreliable."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;By ensuring a "single source of truth," we prevent data corruption. We store a person's name once in the &lt;code&gt;person&lt;/code&gt; table and use their unique ID (the foreign key) everywhere else. If their name changes, we update one row in one table, and the change is logically reflected across the entire system.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Evolution from Pointers to Tables
&lt;/h3&gt;

&lt;p&gt;To appreciate SQL, one must understand the chaos it replaced. Before &lt;a href="https://www.ibm.com/history/edgar-codd" rel="noopener noreferrer"&gt;Dr. E.F. Codd proposed the Relational Model in 1970,&lt;/a&gt; we relied on &lt;strong&gt;Hierarchical&lt;/strong&gt; and &lt;strong&gt;Network&lt;/strong&gt; systems. These were rigid structures where data was connected by physical "pointers." To find a record, you had to manually traverse these links like a navigator in a dark forest.&lt;/p&gt;

&lt;p&gt;Codd’s revolution replaced these physical links with &lt;strong&gt;logical joins&lt;/strong&gt;. This transition was reflected in the language's own evolution. It began as &lt;strong&gt;DSL/Alpha&lt;/strong&gt;, was simplified into &lt;strong&gt;SQUARE&lt;/strong&gt;, and was then refined into &lt;strong&gt;SEQUEL&lt;/strong&gt; (Structured English Query Language) before finally becoming the standard &lt;strong&gt;SQL&lt;/strong&gt; we use today. By moving from "pointers" to "sets of tables," Codd made data accessible to the user rather than just the specialist, allowing us to link information dynamically based on values rather than hard-coded physical paths.&lt;/p&gt;

&lt;h4&gt;
  
  
  Conclusion
&lt;/h4&gt;

&lt;p&gt;The enduring nature of SQL is a testament to the elegant efficiency of the relational model. In an era where the industry is frequently obsessed with "new" tools and NoSQL alternatives, the fundamentals established in the 1970s are more relevant than ever.&lt;/p&gt;

&lt;p&gt;We now manage terabytes of data spread across fast-access drives, with tens of gigabytes held in high-speed memory, yet the core problems of retrieval and integrity remain the same. SQL has entered "middle age," but its future is bright because it solves these problems with a rigor that modern alternatives often lack. We must ask ourselves: in our obsession with "new" tools, have we overlooked the sophisticated power of the relational model in favor of modern tool-bloat? Mastering these "old" fundamentals is not just a history lesson—it is the only way to truly master the data-driven world of tomorrow.&lt;/p&gt;

&lt;h3&gt;
  
  
  Reference Material
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Learning-SQL-Generate-Manipulate-Retrieve/dp/1492057614" rel="noopener noreferrer"&gt;Learning SQL: Generate, Manipulate, and Retrieve Data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Performance-Explained-Everything-Developers-about/dp/3950307826" rel="noopener noreferrer"&gt;SQL Performance Explained Everything Developers Need to Know about SQL Performance&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.amazon.com/Designing-Data-Intensive-Applications-Reliable-Maintainable/dp/B08VL1BLHB/ref=sr_1_2?crid=ETB66REECYXE&amp;amp;dib=eyJ2IjoiMSJ9.lrr2OoDCN-gtMboNEF2nJ_vEL2GKSv29phJRy_xd2NOF9zCnS7_pNfEydrbsfSMgy-udkQ5AEm8BzEDtxXUPX8cTFYi6qO9AmnCFqUDLWfmliUDR83ljMpklBvpi1O4NHQGAjHjXCiAByMziyupAd7XX5Ux6Sz3VuURmuDT_EodIliGqCwUvh2_LCdksgM_0i0Oy3rWZ1o4e5NcGse2DV6pzcMYDkqn8nkIIl5i7ZTE.4XVKzcZ7GNpR6IDKHWfnkL_5ZcrJsYPlwXhfl0Of9d4&amp;amp;dib_tag=se&amp;amp;keywords=Designing%20Data-Intensive%20Applications_%20The%20Big%20Ideas%20Behind%20Reliable,%20Scalable,%20and%20Maintainable%20Systems&amp;amp;nsdOptOutParam=true&amp;amp;qid=1781447342&amp;amp;s=books&amp;amp;sprefix=designing%20data-intensive%20applications_%20the%20big%20ideas%20behind%20reliable,%20scalable,%20and%20maintainable%20systems,stripbooks-intl-ship,292&amp;amp;sr=1-2" rel="noopener noreferrer"&gt;Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>sql</category>
      <category>database</category>
      <category>datascience</category>
      <category>beginners</category>
    </item>
    <item>
      <title>🏗️✨ The SOLID Principles: 5 Golden Rules for Super Code! 💎🧒</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Tue, 09 Jun 2026 15:07:40 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/the-solid-principles-5-golden-rules-for-super-code-40io</link>
      <guid>https://dev.to/mahmoudessam/the-solid-principles-5-golden-rules-for-super-code-40io</guid>
      <description>&lt;p&gt;&lt;a href="https://dev.to/mahmoudessam/the-magical-toy-workshop-a-story-about-oop-31pg"&gt;&lt;em&gt;(Continuing our Magical Toy Workshop adventure! 🧸🏭)&lt;/em&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Grandpa Maker's workshop was thriving, but as more toys were created, things got tricky! 🔧😅&lt;br&gt;&lt;br&gt;
Blueprints tangled, upgrades broke old toys, and swapping parts was a puzzle. 🌀&lt;br&gt;&lt;br&gt;
So Grandpa carved &lt;strong&gt;5 Magical Rules&lt;/strong&gt; into the workshop door. He called them &lt;strong&gt;SOLID&lt;/strong&gt; — the secret to building toys (and code!) that are &lt;strong&gt;strong, flexible, and easy to love&lt;/strong&gt;! 💙🚀&lt;/p&gt;

&lt;p&gt;Let's unlock each rule with a story! 🗝️📖✨&lt;/p&gt;




&lt;h2&gt;
  
  
  🔤 What Does SOLID Mean?
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;SOLID&lt;/strong&gt; is an acronym for 5 design principles that help programmers write clean, maintainable code. 🧹💻&lt;br&gt;&lt;br&gt;
In our workshop, they help Grandpa build toys that are: ✅ Easy to fix 🔧&lt;br&gt;&lt;br&gt;
✅ Simple to upgrade 🆙&lt;br&gt;&lt;br&gt;
✅ Fun to extend 🎨&lt;br&gt;&lt;br&gt;
✅ Safe to share 🤝&lt;/p&gt;

&lt;h2&gt;
  
  
  🎯 &lt;strong&gt;S&lt;/strong&gt; – Single Responsibility Principle (SRP)
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"One toy, ONE special job!"&lt;/em&gt; 🧸✨&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The Story:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Grandpa once built a "Mega-Bot 3000" that could:&lt;br&gt;&lt;br&gt;
🎨 Paint • 🚗 Drive • 🎵 Sing • 🍪 Bake • 🌈 Dance&lt;/p&gt;

&lt;p&gt;But… paint got in the cookies 🎨🍪, singing scared the car 🎵🚗, and everything broke at once! 😫&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Fix:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
🔹 Painter Bot → only paints 🎨&lt;br&gt;&lt;br&gt;
🔹 Driver Bot → only zooms 🏎️&lt;br&gt;&lt;br&gt;
🔹 Chef Bot → only bakes 🧑‍🍳&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 In Code:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
A class should have &lt;strong&gt;only one reason to change&lt;/strong&gt;. Keep it focused! 🎯&lt;br&gt;&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt;  &lt;code&gt;class CookieOven&lt;/code&gt; should bake cookies — not also deliver mail! 📬❌&lt;/p&gt;

&lt;h2&gt;
  
  
  📦🔓 &lt;strong&gt;O&lt;/strong&gt; – Open/Closed Principle (OCP)
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Open for upgrades, closed for breakage!"&lt;/em&gt; 🌈🛡️&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The Story:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The race car blueprint was perfect! 🏎️✨ But kids wanted:&lt;br&gt;&lt;br&gt;
🌙 Glow wheels • 🌈 Rainbow paint • 🚀 Turbo boost&lt;/p&gt;

&lt;p&gt;Instead of rewriting the whole plan (and risking breaks! 😰), Grandpa added &lt;strong&gt;snap-on modules&lt;/strong&gt;! 🧩✅&lt;br&gt;&lt;br&gt;
Core car = safe &amp;amp; closed 🔒&lt;br&gt;&lt;br&gt;
Add-ons = easy &amp;amp; open 🔓&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 In Code:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Classes should be &lt;strong&gt;open for extension&lt;/strong&gt; (new features) but &lt;strong&gt;closed for modification&lt;/strong&gt; (don't break old code).&lt;br&gt;&lt;br&gt;
&lt;em&gt;Example:&lt;/em&gt; Use interfaces or inheritance to add &lt;code&gt;GlowWheelModule&lt;/code&gt; without touching &lt;code&gt;RaceCar&lt;/code&gt;! 🛠️✨&lt;/p&gt;

&lt;h2&gt;
  
  
  🔄🧩 &lt;strong&gt;L&lt;/strong&gt; – Liskov Substitution Principle (LSP)
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"New versions must fit the old slots!"&lt;/em&gt; 🎮✅&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The Story:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
The garage had a "Toy Car" parking spot 🅿️.&lt;br&gt;&lt;br&gt;
🚗 Regular Car → fits perfectly!&lt;br&gt;&lt;br&gt;
🚀 Hover Car → floats away! 😱 Doesn't follow the same rules!&lt;/p&gt;

&lt;p&gt;Grandpa fixed it: &lt;strong&gt;Every new car must work wherever the original car works.&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Now Hover Car still uses the same remote, same garage, same tracks — just with extra magic! ✨🛤️&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 In Code:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
If &lt;code&gt;class Duck&lt;/code&gt; has a &lt;code&gt;quack()&lt;/code&gt; method, then &lt;code&gt;class RubberDuck&lt;/code&gt; shouldn't throw an error when &lt;code&gt;quack()&lt;/code&gt; is called! 🦆🔇&lt;br&gt;&lt;br&gt;
&lt;em&gt;Subtypes must be substitutable for their base types.&lt;/em&gt; 🔄✅&lt;/p&gt;

&lt;h2&gt;
  
  
  📋✂️ &lt;strong&gt;I&lt;/strong&gt; – Interface Segregation Principle (ISP)
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Only the instructions you actually need!"&lt;/em&gt; 🧩📖&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The Story:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Grandpa once gave EVERY toy the same giant manual:&lt;br&gt;&lt;br&gt;
&lt;code&gt;fly()&lt;/code&gt; ✈️ • &lt;code&gt;swim()&lt;/code&gt; 🏊 • &lt;code&gt;hug()&lt;/code&gt; 🤗 • &lt;code&gt;zoom()&lt;/code&gt; 🏎️ • &lt;code&gt;bark()&lt;/code&gt; 🐶&lt;/p&gt;

&lt;p&gt;Teddy Bear stared at &lt;code&gt;fly()&lt;/code&gt;… 🧸✈️❓&lt;br&gt;&lt;br&gt;
Fish looked at &lt;code&gt;hug()&lt;/code&gt;… 🐠🤗❓&lt;br&gt;&lt;br&gt;
So confusing! 😵&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The Fix:&lt;/strong&gt; Split the manual into tiny, focused sheets! 📄✨&lt;br&gt;&lt;br&gt;
🐻 Bear Manual → &lt;code&gt;hug()&lt;/code&gt;, &lt;code&gt;sit()&lt;/code&gt;&lt;br&gt;&lt;br&gt;
🚁 Copter Manual → &lt;code&gt;fly()&lt;/code&gt;, &lt;code&gt;land()&lt;/code&gt;&lt;br&gt;&lt;br&gt;
🐠 Fish Manual → &lt;code&gt;swim()&lt;/code&gt;, &lt;code&gt;splash()&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 In Code:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Don't force classes to depend on methods they don't use. 🙅‍♂️&lt;br&gt;&lt;br&gt;
&lt;em&gt;Many small, specific interfaces &amp;gt; one big, messy one.&lt;/em&gt; 🧩✅&lt;/p&gt;

&lt;h2&gt;
  
  
  🔌🔗 &lt;strong&gt;D&lt;/strong&gt; – Dependency Inversion Principle (DIP)
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Plug into standards, not specifics!"&lt;/em&gt; 🔋🔌&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The Story:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Robots only worked with the rare "Zap-Battery 3000" ⚡🔋.&lt;br&gt;&lt;br&gt;
When it ran out… 🤖💤 Everything stopped! 😱&lt;/p&gt;

&lt;p&gt;Grandpa changed the design:&lt;br&gt;&lt;br&gt;
🔹 Instead of: &lt;em&gt;"Robot needs Zap-Battery 3000"&lt;/em&gt;&lt;br&gt;&lt;br&gt;
🔹 He wrote: &lt;em&gt;"Robot needs ANY battery with a Standard Power Slot"&lt;/em&gt; 🔌✨&lt;/p&gt;

&lt;p&gt;Now:&lt;br&gt;&lt;br&gt;
🔋 Alkaline • 🔋 Solar • 🔋 Magic Crystal — all click in! 🎉&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;💡 In Code:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Depend on &lt;strong&gt;abstractions&lt;/strong&gt; (interfaces/abstract classes), not concrete implementations.&lt;br&gt;&lt;br&gt;
&lt;em&gt;High-level modules shouldn't depend on low-level details — both should depend on abstractions.&lt;/em&gt; 🌉✨&lt;/p&gt;

&lt;h2&gt;
  
  
  🌟 SOLID Quick-Reference Chart 🗂️✅
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Letter&lt;/th&gt;
&lt;th&gt;Principle&lt;/th&gt;
&lt;th&gt;Toy Workshop Wisdom&lt;/th&gt;
&lt;th&gt;Code Superpower&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;S&lt;/td&gt;
&lt;td&gt;Single Responsibility&lt;/td&gt;
&lt;td&gt;🎯 One toy, one job&lt;/td&gt;
&lt;td&gt;Easier to test &amp;amp; fix&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;O&lt;/td&gt;
&lt;td&gt;Open/Closed&lt;/td&gt;
&lt;td&gt;📦 Add snap-ons, don't rewrite&lt;/td&gt;
&lt;td&gt;Safe upgrades&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;L&lt;/td&gt;
&lt;td&gt;Liskov Substitution&lt;/td&gt;
&lt;td&gt;🔄 New toys fit old slots&lt;/td&gt;
&lt;td&gt;Reliable swapping&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;I&lt;/td&gt;
&lt;td&gt;Interface Segregation&lt;/td&gt;
&lt;td&gt;📋 Small manuals, no confusion&lt;/td&gt;
&lt;td&gt;Clean, focused contracts&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;D&lt;/td&gt;
&lt;td&gt;Dependency Inversion&lt;/td&gt;
&lt;td&gt;🔌 Standard slots, any battery&lt;/td&gt;
&lt;td&gt;Flexible, decoupled design&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  🎁 Why SOLID Matters for Kids (and Grown-Up Coders!) 🧒👩‍💻
&lt;/h2&gt;

&lt;p&gt;✨ &lt;strong&gt;Less Breaking&lt;/strong&gt; – Toys (and apps!) stay fun longer! 🧸🔧&lt;br&gt;&lt;br&gt;
✨ &lt;strong&gt;Easier Sharing&lt;/strong&gt; – Friends can add to your blueprint without mess! 🤝📐&lt;br&gt;&lt;br&gt;
✨ &lt;strong&gt;Happy Debugging&lt;/strong&gt; – When something breaks, you know exactly where to look! 🔍✅&lt;br&gt;&lt;br&gt;
✨ &lt;strong&gt;Future-Proof&lt;/strong&gt; – New ideas snap right in! 🚀🌈&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;🧙‍♂️ &lt;em&gt;Grandpa's Final Wisdom:&lt;/em&gt;&lt;br&gt;&lt;br&gt;
&lt;em&gt;"SOLID isn't about perfect code on day one.&lt;br&gt;&lt;br&gt;
It's about building with love, so your creations can grow, adapt, and bring joy — today, tomorrow, and always."&lt;/em&gt; 💙🏭✨&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Now YOU know the secret rules behind the world's best toys… and the world's best software! 🎮💻🧸&lt;br&gt;&lt;br&gt;
Ready to design your own SOLID masterpiece? Grab your imagination, pick a principle, and start building! 🚀📐💫&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(Workshop.status() → "SOLID &amp;amp; Sparkling!" ✅🌟)&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>oop</category>
      <category>programming</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>The Magical Toy Workshop: A Story About OOP 🧸🏭✨</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Tue, 09 Jun 2026 14:53:14 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/the-magical-toy-workshop-a-story-about-oop-31pg</link>
      <guid>https://dev.to/mahmoudessam/the-magical-toy-workshop-a-story-about-oop-31pg</guid>
      <description>&lt;p&gt;Once upon a time, in a cozy little town, there was a very special place called The Blueprint Workshop 📐✨. &lt;br&gt;
Every day, Grandpa Maker drew up plans to bring toys to life. But he didn’t build them one by one from scratch… he used a clever trick called Object-Oriented Programming (OOP)! 💻🎈 &lt;br&gt;
Let’s peek inside and see how it works!&lt;/p&gt;

&lt;h3&gt;
  
  
  📜 The Magic Blueprint = Class
&lt;/h3&gt;

&lt;p&gt;Grandpa didn’t start with glue and paint. He started with a blueprint! 🗺️ A blueprint is just a set of instructions that says: &lt;em&gt;“If you want to make this toy, here’s exactly how it should look and what it should know.”&lt;/em&gt; In OOP, we call this a Class. 🏗️✨&lt;/p&gt;

&lt;h3&gt;
  
  
  🤖🧸🚗 The Real Toys = Objects
&lt;/h3&gt;

&lt;p&gt;When Grandpa followed the blueprint and pressed the 🟢 “&lt;em&gt;Make!&lt;/em&gt;” button… POOF! 🎩💨 A real toy appeared! Each actual toy is called an Object. The blueprint is just paper, but the object is the real, huggable, zoomable thing you can play with! 🌈🧸&lt;/p&gt;

&lt;h3&gt;
  
  
  🎨⚙️ What the Toy Has = &lt;strong&gt;Attributes&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Every toy comes with special features. We call these &lt;strong&gt;Attributes&lt;/strong&gt; (or &lt;em&gt;Properties&lt;/em&gt;). 📝&lt;br&gt;&lt;br&gt;
The race car 🏎️ has: &lt;code&gt;color = red&lt;/code&gt;, &lt;code&gt;wheels = 4&lt;/code&gt;, &lt;code&gt;speed = fast&lt;/code&gt;&lt;br&gt;&lt;br&gt;
The teddy bear 🧸 has: &lt;code&gt;fur = soft&lt;/code&gt;, &lt;code&gt;size = cuddly&lt;/code&gt;, &lt;code&gt;favorite_hug = warm&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Attributes are like a toy’s &lt;em&gt;personality card&lt;/em&gt;! 🃏✨&lt;/p&gt;

&lt;h3&gt;
  
  
  🎵💃 What the Toy Can Do = &lt;strong&gt;Methods&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Toys aren’t just for looking at… they &lt;em&gt;do&lt;/em&gt; things! In OOP, we call these actions &lt;strong&gt;Methods&lt;/strong&gt;. 🛠️&lt;br&gt;&lt;br&gt;
&lt;code&gt;car.zoom()&lt;/code&gt; 🏁&lt;br&gt;&lt;br&gt;
&lt;code&gt;bear.hug()&lt;/code&gt; 🤗&lt;br&gt;&lt;br&gt;
&lt;code&gt;robot.dance()&lt;/code&gt; 🕺&lt;br&gt;&lt;br&gt;
Methods are the toys’ &lt;em&gt;superpowers&lt;/em&gt; that you can call by name! ⚡&lt;/p&gt;

&lt;h3&gt;
  
  
  🔒📦 Keeping Secrets Safe = &lt;strong&gt;Encapsulation&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Some parts of the toys are very delicate, like their tiny batteries 🔋 or magic gears ⚙️. Grandpa wraps them up in a little box so little fingers don’t accidentally break them. 🔐 This is called &lt;strong&gt;Encapsulation&lt;/strong&gt;! Only the toy itself knows how to use its insides. You just press the button, and it works! 🎛️✅&lt;/p&gt;

&lt;h3&gt;
  
  
  🌳👨‍👧‍👦 Sharing Family Traits = &lt;strong&gt;Inheritance&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;One day, Grandpa made a &lt;strong&gt;Super Robot&lt;/strong&gt; 🤖 that could &lt;code&gt;walk()&lt;/code&gt;, &lt;code&gt;talk()&lt;/code&gt;, and &lt;code&gt;lift()&lt;/code&gt;. Then he wanted a mini-robot! Instead of starting over, he made the little one a &lt;strong&gt;child&lt;/strong&gt; of the big robot. 🧬✨ The mini-robot automatically knew how to &lt;code&gt;walk()&lt;/code&gt;, &lt;code&gt;talk()&lt;/code&gt;, and &lt;code&gt;lift()&lt;/code&gt; too! Then he added his own trick: &lt;code&gt;spin()&lt;/code&gt;. 🌀 This family sharing is called &lt;strong&gt;Inheritance&lt;/strong&gt;. Parents pass down abilities, kids add new ones! 👨‍👦💫&lt;/p&gt;

&lt;h3&gt;
  
  
  🎭🔄 Same Command, Different Magic = &lt;strong&gt;Polymorphism&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The workshop had a special button labeled &lt;strong&gt;PLAY&lt;/strong&gt; ▶️. When you press it…&lt;br&gt;&lt;br&gt;
🥁 The drum says &lt;code&gt;bang!&lt;/code&gt;&lt;br&gt;&lt;br&gt;
🚗 The car says &lt;code&gt;zoom!&lt;/code&gt;&lt;br&gt;&lt;br&gt;
🧸 The bear says &lt;code&gt;hug!&lt;/code&gt;&lt;br&gt;&lt;br&gt;
🤖 The robot says &lt;code&gt;beep-boop-dance!&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Same button, totally different responses! ✨ This clever trick is called &lt;strong&gt;Polymorphism&lt;/strong&gt; (poly = many, morph = forms). It lets every toy answer the same request in its own special way! 🎶🌈&lt;/p&gt;

&lt;h3&gt;
  
  
  🌫️🔍 You Don’t Need to Know Every Gear = &lt;strong&gt;Abstraction&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;You never have to open the toy to see how the springs and wires work. 🙈 You just press a button, and &lt;em&gt;magic happens!&lt;/em&gt; 🪄 In OOP, this is &lt;strong&gt;Abstraction&lt;/strong&gt;: hiding the messy details and only showing you what you actually need to use. Clean, simple, and stress-free! 🧘‍♂️✨&lt;/p&gt;

&lt;h3&gt;
  
  
  🧩 The Happy Ending 🏁💖
&lt;/h3&gt;

&lt;p&gt;And that’s how the Blueprint Workshop builds amazing playmates using &lt;strong&gt;OOP&lt;/strong&gt;! 🧸🏎️🤖&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  📜 &lt;strong&gt;Class&lt;/strong&gt; = the plan&lt;/li&gt;
&lt;li&gt;  🎁 &lt;strong&gt;Object&lt;/strong&gt; = the real toy&lt;/li&gt;
&lt;li&gt;  🎨 &lt;strong&gt;Attributes&lt;/strong&gt; = what it has&lt;/li&gt;
&lt;li&gt;  🎵 &lt;strong&gt;Methods&lt;/strong&gt; = what it does&lt;/li&gt;
&lt;li&gt;  🔒 &lt;strong&gt;Encapsulation&lt;/strong&gt; = safe secrets&lt;/li&gt;
&lt;li&gt;  🌳 &lt;strong&gt;Inheritance&lt;/strong&gt; = family superpowers&lt;/li&gt;
&lt;li&gt;  🎭 &lt;strong&gt;Polymorphism&lt;/strong&gt; = same call, different magic&lt;/li&gt;
&lt;li&gt;  🌫️ &lt;strong&gt;Abstraction&lt;/strong&gt; = simple buttons, hidden gears&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now you know the secret language of toy makers… and computer programmers too! 👾💻✨&lt;br&gt;&lt;br&gt;
Want to design your own class someday? Grab your imagination, draw a blueprint, and press &lt;em&gt;Make!&lt;/em&gt; 🚀🧒💙&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(The end… or should we say, &lt;code&gt;story.end()&lt;/code&gt;? 😉📖✨)&lt;/em&gt;&lt;/p&gt;

</description>
      <category>oop</category>
      <category>webdev</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>From Searching to Acting: An Explorer’s Guide to the Rise of AI Agency</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Sun, 31 May 2026 16:32:38 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/from-searching-to-acting-an-explorers-guide-to-the-rise-of-ai-agency-48i4</link>
      <guid>https://dev.to/mahmoudessam/from-searching-to-acting-an-explorers-guide-to-the-rise-of-ai-agency-48i4</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Learning Objective:&lt;/strong&gt;&lt;/em&gt; By the end of this guide, you will understand the architecture that allows AI to move from answering questions to executing complex tasks.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Introduction: The Evolution of the Digital Mind
&lt;/h3&gt;

&lt;p&gt;For several years, the world has been fascinated by Large Language Models (LLMs) that can write poems, answer questions, and summarize documents. These are often referred to as "Static AI" because their intelligence is largely confined to the data they were trained on. However, we are currently witnessing a massive shift toward Agentic AI.&lt;/p&gt;

&lt;p&gt;While a standard AI might simply predict the next word in a sentence based on patterns, an agentic system uses reasoning to determine which tools and data sources it needs to solve a problem. It doesn't just "chat"; it "acts."&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Agentic AI:&lt;/strong&gt; An advanced AI system capable of using tools, accessing external data, and following a multi-step reasoning process to accomplish complex goals independently.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;This evolution marks the transition from AI that "knows" things based on past training to AI that "does" things by interacting with the world through real-time data retrieval.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. The Foundation: What is RAG?
&lt;/h3&gt;

&lt;p&gt;To understand how an AI becomes an agent, we must first understand Retrieval-Augmented Generation (RAG). A standard AI model is like a student who studied for an exam months ago but hasn't looked at a book since; it may be smart, but its information is frozen in time. &lt;/p&gt;

&lt;p&gt;RAG gives that student an "open-book" policy, allowing the AI to look up fresh, private, or highly specific data before it answers a prompt.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;Standard LLM&lt;/th&gt;
&lt;th&gt;RAG-Enabled LLM&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Knowledge Cutoff&lt;/td&gt;
&lt;td&gt;Limited to the date training ended.&lt;/td&gt;
&lt;td&gt;Can access up-to-the-minute information.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Data Privacy&lt;/td&gt;
&lt;td&gt;Limited to public data from training.&lt;/td&gt;
&lt;td&gt;Can securely access private or company files.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Accuracy &amp;amp; Grounding&lt;/td&gt;
&lt;td&gt;Prone to "hallucinations" (making things up).&lt;/td&gt;
&lt;td&gt;Provides a factual anchor by grounding the response in retrieved sources.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;While RAG is a massive leap forward, "Standard RAG" is often a "one-shot" process: you ask a question, the AI searches once, and gives an answer. To reach true agency, we must view Agentic RAG not as an on/off switch, but as a ladder of increasing autonomy and independence.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. The 3 Levels of Agentic RAG Difficulty
&lt;/h3&gt;

&lt;p&gt;Moving from a simple search to a complex agentic workflow requires increasing levels of sophistication in how the AI handles data.&lt;/p&gt;

&lt;h4&gt;
  
  
  Level 1: Routing &amp;amp; Tool Use
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Behavior:&lt;/strong&gt; The AI acts as a smart switchboard. It looks at your request and decides which specific tool or database is the right one to use for that specific query.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analogy&lt;/strong&gt;: Like a librarian who doesn't know the answer but knows exactly which section of the library contains the right book.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Level 2: Query Decomposition &amp;amp; Planning
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Behavior:&lt;/strong&gt; For complex questions that cannot be answered with a single search, the AI uses multi-step logic to break the task into smaller sub-questions. It creates a plan to tackle each part sequentially to build a complete answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analogy:&lt;/strong&gt; Like a project manager who breaks a large construction job into individual tasks for plumbers, electricians, and carpenters.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Level 3: Reflection &amp;amp; Self-Correction
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Behavior:&lt;/strong&gt; The AI evaluates its own findings. If the retrieved data is incomplete or contradictory, it "reflects" on the failure and tries a different search strategy until it finds the correct answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Analogy:&lt;/strong&gt; Like a dedicated researcher who writes a thesis, finds a gap in their evidence, and goes back to the archives to find the missing proof.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;For an agent to perform these actions, it needs a standardized "nervous system" to connect its brain to various data sources.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Connecting to Data: MCP vs. Standard RAG
&lt;/h3&gt;

&lt;p&gt;The &lt;strong&gt;Model Context Protocol (MCP)&lt;/strong&gt; is a revolutionary step in how agents talk to the world. While it is often discussed alongside RAG, they serve very different roles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🔍 &lt;strong&gt;Standard RAG (The Method):&lt;/strong&gt; This is the specific technique of finding information within a dataset to improve the AI's response.&lt;/li&gt;
&lt;li&gt;🔌 &lt;strong&gt;MCP (The Protocol):&lt;/strong&gt; This is a universal plug. It provides a standardized way for an AI agent to connect to any external data source—like Google Drive, Slack, or GitHub—without the developer needing to write custom code for every single new connection.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;By using MCP, we solve the problem of "interoperability." Instead of building a unique bridge for every single app (a custom-code nightmare), MCP allows one agent to talk to many different applications using one standard protocol.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. The Agentic Loop: Orchestration and Skills
&lt;/h3&gt;

&lt;p&gt;To function effectively, an agent follows a structured architectural pattern known as the &lt;strong&gt;Agentic Loop&lt;/strong&gt;. For a beginner, understanding &lt;strong&gt;orchestration patterns&lt;/strong&gt; is vital because they transform unpredictable AI behavior into a reliable, repeatable business process. &lt;/p&gt;

&lt;p&gt;Orchestration ensures the agent stays on track and doesn't get stuck in "infinite loops" where it repeats the same mistake forever.&lt;/p&gt;

&lt;h4&gt;
  
  
  The Agentic Loop
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Plan:&lt;/strong&gt; The AI analyzes the goal and decides on a sequence of actions.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Act:&lt;/strong&gt; The AI executes a step, such as searching a database or using a tool.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observe:&lt;/strong&gt; The AI looks at the result of its action and compares it to the desired goal.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;em&gt;To succeed within this loop, an agent relies on three core "skills":&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Reasoning:&lt;/strong&gt; The ability to think through logical steps and handle "if/then" scenarios.&lt;br&gt;
&lt;strong&gt;Memory:&lt;/strong&gt; The ability to remember what happened in previous steps so it can learn from successes and failures.&lt;br&gt;
&lt;strong&gt;Tool Use:&lt;/strong&gt; The technical ability to interact with external software and APIs to get things done.&lt;/p&gt;

&lt;p&gt;Understanding these layers makes the technology less "magical" and more like a structured toolset for solving real problems.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Conclusion: Your Roadmap to the Agentic Future
&lt;/h3&gt;

&lt;p&gt;The journey from a simple chatbot to a fully autonomous AI agent is a progression from &lt;strong&gt;knowledge retrieval&lt;/strong&gt; to &lt;strong&gt;intelligent action&lt;/strong&gt;. By combining the data-access power of RAG with the universal connectivity of MCP and the structured "Plan-Act-Observe" loop, we are moving toward a future where AI helps us execute complex workflows rather than just answering questions.&lt;/p&gt;

&lt;p&gt;As you begin your journey, stop thinking of AI as a search engine and start thinking of it as a digital teammate. The technology is a structured system designed to bridge the gap between human intention and digital execution.&lt;/p&gt;

&lt;h4&gt;
  
  
  Key Takeaways
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Agency is about action:&lt;/strong&gt; AI agents use tools and reasoning to achieve goals, moving beyond simple text prediction.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RAG is the foundation:&lt;/strong&gt; Retrieval-Augmented Generation provides the grounding and fresh facts agents need to remain accurate.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MCP is the connector:&lt;/strong&gt; The Model Context Protocol provides interoperability, removing the need for custom code for every data connection.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Orchestration is the key to reliability:&lt;/strong&gt; Using structured patterns and loops ensures agents are repeatable and prevents them from falling into infinite errors.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Reference Material
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://machinelearningmastery.com/agentic-programming-a-roadmap/" rel="noopener noreferrer"&gt;Agentic Programming: A Roadmap&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://docs.cloud.google.com/architecture/agentic-ai-overview" rel="noopener noreferrer"&gt;Agentic AI architecture guides&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://learn.microsoft.com/en-us/azure/architecture/ai-ml/guide/ai-agent-design-patterns" rel="noopener noreferrer"&gt;AI agent orchestration patterns&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://openai.com/business/guides-and-resources/a-practical-guide-to-building-ai-agents/" rel="noopener noreferrer"&gt;A practical guide to building agents&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://platform.claude.com/cookbook/patterns-agents-basic-workflows" rel="noopener noreferrer"&gt;Basic workflows&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.anthropic.com/engineering/building-effective-agents" rel="noopener noreferrer"&gt;Building effective agents&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://machinelearningmastery.com/agentic-rag-explained-in-3-levels-of-difficulty" rel="noopener noreferrer"&gt;Agentic RAG Explained in 3 Levels of Difficulty&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>ai</category>
      <category>softwareengineering</category>
      <category>agents</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Understanding Webhooks Through Leo’s Lemonade Stand Story</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Mon, 11 May 2026 20:07:06 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/understanding-webhooks-through-leos-lemonade-stand-story-51m1</link>
      <guid>https://dev.to/mahmoudessam/understanding-webhooks-through-leos-lemonade-stand-story-51m1</guid>
      <description>&lt;p&gt;Once upon a time, in a sunny little town, lived a boy named Leo 🧒. Leo ran the best lemonade stand on the street 🍋☀️, and every afternoon he paired his lemonade with fresh chocolate chip cookies from Mrs. Baker’s shop 🍪🏠.&lt;/p&gt;

&lt;p&gt;At first, Leo kept running back to the bakery every few minutes, asking:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;“Are they ready yet? Are they ready yet?” 🏃‍♂️💨&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;But the cookies were still in the oven! Leo got very tired 😴, and his lemonade customers got grumpy waiting for him.&lt;/p&gt;

&lt;p&gt;One day, Mrs. Baker smiled and said, “Leo, stop running back and forth. Let’s use a Magic Messenger Bird!” 🕊️✨&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;She taught the bird a special rule:&lt;/strong&gt; “Only fly to Leo’s stand when the cookies come out of the oven. Bring him a tiny note that says ‘Ready!’ and ring his little bell.” 🔔📝&lt;/p&gt;

&lt;p&gt;Leo went back to his stand, played tag 🤸‍♂️, and poured drinks 🥤. Suddenly… DING-DONG! 🔔 The Magic Bird landed on his counter with a warm box of cookies! 📦🍪&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;“No more guessing. No more running. The bird only visits when something actually happens!” Leo cheered.&lt;/em&gt;&lt;/strong&gt; 🎉&lt;/p&gt;

&lt;p&gt;🌟 And guess what? In the world of computers, that Magic Bird has a real name: a Webhook! 🌐🔗&lt;/p&gt;

&lt;p&gt;Here’s how it works in computer-land:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;🎯 The Event: Something happens (like cookies leaving the oven 🍪, or you finishing a game 🎮).&lt;/li&gt;
&lt;li&gt;📤 The Automatic Message: Instead of you constantly asking “Is it done?”, the first app sends a little digital note 📨 straight to the second app.&lt;/li&gt;
&lt;li&gt;⚡ The Result: The second app gets the info right away and knows exactly what to do next! 🤖💡&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Before webhooks, apps had to keep checking each other over and over (like Leo running back and forth 😩). With webhooks, they just wait quietly… and poof! The message arrives the moment it’s needed.&lt;/p&gt;

&lt;p&gt;So next time you get a notification that your pizza 🍕 is delivered, your photo 📸 finishes uploading, or your game 🕹️ unlocks a new level… remember: a tiny digital messenger bird just flew by! 🐦💌&lt;/p&gt;

&lt;p&gt;The end! 📖💛😎🎉&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Sat, 02 May 2026 14:13:26 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/-2j51</link>
      <guid>https://dev.to/mahmoudessam/-2j51</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/ellehallal/what-are-interfaces-abstract-and-concrete-classes-ahn" class="crayons-story__hidden-navigation-link"&gt;What Are Interfaces, Abstract and Concrete Classes?&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/ellehallal" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.dev.to%2Fdynamic%2Fimage%2Fwidth%3D90%2Cheight%3D90%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto%2Fhttps%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F233764%252Fda7e40d7-942e-4324-99a2-3f6a488b4d1a.jpeg" alt="ellehallal profile" class="crayons-avatar__image" width="612" height="612"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ellehallal" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Elle Hallal 👩🏽‍💻
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Elle Hallal 👩🏽‍💻
                
              
              &lt;div id="story-author-preview-content-443291" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ellehallal" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fmedia.dev.to%2Fdynamic%2Fimage%2Fwidth%3D90%2Cheight%3D90%2Cfit%3Dcover%2Cgravity%3Dauto%2Cformat%3Dauto%2Fhttps%253A%252F%252Fdev-to-uploads.s3.amazonaws.com%252Fuploads%252Fuser%252Fprofile_image%252F233764%252Fda7e40d7-942e-4324-99a2-3f6a488b4d1a.jpeg" class="crayons-avatar__image" alt="" width="612" height="612"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Elle Hallal 👩🏽‍💻&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/ellehallal/what-are-interfaces-abstract-and-concrete-classes-ahn" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Sep 1 '20&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/ellehallal/what-are-interfaces-abstract-and-concrete-classes-ahn" id="article-link-443291"&gt;
          What Are Interfaces, Abstract and Concrete Classes?
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/oop"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;oop&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/interfaces"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;interfaces&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/classes"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;classes&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cleancode"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cleancode&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/ellehallal/what-are-interfaces-abstract-and-concrete-classes-ahn" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;6&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/ellehallal/what-are-interfaces-abstract-and-concrete-classes-ahn#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>🌳 The Story of the Upside-Down Magic Tree Data Structure 🌳</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Wed, 01 Apr 2026 19:35:50 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/the-story-of-the-upside-down-magic-tree-49pf</link>
      <guid>https://dev.to/mahmoudessam/the-story-of-the-upside-down-magic-tree-49pf</guid>
      <description>&lt;p&gt;Once upon a time, in the land of Computoria, there lived a very special tree. But this wasn't a normal tree 🌲.&lt;/p&gt;

&lt;p&gt;In the real world, trees grow up from the ground. But in Computoria, the Data Tree grows down from the sky! ☁️⬇️&lt;/p&gt;

&lt;p&gt;Let's meet the friends who live in this tree!&lt;/p&gt;

&lt;h3&gt;
  
  
  1. The Root 👑
&lt;/h3&gt;

&lt;p&gt;At the very top of the tree, there is one special friend called the Root.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Imagine the King or Queen of the tree! 🤴👸&lt;/li&gt;
&lt;li&gt;Everyone else comes from them.&lt;/li&gt;
&lt;li&gt;There is only one Root.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. The Nodes 🟣
&lt;/h3&gt;

&lt;p&gt;Every friend living on the branches is called a Node.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Think of a Node like a room in a big house 🏠.&lt;/li&gt;
&lt;li&gt;Inside each room, there is a treasure (like a number, a name, or a picture) 🎁.&lt;/li&gt;
&lt;li&gt;Every Node (except the Root) has exactly one parent who invited them to the tree.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Parents and Children 👨‍👩‍👧‍👦
&lt;/h3&gt;

&lt;p&gt;The friends in the tree are connected by lines called Edges 〰️.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;If Node A invites Node B and Node C to join, Node A is the Parent 👨‍🦱.&lt;/li&gt;
&lt;li&gt;Node B and Node C are the Children 👧👦.&lt;/li&gt;
&lt;li&gt;Just like a family! If you and your sister have the same mom, you are Siblings 👫.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. The Leaves 🍂
&lt;/h3&gt;

&lt;p&gt;Some friends live at the very bottom of the branches.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;They don't invite anyone else to join.&lt;/li&gt;
&lt;li&gt;They have no children.&lt;/li&gt;
&lt;li&gt;We call them Leaves.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Why Do We Build This Tree? 🤔
&lt;/h3&gt;

&lt;p&gt;Imagine you have 1,000 toy boxes 🧸. If you throw them all in one pile, finding your favorite red car 🏎️ is hard!&lt;/p&gt;

&lt;p&gt;But if you organize them like a Tree:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;First, you go to the Root (The Toy Room) 🚪.&lt;/li&gt;
&lt;li&gt;Then you choose a branch (Cars 🚗 vs. Dolls 🎎).&lt;/li&gt;
&lt;li&gt;Then you choose another branch (Red Cars 🔴 vs. Blue Cars 🔵).&lt;/li&gt;
&lt;li&gt;Suddenly, you find your toy super fast! ⚡&lt;/li&gt;
&lt;/ol&gt;

&lt;h4&gt;
  
  
  📖 The Story Summary
&lt;/h4&gt;

&lt;p&gt;One day, the Root 🌟 decided to organize a party.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;She called her Children 👧👦.&lt;/li&gt;
&lt;li&gt;They called their children 👶.&lt;/li&gt;
&lt;li&gt;The message traveled down the Edges 〰️ until it reached the Leaves 🍃 at the bottom.&lt;/li&gt;
&lt;li&gt;Because everyone knew who their Parent was, nobody got lost! 🗺️&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;And that is how the Tree Data Structure works! It keeps information organized, connected, and easy to find, just like a big happy family living in an upside-down tree! 🌳💻✨&lt;/p&gt;

&lt;h4&gt;
  
  
  🎒 Quick Cheat Sheet for Kids:
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concept&lt;/th&gt;
&lt;th&gt;Kid-Friendly Meaning&lt;/th&gt;
&lt;th&gt;Emoji&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Root&lt;/td&gt;
&lt;td&gt;The Top Boss&lt;/td&gt;
&lt;td&gt;🌟&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Node&lt;/td&gt;
&lt;td&gt;A Person/Box in the tree&lt;/td&gt;
&lt;td&gt;🟣&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Edge&lt;/td&gt;
&lt;td&gt;The line connecting them&lt;/td&gt;
&lt;td&gt;〰️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Parent&lt;/td&gt;
&lt;td&gt;The one above&lt;/td&gt;
&lt;td&gt;👆&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Child&lt;/td&gt;
&lt;td&gt;The one below&lt;/td&gt;
&lt;td&gt;👇&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Leaf&lt;/td&gt;
&lt;td&gt;The end of the line&lt;/td&gt;
&lt;td&gt;🍂&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>datastructures</category>
      <category>softwareengineering</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>🐳 The Tale of Docker the Magic Whale 🐳</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Sun, 29 Mar 2026 20:00:45 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/the-tale-of-docker-the-magic-whale-53ho</link>
      <guid>https://dev.to/mahmoudessam/the-tale-of-docker-the-magic-whale-53ho</guid>
      <description>&lt;h3&gt;
  
  
  A Story About Packing Toys Perfectly 🎁✨
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🏰 Before &lt;a href="https://dev.to/mahmoudessam/the-magical-kingdom-of-kuberlandia-58g0"&gt;Kuberlandia&lt;/a&gt;... The Big Problem 😕
&lt;/h4&gt;

&lt;p&gt;Remember the Kingdom of &lt;a href="https://dev.to/mahmoudessam/the-magical-kingdom-of-kuberlandia-58g0"&gt;Kuberlandia&lt;/a&gt; from before? 🏰✨&lt;/p&gt;

&lt;p&gt;Well, before the wizard could manage all the toys, there was a Big Mess! 🌪️&lt;br&gt;
Imagine you built an amazing Lego castle 🏰 on your table 🪑.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It worked perfectly on your table! ✅&lt;/li&gt;
&lt;li&gt;But when you moved it to your friend's table... CRASH! 💥&lt;/li&gt;
&lt;li&gt;The pieces didn't fit! The colors were wrong! 🎨❌&lt;/li&gt;
&lt;li&gt;This was called: "But it works on my machine!" 😫🖥️&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Computers were all different, and apps kept breaking when they moved. 😢&lt;/p&gt;
&lt;h4&gt;
  
  
  🐳 Chapter 1: Enter Docker the Whale! 🌊✨
&lt;/h4&gt;

&lt;p&gt;One day, a friendly Magic Whale named Docker arrived! 🐳💙&lt;br&gt;
He said:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;"Don't worry! I have a special way to pack your toys so they NEVER break, no matter where they go!" 🗣️🛡️&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Docker invented Magic Shipping Containers 📦✨.&lt;/p&gt;
&lt;h4&gt;
  
  
  📸 Chapter 2: The Magic Photo (Image) 🖼️
&lt;/h4&gt;

&lt;p&gt;Docker taught everyone about Images.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;An Image is like a perfect photo 📸 or a frozen blueprint 🗺️ of your toy.&lt;/li&gt;
&lt;li&gt;It captures the toy 🧸, the batteries 🔋, the instructions 📋, and even the air around it! 💨&lt;/li&gt;
&lt;li&gt;Once you take the photo, it never changes. It is safe! 🔒&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;🎯 Lesson: A Docker Image is a read-only template that contains everything your app needs!&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;
  
  
  🎁 Chapter 3: The Living Box (Container) 📦💫
&lt;/h4&gt;

&lt;p&gt;But a photo isn't fun to play with... you need the real toy! 🧸&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When you use the Image to make a real, running toy, it becomes a Container! 🎉&lt;/li&gt;
&lt;li&gt;You can make one image... and turn it into many containers! 1️⃣➡️🔟&lt;/li&gt;
&lt;li&gt;Each container is like a clone of the photo, but alive and playing! 🏃‍♂️💨&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;🎯 Lesson: A Container is a running instance of an Image!&lt;/em&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Concept&lt;/th&gt;
&lt;th&gt;Explanation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Image 📸&lt;/td&gt;
&lt;td&gt;Like a Recipe 📖&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Container 🎁&lt;/td&gt;
&lt;td&gt;Like the Cake 🎂&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image 📸&lt;/td&gt;
&lt;td&gt;Like a Photo 🖼️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Container 🎁&lt;/td&gt;
&lt;td&gt;Like the Real House 🏠&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image 📸&lt;/td&gt;
&lt;td&gt;Doesn't move ❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Container 🎁&lt;/td&gt;
&lt;td&gt;Runs and Plays ✅&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;h4&gt;
  
  
  📝 Chapter 4: The Recipe Card (Dockerfile) 🍳
&lt;/h4&gt;

&lt;p&gt;How does Docker know what to put in the box? 🤔&lt;/p&gt;

&lt;p&gt;You write a special Recipe Card called a Dockerfile! 📄✍️&lt;/p&gt;

&lt;p&gt;It looks like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;📜 Step 1: Get a blank box 📦
📜 Step 2: Put in Python language 🐍
📜 Step 3: Add my Game Code 🎮
📜 Step 4: Tell it to start playing! ▶️
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Docker reads this card 📖 and POOF! 🪄 It builds your Image automatically! 🏗️✨&lt;/p&gt;

&lt;h4&gt;
  
  
  📚 Chapter 5: The Big Library (Docker Hub) 🌐
&lt;/h4&gt;

&lt;p&gt;What if you don't want to build a toy from scratch? 🛑&lt;br&gt;
You can visit the Big Library called Docker Hub! 🏛️🐳&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's like a toy store 🛒 where people share their Images.&lt;/li&gt;
&lt;li&gt;Need a database? 🗄️ Grab one!&lt;/li&gt;
&lt;li&gt;Need a web server? 🌐 Grab one!&lt;/li&gt;
&lt;li&gt;You can download them and start playing instantly! ⬇️🚀&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;🎯 Lesson: Docker Hub is a cloud registry where people share Docker Images!&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  🤝 Chapter 6: Docker &amp;amp; The Wizard (Kubernetes) 🧙‍♂️🐳
&lt;/h4&gt;

&lt;p&gt;Remember Kube-Master from &lt;a href="https://dev.to/mahmoudessam/the-magical-kingdom-of-kuberlandia-58g0"&gt;Kuberlandia&lt;/a&gt;? 🧙‍♂️🏰&lt;/p&gt;

&lt;p&gt;He and Docker are Best Friends! 🤝💙&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Docker's Job: 📦 Pack the toys safely so they don't break.&lt;/li&gt;
&lt;li&gt;Kubernetes' Job: 🎪 Manage the playgrounds so there's always room for the toys.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;🐳 Docker builds the containers.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;🏰 Kubernetes organizes the containers.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;They work together to make sure the whole world can play! 🌍🎮&lt;/p&gt;

&lt;h4&gt;
  
  
  🎊 The Happy Ending 🎊
&lt;/h4&gt;

&lt;p&gt;Thanks to Docker the Whale:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;✅ Toys work everywhere (Laptop, Cloud, Server)! 💻☁️🖥️&lt;/li&gt;
&lt;li&gt;✅ No more "It works on my machine" tears! 😢➡️😄&lt;/li&gt;
&lt;li&gt;✅ Building apps is as easy as following a recipe! 🍳📜&lt;/li&gt;
&lt;li&gt;✅ Friends can share toys easily! 🎁🤝&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🧒 Quick Recap for Little Engineers:
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Docker Thing&lt;/th&gt;
&lt;th&gt;Kid-Friendly Meaning&lt;/th&gt;
&lt;th&gt;Emoji&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Docker&lt;/td&gt;
&lt;td&gt;The Magic Whale Packager&lt;/td&gt;
&lt;td&gt;🐳📦&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image&lt;/td&gt;
&lt;td&gt;The Frozen Photo/Recipe&lt;/td&gt;
&lt;td&gt;📸📜&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Container&lt;/td&gt;
&lt;td&gt;The Running Toy Box&lt;/td&gt;
&lt;td&gt;🎁✨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Dockerfile&lt;/td&gt;
&lt;td&gt;The Instruction Card&lt;/td&gt;
&lt;td&gt;📝🍳&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Docker Hub&lt;/td&gt;
&lt;td&gt;The App Store/Library&lt;/td&gt;
&lt;td&gt;📚🌐&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;"It works on my machine"&lt;/td&gt;
&lt;td&gt;The Problem Docker Fixed!&lt;/td&gt;
&lt;td&gt;🛠️❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;🌟 Remember, little builder:&lt;/em&gt;&lt;/strong&gt; Docker is like a magic suitcase 🧳 that packs your computer program with everything it needs, so it can travel anywhere in the world without getting lost or broken! 🌍✈️💙&lt;/p&gt;

&lt;p&gt;&lt;em&gt;🐳 Swim safely with Docker! 🌊🚀💻&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Next stop: &lt;a href="https://dev.to/mahmoudessam/the-magical-kingdom-of-kuberlandia-58g0"&gt;Kuberlandia&lt;/a&gt; to manage all those containers! 🏰🧙‍♂️&lt;/em&gt;&lt;/p&gt;

</description>
      <category>docker</category>
      <category>cloud</category>
      <category>devops</category>
      <category>cloudcomputing</category>
    </item>
    <item>
      <title>🌟 The Magical Kingdom of Kuberlandia 🌟</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Thu, 26 Mar 2026 16:02:46 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/the-magical-kingdom-of-kuberlandia-58g0</link>
      <guid>https://dev.to/mahmoudessam/the-magical-kingdom-of-kuberlandia-58g0</guid>
      <description>&lt;h2&gt;
  
  
  A Kubernetes Story for Little Explorers 🧒✨
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🏰 Once Upon a Time...
&lt;/h3&gt;

&lt;p&gt;In a faraway digital land called Kuberlandia, there lived a wise wizard named Kube-Master 🧙‍♂️✨. His job was to make sure all the toy applications 🧸🚗🎮 ran happily and never got lost!&lt;/p&gt;

&lt;h4&gt;
  
  
  📦 Chapter 1: The Magic Toy Boxes (Containers) 🎁
&lt;/h4&gt;

&lt;h5&gt;
  
  
  Every toy in Kuberlandia lived in a Magic Toy Box 📦✨.
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Each box had everything the toy needed: snacks 🍪, blankets 🛏️, and instructions 📋&lt;/li&gt;
&lt;li&gt;These boxes were called Containers 🐳 (like Docker the friendly whale!)&lt;/li&gt;
&lt;li&gt;No matter where the box traveled, the toy inside was always happy! 🎈&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;🎯 Lesson: Containers keep apps safe and portable!&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  🏠 Chapter 2: Cozy Little Houses (Pods) 🛏️
&lt;/h4&gt;

&lt;h5&gt;
  
  
  Sometimes, toys liked to have roommates! 🤗
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;The wizard put 1 or more Magic Toy Boxes into a Cozy Little House called a Pod 🏠💫&lt;/li&gt;
&lt;li&gt;Pods were the smallest homes in Kuberlandia 🌱&lt;/li&gt;
&lt;li&gt;Friends in the same Pod could share toys and talk easily! 🗣️🎲&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;🎯 Lesson: Pods are the smallest units that hold one or more containers!&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  🎪 Chapter 3: The Big Playground (Nodes)
&lt;/h4&gt;

&lt;h5&gt;
  
  
  All the Cozy Houses lived on big, strong Playgrounds called Nodes 💪
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;Each Node had energy (CPU) ⚡, memory (RAM) 🧠, and space (Storage) 🗄️&lt;/li&gt;
&lt;li&gt;Some playgrounds were big, some were small — but all were important! 🌈&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;🎯 Lesson: Nodes are the computers (servers) that run your pods!&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  🌍 Chapter 4: The Grand Kingdom (Cluster) 👑
&lt;/h4&gt;

&lt;h5&gt;
  
  
  All the playgrounds together made the Grand Kingdom of Kuberlandia — also called a Cluster! 🏰✨
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;The wizard could add more playgrounds whenever more toys arrived! 🎁➕&lt;/li&gt;
&lt;li&gt;If one playground needed a nap 🛌, the toys just moved to another! 🔄&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;em&gt;🎯 Lesson: A cluster is a group of nodes working together!&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  🤖 Chapter 5: The Helpful Helpers ✨
&lt;/h4&gt;

&lt;h5&gt;
  
  
  The wizard had magical friends to help run the kingdom:
&lt;/h5&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Helper&lt;/th&gt;
&lt;th&gt;Emoji&lt;/th&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Kubelet&lt;/td&gt;
&lt;td&gt;👷‍♂️&lt;/td&gt;
&lt;td&gt;The playground monitor who makes sure every Pod is happy and healthy!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scheduler&lt;/td&gt;
&lt;td&gt;🗓️✨&lt;/td&gt;
&lt;td&gt;The smart planner who finds the best playground for new Pods!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Controller Manager&lt;/td&gt;
&lt;td&gt;🎮🔧&lt;/td&gt;
&lt;td&gt;The rule-keeper who makes sure the kingdom always looks like the wizard wants!&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;etcd&lt;/td&gt;
&lt;td&gt;🗄️💾&lt;/td&gt;
&lt;td&gt;The magical memory book that remembers EVERYTHING! 📚✨&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h4&gt;
  
  
  Chapter 6: The Magic Spells (Kubernetes Features) 🌈
&lt;/h4&gt;

&lt;h5&gt;
  
  
  🔁 Self-Healing Magic ✨
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;If a toy got sleepy and fell over 😴, the wizard's spell would automatically wake up a new one! 🔄🎈&lt;br&gt;
"Don't worry, little toy — we've got you!" 💙&lt;/em&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  📈 Scaling Spell (More Fun!) 🎉
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;When lots of kids wanted to play 🧒🧒🧒, the wizard could cast:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;✨ "Make 5 more toy houses!" ✨&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;And POOF! 🎇 More Pods appeared to keep everyone happy! 🥳&lt;/em&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  🔄 Rolling Updates (New Toys!) 🎁
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;When a toy got a cool new outfit 👕✨, the wizard updated them one-by-one — so playtime never stopped! 🎠&lt;/em&gt;&lt;/p&gt;

&lt;h5&gt;
  
  
  🏷️ Service: The Friendly Name Tag
&lt;/h5&gt;

&lt;p&gt;&lt;em&gt;Instead of remembering complicated addresses 🗺️, toys just called each other by friendly names:&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;"Hey, 🎮 GameServer! Can I join?" 🙋‍♂️&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;The Service magic made sure they always found each other! 🤝💫&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  📜 Chapter 7: The Wizard's Recipe Book (YAML) 📖✍️
&lt;/h4&gt;

&lt;h5&gt;
  
  
  The wizard wrote all his wishes in a special recipe book using YAML scrolls 📜✨:
&lt;/h5&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;🧸 Toy: SuperFunGame
📦 Boxes: 1
🏠 Houses: 3 copies (just in case!)
🎪 Playground: Any with extra energy! ⚡
✨ Magic: If one falls, make a new one! 🔄
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;em&gt;🎯 Lesson: YAML files tell Kubernetes what you want it to do!&lt;/em&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  🎊 The Happy Ending 🎊
&lt;/h4&gt;

&lt;h5&gt;
  
  
  Thanks to Kuberlandia's magic:
&lt;/h5&gt;

&lt;ul&gt;
&lt;li&gt;✅ Toys never get lost 🗺️💙&lt;/li&gt;
&lt;li&gt;✅ Parties grow automatically when friends arrive 🎈➕&lt;/li&gt;
&lt;li&gt;✅ Broken toys are replaced like magic! 🪄🔧&lt;/li&gt;
&lt;li&gt;✅ Everyone plays happily ever after! 🌈🧸🚀&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  🧒 Quick Recap for Little Geniuses:
&lt;/h4&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Kubernetes Thing&lt;/th&gt;
&lt;th&gt;Kid-Friendly Meaning&lt;/th&gt;
&lt;th&gt;Emoji&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Container&lt;/td&gt;
&lt;td&gt;Magic Toy Box&lt;/td&gt;
&lt;td&gt;📦🐳&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Pod&lt;/td&gt;
&lt;td&gt;Cozy Little House&lt;/td&gt;
&lt;td&gt;🏠✨&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Node&lt;/td&gt;
&lt;td&gt;Big Playground&lt;/td&gt;
&lt;td&gt;🎪💪&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cluster&lt;/td&gt;
&lt;td&gt;Whole Kingdom&lt;/td&gt;
&lt;td&gt;🏰🌍&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Deployment&lt;/td&gt;
&lt;td&gt;Wizard's Recipe&lt;/td&gt;
&lt;td&gt;📜🧙‍♂️&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Service&lt;/td&gt;
&lt;td&gt;Friendly Name Tag&lt;/td&gt;
&lt;td&gt;🏷️🤝&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Scaling&lt;/td&gt;
&lt;td&gt;Invite More Friends!&lt;/td&gt;
&lt;td&gt;🎉➕&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Self-Healing&lt;/td&gt;
&lt;td&gt;Magic Comeback Spell&lt;/td&gt;
&lt;td&gt;🪄🔄&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;em&gt;🌟 Remember, little explorer: Kubernetes is like a magical kingdom that helps computer toys play together, stay safe, and have endless fun — all by themselves! 🤖💙✨&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;🎈 Now you know the secret of Kuberlandia! 🗝️🐳🚀&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The End... or just the beginning of your cloud adventure! 🌤️🗺️💻&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>cloud</category>
      <category>cloudcomputing</category>
      <category>kubernetes</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Bubble Sort for Kids: Sorting Made Fun! 🧒✨</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Thu, 23 Oct 2025 00:12:12 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/bubble-sort-for-kids-sorting-made-fun-3bj2</link>
      <guid>https://dev.to/mahmoudessam/bubble-sort-for-kids-sorting-made-fun-3bj2</guid>
      <description>&lt;p&gt;Hey boys! Have you ever tried putting your toys in order, like lining up your action figures from shortest to tallest? Today, we’re going to learn about a super cool way to sort things called Bubble Sort. It’s like a game where numbers (or toys!) take turns swapping places until they’re all in the right order. Let’s dive in with some fun examples to make it easy to understand!&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Bubble Sort? 🛁
&lt;/h2&gt;

&lt;p&gt;Imagine you have a row of colorful balloons, and each balloon has a number on it. Your job is to line them up so the numbers go from smallest to biggest, like 1, 2, 3, and so on. Bubble Sort is a way to do this by comparing two balloons at a time. If they’re in the wrong order, they swap places—like bubbles floating up to the top of a glass of soda! 🥤&lt;/p&gt;

&lt;h4&gt;
  
  
  Here’s how it works:
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Look at two balloons next to each other.&lt;/li&gt;
&lt;li&gt;If the bigger number is on the left, swap it with the smaller number on the right.&lt;/li&gt;
&lt;li&gt;Keep doing this for every pair of balloons until you reach the end of the row.&lt;/li&gt;
&lt;li&gt;Repeat the whole process until all the balloons are in order.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Let’s Try an Example! 🎈
&lt;/h2&gt;

&lt;p&gt;Suppose you have 4 balloons with these numbers: 5, 2, 4, 1. Let’s sort them step by step using Bubble Sort to get 1, 2, 4, 5.&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 1: First Pass
&lt;/h4&gt;

&lt;p&gt;Start with the first two balloons: 5 and 2.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is 5 bigger than 2? Yes! So, swap them.&lt;/li&gt;
&lt;li&gt;Now you have: 2, 5, 4, 1.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Next, look at the next two balloons: 5 and 4.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Is 5 bigger than 4? Yes! Swap them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you have: 2, 4, 5, 1.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Now, compare the last two balloons: 5 and 1.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Is 5 bigger than 1? Yes! Swap them.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Now you have: 2, 4, 1, 5.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;After this pass, the biggest number, 5, is at the end like a big bubble that floated to the top!&lt;/p&gt;

&lt;h4&gt;
  
  
  Step 2: Second Pass
&lt;/h4&gt;

&lt;p&gt;Start again from the beginning, but this time, we don’t need to check the last balloon (5) because it’s already in the right spot.&lt;/p&gt;

&lt;p&gt;Compare 2 and 4.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is 2 bigger than 4? No, they’re fine as is.&lt;/li&gt;
&lt;li&gt;Keep them: 2, 4, 1, 5.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Compare 4 and 1.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is 4 bigger than 1? Yes! Swap them.&lt;/li&gt;
&lt;li&gt;Now you have: 2, 1, 4, 5.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Step 3: Third Pass
&lt;/h4&gt;

&lt;p&gt;Again, we only check the first three balloons because 5 is sorted.&lt;/p&gt;

&lt;p&gt;Compare 2 and 1.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is 2 bigger than 1? Yes! Swap them.&lt;/li&gt;
&lt;li&gt;Now you have: 1, 2, 4, 5.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Step 4: Check If We’re Done
&lt;/h4&gt;

&lt;p&gt;Look at the first two balloons: 1 and 2.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Is 2 bigger than 4? No, they’re good.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Everything’s in order: 1, 2, 4, 5! 🎉 We’re done!&lt;/p&gt;

&lt;h3&gt;
  
  
  🐍 How a Computer Does It (in Python!)
&lt;/h3&gt;

&lt;p&gt;Even a computer can do the same thing step by step! 💻&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="n"&gt;numbers&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;)):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]:&lt;/span&gt;
            &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;j&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numbers&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;  &lt;span class="c1"&gt;# [1, 2, 3, 4, 5]
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Try It With Toys! 🧸
&lt;/h2&gt;

&lt;p&gt;Want to make it even more fun? Grab some of your toys—like stuffed animals or cars—and give each one a number (you can write it on a sticky note). Line them up and try Bubble Sort:&lt;/p&gt;

&lt;p&gt;1- Compare two toys at a time.&lt;br&gt;
2- If the toy with the bigger number is on the left, swap it with the toy on the right.&lt;br&gt;
3- Keep going until all your toys are lined up from smallest to biggest number.&lt;/p&gt;

&lt;p&gt;For example, if your toys have numbers 3, 1, 2:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Compare 3 and 1. Swap them to get 1, 3, 2.&lt;/li&gt;
&lt;li&gt;Compare 3 and 2. Swap them to get 1, 2, 3.&lt;/li&gt;
&lt;li&gt;Done! Your toys are now in order.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Is Bubble Sort Cool? 😎
&lt;/h2&gt;

&lt;p&gt;Bubble Sort is like a fun puzzle that helps you put things in order. It’s easy to understand, and you can use it to sort all kinds of things, like numbers, toys, or even your favorite snacks by size! Computers use Bubble Sort (and other sorting tricks) to organize information, like putting names in alphabetical order or arranging scores in a game.&lt;/p&gt;

&lt;h2&gt;
  
  
  Let’s Play a Game! 🎲
&lt;/h2&gt;

&lt;p&gt;Next time you’re with your friends, try this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Write down 5 numbers on pieces of paper (like 7, 3, 9, 2, 6).&lt;/li&gt;
&lt;li&gt;Take turns being the “sorter” and use Bubble Sort to put them in order.&lt;/li&gt;
&lt;li&gt;See who can sort them the fastest!&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Bubble Sort is a great way to practice thinking like a computer scientist while having fun. So grab some balloons, toys, or numbers, and start sorting! 🥳&lt;/p&gt;

</description>
      <category>python</category>
      <category>algorithms</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Sun, 21 Sep 2025 22:08:23 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/-158f</link>
      <guid>https://dev.to/mahmoudessam/-158f</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/mahmoudessam/18-free-harvard-courses-223k" class="crayons-story__hidden-navigation-link"&gt;15 FREE Harvard Courses 🎓📣🔥🎉🥳😎&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/mahmoudessam" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F414014%2F497d9816-6f2d-46b8-b9e9-f4c3c79fda63.png" alt="mahmoudessam profile" class="crayons-avatar__image" width="800" height="1207"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/mahmoudessam" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Mahmoud EL-kariouny
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Mahmoud EL-kariouny
                
              
              &lt;div id="story-author-preview-content-1233348" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/mahmoudessam" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F414014%2F497d9816-6f2d-46b8-b9e9-f4c3c79fda63.png" class="crayons-avatar__image" alt="" width="800" height="1207"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Mahmoud EL-kariouny&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/mahmoudessam/18-free-harvard-courses-223k" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 28 '22&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/mahmoudessam/18-free-harvard-courses-223k" id="article-link-1233348"&gt;
          15 FREE Harvard Courses 🎓📣🔥🎉🥳😎
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/courese"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;courese&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/tutorial"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;tutorial&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/programming"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;programming&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/mahmoudessam/18-free-harvard-courses-223k" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;106&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/mahmoudessam/18-free-harvard-courses-223k#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              18&lt;span class="hidden s:inline"&gt;&amp;nbsp;comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>courese</category>
      <category>tutorial</category>
      <category>programming</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Python Quiz — Closures &amp; Loop Variables</title>
      <dc:creator>Mahmoud EL-kariouny</dc:creator>
      <pubDate>Sun, 31 Aug 2025 13:20:46 +0000</pubDate>
      <link>https://dev.to/mahmoudessam/python-quiz-closures-loop-variables-n9d</link>
      <guid>https://dev.to/mahmoudessam/python-quiz-closures-loop-variables-n9d</guid>
      <description>&lt;h3&gt;
  
  
  What is the output of this code and why 🤔?
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;make_counters&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;counters&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nf"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
            &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;
        &lt;span class="n"&gt;counters&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;counter&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;counters&lt;/span&gt;

&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;c&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nf"&gt;make_counters&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;a&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="nf"&gt;b&lt;/span&gt;&lt;span class="p"&gt;(),&lt;/span&gt; &lt;span class="nf"&gt;c&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;


&lt;span class="n"&gt;Outputs&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;

&lt;span class="n"&gt;a&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;b&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="n"&gt;c&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="n"&gt;d&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="n"&gt;e&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt; &lt;span class="n"&gt;Raises&lt;/span&gt; &lt;span class="n"&gt;an&lt;/span&gt; &lt;span class="n"&gt;error&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Why this quiz matters
&lt;/h3&gt;

&lt;p&gt;This short snippet looks simple, but it probes a set of Python behaviors that commonly trip up learners and even experienced developers when writing higher-order functions or factories. The quiz focuses on three tightly related concepts:&lt;/p&gt;

&lt;h5&gt;
  
  
  1. Closures and capturing variables
&lt;/h5&gt;

&lt;p&gt;A closure is a function that &lt;strong&gt;remembers&lt;/strong&gt; the environment in which it was defined. When you create a function inside another function, that inner function can reference variables from the outer scope. But how those variables are referenced (and when they’re looked up) is crucial.&lt;/p&gt;

&lt;h5&gt;
  
  
  2. Late binding vs early binding
&lt;/h5&gt;

&lt;p&gt;Python’s name lookup for variables captured by closures happens at call time (often referred to as “late binding”), not necessarily at the moment the inner function is defined. That timing affects what value the inner function returns when you call it later.&lt;/p&gt;

&lt;h5&gt;
  
  
  3. Loop variables &amp;amp; function factories
&lt;/h5&gt;

&lt;p&gt;Creating functions inside loops is a common pattern (e.g., creating a list of callbacks). When the inner function references the loop variable, you need to understand whether each function captures a distinct value or the same variable that later changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  How to approach this puzzle (without spoiling it)
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;Read it slowly: identify where functions are defined and where variables are created/modified.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Ask “when is i evaluated?” — at definition time or at call time?&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Consider running a mental simulation: imagine the loop running and the functions being appended — then imagine calling them later.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Try small experiments if you’re stuck: insert a print inside the loop, or inspect attributes of the returned functions in an interactive REPL. (Tip: stepping through with a debugger or using dis can also reveal evaluation order.)&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Learning takeaway
&lt;/h3&gt;

&lt;p&gt;Understanding closures and the timing of variable lookups will save you from subtle bugs when building function factories, decorators, callbacks, or any code that generates functions dynamically. Once you can reason about where and when each name is resolved, patterns like these become powerful tools instead of traps.&lt;/p&gt;

&lt;p&gt;Write your solution below in the comment or view it here: &lt;a href="https://codemasterycentre.blogspot.com/2025/08/understanding-python-closures-loop.html" rel="noopener noreferrer"&gt;Link&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Connect with Me 😊
&lt;/h3&gt;

&lt;h4&gt;
  
  
  🔗 Links
&lt;/h4&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/mahmoud-el-kariouny-822719149/" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Flinkedin-0A66C2%3Fstyle%3Dfor-the-badge%26logo%3Dlinkedin%26logoColor%3Dwhite" alt="linkedin" width="91" height="28"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/Mahmoud42275" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimg.shields.io%2Fbadge%2Ftwitter-1DA1F2%3Fstyle%3Dfor-the-badge%26logo%3Dtwitter%26logoColor%3Dwhite" alt="twitter" width="83" height="28"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>programming</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
