<?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: Juergen</title>
    <description>The latest articles on DEV Community by Juergen (@jayfidev).</description>
    <link>https://dev.to/jayfidev</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%2F111231%2Fe506a4ec-6462-45fb-a6f6-f4f2822bb7c1.png</url>
      <title>DEV Community: Juergen</title>
      <link>https://dev.to/jayfidev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jayfidev"/>
    <language>en</language>
    <item>
      <title>Starting To Code [Part 3]</title>
      <dc:creator>Juergen</dc:creator>
      <pubDate>Fri, 27 Nov 2020 15:59:17 +0000</pubDate>
      <link>https://dev.to/jayfidev/starting-to-code-3mp6</link>
      <guid>https://dev.to/jayfidev/starting-to-code-3mp6</guid>
      <description>&lt;p&gt;Finally, after describing my &lt;a href="https://dev.to/jayfidev/starting-a-project-1211"&gt;struggle with starting&lt;/a&gt; in the last post, it is time. Starting to code the application to solve my problem and learn a new language. &lt;/p&gt;

&lt;h2&gt;
  
  
  Project setup
&lt;/h2&gt;

&lt;p&gt;Starting a project in Xcode is easy, you open the IDE, start a new project and you are ready to go.&lt;/p&gt;

&lt;p&gt;I always start by adding a git-repository and link it to my own remote repository or my GitHub account, depending on the character of the project. Having source control from the start is so valuable. You can revert to a working copy or create a branch to test something out. Even if you only use a local git. It is worth it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Finding A Name
&lt;/h3&gt;

&lt;p&gt;Finding a name can be tricky, but for this project I just took the obvious. The application has to move files from one place to the other. It stores them in a different place. So &lt;strong&gt;StoreAway&lt;/strong&gt; it is.&lt;/p&gt;

&lt;h2&gt;
  
  
  Coding
&lt;/h2&gt;

&lt;p&gt;Where to start coding is always a big questions. As an embedded developer I tend to start at the backend. Implementing the file handling looked like a good first task for myself. To make life a little bit easier I setup my SwiftUI user interface to help me with the implementation.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Faj10evnjwo8x6vdr46ru.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Faj10evnjwo8x6vdr46ru.png" alt="First UserInterface Implementation"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Yes, it is only a button which allows me to call a function. Start simple. It helps you a lot to call a function without restarting your application. It makes debugging so much easier.&lt;/p&gt;

&lt;h3&gt;
  
  
  First problems
&lt;/h3&gt;

&lt;p&gt;My first goal was to get all files of one specific filetype in a folder. To achieve this goal I used the &lt;a href="https://developer.apple.com/documentation/foundation/filemanager" rel="noopener noreferrer"&gt;FileManager&lt;/a&gt;. This interface allows you to access the filesystem and do all the operations you know from finder. &lt;/p&gt;

&lt;p&gt;But there was a problem. I could not access the filesystem. Projects in Xcode default to sandboxed environment. Every macOS user knows these dialogs from apps like Alfred that want you to enable full disk access for them. Do I really want that in an application for myself? &lt;/p&gt;

&lt;p&gt;Not at the beginning. Don't let a problem like this stop you for a small project. &lt;br&gt;
Do you need to implement sandboxing? Absolutely &lt;em&gt;if you want to sell the application later.&lt;/em&gt; &lt;/p&gt;

&lt;p&gt;I don't plan to sell it, I just want to learn the language. So I removed the entitlements file and started coding my file handler.&lt;/p&gt;
&lt;h3&gt;
  
  
  Syntax
&lt;/h3&gt;

&lt;p&gt;One of the goals for this project was to use a swift-like syntax and not falling back to my C++ roots.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kd"&gt;func&lt;/span&gt; &lt;span class="nf"&gt;getFilesInFolder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;filetype&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;enumerator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fm&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;enumerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;atPath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;files&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;enumerator&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;allObjects&lt;/span&gt; &lt;span class="k"&gt;as!&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lowercased&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;contains&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filetype&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lowercased&lt;/span&gt;&lt;span class="p"&gt;())}&lt;/span&gt;

    &lt;span class="k"&gt;var&lt;/span&gt; &lt;span class="nv"&gt;file_url&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;]&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;f&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="n"&gt;files&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;path&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;fileURLWithPath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;appendingPathComponent&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="n"&gt;file_url&lt;/span&gt;&lt;span class="o"&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;path&lt;/span&gt;&lt;span class="p"&gt;)&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;file_url&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After looking at my code I wasn't sure, that my implementation is very Swift like. After another round of refactoring the result is as follows&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight swift"&gt;&lt;code&gt;&lt;span class="kd"&gt;func&lt;/span&gt; &lt;span class="nf"&gt;getFilesInFolder&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; &lt;span class="nv"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;filetype&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;String&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;

    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;resourceKeys&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kt"&gt;Set&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="kt"&gt;URLResourceKey&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;nameKey&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;enumerator&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;fm&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;enumerator&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;at&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;path&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;includingPropertiesForKeys&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kt"&gt;Array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;resourceKeys&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;skipsHiddenFiles&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;let&lt;/span&gt; &lt;span class="nv"&gt;files&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;enumerator&lt;/span&gt;&lt;span class="p"&gt;?&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;allObjects&lt;/span&gt; &lt;span class="k"&gt;as!&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="kt"&gt;URL&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;filter&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nv"&gt;$0&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pathExtension&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;contains&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;filetype&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;lowercased&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;files&lt;/span&gt;

  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Refactoring is important. But if works - it works! If you are coding, especially as a beginner don't think too much about the form of your code. The more you use a language the better your style will be.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/JayFiDev/StoreAway" rel="noopener noreferrer"&gt;first versions of the application&lt;/a&gt; are already done, getting more features over time. I want to continue this as a small series. Publishing more stories in the next weeks on my journey to learn a new programming language and solve my problem.&lt;/p&gt;

&lt;p&gt;Image by StockSnap from Pixabay - Thank you!&lt;/p&gt;

</description>
      <category>swift</category>
      <category>swiftui</category>
      <category>starting</category>
      <category>coding</category>
    </item>
    <item>
      <title>Starting A Project [Part 2]</title>
      <dc:creator>Juergen</dc:creator>
      <pubDate>Fri, 27 Nov 2020 15:59:01 +0000</pubDate>
      <link>https://dev.to/jayfidev/starting-a-project-1211</link>
      <guid>https://dev.to/jayfidev/starting-a-project-1211</guid>
      <description>&lt;p&gt;In my &lt;a href="https://dev.to/jayfidev/how-to-start-learning-a-new-programming-language-3nno"&gt;last post&lt;/a&gt; I described my struggle with starting to learn a new programming language. After I found my problem to solve I could not wait to start. After my day job I opened Xcode, created a new project and ... nothing. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How do we start a project from the ground up?&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Making A Plan
&lt;/h2&gt;

&lt;p&gt;Jumping straight in can be a problem later on in the project. Making even a very high level architecture is always a good starting point to a project. It can be done as a mindmap, a todo list or even a small drawing on a piece of paper.&lt;/p&gt;

&lt;p&gt;I wanted to make sure that my architecture allows me to update the application later on without rewriting most of it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Storage
&lt;/h3&gt;

&lt;p&gt;I know that macOS applications can store their data in UserDefaults. This would allow me to just use this instead of creating my own solution for storing the settings.&lt;/p&gt;

&lt;p&gt;Using default mechanism is always a good way to start in a new system. There is a lot of help and you can find a lot of answers to your questions here or on other sites.&lt;/p&gt;

&lt;h3&gt;
  
  
  Backend
&lt;/h3&gt;

&lt;p&gt;As a C/C++ programmer it is quite hard for me to change my programming style. When writing python I often struggle using the pythonic style and fall back to using a more C++ like syntax. For this project I challenged myself to try to use a Swift-like syntax.&lt;br&gt;
The main function of the backend is the file handling. Getting the current files in a folder and move/copy them to a different direction. &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Swift-like syntax&lt;/li&gt;
&lt;li&gt;Copy / move files&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Frontend
&lt;/h3&gt;

&lt;p&gt;The application I had in mind should look like a normal modern macOS application. A minimal main view without to much clutter, a settings screen separated from the main view and working dark-mode support&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Minimal main view&lt;/li&gt;
&lt;li&gt;Settings screen&lt;/li&gt;
&lt;li&gt;Dark mode support&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The First Steps
&lt;/h2&gt;

&lt;p&gt;For this project I started with a small drawing of the UI and the inner workings of my backend. In the following picture you can see my initial thoughts. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--BqJdy8US--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/17q6uzxykg4s5fltn9j1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--BqJdy8US--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/17q6uzxykg4s5fltn9j1.png" alt="First thoughts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The first concept does not have to be perfect. It should help you make decisions about the architecture and design.&lt;/p&gt;

&lt;p&gt;Doodle a UI, sketch out the inner workings of the backend. It will help you form the idea in your head how to start.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://github.com/JayFiDev/StoreAway"&gt;first versions of the application&lt;/a&gt; are already done, getting more features over time. I want to continue this as a small series. Publishing more stories in the next weeks on my journey to learn a new programming language and solve my problem.&lt;/p&gt;

&lt;p&gt;Image by StartupStockPhotos from Pixabay - Thank you!&lt;/p&gt;

</description>
      <category>swift</category>
      <category>swiftui</category>
      <category>gettingstarted</category>
      <category>planning</category>
    </item>
    <item>
      <title>How to start learning a new programming language [Part 1]</title>
      <dc:creator>Juergen</dc:creator>
      <pubDate>Fri, 27 Nov 2020 14:28:06 +0000</pubDate>
      <link>https://dev.to/jayfidev/how-to-start-learning-a-new-programming-language-3nno</link>
      <guid>https://dev.to/jayfidev/how-to-start-learning-a-new-programming-language-3nno</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;For years I was struggling with learning a new programming language. &lt;br&gt;
In my day job I'm a software developer for medical devices. That means writing software for a device which should never fail. The programming languages of choice are C and C++ for the embedded systems I'm working on and the product lifecycle is long - 10 to 15 years. &lt;/p&gt;

&lt;p&gt;So I'm stuck in my roots, programming with the same languages and writing even more documentation of the software I code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started?
&lt;/h2&gt;

&lt;p&gt;Now, how do I get to start on a new programming language? &lt;/p&gt;

&lt;p&gt;Last week I was sitting in front of my computer and looked on my desktop. The last months had taken its toll. The desktop was cluttered in files from 3d printing, pictures and files for different private projects. &lt;/p&gt;

&lt;p&gt;There it was! A problem I want to solve. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A program to sort away my files. A program which can help me and other people to clean their computer.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Getting started!
&lt;/h2&gt;

&lt;p&gt;This problem allows me to add one more point I always wanted to learn to my todo list. Implementing an UI. In my day job I did only some small tweaking to user interfaces, never building one from the ground up.&lt;/p&gt;

&lt;p&gt;Starting goals:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use Swift for the application&lt;/li&gt;
&lt;li&gt;Use SwiftUI for the user interface&lt;/li&gt;
&lt;li&gt;sort files by filetype to different destinations&lt;/li&gt;
&lt;li&gt;move / copy these files from one location to the other&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Nothing more - just the minimal working solution to my problem. No fancy features, no fancy UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to get started
&lt;/h2&gt;

&lt;p&gt;In conclusion - you can start learning a language by doing tutorials. You will learn a lot, especially when you are new to programming.&lt;br&gt;
But you have to jump into the deep end sooner or later. A tutorial can only teach you the syntax and how small parts of the language work. Making an application on your own is a different story.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Find a problem you want to be solved. Break it down to smaller pieces you can solve and start from there.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Don't be afraid to fail. The internet is full of sites helping you solve the problem you may find on your way!&lt;/p&gt;

&lt;p&gt;The first versions of the &lt;a href="https://github.com/JayFiDev/StoreAway"&gt;application&lt;/a&gt; are already done, getting more features over time. I want to continue this as a small series. Publishing more stories in the next weeks on my journey to learn a new programming language and solve my problem.&lt;/p&gt;

&lt;p&gt;Picture: Image by Mariann Szőke from Pixabay - Thank you!&lt;/p&gt;

</description>
      <category>swift</category>
      <category>swiftui</category>
      <category>gettingstarted</category>
      <category>process</category>
    </item>
  </channel>
</rss>
