<?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: ｅｎｄａｎ</title>
    <description>The latest articles on DEV Community by ｅｎｄａｎ (@jjjjcccjjf).</description>
    <link>https://dev.to/jjjjcccjjf</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%2F39772%2Fbb0388d2-2b25-4291-8c4c-9505b63ae978.gif</url>
      <title>DEV Community: ｅｎｄａｎ</title>
      <link>https://dev.to/jjjjcccjjf</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jjjjcccjjf"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Wed, 19 Nov 2025 09:53:43 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/-2544</link>
      <guid>https://dev.to/jjjjcccjjf/-2544</guid>
      <description>&lt;p&gt;

&lt;/p&gt;
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/unhappychoice/difit-preview-github-like-diffs-locally-before-you-push-37gc" class="crayons-story__hidden-navigation-link"&gt;🔍 difit: Preview GitHub-like diffs locally before you push&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="/unhappychoice" 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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F49406%2F0eb10ce6-db5b-4515-8a17-21e6fbea205e.jpeg" alt="unhappychoice profile" class="crayons-avatar__image"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/unhappychoice" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Yuji Ueki
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Yuji Ueki
                
              
              &lt;div id="story-author-preview-content-2703512" 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="/unhappychoice" 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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F49406%2F0eb10ce6-db5b-4515-8a17-21e6fbea205e.jpeg" class="crayons-avatar__image" alt=""&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Yuji Ueki&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/unhappychoice/difit-preview-github-like-diffs-locally-before-you-push-37gc" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Jul 18 '25&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/unhappychoice/difit-preview-github-like-diffs-locally-before-you-push-37gc" id="article-link-2703512"&gt;
          🔍 difit: Preview GitHub-like diffs locally before you push
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/git"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;git&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/cli"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;cli&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/productivity"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;productivity&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/devtools"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;devtools&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/unhappychoice/difit-preview-github-like-diffs-locally-before-you-push-37gc" 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/raised-hands-74b2099fd66a39f2d7eed9305ee0f4553df0eb7b4f11b01b6b1b499973048fe5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="18" height="18"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;1&lt;span class="hidden s:inline"&gt; reaction&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/unhappychoice/difit-preview-github-like-diffs-locally-before-you-push-37gc#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              1&lt;span class="hidden s:inline"&gt; 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;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;




</description>
      <category>git</category>
      <category>cli</category>
      <category>productivity</category>
      <category>devtools</category>
    </item>
    <item>
      <title>Programmatically rewriting slug through functions.php but returns 404 [Wordpress]</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Mon, 23 Jul 2018 10:00:54 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/programmatically-rewriting-slug-through-functionsphp-but-returns-404-31li</link>
      <guid>https://dev.to/jjjjcccjjf/programmatically-rewriting-slug-through-functionsphp-but-returns-404-31li</guid>
      <description>&lt;p&gt;I wanted to change the slug of a certain post type (in this case, &lt;strong&gt;article&lt;/strong&gt;) into whatever a certain value in its custom field.&lt;/p&gt;

&lt;p&gt;I went to &lt;em&gt;functions.php&lt;/em&gt; and put this code.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;function na_remove_slug( $post_link, $post, $leavename ) {

if ( 'article' != $post-&amp;gt;post_type || 'publish' != $post-&amp;gt;post_status ) {
    return $post_link;
} 

# get the custom field value here to be the slug
$post_name = get_field('filter_category', $post-&amp;gt;ID)-&amp;gt;post_name; 
# replace the "article" by the value of the custom field
$post_link = str_replace( '/' . $post-&amp;gt;post_type . '/', "/$post_name/", $post_link ); 
    return $post_link;
}
add_filter( 'post_type_link', 'na_remove_slug', 10, 3 );
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;When I query the custom post types, it appears as if its slug was altered, for example:&lt;br&gt;
&lt;strong&gt;&lt;a href="http://www.example.com/article/some-title"&gt;www.example.com/article/some-title&lt;/a&gt;&lt;/strong&gt; into  &lt;strong&gt;&lt;a href="http://www.example.com/design/some-title"&gt;www.example.com/design/some-title&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Where &lt;strong&gt;design&lt;/strong&gt; is my custom field value.&lt;/p&gt;

&lt;p&gt;But when I finally visit &lt;strong&gt;&lt;a href="http://www.example.com/design/some-title"&gt;www.example.com/design/some-title&lt;/a&gt;&lt;/strong&gt;, I get a 404. But if I visit &lt;strong&gt;&lt;a href="http://www.example.com/article/some-title"&gt;www.example.com/article/some-title&lt;/a&gt;&lt;/strong&gt;, it returns the correct web page.&lt;/p&gt;

&lt;p&gt;I understand that my code only changes how the link appears when it is displayed, but how can I show my single post correctly using the slug that I have altered?&lt;/p&gt;

&lt;p&gt;If you need more clarification, please don't hesitate to comment.&lt;/p&gt;

</description>
      <category>wordpress</category>
      <category>help</category>
      <category>php</category>
    </item>
    <item>
      <title>What is your favourite function()?</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Tue, 03 Jul 2018 06:23:49 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/what-is-your-favourite-function-3kbg</link>
      <guid>https://dev.to/jjjjcccjjf/what-is-your-favourite-function-3kbg</guid>
      <description>&lt;p&gt;I think mine would be &lt;code&gt;json_encode()&lt;/code&gt;. I think it's so cool that a single function can make your data understood by other machines. (I know other machines can interpret different kinds of data, but c'mon...)&lt;/p&gt;

&lt;p&gt;How about you? What's your favourite function?&lt;/p&gt;

</description>
      <category>discuss</category>
    </item>
    <item>
      <title>I always forget to drink water, so I built a Twitter bot to remind me</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Sat, 07 Apr 2018 12:59:53 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/i-always-forget-to-drink-water-so-i-built-a-twitter-bot-to-remind-me-4chk</link>
      <guid>https://dev.to/jjjjcccjjf/i-always-forget-to-drink-water-so-i-built-a-twitter-bot-to-remind-me-4chk</guid>
      <description>&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--f4weE3WW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AfSpHXKrUknfz7-qRi5L6_Q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--f4weE3WW--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2AfSpHXKrUknfz7-qRi5L6_Q.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have always been having trouble staying hydrated these days… especially at home. For hours, I get absorbed in a book and forget to drink water. This results to my skin and lips getting more dry. Recently, I’ve followed &lt;a href="https://twitter.com/jjjjcccjjf/lists/favourite-bots"&gt;lots of bots&lt;/a&gt; to help me with my worldbuilding. Crossing these two ideas together, I thought &lt;em&gt;why not build a bot to remind me to drink water?&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;I’ve always had this particular &lt;a href="https://dev.to/omarhashimoto/how-to-build-a-simple-twitter-bot-in-17-lines-ofcode-2aan"&gt;post&lt;/a&gt; on my reading list on dev.to, and just this week I decided to finally read it. I also stumbled upon &lt;a href="https://medium.com/@mattpopovich/how-to-build-and-deploy-a-simple-twitter-bot-super-fast-with-node-js-and-heroku-7b322dbb5dd3"&gt;this post&lt;/a&gt; as I was researching and ended up following it instead of the former.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tinkering the bot
&lt;/h3&gt;

&lt;p&gt;Now here’s what I wanted to happen (initially). I simply want to make the bot remind me to drink water every 3 hours. So here’s my thought process on how I will achieve this.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Build a prototype locally. Make it tweet instead of retweet (referring to the first tutorial)&lt;/li&gt;
&lt;li&gt;Make it tweet every 3 hours&lt;/li&gt;
&lt;li&gt;Make it spout ̶r̶a̶n̶d̶o̶m̶ ̶n̶o̶n̶s̶e̶n̶s̶e̶ encouraging words to make me drink water&lt;/li&gt;
&lt;li&gt;Create an algorithm of the sentence generator&lt;/li&gt;
&lt;li&gt;Deployment&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Building a prototype
&lt;/h3&gt;

&lt;p&gt;I went to &lt;a href="https://github.com/ttezel/twit"&gt;Twit’s documentation&lt;/a&gt; and looked for how to tweet instead of retweet. The readme is kinda messy but at it’s understandable so it’s fine.&lt;/p&gt;

&lt;p&gt;And bam! Here’s the &lt;em&gt;hello world&lt;/em&gt; tweet of my bot.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--S9NeFk8K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2A5G_hCeN4ee0zK3pHR9ZNKQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--S9NeFk8K--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/1024/1%2A5G_hCeN4ee0zK3pHR9ZNKQ.png" alt=""&gt;&lt;/a&gt;Working example ✨&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Apparently, you cannot post the same tweet in a row, so I appeneded the current timestamp there so it’s unique. (For testing purposes)&lt;/li&gt;
&lt;li&gt;I used the &lt;a href="https://www.npmjs.com/package/dotenv"&gt;dotenv&lt;/a&gt; dependency so I don’t share to the world my sensitive information and keys.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Change of plans
&lt;/h3&gt;

&lt;p&gt;Instead of actually following my list, I started at the deployment process first and then built my sentence generator locally. Here are some funny sentences!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--cLtltt8p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/587/1%2AbarJMouX64HY8RtUNkkaRQ.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--cLtltt8p--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/587/1%2AbarJMouX64HY8RtUNkkaRQ.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--RbPZurfj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/583/1%2AZXzSmQtKuFAPo_leDdoopw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--RbPZurfj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/583/1%2AZXzSmQtKuFAPo_leDdoopw.png" alt=""&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The second tutorial takes advantage of Heroku’s add-on’s. I used a scheduler add-on to run the script every hour (instead of the initial plan 3 hours) and that’s about it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--U3Ts-s_5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/540/1%2As6IXG8GsLSgq7jTJy22lhg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--U3Ts-s_5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn-images-1.medium.com/max/540/1%2As6IXG8GsLSgq7jTJy22lhg.png" alt=""&gt;&lt;/a&gt;My initial screen shot&lt;/p&gt;

&lt;h3&gt;
  
  
  That’s it!
&lt;/h3&gt;

&lt;p&gt;This post is not a tutorial, just a documentation of my learning experience. If you want to be reminded every hour to drink water, then you can follow &lt;a href="https://twitter.com/bot_hydrated"&gt;@bot_hydrated&lt;/a&gt;. 😅 It’s summer and it’s getting hotter and hotter! Gotta stay hydrated guys and gals! If you want to submit a pull request, here’s a link to the &lt;a href="https://github.com/jjjjcccjjf/bot_hydrated"&gt;repo&lt;/a&gt;. Feel free to fork it as well. This is just a fun project and I’m not sure if I’m going to take this one very seriously (for example, improve the bot in the future). I have several other bot ideas, though! So watch out for that. 😅&lt;/p&gt;

&lt;p&gt;If you are reading this, thank you for reaching the end. 😎🙏 See y’all on the next ones!&lt;/p&gt;

&lt;p&gt;EDIT: Fixed the wrong repo link&lt;/p&gt;

</description>
      <category>learning</category>
      <category>node</category>
      <category>bots</category>
      <category>documentation</category>
    </item>
    <item>
      <title>What is the usual flow in authenticating a Client Application with a Token based REST API?</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Sun, 11 Feb 2018 05:36:16 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/what-is-the-usual-flow-in-authenticating-a-client-application-with-a-token-based-rest-api--30i</link>
      <guid>https://dev.to/jjjjcccjjf/what-is-the-usual-flow-in-authenticating-a-client-application-with-a-token-based-rest-api--30i</guid>
      <description>&lt;p&gt;Hello everyone. I'm really stuck right now and can't progress. I am having a hard time concieving the proper flow in authenticating a client app with a token based api authentication.&lt;/p&gt;

&lt;p&gt;Here's what I have so far:&lt;/p&gt;

&lt;p&gt;Client app provides a login screen -&amp;gt;&lt;br&gt;
Client app sends a /POST request to the /api/auth route -&amp;gt;&lt;br&gt;
API checks if the user exists, returns Access token and Refresh token -&amp;gt;&lt;br&gt;
Client app saves the access token as http-only cookie or localStorage -&amp;gt;&lt;br&gt;
... stuck (Don't know what to do with the Refresh Token)&lt;/p&gt;

&lt;p&gt;My train of thought gets stuck at this part.&lt;/p&gt;

&lt;p&gt;If I have the users collection on the API side, then how should I store my Refresh Token? I know it's recommended to be stored at a database or something secure.&lt;/p&gt;

&lt;p&gt;But won't that make me have duplicate users table, something like that?&lt;/p&gt;

&lt;p&gt;I don't really know how to proceed, and I think I haven't read an excellent source material about this &lt;strong&gt;flow&lt;/strong&gt; before.&lt;/p&gt;

&lt;p&gt;If you have a tutorial to help me, or any recommendations, I'll gladly accept. I'm stuck. 😢&lt;/p&gt;

&lt;p&gt;Thanks. Hope dev.to can help me.&lt;/p&gt;

</description>
      <category>rest</category>
      <category>auth</category>
      <category>node</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Should I prioritize authentication first in my project than its core functionalities?</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Mon, 05 Feb 2018 13:37:32 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/should-i-prioritize-authentication-first-in-my-project-than-its-core-functionalities-2gi1</link>
      <guid>https://dev.to/jjjjcccjjf/should-i-prioritize-authentication-first-in-my-project-than-its-core-functionalities-2gi1</guid>
      <description>&lt;p&gt;So, I'm quite at an impasse with my side project.&lt;/p&gt;

&lt;p&gt;I never knew authentication would be so daunting and so I consider it as difficult as the core functionalities itself. I'm building an API and right now, I'm deciding whether to focus completing the authentication module (access tokens, refresh tokens, etc) or continue with the core functionality first and implement authentication later.&lt;/p&gt;

&lt;p&gt;I know both would take huge time in development and I need recommendations for my next step.&lt;/p&gt;

&lt;p&gt;I know most of the answers here will be opinionated but, hey, this is not stackoverflow. 😄 Every opinion counts and is super appreciated.&lt;/p&gt;

&lt;p&gt;Thank you all in advance.&lt;/p&gt;

</description>
      <category>authentication</category>
      <category>sideprojects</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Need recommendations in Mocking database / Testing Cleanup (Unit Testing)</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Sat, 03 Feb 2018 08:43:57 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/need-recommendations-in-mocking-database--testing-cleanup-unit-testing-28eb</link>
      <guid>https://dev.to/jjjjcccjjf/need-recommendations-in-mocking-database--testing-cleanup-unit-testing-28eb</guid>
      <description>&lt;p&gt;Hi everyone! I just started learning writing tests. I'm using Express, Mongoose, Mocha, Chai, and Chai-http.&lt;/p&gt;

&lt;p&gt;As of now, I'm just clearing my model for every test.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;  &lt;span class="nx"&gt;before&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;done&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;Users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;({},&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&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="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="nx"&gt;done&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;I've come across Mockgoose but I've had a hard time implementing it (or I hardly tried to implement it enough)&lt;/p&gt;

&lt;p&gt;How do you usually mock database or do your cleanup in tests?&lt;/p&gt;

&lt;p&gt;Here's my users.js test just to give more context. I am testing an API using Chai-http.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;use strict&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;

&lt;span class="c1"&gt;// Require the dev-dependencies&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;chai&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;chai&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;chaiHttp&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;chai-http&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;app&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;../app&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;mongoose&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;mongoose&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Users&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;mongoose&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;model&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nx"&gt;chai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;should&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="nx"&gt;chai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;use&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;chaiHttp&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="nx"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&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="nx"&gt;before&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;done&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nx"&gt;Users&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;remove&lt;/span&gt;&lt;span class="p"&gt;({},&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&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="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="nx"&gt;done&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;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/GET users&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&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="nx"&gt;it&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;it should GET all the users&lt;/span&gt;&lt;span class="dl"&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;done&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="nx"&gt;chai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="kd"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/v1/users&lt;/span&gt;&lt;span class="dl"&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;end&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&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="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;should&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;have&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;should&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;array&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;// res.body.length.should.be.eql(0)&lt;/span&gt;
        &lt;span class="nx"&gt;done&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="nx"&gt;describe&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/POST users/register&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&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="nx"&gt;it&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;it should register a user&lt;/span&gt;&lt;span class="dl"&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;done&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="nx"&gt;chai&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;request&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
      &lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/v1/users&lt;/span&gt;&lt;span class="dl"&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;send&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;email&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;test@gmail.com&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;password&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;password&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Jason Bourne&lt;/span&gt;&lt;span class="dl"&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;end&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;res&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="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;error&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;should&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;have&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;201&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="nx"&gt;res&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;should&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;be&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;object&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="c1"&gt;// res.body.length.should.be.eql(0)&lt;/span&gt;
        &lt;span class="nx"&gt;done&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;Many thanks! &lt;/p&gt;

</description>
      <category>help</category>
      <category>node</category>
      <category>testing</category>
      <category>mocking</category>
    </item>
    <item>
      <title>What does "-R min" flag means in my test script in package.json?</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Tue, 23 Jan 2018 22:52:12 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/what-does-mocha--r-min-means-in-my-packagejson-5dld</link>
      <guid>https://dev.to/jjjjcccjjf/what-does-mocha--r-min-means-in-my-packagejson-5dld</guid>
      <description>&lt;p&gt;Hello all. I can't find the answer on google and on the docs. I don't want to post in Stackoverflow either. Any ideas what the &lt;code&gt;-R min&lt;/code&gt; flag means?&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;scripts&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;test&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;nodemon --exec &lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="s2"&gt;mocha -R min&lt;/span&gt;&lt;span class="se"&gt;\"&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;start&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;nodemon app.js&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Thanks!&lt;/p&gt;

&lt;p&gt;&lt;del&gt;EDIT: Okay, I figured out the &lt;code&gt;min&lt;/code&gt; flag. It supressed verbose test messages.&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;&lt;del&gt;Without min flag: &lt;code&gt;√ it should GET all the users (78ms)&lt;/code&gt;&lt;br&gt;
With min flag: &lt;code&gt;1 passing (156ms)&lt;/code&gt;&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;&lt;del&gt;How about -R?&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;EDIT #2: Okay, the &lt;code&gt;-R&lt;/code&gt; flag and &lt;code&gt;min&lt;/code&gt; argument are supposed to go together. As &lt;a class="mentioned-user" href="https://dev.to/weswedding"&gt;@weswedding&lt;/a&gt; said, it's the Reporter flag and the next word is the name of the reporter. In this case, &lt;code&gt;min&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;del&gt;And of course, it's all in the docs....&lt;/del&gt;&lt;/p&gt;

</description>
      <category>quickquestion</category>
      <category>testing</category>
      <category>node</category>
      <category>help</category>
    </item>
    <item>
      <title>X-posting from your blog to dev.to, thoughts?</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Mon, 22 Jan 2018 01:29:10 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/x-posting-from-your-blog-to-devto-thoughts-444d</link>
      <guid>https://dev.to/jjjjcccjjf/x-posting-from-your-blog-to-devto-thoughts-444d</guid>
      <description>&lt;p&gt;&lt;a href="https://dev.to/samjarman/how-to-build-an-online-presence-as-a-junior-developer"&gt;This blog&lt;/a&gt; didn't make me think twice to blog after reading it. It just made perfect sense! Now for building online presence, does it make sense to cross-post on dev.to? (Meaning post in your blog and post on dev.to as well)&lt;/p&gt;

&lt;p&gt;I am aware of the RSS feature of dev.to and in my opinion it's simply awesome!&lt;/p&gt;

&lt;p&gt;Most of the stuff I write about are, if not beginner stuff, just personal documentation of my own learning.&lt;/p&gt;

&lt;p&gt;Do you think stuff like those are worth x-posting from a personal blog to dev.to? What are your thoughts about this? (Posting newbie and personal learning to be specific) Isn't that going to clutter dev.to?&lt;/p&gt;

&lt;p&gt;Hope you guys can say something about this. Thank you everyone!&lt;/p&gt;

</description>
      <category>sideprojects</category>
      <category>blog</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Need recommendations for a good HTML dashboard template</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Fri, 19 Jan 2018 05:33:16 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/what-html-dashboard-template-do-you-recommend-18d0</link>
      <guid>https://dev.to/jjjjcccjjf/what-html-dashboard-template-do-you-recommend-18d0</guid>
      <description>&lt;p&gt;I'm looking for a &lt;strong&gt;blazingly fast&lt;/strong&gt; html admin dashboard template. Preferably &lt;strong&gt;free&lt;/strong&gt;! If not, can you give me options for free and premium ones? One for each.&lt;/p&gt;

&lt;p&gt;I've been using &lt;a href="http://thevectorlab.net/flatlab/"&gt;Flatlab &lt;/a&gt; for a while but I'm starting to feel it's sluggish.&lt;/p&gt;

&lt;p&gt;Any recommendations? Thank you.&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>dashboard</category>
      <category>html</category>
      <category>recommendations</category>
    </item>
    <item>
      <title>What are your coffee habits?</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Mon, 15 Jan 2018 01:24:36 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/what-are-your-coffee-habits-407c</link>
      <guid>https://dev.to/jjjjcccjjf/what-are-your-coffee-habits-407c</guid>
      <description>&lt;p&gt;As developers, we cannot deny that coffee is a big part of our culture. I've seen divided opinions such as people despising coffee and people who can't function without them.&lt;/p&gt;

&lt;p&gt;Personally, I believed the blogs that say &lt;em&gt;"we should not depend on caffeine"&lt;/em&gt; but on the latter half of 2017, I started enjoying coffee myself. This year I have only had a few so far. So I consider myself just a casual coffee drinker. 😅 What I enjoy about it so much is the flavour! And the added &lt;em&gt;Energy +25&lt;/em&gt; is just a bonus. 😉&lt;/p&gt;

&lt;p&gt;How about y'all? Do you recommend coffee or not? What are your coffee habits? 😊&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>coffee</category>
    </item>
    <item>
      <title>What is your learning roadmap when you first started learning Node.js?</title>
      <dc:creator>ｅｎｄａｎ</dc:creator>
      <pubDate>Sun, 14 Jan 2018 06:21:10 +0000</pubDate>
      <link>https://dev.to/jjjjcccjjf/what-is-your-dev-roadmap-when-you-first-started-learning-nodejs-1ll7</link>
      <guid>https://dev.to/jjjjcccjjf/what-is-your-dev-roadmap-when-you-first-started-learning-nodejs-1ll7</guid>
      <description>&lt;p&gt;Just like this &lt;a href="https://github.com/kamranahmedse/developer-roadmap"&gt;excellent roadmap for being a modern web developer&lt;/a&gt;, do you have your own roadmap or some kind of curriculum when you first started out with Node.js?&lt;/p&gt;

&lt;p&gt;&lt;del&gt;Right now, I'm having a hard time with Async and Promises and so I wanted to learn it from bottom to top.&lt;/del&gt;&lt;/p&gt;

&lt;p&gt;EDIT (2018/01/22): &lt;a href="https://medium.com/@endan/enzo-learns-part-12-conquering-promises-sort-of-13f65a5d73dc"&gt;I just conquered Promises!&lt;/a&gt; 🤩&lt;/p&gt;

&lt;p&gt;I'm from a PHP background and just jumped onto the Node train, but well... things are so much different. 😅&lt;/p&gt;

&lt;p&gt;Does anyone have a good resource regarding this? What is your own roadmap in learning Node?&lt;/p&gt;

</description>
      <category>web</category>
      <category>javascript</category>
      <category>node</category>
    </item>
  </channel>
</rss>
