<?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: Frederic Lepied</title>
    <description>The latest articles on DEV Community by Frederic Lepied (@fredericlepied).</description>
    <link>https://dev.to/fredericlepied</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%2F998079%2Fd3ce7ede-1b89-4d56-8d85-485f0595685c.png</url>
      <title>DEV Community: Frederic Lepied</title>
      <link>https://dev.to/fredericlepied</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fredericlepied"/>
    <language>en</language>
    <item>
      <title>Streamlining Testing Multi-Repository Changes with the Depends-On GitHub Action</title>
      <dc:creator>Frederic Lepied</dc:creator>
      <pubDate>Wed, 11 Oct 2023 19:56:10 +0000</pubDate>
      <link>https://dev.to/fredericlepied/streamlining-testing-multi-repository-changes-with-the-depends-on-github-action-4n8n</link>
      <guid>https://dev.to/fredericlepied/streamlining-testing-multi-repository-changes-with-the-depends-on-github-action-4n8n</guid>
      <description>&lt;p&gt;Handling dependencies across multiple repositories can be a hurdle, especially when changes must be tested across interconnected Pull Requests (PRs). &lt;a href="https://github.com/depends-on/depends-on-action"&gt;The Depends-On GitHub Action&lt;/a&gt; is here to ease that burden by enabling the installation and configuration of dependent PRs, ensuring they are seamlessly integrated into the subsequent steps of your workflow whenever the action is triggered.&lt;/p&gt;

&lt;p&gt;Imagine working on a project where the codebase is distributed across various repositories. For instance, you might have a library in one repository and a program that utilizes this library in another. Let's say you have a new feature requiring library and program changes. The typical approach would involve creating PRs in both repositories and then waiting for the dependent PR to merge before the other can be tested and merged. This process can be time-consuming and error-prone.&lt;/p&gt;

&lt;p&gt;Depends-On action is a game-changer in such scenarios. It enables you to declare dependencies between PRs across different repositories, ensuring that they are tested together, thus saving time and reducing the margin for error. This is particularly useful in microservices architectures or projects with shared libraries.&lt;/p&gt;

&lt;p&gt;Here's a glimpse of how it operates: the action extracts all the declared dependencies from the description of the main PR using the syntax &lt;code&gt;Depends-On: &amp;lt;PR url&amp;gt;&lt;/code&gt;. You can specify multiple dependencies by adding multiple &lt;code&gt;Depends-On:&lt;/code&gt; lines in the description of the main PR.&lt;/p&gt;

&lt;p&gt;Let's delve into a practical example using the Go language:&lt;/p&gt;

&lt;h2&gt;
  
  
  Go Lang Example
&lt;/h2&gt;

&lt;p&gt;Suppose you have a Go project with a &lt;code&gt;go.mod&lt;/code&gt; file defining its dependencies. You make a change in a library, and now you need to test this change in a program that depends on this library. Here's how you could use the Depends-On action:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use the new function from a change in a project used in the &lt;code&gt;go.mod&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Next, create a PR in the program repository, and in the PR description, add the line:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Depends-On: https://github.com/org/library/pull/123
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;When the GitHub action workflow is triggered in the program repository, the Depends-On action will kick in. It reads the &lt;code&gt;Depends-On:&lt;/code&gt; line from the PR description, identifies the dependent PR, and modifies the &lt;code&gt;go.mod&lt;/code&gt; file in the program repository to use the library PR's branch instead of the main branch.&lt;/li&gt;
&lt;li&gt;The action inserts a &lt;code&gt;replace&lt;/code&gt; directive in the &lt;code&gt;go.mod&lt;/code&gt; file pointing to the library PR's branch, allowing you to test the program with the new library changes before merging to the main branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This action needs to be placed after installing the Go lang toolchain in your GitHub workflow file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Pull Request&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;opened&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;synchronize&lt;/span&gt;&lt;span class="pi"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;reopened&lt;/span&gt;&lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;validate-tests&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout code&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install the go toolchain&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-go@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Extract dependent Pull Requests&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;depends-on/depends-on-action@0.7.0&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;go build&lt;/span&gt;

  &lt;span class="na"&gt;check-all-dependencies-are-merged&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout code&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Extract dependent PR&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;depends-on/depends-on-action@0.7.0&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;check-unmerged-pr&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://github.com/depends-on/depends-on-action"&gt;The Depends-On action&lt;/a&gt; simplifies managing dependencies and expedites the testing process across multiple repositories, making your development workflow more efficient and error-resistant. With just a few lines in your PR description, you can now ensure that all related changes are tested together, maintaining the integrity and reliability of your projects across all repositories.&lt;/p&gt;

</description>
      <category>githubactions</category>
      <category>github</category>
      <category>pullrequest</category>
      <category>ci</category>
    </item>
    <item>
      <title>🚀 Help Shape the Future of Open Source contributions - I Need Your Input!</title>
      <dc:creator>Frederic Lepied</dc:creator>
      <pubDate>Sat, 13 May 2023 16:40:29 +0000</pubDate>
      <link>https://dev.to/fredericlepied/help-shape-the-future-of-open-source-contributions-i-need-your-input-5e0l</link>
      <guid>https://dev.to/fredericlepied/help-shape-the-future-of-open-source-contributions-i-need-your-input-5e0l</guid>
      <description>&lt;p&gt;Hello, fellow devs! 😄&lt;/p&gt;

&lt;p&gt;I'm on a mission! I'm trying to understand the challenges and hurdles that might be stopping us from diving deep into the fantastic world of Open Source. And guess what? I need your help!&lt;/p&gt;

&lt;p&gt;We've all been there, right? Wanting to contribute to Open Source but feeling held back for one reason or another. Is it finding the time? Feeling like you lack the necessary skills? Or is it simply not knowing which project to choose? 🤔&lt;/p&gt;

&lt;p&gt;That's where you come in. I've put together a short survey - it'll only take a few minutes, promise! Your input could help shape the future of Open Source contribution, making it more accessible and welcoming for everyone.&lt;/p&gt;

&lt;p&gt;Here's the link to the survey: &lt;a href="https://surveymonkey.com/r/W7F377Y"&gt;https://surveymonkey.com/r/W7F377Y&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And hey, we're all about community here, right? So, if you know someone else who's got insights to share on this, please feel free to pass the survey along.&lt;/p&gt;

&lt;p&gt;Thanks a ton in advance! You're awesome! 🎸 Let's continue to make the dev community one of the best places to learn and grow!&lt;/p&gt;

</description>
      <category>opensource</category>
      <category>help</category>
      <category>discuss</category>
      <category>survey</category>
    </item>
    <item>
      <title>emacs: how to switch between module.py and test_module.py</title>
      <dc:creator>Frederic Lepied</dc:creator>
      <pubDate>Sat, 31 Dec 2022 15:48:25 +0000</pubDate>
      <link>https://dev.to/fredericlepied/emacs-how-to-switch-from-modulepy-to-testmodulepy-67k</link>
      <guid>https://dev.to/fredericlepied/emacs-how-to-switch-from-modulepy-to-testmodulepy-67k</guid>
      <description>&lt;h1&gt;
  
  
  Switching between files
&lt;/h1&gt;

&lt;p&gt;emacs has a nice feature to switch between related files using the &lt;code&gt;ff-find-other-file&lt;/code&gt; function. By default this is not bound to any keys. I usually bind it to &lt;code&gt;F5&lt;/code&gt; to find the related file in the same window and &lt;code&gt;M-o&lt;/code&gt; to open it in a new window like this in my &lt;code&gt;~/.emacs&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight common_lisp"&gt;&lt;code&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;global-set-key&lt;/span&gt; &lt;span class="ss"&gt;'[f5]&lt;/span&gt; &lt;span class="ss"&gt;'ff-find-other-file&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;global-set-key&lt;/span&gt; &lt;span class="ss"&gt;'[&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;meta&lt;/span&gt; &lt;span class="nv"&gt;o&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="nv"&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;lambda&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;interactive&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;ff-find-other-file&lt;/span&gt; &lt;span class="no"&gt;t&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Switching between module.py and module_test.py
&lt;/h2&gt;

&lt;p&gt;For python files, related files can be a module and its test file. To do so, you need to confiure the &lt;code&gt;ff-other-file-alist&lt;/code&gt; variable once you enter into &lt;code&gt;python-mode&lt;/code&gt;. You can do it like that in your &lt;code&gt;~/.emacs&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight common_lisp"&gt;&lt;code&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;add-hook&lt;/span&gt; &lt;span class="ss"&gt;'python-mode-hook&lt;/span&gt;
          &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;
           &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
             &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;ff-other-file-alist&lt;/span&gt;
                   &lt;span class="o"&gt;'&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s"&gt;"_test\\.py$"&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;".py"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
                     &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"\\.py$"&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"_test.py"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The order is important in the &lt;code&gt;ff-other-file-alist&lt;/code&gt; variable as &lt;code&gt;ff-find-other-file&lt;/code&gt; stops at the first match.&lt;/p&gt;

&lt;h2&gt;
  
  
  Switching between module.py and test_module.py
&lt;/h2&gt;

&lt;p&gt;To switch between &lt;code&gt;module.py&lt;/code&gt; and &lt;code&gt;test_module.py&lt;/code&gt; is a little bit more complex. By default &lt;code&gt;ff-find-other-file&lt;/code&gt; works with suffixes. There is a feature that is not documented (I had to look at the source code to find it): you can pass the name of a function instead of the replacement suffixes.&lt;/p&gt;

&lt;p&gt;Here is how to do it:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight common_lisp"&gt;&lt;code&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;py-module&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;concat&lt;/span&gt;
         &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;match-string&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;file-name-nondirectory&lt;/span&gt; &lt;span class="nv"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
         &lt;span class="s"&gt;".py"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;defun&lt;/span&gt; &lt;span class="nv"&gt;py-test&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;list&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;concat&lt;/span&gt; &lt;span class="s"&gt;"test_"&lt;/span&gt;
                &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;match-string&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;file-name-nondirectory&lt;/span&gt; &lt;span class="nv"&gt;fname&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
                &lt;span class="s"&gt;".py"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;add-hook&lt;/span&gt; &lt;span class="ss"&gt;'python-mode-hook&lt;/span&gt;
          &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;
           &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
             &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;ff-other-file-alist&lt;/span&gt;
                   &lt;span class="o"&gt;'&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="s"&gt;"test_\\(.*\\)\\.py$"&lt;/span&gt; &lt;span class="nv"&gt;py-module&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                     &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"\\(.*\\)\\.py$"&lt;/span&gt; &lt;span class="nv"&gt;py-test&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
                   &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Looking up in different directories
&lt;/h2&gt;

&lt;p&gt;If your test and module are not in the same directory, you can use the &lt;code&gt;ff-search-directories&lt;/code&gt; variable to add some relative paths. For example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight common_lisp"&gt;&lt;code&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;add-hook&lt;/span&gt; &lt;span class="ss"&gt;'python-mode-hook&lt;/span&gt;
          &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;function&lt;/span&gt;
           &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
             &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;setq&lt;/span&gt; &lt;span class="nv"&gt;ff-search-directories&lt;/span&gt; &lt;span class="o"&gt;'&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"."&lt;/span&gt; &lt;span class="s"&gt;"../tests"&lt;/span&gt; &lt;span class="s"&gt;"../src"&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>watercooler</category>
    </item>
  </channel>
</rss>
