<?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>Forem: Abdulmumin Akinde</title>
    <description>The latest articles on Forem by Abdulmumin Akinde (@lanreywaju).</description>
    <link>https://forem.com/lanreywaju</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F686771%2F7f3a71be-2062-465f-8f82-b4af7367b9a0.png</url>
      <title>Forem: Abdulmumin Akinde</title>
      <link>https://forem.com/lanreywaju</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lanreywaju"/>
    <language>en</language>
    <item>
      <title>There's No Magic: Only Abstractions</title>
      <dc:creator>Abdulmumin Akinde</dc:creator>
      <pubDate>Fri, 24 Jan 2025 22:05:37 +0000</pubDate>
      <link>https://forem.com/lanreywaju/theres-no-magic-only-abstractions-2ifj</link>
      <guid>https://forem.com/lanreywaju/theres-no-magic-only-abstractions-2ifj</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"Magic is just an abstraction you don't understand."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I came across a post from Preston Thorpe, a brilliant, incarcerated software engineer. He wrote an &lt;a href="https://pthorpe92.dev/intro/my-story/" rel="noopener noreferrer"&gt;article&lt;/a&gt; about how he became a professional software engineer from the prison. No, you aren't hallucinating. Prison! Truly inspiring, but I digress.&lt;/p&gt;

&lt;p&gt;I then checked out &lt;a href="https://pthorpe92.dev/programming/magic/" rel="noopener noreferrer"&gt;another of his posts&lt;/a&gt; titled "Magic isn't real." While this is already beautifully written and packed with lessons and nuggets, it made me reflect on my own journey, and I thought to share.&lt;/p&gt;

&lt;p&gt;In my experience learning how to code and solving problems with technology, I have come to realize that "magic" is really just a level of abstraction you haven't uncovered yet. Everything I know and can explain today was once wrapped in this dark shroud of mystery that I thought I would never be able to demystify. However, as I continue to learn and broaden my knowledge scope, things that seemed inaccessible at first suddenly (or eventually) become easy to make sense of. Trust me when I say there are a lot of instances. I am sure it's same for you too.&lt;/p&gt;

&lt;p&gt;I remember writing my first fullstack app with Django. Anybody remotely familiar with this framework knows it's batteries-included and very opinionated. This means that you trade ultimate customizability for a relatively fast development experience. It however comes at a cost, especially if you're a beginner who wants to know how things work under the hood. &lt;/p&gt;

&lt;p&gt;Django abstracts away a lot of implementation details and provides extensive boilerplate code needed in spinning up a robust server. As a result, beginners might find it tricky to immediately understand important server-side concepts like session management, middleware, among others. &lt;/p&gt;

&lt;p&gt;I definitely didn't at the time. Middlewares especially felt "magical." In Django, you just define a class, implement some methods and Django does all the "heavy-middleware-lifting" for you behind the scenes. In fact, now that I think about it, this was supposed to be the "beginner-friendly" way to introduce the concept of middleware. But I did not get it. And I like to get things, so you can imagine my dissatisfaction.&lt;/p&gt;

&lt;p&gt;At the time, I attempted to learn what middlewares were, but I ended up only having a surface-level knowledge of the concept. I just knew it was some logic that runs before your main (business) logic. Because I did not have to explicitly implement it on my own, I could not really appreciate it on a deep level like I desired. &lt;/p&gt;

&lt;p&gt;Not until I started writing Go. You see, Go offers a more low-level approach when it comes to server-side development. You have more granular control of how things should be implemented compared to Django. This is also thanks to Go's powerful standard (http) library. But again, like everything in tech and system design, there is always a tradeoff. In this case, you enjoy flexibility at the expense of complexity, which may impact development experience and timeline. Things are a bit more low-level in Go compared to Django.&lt;/p&gt;

&lt;p&gt;While writing Go, I was forced to think about how I would manage issues like session management and middleware chaining without the heavy abstractions. Only then did it really start to make sense. Now understand that this is a very simplistic example, but I really thought only superstar devs could write up middleware and bootstrap it in a framework like Django so that regular devs don't have to bother understanding it. This experience is also personal, and I don't imply that everybody learning Django would not be able to understand what middlewares are at a deeper level. It just happened that I needed to go a bit more low-level to really get it. Seeing how the request flow got modified was beneficial to my understanding.&lt;/p&gt;

&lt;p&gt;Some people argue that you don't necessarily need to get into the weeds of how things work under the hood. I strongly disagree. Experienced developers thrive on their ability to understand technological layers below their current working level. You might ask, "Why does this level of understanding matter?" &lt;/p&gt;

&lt;p&gt;Take networking, for instance. If you are working with HTTP, do you know how and why it works? Do you know what TCP is and how it helps http? And if you understand TCP, do you understand why and how TCP is built on IP? I can go on. Again, I think this is important because sometimes abstractions leak. If you don't understand the abstracted technology, you will have a hard time debugging issues that will inevitably come up. The deeper you can go into these bottom layers, the better troubleshooter/developer you will be.&lt;/p&gt;

&lt;p&gt;Which brings me to a beautiful line in Preston Thorpe's post:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;em&gt;"This is just a reminder to everyone at different levels of their developer journey, that the “magic” is not real and the overwhelming majority of the time, you are simply lacking the necessary context and it will likely make perfect sense to you as soon as you have it."&lt;/em&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I thought the line just sums it up.&lt;/p&gt;

&lt;p&gt;Takeaway? Understand that the "magical" concept you are currently struggling with is not inaccessible to you. You just haven't gotten what it takes to make sense of it yet. And you will. Sometimes you have to peel back the layers one at a time. Other times, you need to step back for the big picture. Just keep looking. I promise the epiphany is always worth it. &lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fnrfy1993x0onflzxid06.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fnrfy1993x0onflzxid06.jpg" alt="Difficult roads lead to beautiful destinations" width="800" height="976"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Remember, the greatest developers are the most curious ones. So, what’s your “magic”? What’s a concept that felt incomprehensible until you peeled back its layers or gathered more context? I’d love to hear your story.&lt;/p&gt;

</description>
      <category>softwaredevelopment</category>
      <category>learning</category>
      <category>codenewbie</category>
      <category>backend</category>
    </item>
    <item>
      <title>Introducing LiteLookup: Your Terminal Assistant</title>
      <dc:creator>Abdulmumin Akinde</dc:creator>
      <pubDate>Sun, 24 Nov 2024 23:04:57 +0000</pubDate>
      <link>https://forem.com/lanreywaju/introducing-litelookup-your-terminal-assistant-2lgc</link>
      <guid>https://forem.com/lanreywaju/introducing-litelookup-your-terminal-assistant-2lgc</guid>
      <description>&lt;p&gt;Quick question: How many browser tabs do you have open right now? How many of them are due to needing concise information about some random concept?&lt;/p&gt;

&lt;p&gt;As a software engineer who practically lives on the command line, I’ve always been frustrated by the idea of switching to a web browser for quick references and simple explanations. Whether it’s a syntax issue, programming concept, or system command, I want to be able to access information directly from the terminal—without the hassles of window-switching and tab-juggling. That is why I created &lt;a href="https://github.com/Lanrey-waju/lite-lookup" rel="noopener noreferrer"&gt;LiteLookup&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Who Is This Tool For?
&lt;/h2&gt;

&lt;p&gt;LiteLookup was created for anybody whose workflow revolves around the terminal. Whether you are a system administrator, DevOps professional, or backend engineer like myself, LiteLookup can save you valuable time that would have been spent switching windows and managing browser tabs just to find some quick information.&lt;/p&gt;

&lt;h2&gt;
  
  
  Key Offerings
&lt;/h2&gt;

&lt;p&gt;LiteLookup is a simple command-line interface (CLI) tool that lets you access concise, on-demand information about a concept without leaving the terminal. Here is why LiteLookup is special:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Fast lookups:&lt;/strong&gt; Get the information you need in seconds
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Avoid distraction:&lt;/strong&gt; Stay focused and don’t enter a rabbit hole you don’t need to. &lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Digestible explanation:&lt;/strong&gt; Get beginner-friendly information on your queries
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Conversational mode:&lt;/strong&gt; You can go back and forth on an idea you want to brainstorm about right from the terminal.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  LiteLookup In Action
&lt;/h2&gt;

&lt;p&gt;At the most basic level, you can fetch quick, one-time information about any concept with the following command: &lt;br&gt;
&lt;code&gt;lookup “concept”&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;The tool returns a short, quick reference on the topic within seconds.&lt;/p&gt;

&lt;p&gt;Let's play out a scenario quickly: &lt;br&gt;
Imagine you’re deep in a coding project trying to manage your local git repository, and suddenly, while working in the terminal, you come across an unfamiliar git command: ”git stash.” Expectedly, you’re lost and need a quick reference on the novel command. Instead of leaving the terminal and opening another browser tab to search through various articles and potentially get distracted, you can simply type the following on the command line: &lt;/p&gt;

&lt;p&gt;&amp;gt;&amp;gt; &lt;code&gt;lookup "git stash"&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Within seconds, you should get something like:&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fq3orsz5jpe4tqeqgimlu.png" class="article-body-image-wrapper"&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%2Farticles%2Fq3orsz5jpe4tqeqgimlu.png" alt="Image showing basic usage of the lookup command" width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just like that, you have gone from clueless to informed—all without leaving the comfort of your text-based haven!&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;LiteLookup is easy to set up and use:&lt;/p&gt;

&lt;h3&gt;
  
  
  Prerequisites
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Redis server installed and running
Redis is a lightweight, open-source key-value store used for caching. Learn how to install Redis &lt;a href="https://redis.io/docs/latest/operate/oss_and_stack/install/install-redis/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;Python 3.11 or higher
&lt;/li&gt;
&lt;li&gt;Groq LLM API access (get your free API key &lt;a href="https://console.groq.com/keys" rel="noopener noreferrer"&gt;here&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Setup
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Ensure Redis is running:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;redis-cli ping&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You should get PONG which indicates Redis is up and running.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Install LiteLookup via pip or pipx:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;pip install litelookup&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Check Installation  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Enter &lt;code&gt;lookup —-version&lt;/code&gt; to check if the tool is correctly installed
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Configure your API key  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To use the tool for the first time, you should see a prompt 
asking you  to input your API key:
&lt;code&gt;&amp;gt;&amp;gt;Enter API KEY here:&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Simply paste the API key you got from &lt;a href="https://console.groq.com/keys" rel="noopener noreferrer"&gt;Groq&lt;/a&gt; to use the tool.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Usage
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Basic Lookup
&lt;/h3&gt;

&lt;p&gt;To fetch quick concise information about a concept, type: &lt;br&gt;
&lt;code&gt;lookup "concept"&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Get Help
&lt;/h3&gt;

&lt;p&gt;To get a description of the tool and a list of available commands, use the -h or –help flag with lookup as so: &lt;code&gt;lookup -h&lt;/code&gt; or &lt;code&gt;lookup –help&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Programming Mode
&lt;/h3&gt;

&lt;p&gt;If you care for a more verbose, programming-centric response, you may include the -p flag in your query.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;lookup "programming concept" -p&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For example, &lt;code&gt;lookup "print() in python" -p&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Direct Mode
&lt;/h3&gt;

&lt;p&gt;For even more concise, direct answers to command-related queries, use the -d flag in your query.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;lookup -d "command to ..."&lt;/code&gt; or &lt;code&gt;lookup --direct "how to ..."&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;For example, lookup -d "command to delete a file in Linux" or lookup -d "how to rollback a commit in Git"&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Ftoalmrflux1y2kx5uz1u.png" class="article-body-image-wrapper"&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%2Farticles%2Ftoalmrflux1y2kx5uz1u.png" alt="Image showing the usage of litelookup in direct mode" width="800" height="169"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This mode provides brief, actionable responses without additional explanations. For best results, start your query with "command to" or "how to".&lt;/p&gt;

&lt;h3&gt;
  
  
  Interactive Shell Mode
&lt;/h3&gt;

&lt;p&gt;Enter an interactive mode for faster, continuous lookups because the tool does not have to establish new TCP connections whenever you have follow-up queries.: &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;Lookup -id&lt;/code&gt; for interactive direct mode
&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;Lookup -ip&lt;/code&gt; for interactive programming mode (more verbose)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;To exit the interactive mode, type:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“quit” or “q”&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Conversational or Chat Mode
&lt;/h3&gt;

&lt;p&gt;For a conversational interactive experience, LiteLookup offers a chat feature that allows you to go back and forth with the tool:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;lookup -ic&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fjsqq3h07w9l25pwpido2.png" class="article-body-image-wrapper"&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%2Farticles%2Fjsqq3h07w9l25pwpido2.png" alt="Image showing usage of litelookup in conversational mode" width="800" height="789"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As you can see, this mode lets you engage in a conversational exchange and could serve as a nifty terminal brainstorming buddy.&lt;/p&gt;

&lt;h2&gt;
  
  
  What’s Coming to LiteLookup?
&lt;/h2&gt;

&lt;p&gt;LiteLookup is intended to be an indeed light tool that does what it’s meant for extremely well. It is currently in its early development stage but promises a lot of intuitive features that align with the original purpose of quick referencing. &lt;br&gt;
It will also continue to be optimized to fix bugs that arise and improve user experience.&lt;/p&gt;

&lt;h2&gt;
  
  
  Try It Out!
&lt;/h2&gt;

&lt;p&gt;Give &lt;a href="https://pypi.org/project/litelookup/" rel="noopener noreferrer"&gt;LiteLookup&lt;/a&gt; a try today and share your thoughts! Your feedback is invaluable in making this tool better. Reach out to me on &lt;a href="https://x.com/lanrey_waju" rel="noopener noreferrer"&gt;X&lt;/a&gt; or &lt;a href="https://www.linkedin.com/in/abdulmumin-akinde/" rel="noopener noreferrer"&gt;LinkedIn&lt;/a&gt; with your experience and suggestions. Thank you!&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>python</category>
      <category>opensource</category>
      <category>programming</category>
    </item>
    <item>
      <title>My Goals for the HNGi8 internship – Zuri Operated</title>
      <dc:creator>Abdulmumin Akinde</dc:creator>
      <pubDate>Sun, 15 Aug 2021 16:09:43 +0000</pubDate>
      <link>https://forem.com/lanreywaju/my-goals-for-the-hngi8-internship-zuri-operated-pd2</link>
      <guid>https://forem.com/lanreywaju/my-goals-for-the-hngi8-internship-zuri-operated-pd2</guid>
      <description>&lt;p&gt;As a self-taught backend developer, I’ve come to experience firsthand some of the challenges inherent in the solo mode of learning – especially when it is programming. I’ve had to deal with uncertainties and difficulties, and they can be quite overwhelming.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Zuri Internship&lt;/strong&gt;&lt;br&gt;
When you’re solo, you assume the responsibility of consuming the right information and resources necessary for your development. That said, there are tons of informational resources on the internet and you have to filter through all to find the most valuable ones. Without the right mentorship, therefore, you tend to spend an unholy amount of time and resources just trying to get the best tutelage. This is one of the challenges that I intend to circumvent with the &lt;a href="https://internship.zuri.team"&gt;Zuri Internship&lt;/a&gt; and I’m really excited at the prospect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Goals&lt;/strong&gt;&lt;br&gt;
• During the internship, I intend to capitalize on the availability of mentors in getting feedback for my codes. This will help me in dealing with the impostor’s syndrome that most self-taught developers battle with. As a self-taught dev, you learn to appreciate the importance of feedback in the progression of one’s career.&lt;br&gt;
• By the end of the internship, I expect to be more proficient in the usage of my language of choice (Python) to solve problems, and to have garnered a lot of valuable experience from the many tasks that would be given during the internship. &lt;br&gt;
• Also, I expect that by the end of the internship, I’d be a better team player who is able to withstand and weather challenges, work under pressure, and ultimately become a better achiever. &lt;br&gt;
• The importance of networking cannot be overemphasized in the life of any growth-minded developer. As such, Zuri internship has come to serve the opportunity on a platter. I hope to take advantage of the boundless benefits that a community presents by the end of the internship.&lt;/p&gt;

&lt;p&gt;As a bonus for getting to the end of the article, I will leave below links to some of the beginner-friendly materials to get started on your software development journey. I advise, however, that you start to build as soon as you get the basics of whatever concept you intend to learn:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Figma Tutorial Playlist for Beginners&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/Cx2dkpBxst8"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A Beginner's Guide to Git&lt;/strong&gt;&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/8JJ101D3knE"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Side note: Git is an important skill in a developer's skillset with many advantages. Learn more &lt;a href="https://medium.com/free-code-camp/a-beginners-guide-to-git-how-to-create-your-first-github-project-c3ff53f56861"&gt;here&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A beginner's Guide to HTML&lt;/strong&gt;&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/pQN-pnXPaVg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Python For Beginners&lt;/strong&gt;&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/_uQrJ0TkZlc"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;I hope this helps.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
