<?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: Dendi Prayogo Hidayat</title>
    <description>The latest articles on DEV Community by Dendi Prayogo Hidayat (@xdendix).</description>
    <link>https://dev.to/xdendix</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%2F726362%2F8c006c90-e5f9-4d09-84fa-c8ff3edee4c3.png</url>
      <title>DEV Community: Dendi Prayogo Hidayat</title>
      <link>https://dev.to/xdendix</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/xdendix"/>
    <language>en</language>
    <item>
      <title>Why open a laptop when you can run recon from your phone? For this MLH Hackathon, I built an asynchronous Telegram bot using Python to automate web security audits. Try it out and let me know what you think!</title>
      <dc:creator>Dendi Prayogo Hidayat</dc:creator>
      <pubDate>Mon, 05 Oct 2026 15:17:07 +0000</pubDate>
      <link>https://dev.to/xdendix/why-open-a-laptop-when-you-can-run-recon-from-your-phone-for-this-mlh-hackathon-i-built-an-5ai5</link>
      <guid>https://dev.to/xdendix/why-open-a-laptop-when-you-can-run-recon-from-your-phone-for-this-mlh-hackathon-i-built-an-5ai5</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064" class="crayons-story__hidden-navigation-link"&gt;Building SecOps Recon Bot: Enterprise-Grade Web Auditing via Telegram&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="/xdendix" 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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F726362%2F8c006c90-e5f9-4d09-84fa-c8ff3edee4c3.png" alt="xdendix profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/xdendix" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Dendi Prayogo Hidayat
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Dendi Prayogo Hidayat
                
                
              
              &lt;div id="story-author-preview-content-4802207" 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="/xdendix" 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.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F726362%2F8c006c90-e5f9-4d09-84fa-c8ff3edee4c3.png" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Dendi Prayogo Hidayat&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/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Oct 5&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/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064" id="article-link-4802207"&gt;
          Building SecOps Recon Bot: Enterprise-Grade Web Auditing via Telegram
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/mlhacks"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;mlhacks&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devchallenge"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devchallenge&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/hackathon"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;hackathon&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/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064" 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="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;2&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/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064#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;
            3 min read
          &lt;/small&gt;
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
      <category>automation</category>
      <category>cybersecurity</category>
      <category>python</category>
      <category>security</category>
    </item>
    <item>
      <title>Building SecOps Recon Bot: Enterprise-Grade Web Auditing via Telegram</title>
      <dc:creator>Dendi Prayogo Hidayat</dc:creator>
      <pubDate>Mon, 05 Oct 2026 14:54:48 +0000</pubDate>
      <link>https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064</link>
      <guid>https://dev.to/xdendix/building-secops-recon-bot-enterprise-grade-web-auditing-via-telegram-3064</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/mlh-hackathon"&gt;MLH x DEV Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I Built&lt;/strong&gt;&lt;br&gt;
I built SecOps Recon Bot, an automated, asynchronous Telegram bot designed for enterprise-grade web reconnaissance and objective security auditing.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it does&lt;/strong&gt;&lt;br&gt;
It allows security analysts, pentesters, and CTF players to perform rapid reconnaissance directly from their phones via Telegram. The bot features three main modules:&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;HTTP Security Headers Audit: Analyzes critical headers (HSTS, CSP, etc.) with automatic protocol fallback and final URL resolution.

Cookie Security Inspector: Audits session cookies for missing Secure and HttpOnly flags.

Sensitive Path Scanner (Dir-Buster Lite): Concurrently brute-forces exposed administrative endpoints (e.g., .env, .git/HEAD) while smartly filtering out generic 301/302 catch-all redirects to prevent false positives.
Finally, it uses Zero Disk I/O to generate a beautifully formatted Markdown report directly in memory and sends it as a downloadable file.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;What inspired it&lt;/strong&gt;&lt;br&gt;
During CTFs and bug bounty hunting, I realized that firing up heavy desktop tools (like Burp Suite or dedicated terminal scanners) just to do a quick initial recon on a target is highly inefficient. I wanted a tool that lives in my pocket, works instantly, and delivers professional, objective data without the noise of false positives.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What I learned&lt;/strong&gt;&lt;br&gt;
I leveled up my Python architecture skills significantly. I learned how to seamlessly blend synchronous I/O operations (like the requests library) with asynchronous non-blocking frameworks (aiogram) using ThreadPoolExecutor. I also learned how to enforce strict type-guarding with Pylance and how to properly handle HTTP redirect blind spots to ensure the bot always reports the final resolved URL.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Demo&lt;/strong&gt;&lt;br&gt;
Here is a look at the bot's interface and the Enterprise Markdown Report it generates:&lt;/p&gt;



&lt;p&gt;&lt;strong&gt;Check out the source code on GitHub:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;
&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/xdendix" rel="noopener noreferrer"&gt;
        xdendix
      &lt;/a&gt; / &lt;a href="https://github.com/xdendix/secops_recon_bot_telegram" rel="noopener noreferrer"&gt;
        secops_recon_bot_telegram
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;SecOps Recon Bot&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;An automated, asynchronous Telegram bot designed for enterprise-grade web reconnaissance and objective security auditing. Built as a submission for the MLH Community Event.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Overview&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;SecOps Recon Bot is a Red Teaming and Web Security utility that allows security analysts to perform rapid, concurrent reconnaissance directly from Telegram. It is engineered with strict type checking, robust error handling, and Application Performance Monitoring (APM) to ensure production-level stability.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Core Capabilities&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTTP Security Headers Audit:&lt;/strong&gt; Objectively analyzes critical security headers (e.g., HSTS, CSP, X-Frame-Options) with automatic protocol fallback (HTTPS to HTTP) and final URL resolution.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cookie Security Flag Inspector:&lt;/strong&gt; Scans target responses for missing &lt;code&gt;Secure&lt;/code&gt; and &lt;code&gt;HttpOnly&lt;/code&gt; flags on session cookies.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sensitive Path Scanner (Dir-Buster Lite):&lt;/strong&gt; Utilizes thread-pooling to concurrently brute-force common administrative endpoints and sensitive files (e.g., &lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;robots.txt&lt;/code&gt;, &lt;code&gt;.git/HEAD&lt;/code&gt;) while intentionally filtering out generic 301/302 catch-all redirects to eliminate false positives.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;In-Memory Report Generation:&lt;/strong&gt; Concurrently…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/xdendix/secops_recon_bot_telegram" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Partner Technologies&lt;/strong&gt;&lt;br&gt;
Sentry (Application Performance Monitoring &amp;amp; Error Tracking)&lt;br&gt;
To ensure this tool meets enterprise standards, I integrated the Sentry SDK deep into the application's core. Rather than just wrapping the bot in a generic try-catch block, I utilized Sentry's start_transaction and start_span features to monitor specific reconnaissance operations.&lt;/p&gt;

&lt;p&gt;For example, during the concurrent Sensitive Path scanning, Sentry tracks the performance of the thread pool and monitors HTTP client spans. If a target server drops the connection or times out, Sentry instantly logs the deadline exceedance or internal errors without crashing the bot's main polling loop. This gave me incredible visibility into how the bot performs under the hood when scanning slow or heavily protected targets.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8rgbw5wr61k3vcfbpktg.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F8rgbw5wr61k3vcfbpktg.png" alt="Sentry" width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hackathon Experience&lt;/strong&gt;&lt;br&gt;
I built this for the MLH Community Event (CEV). The atmosphere was incredibly inspiring—seeing hackers from all over the world turning ideas into reality pushed me to not just "make a bot that works", but to engineer a production-ready application.&lt;/p&gt;

&lt;p&gt;My biggest takeaway from this event is the shift in my development mindset. Instead of rushing to build features, I focused on clean code, strict type-checking, handling edge cases (like URL redirects), and writing professional documentation. The sense of community and the drive to build something genuinely useful for the cybersecurity space is what I will remember most about this MLH event!&lt;/p&gt;

</description>
      <category>mlhacks</category>
      <category>devchallenge</category>
      <category>hackathon</category>
    </item>
    <item>
      <title>OpsBuddy: A Privacy-First Local AI SysAdmin Mentor (Built with Gemma, Ollama &amp; Sentry)</title>
      <dc:creator>Dendi Prayogo Hidayat</dc:creator>
      <pubDate>Sat, 03 Oct 2026 10:22:21 +0000</pubDate>
      <link>https://dev.to/xdendix/opsbuddy-a-privacy-first-local-ai-sysadmin-mentor-built-with-gemma-ollama-sentry-ijb</link>
      <guid>https://dev.to/xdendix/opsbuddy-a-privacy-first-local-ai-sysadmin-mentor-built-with-gemma-ollama-sentry-ijb</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/hacktoberfest-weekend-2026-10-03"&gt;Hacktoberfest Weekend Challenge: Build for a Friend&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;OpsBuddy&lt;/strong&gt;, a local, privacy-first AI mentor designed specifically for SysAdmin and Linux training in a CLI environment. &lt;/p&gt;

&lt;p&gt;I built this for my friend and trainee, &lt;strong&gt;Andre&lt;/strong&gt;, who is currently learning the ropes of server administration. The biggest hurdle for beginners like him is understanding complex error logs without accidentally leaking sensitive server information (like IPs, usernames, or paths) to public cloud AI tools. OpsBuddy solves this by running entirely locally on his machine. It acts as a safe, intelligent sandbox where he can ask technical questions and securely analyze local &lt;code&gt;.log&lt;/code&gt; files.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;Here is OpsBuddy in action safely analyzing a local log file, along with the deep-dive performance tracing data captured by Sentry!&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh6o1npkkfph1vc7bu0k4.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fh6o1npkkfph1vc7bu0k4.png" alt="Terminal showing OpsBuddy securely analyzing a local error log" width="799" height="475"&gt;&lt;/a&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwb1i594scima3rpbv420.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fwb1i594scima3rpbv420.png" alt="Sentry dashboard showing the Waterfall view of AI inference trace" width="799" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/xdendix" rel="noopener noreferrer"&gt;
        xdendix
      &lt;/a&gt; / &lt;a href="https://github.com/xdendix/opsbuddy" rel="noopener noreferrer"&gt;
        opsbuddy
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    


&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/xdendix/opsbuddy" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;h2&gt;
  
  
  How I Built It
&lt;/h2&gt;

&lt;p&gt;OpsBuddy is built around a fully open-source and local stack:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;AI Model:&lt;/strong&gt; Google's &lt;strong&gt;Gemma 2B&lt;/strong&gt; (open-weight model) for fast, concise, and accurate technical mentoring.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Local Inference:&lt;/strong&gt; &lt;strong&gt;Ollama&lt;/strong&gt; to run the LLM efficiently without internet access.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Logic &amp;amp; UI:&lt;/strong&gt; &lt;strong&gt;Python&lt;/strong&gt; combined with the &lt;code&gt;rich&lt;/code&gt; library for a beautiful, colorful CLI experience.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Agent Tracing:&lt;/strong&gt; &lt;strong&gt;Sentry SDK&lt;/strong&gt; to monitor the AI's performance. I implemented &lt;code&gt;start_transaction&lt;/code&gt; and &lt;code&gt;start_child&lt;/code&gt; spans to track the exact latency of the local inference streaming process whenever Andre interacts with the agent, ensuring the application remains responsive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Does Open Innovation Matter?
&lt;/h2&gt;

&lt;p&gt;Open innovation is the absolute backbone of this project. By utilizing open-weight models like Gemma 2B and open local harnesses like Ollama, OpsBuddy guarantees absolute data privacy. Andre can command the AI to analyze sensitive SSH, database, or application logs without the fear of that data being sent to a closed, third-party API. Open innovation made it possible to build a capable, free-to-use mentor that respects user data sovereignty.&lt;/p&gt;

&lt;h2&gt;
  
  
  Prize Categories
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Best Use of Gemma&lt;/li&gt;
&lt;li&gt;Best Use of Sentry Agent Tracing&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devchallenge</category>
      <category>weekendchallenge</category>
      <category>hf26challenge</category>
      <category>python</category>
    </item>
  </channel>
</rss>
