<?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: Amit Das</title>
    <description>The latest articles on DEV Community by Amit Das (@spdocumentad).</description>
    <link>https://dev.to/spdocumentad</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%2F1038569%2F7601deaf-4863-4456-8e60-452f9c5ef9ab.jpeg</url>
      <title>DEV Community: Amit Das</title>
      <link>https://dev.to/spdocumentad</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/spdocumentad"/>
    <language>en</language>
    <item>
      <title>Introducing the Ultimate Password Generator: Your Key to Online Security</title>
      <dc:creator>Amit Das</dc:creator>
      <pubDate>Sun, 19 May 2024 14:15:55 +0000</pubDate>
      <link>https://dev.to/spdocumentad/introducing-the-ultimate-password-generator-your-key-to-online-security-1d9</link>
      <guid>https://dev.to/spdocumentad/introducing-the-ultimate-password-generator-your-key-to-online-security-1d9</guid>
      <description>&lt;p&gt;In today's digital age, strong and secure passwords are essential to protect your online presence. I am excited to introduce a new easy &lt;strong&gt;Password Generator&lt;/strong&gt;, a web-based application designed to help you create robust passwords effortlessly. With a user-friendly interface and advanced security features, our Password Generator ensures your online accounts remain safe from potential threats.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Key Features:&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Customizable Password Length&lt;/strong&gt;: Generate passwords ranging from 8 to max characters.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Character Set Options&lt;/strong&gt;: Include or exclude uppercase letters, lowercase letters, numbers, and special characters based on your preferences.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Secure Password Generation&lt;/strong&gt;: Utilizes the &lt;code&gt;crypto&lt;/code&gt; API for cryptographically secure random number generation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Easy Copy Functionality&lt;/strong&gt;: Copy the generated password to your clipboard with a single click, complete with visual feedback.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Responsive Design&lt;/strong&gt;: Access the application seamlessly on both desktop and mobile devices.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy Assurance&lt;/strong&gt;: All generated passwords are created locally on your device and are &lt;strong&gt;not stored anywhere&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Live Demo&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Experience the ease and security of our Password Generator. Check out the live demo &lt;a href="https://password-generator.techindeck.com"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Why Use Our Password Generator?&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;With the increasing number of data breaches and cyber threats, it’s more important than ever to use strong, unique passwords for your online accounts. Our Password Generator provides an easy-to-use solution that helps you create complex passwords that are difficult to crack. Whether you need a password for a single account or multiple accounts, our tool has you covered. Rest assured, all generated passwords are created locally on your device and are &lt;strong&gt;not stored anywhere&lt;/strong&gt;, ensuring your privacy and security.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Contributing&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;We welcome contributions from the community! If you have suggestions for improvements or find any bugs, please open an issue or submit a pull request on our &lt;a href="https://github.com/techindeck/password-generator"&gt;GitHub repository&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Stay Connected&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;Follow us on social media for updates, new features, and more cybersecurity tips:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;LinkedIn&lt;/strong&gt;: &lt;a href="https://www.linkedin.com/company/techindeck"&gt;Techindeck&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub&lt;/strong&gt;: &lt;a href="https://github.com/techindeck"&gt;Your GitHub&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;License&lt;/strong&gt;
&lt;/h4&gt;

&lt;p&gt;This project is licensed under the MIT License. For more details, see the &lt;a href="https://github.com/techindeck/password-generator/blob/master/LICENSE"&gt;LICENSE&lt;/a&gt; file in our repository.&lt;/p&gt;

</description>
      <category>password</category>
      <category>security</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Angular RxJS Unsubscriber</title>
      <dc:creator>Amit Das</dc:creator>
      <pubDate>Sat, 04 Mar 2023 18:31:15 +0000</pubDate>
      <link>https://dev.to/spdocumentad/angular-rxjs-unsubscriber-2khf</link>
      <guid>https://dev.to/spdocumentad/angular-rxjs-unsubscriber-2khf</guid>
      <description>&lt;h2&gt;
  
  
  Unsubscriber
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Unsubscriber for RxJS subscription to unsubscribe.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In Angular, we commonly used an RxJS subscription but sometimes we forget to unsubscribe it, which causes a memory leak. The advantages of using the &lt;code&gt;Unsubscriber&lt;/code&gt; are that there is no need to manage the individual variables and unsubscribe to them (of course, it works fine, but it requires a little bit more code to write). Unsubscriber is a simple class to absorb RxJS subscriptions in an array. &lt;/p&gt;

&lt;p&gt;Call &lt;code&gt;unsubscribe()&lt;/code&gt; to unsubscribe all of them, as you would do&lt;br&gt;
in your component library's &lt;code&gt;unmount&lt;/code&gt;/&lt;code&gt;onDestroy&lt;/code&gt; lifecycle event.&lt;/p&gt;
&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;unsubscriber &lt;span class="nt"&gt;--save&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Angular examples
&lt;/h2&gt;

&lt;p&gt;There are 2 main ways to use the Unsubscriber: the "setter" way and the "add/array" way.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;RxJS supports adding subscriptions to an array of subscriptions. You can then unsubscribe directly from that array. If you prefer this technique with Unsubscriber using the setter syntax below, then use that.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Technique Setter - Syntax
&lt;/h3&gt;

&lt;p&gt;Example using the &lt;code&gt;queue&lt;/code&gt; property to collect the subscriptions using a setter.&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;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;ExampleComponent&lt;/span&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;OnDestroy&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;bus&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Unsubscriber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="p"&gt;...&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;queue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;observable$&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;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;queue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;observable$&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;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;queue&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;observable$&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;span class="p"&gt;...&lt;/span&gt;

  &lt;span class="c1"&gt;// Unsubscribe all subscription when the component dies/destroyed&lt;/span&gt;
  &lt;span class="nx"&gt;ngOnDestroy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;unsubscribe&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;h3&gt;
  
  
  Technique Array/Add - Syntax
&lt;/h3&gt;

&lt;p&gt;Example using the &lt;code&gt;.add&lt;/code&gt; technique. This is similar to what RxJS supports out of the box.&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;export&lt;/span&gt; &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nx"&gt;ExampleComponent&lt;/span&gt; &lt;span class="k"&gt;implements&lt;/span&gt; &lt;span class="nx"&gt;OnDestroy&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="k"&gt;private&lt;/span&gt; &lt;span class="nx"&gt;bus&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;Unsubscriber&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;

  &lt;span class="p"&gt;...&lt;/span&gt;

  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;observable$&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;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;observable$&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;span class="c1"&gt;// Add multiple subscriptions at the same time&lt;/span&gt;
  &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;add&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt; 
    &lt;span class="nx"&gt;observable1$&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;span class="nx"&gt;observable2$&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;span class="nx"&gt;anotherObservable$&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;span class="p"&gt;);&lt;/span&gt; 

  &lt;span class="p"&gt;...&lt;/span&gt;

  &lt;span class="c1"&gt;// Unsubscribe all subscription when the component dies/destroyed&lt;/span&gt;
  &lt;span class="nx"&gt;ngOnDestroy&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bus&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;unsubscribe&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;&lt;a href="https://github.com/techindeck/unsubscriber#readme"&gt;Github&lt;/a&gt; &lt;a href="https://github.com/techindeck"&gt;Techindeck&lt;/a&gt;&lt;/p&gt;

</description>
      <category>angular</category>
      <category>unsubsriber</category>
      <category>rxjs</category>
      <category>rxjsunsubscriber</category>
    </item>
  </channel>
</rss>
