<?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: Corrado dello Russo</title>
    <description>The latest articles on DEV Community by Corrado dello Russo (@corradodellorusso).</description>
    <link>https://dev.to/corradodellorusso</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%2F350669%2F5fece237-8807-4a32-a532-2c85d49dd087.png</url>
      <title>DEV Community: Corrado dello Russo</title>
      <link>https://dev.to/corradodellorusso</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/corradodellorusso"/>
    <language>en</language>
    <item>
      <title>How to easily debug rxjs pipes</title>
      <dc:creator>Corrado dello Russo</dc:creator>
      <pubDate>Wed, 27 Oct 2021 14:45:52 +0000</pubDate>
      <link>https://dev.to/corradodellorusso/how-to-easily-debug-rxjs-pipes-2p4e</link>
      <guid>https://dev.to/corradodellorusso/how-to-easily-debug-rxjs-pipes-2p4e</guid>
      <description>&lt;p&gt;When i first started approaching reactive programming and rxjs i struggled a little bit to understand how data flows throught observables, pipes, operators and so on. All i had to help me were marble diagrams, but they just helped increasing the headache.&lt;/p&gt;

&lt;p&gt;I wanted to create something that could help beginners approaching rxjs, while helping more experienced developers debug complex pipes. &lt;br&gt;
This is how &lt;a href="https://www.npmjs.com/package/rx-debugger"&gt;rx-debugger&lt;/a&gt; is born! &lt;/p&gt;
&lt;h3&gt;
  
  
  How does it work?
&lt;/h3&gt;

&lt;p&gt;Getting started with rx-debugger is super easy. All you have to do is patching source observable and using operators exported by the library. &lt;/p&gt;

&lt;p&gt;Here is an example:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight typescript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;rxDebugger&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;toArray&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rx-debugger&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="k"&gt;of&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;rxjs&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="nx"&gt;rxDebugger&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;of&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;2&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="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;pipe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;map&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;item&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="nx"&gt;item&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
    &lt;span class="nx"&gt;toArray&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="nx"&gt;subscribe&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Doing so, you will get following output nicely printed in the console:&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--u8P3N5xA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dcqc2is5rib9aatywhpc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--u8P3N5xA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/dcqc2is5rib9aatywhpc.png" alt="output example" width="880" height="415"&gt;&lt;/a&gt;&lt;br&gt;
Isn't that super cool? &lt;/p&gt;

&lt;p&gt;By the way, rx-debugger supports way more options than just printing tables in the console. You can find all the options in the &lt;a href="https://github.com/corradodellorusso/rx-debugger"&gt;docs&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contributing
&lt;/h3&gt;

&lt;p&gt;rx-debugger is open source and hosted on &lt;a href="https://github.com/corradodellorusso/rx-debugger"&gt;GitHub&lt;/a&gt;. While being fully functional, it is in early stages of development, and any help or feedback would be appreciated! &lt;/p&gt;

</description>
      <category>javascript</category>
      <category>typescript</category>
      <category>rxjs</category>
      <category>reactive</category>
    </item>
    <item>
      <title>Boost your productivity with this tiny IntelliJ plugin! </title>
      <dc:creator>Corrado dello Russo</dc:creator>
      <pubDate>Thu, 28 May 2020 07:09:01 +0000</pubDate>
      <link>https://dev.to/corradodellorusso/boost-your-productivity-with-this-tiny-intellij-plugin-1cii</link>
      <guid>https://dev.to/corradodellorusso/boost-your-productivity-with-this-tiny-intellij-plugin-1cii</guid>
      <description>&lt;p&gt;As a developer i think our job is not just writing code but looking for the best way to do so. Writing good code usually takes a lot of searching on the internet. So every time i have a doubt on something, i have to select text i want to look for, open the browser and dig the internet until i find something useful. &lt;/p&gt;

&lt;p&gt;So i thought, why i don't implement this directly in my IDE?&lt;/p&gt;

&lt;p&gt;And that's how &lt;a href="https://plugins.jetbrains.com/plugin/14298-devsearch"&gt;DevSearch for IntelliJ&lt;/a&gt; was born! &lt;/p&gt;

&lt;p&gt;DevSearch it's a small plugin to search the right thing from the right context. If you select some text in the console, it will propose to search for it on StackOverflow. If you select a folder under node_modules, it will suggest to search for it on NPM. And these are just a couple of examples. &lt;/p&gt;

&lt;p&gt;At the moment the plugin supports few integrations, but it's &lt;a href="https://github.com/corradodellorusso/devsearch"&gt;open source&lt;/a&gt; and lets you write your own integration with less than 10 lines of code! &lt;/p&gt;

&lt;p&gt;Any contribution would be very appreciated.&lt;/p&gt;

&lt;p&gt;Here are the links:&lt;br&gt;
Plugin: &lt;a href="https://plugins.jetbrains.com/plugin/14298-devsearch"&gt;https://plugins.jetbrains.com/plugin/14298-devsearch&lt;/a&gt;&lt;br&gt;
GitHub: &lt;a href="https://github.com/corradodellorusso/devsearch"&gt;https://github.com/corradodellorusso/devsearch&lt;/a&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>intellij</category>
      <category>java</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How to get rid of all those non-javadoc comments in your Java project ✨</title>
      <dc:creator>Corrado dello Russo</dc:creator>
      <pubDate>Tue, 31 Mar 2020 15:46:04 +0000</pubDate>
      <link>https://dev.to/corradodellorusso/how-to-get-rid-of-all-those-non-javadoc-comments-in-your-java-project-4ocf</link>
      <guid>https://dev.to/corradodellorusso/how-to-get-rid-of-all-those-non-javadoc-comments-in-your-java-project-4ocf</guid>
      <description>&lt;p&gt;Have you ever met something like this in your legacy code?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="cm"&gt;/* 
 * (non-Javadoc)
 * @see java.lang.ClassLoader#loadClass(java.lang.String)
 */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;If you are a Java programmer from more than one millisecond i guess so. 😇&lt;/p&gt;

&lt;h3&gt;
  
  
  What is it?
&lt;/h3&gt;

&lt;p&gt;It is the template Eclipse IDE used to generate when overriding a method from a super class. Legend tells it was a workaround for a bug in the JavaDoc generator when inheriting docs from the parent class. &lt;/p&gt;

&lt;h3&gt;
  
  
  Should i keep these as of today?
&lt;/h3&gt;

&lt;p&gt;Long story short: &lt;strong&gt;No&lt;/strong&gt;. &lt;br&gt;
They're useless for robots and polluting for developers. &lt;/p&gt;
&lt;h4&gt;
  
  
  Robots
&lt;/h4&gt;

&lt;p&gt;For JavaDoc generators, the only &lt;a href="https://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javadoc.html"&gt;officially supported&lt;/a&gt; way to copy docs from a parent is adding following snippet right before the method signature:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="cm"&gt;/** 
 * {@inheritDoc}
 */&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Please notice the double star in the first line.&lt;/p&gt;

&lt;h4&gt;
  
  
  Developers
&lt;/h4&gt;

&lt;p&gt;As developer i find this kind of boilerplate noisy other than actually meaningless. Writing something about the reason for overriding parent class would be more useful.&lt;/p&gt;

&lt;h3&gt;
  
  
  How do i clean it?
&lt;/h3&gt;

&lt;p&gt;You can either use a &lt;em&gt;light&lt;/em&gt; approach, deleting them every time you find one in your code. But i'd rather take the hardcore 🤘 approach, matching them with a regular expression. &lt;/p&gt;

&lt;p&gt;Using your IDE (i've tested it with IntelliJ IDEA and Eclipse) you can use the following regex to replace all the occurrences in path.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;(?s)/\*[^*](?:(?!\*/).)*\(non-javadoc\)(?:(?!\*/).)*\*/
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Always keep your code clean and readable! &lt;/p&gt;

&lt;p&gt;Refs:&lt;br&gt;
&lt;a href="https://stackoverflow.com/questions/6194479/regex-for-matching-non-javadoc-comment-in-eclipse"&gt;StackOverflow&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>regex</category>
      <category>codequality</category>
      <category>productivity</category>
    </item>
    <item>
      <title>Translating life habits into software: Couchified</title>
      <dc:creator>Corrado dello Russo</dc:creator>
      <pubDate>Sun, 15 Mar 2020 18:00:48 +0000</pubDate>
      <link>https://dev.to/corradodellorusso/translating-life-habits-into-software-couchified-58h6</link>
      <guid>https://dev.to/corradodellorusso/translating-life-habits-into-software-couchified-58h6</guid>
      <description>&lt;p&gt;I'm almost comfortable saying that most of revolutionary ideas out there became "revolutionary" thanks to their capability of solving problems. Same goes for software. &lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;As i human being, i love to end my days on my couch, watching some TV shows from Netflix or Prime Video. I'm that kind that doesn't fall asleep while watching a movie, but once it finishes all i want to do is turning off the light. At the moment my setup does not include anything that makes my TV "smart". Content are streamed to my TV through HDMI cable, hence once i finish my movie i have walk to the PC to turn it off.&lt;/p&gt;

&lt;h4&gt;
  
  
  TL;DR
&lt;/h4&gt;

&lt;p&gt;I'm too lazy to get off the couch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/cuPm4p4pClZVC/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/cuPm4p4pClZVC/giphy.gif" alt="Me at the end of the day."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Solution
&lt;/h2&gt;

&lt;p&gt;I wanted to create a simple hassle-free tool with nothing to install and capable of running basically everywhere. &lt;/p&gt;

&lt;p&gt;Here is where &lt;strong&gt;Couchified&lt;/strong&gt; was conceived. &lt;/p&gt;

&lt;p&gt;You just start it on the host you want to control, and &lt;strong&gt;TA-DA&lt;/strong&gt; you can control it from any other device capable of running a browser on the same network. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;That's it!&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://i.giphy.com/media/31tHnjdJRR20M/giphy.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://i.giphy.com/media/31tHnjdJRR20M/giphy.gif" alt="Me after Couchified."&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You can try Couhified here: &lt;br&gt;
&lt;a href="https://www.npmjs.com/package/couchified"&gt;https://www.npmjs.com/package/couchified&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Of course this is just one of my side projects along with regular job, and it "just works".&lt;br&gt;
There might be lot of work to do if someone would join my cause helping me being lazy! 😪&lt;/p&gt;

&lt;p&gt;Every comment is appreciated! &lt;/p&gt;

</description>
      <category>node</category>
      <category>productivity</category>
      <category>life</category>
      <category>hacks</category>
    </item>
  </channel>
</rss>
