<?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>Forem: hitochan</title>
    <description>The latest articles on Forem by hitochan (@hitochan777).</description>
    <link>https://forem.com/hitochan777</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%2F43782%2F89bcd856-7a77-4ae6-a409-53856fe91828.jpeg</url>
      <title>Forem: hitochan</title>
      <link>https://forem.com/hitochan777</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/hitochan777"/>
    <language>en</language>
    <item>
      <title>React state management library for simple apps</title>
      <dc:creator>hitochan</dc:creator>
      <pubDate>Sun, 14 Jul 2019 00:14:37 +0000</pubDate>
      <link>https://forem.com/hitochan777/react-state-management-library-for-simple-apps-2oim</link>
      <guid>https://forem.com/hitochan777/react-state-management-library-for-simple-apps-2oim</guid>
      <description>&lt;p&gt;I am currently working on a simple web application with Next.js.&lt;br&gt;
Though it is simple, there are some states that I wanted to use globally.&lt;br&gt;
Currently there are several approaches to manage global state.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Redux or Mobx&lt;/li&gt;
&lt;li&gt;Pass &lt;code&gt;state&lt;/code&gt; and &lt;code&gt;setState&lt;/code&gt; from &lt;code&gt;useState&lt;/code&gt; to child components using React Context&lt;/li&gt;
&lt;li&gt;Use react-first global state management libraries (e.g., &lt;a href="https://github.com/CharlesStover/reactn"&gt;reactn&lt;/a&gt;)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;When it comes to global state management in React, Redux is one of the most widely used library. However it is too much for my simple use case because you have to define action creators with action type and payload.&lt;/p&gt;

&lt;p&gt;Using React Context or global state management libraries seems much simpler. But one thing that I feel clumsy about these methods is you pass a (part of) state object to &lt;code&gt;setState&lt;/code&gt; or whatever state setter function you use. This means that a caller must know the internal structure of state object. Typically these functions are called inside components. But I don't think components should be aware of the internal.&lt;br&gt;
Wouldn't it be nice if a component can call a method with some parameters to update a global state not knowing the detail?&lt;br&gt;
In a micro-framework called &lt;code&gt;hyperapp&lt;/code&gt;, &lt;a href="https://github.com/jorgebucaran/hyperapp#dispatching-actions"&gt;you can update a state with actions&lt;/a&gt;.&lt;br&gt;
An action takes the form of&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;someAction&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;prevState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;arg1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;...,&lt;/span&gt; &lt;span class="nx"&gt;argN&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="cm"&gt;/* return newState */&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;To the best of my knowledge, however, I could not find any library that does something like hyperapp. So I created &lt;a href="https://github.com/hitochan777/react-state-action-hooks"&gt;&lt;code&gt;react-state-action-hooks&lt;/code&gt;&lt;/a&gt; (I know... the name is a bit lengthy...)&lt;/p&gt;

&lt;h2&gt;
  
  
  Quick Introduction
&lt;/h2&gt;

&lt;p&gt;First, define an initial state and action definitions.&lt;br&gt;
Each key in action definitions maps to an action definition.&lt;br&gt;
Action definition is a function that is somewhat similar to hyperapp action, except that it is a function that returns another function. &lt;br&gt;
The parameters of the outer function are the ones of an action that is generated from the corresponding action definition.&lt;br&gt;
The parameters of returned function are previous state and actions.&lt;br&gt;
As shown in the example below you can either return a new state from previous state or call other actions.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;initialState&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&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;actionDefs&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;incrementBy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;delta&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;state&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="p"&gt;...&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;count&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nx"&gt;delta&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="p"&gt;}),&lt;/span&gt;
  &lt;span class="na"&gt;decrementBy&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;delta&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;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;actions&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;actions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;incrementBy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&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;Having prepared initial state and action definitions, you can pass these to useActionState to get &lt;code&gt;state&lt;/code&gt; and &lt;code&gt;actions&lt;/code&gt;!&lt;br&gt;
All the action definition turn into actions, and each of them is a function (not a function that returns a function). And you can call an action with the parameters of the outer function in an action definition.&lt;br&gt;
This way, you don't have to be aware of the internal structure of the state.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight jsx"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;Counter&lt;/span&gt; &lt;span class="o"&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="kd"&gt;const&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;actions&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;useActionState&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="nx"&gt;initialState&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;actionDefs&lt;/span&gt;
  &lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
   &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;span&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;state&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;count&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;span&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&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;actions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;incrementBy&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="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        +1
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
      &lt;span class="p"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt; &lt;span class="na"&gt;onClick&lt;/span&gt;&lt;span class="p"&gt;=&lt;/span&gt;&lt;span class="si"&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;actions&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;decrementBy&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="si"&gt;}&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
        -1
      &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;button&lt;/span&gt;&lt;span class="p"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="p"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="nt"&gt;div&lt;/span&gt;&lt;span class="p"&gt;&amp;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;In the example above, the hook is called in a component but you can use React hook to make it global! Moreover, it fully supports typescript!&lt;/p&gt;

&lt;p&gt;For more information, take a look at the &lt;a href="https://github.com/hitochan777/react-state-action-hooks"&gt;documentation&lt;/a&gt;.&lt;br&gt;
Pull requests are very welcome!&lt;/p&gt;

</description>
      <category>react</category>
      <category>javascript</category>
    </item>
    <item>
      <title>What's the best way to modify code with GitHub Actions?</title>
      <dc:creator>hitochan</dc:creator>
      <pubDate>Tue, 19 Feb 2019 15:43:27 +0000</pubDate>
      <link>https://forem.com/hitochan777/whats-the-best-way-to-modify-code-with-github-actions-4k6</link>
      <guid>https://forem.com/hitochan777/whats-the-best-way-to-modify-code-with-github-actions-4k6</guid>
      <description>&lt;p&gt;I am trying out GitHub actions lately and wanted to know the best way to modify code wit GitHub Actions.&lt;/p&gt;

&lt;p&gt;My github repository is integrated with CircleCI that checks if my code is well formatted using &lt;code&gt;prettier&lt;/code&gt;. I also added renovate bot to automatically make PRs that update package dependencies. &lt;br&gt;
The problem is the code renovate bot generates is not formatted, which makes CI fail. My solution is to trigger GitHub actions to run &lt;code&gt;prettier&lt;/code&gt; whenever there is a push to the repository, then call GitHub API to push a commit that formats the code. What's your opinion?&lt;/p&gt;

</description>
      <category>github</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Javascript object literal syntax I had never seen</title>
      <dc:creator>hitochan</dc:creator>
      <pubDate>Wed, 07 Nov 2018 15:20:24 +0000</pubDate>
      <link>https://forem.com/hitochan777/javascript-object-literal-syntax-i-had-never-seen-54bl</link>
      <guid>https://forem.com/hitochan777/javascript-object-literal-syntax-i-had-never-seen-54bl</guid>
      <description>&lt;p&gt;I encountered the following code when I was working through &lt;a href="https://www.meteor.com/tutorials/blaze/forms-and-events" rel="noopener noreferrer"&gt;meteor tutorial&lt;/a&gt;.&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="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;submit .new-task&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// some code here&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 was very confused because I had never seen an object literal that contains some string followed by an anonymous function. After I read the &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Object_initializer#Method_definitions" rel="noopener noreferrer"&gt;MDN web docs about object initializer&lt;/a&gt;, I know that the code above is equivalent to the following:&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="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;submit .new-task&lt;/span&gt;&lt;span class="dl"&gt;'&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;event&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// some code here&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 syntax looks very odd to me maybe because I am simply not got used to it.&lt;/p&gt;

</description>
      <category>javascript</category>
    </item>
    <item>
      <title>Does pair programming decrease individual's sense of responsibility or motivation?</title>
      <dc:creator>hitochan</dc:creator>
      <pubDate>Tue, 09 Oct 2018 10:15:33 +0000</pubDate>
      <link>https://forem.com/hitochan777/does-pair-programming-decrease-individuals-sense-of-responsibility-or-motivation-jh7</link>
      <guid>https://forem.com/hitochan777/does-pair-programming-decrease-individuals-sense-of-responsibility-or-motivation-jh7</guid>
      <description>&lt;p&gt;Do you think pair programming decreases individual's sense of responsibility or motivation?&lt;br&gt;
One purpose of pair programming is to minimize the damage of losing someone who is the only one with some specific knowledge by sharing knowledge in the team.&lt;br&gt;
If you see it the other way, however, it does not matter even if a member leaves the team and she might feel as if she had not played important role.&lt;br&gt;
I think there are certain number of people who want to feel that they are indispensable to the team.&lt;/p&gt;

</description>
      <category>question</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Now.sh docker image size limitation</title>
      <dc:creator>hitochan</dc:creator>
      <pubDate>Sat, 04 Aug 2018 10:51:27 +0000</pubDate>
      <link>https://forem.com/hitochan777/nowsh-docker-image-size-limitation-59j6</link>
      <guid>https://forem.com/hitochan777/nowsh-docker-image-size-limitation-59j6</guid>
      <description>&lt;p&gt;Does anyone know if now.sh limits the size of docker images?&lt;br&gt;
I failed to deploy images probably because of the imitation as can be seen in the log below.&lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fj8cfvxz3dxymyhjuso19.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%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fj8cfvxz3dxymyhjuso19.png" alt="now.sh log"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Till several days ago, I had been able to deploy images which should be almost as big as the ones I failed to deploy today.&lt;/p&gt;

&lt;p&gt;Update: 7 Aug 2018&lt;br&gt;
I asked about this problem in now.sh slack channel, and they suggested that I try MSB (Multi-staged build). MSB basically allows you to copy a built app from a stage to another so that the latter stage only contains the app but no libraries or packages necessary for building it.&lt;/p&gt;

</description>
      <category>docker</category>
      <category>nowsh</category>
      <category>question</category>
      <category>help</category>
    </item>
    <item>
      <title>Cannot call pointer method on Literal</title>
      <dc:creator>hitochan</dc:creator>
      <pubDate>Sat, 12 May 2018 11:09:00 +0000</pubDate>
      <link>https://forem.com/hitochan777/cannot-call-pointer-method-on-literal-1l62</link>
      <guid>https://forem.com/hitochan777/cannot-call-pointer-method-on-literal-1l62</guid>
      <description>&lt;p&gt;I tried to call pointer method on struct literal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;package main

import "fmt"

type Greeter struct {
        name string
}

func (h *Greeter) hello() {
        fmt.Printf("hello %s!\n", h.name)
}

func main() {
        (Greeter{"hitoshi"}).hello()
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But it fails with the following message.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./hoge.go:14:22: cannot call pointer method on Greeter literal
./hoge.go:14:22: cannot take the address of Greeter literal
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Applying &amp;amp; operator makes it work. &lt;br&gt;
According to &lt;a href="https://stackoverflow.com/a/25601963/1824552"&gt;stackoverflow post&lt;/a&gt;, this is because a literal does not have an address.  &lt;/p&gt;

&lt;p&gt;My question is when we apply &amp;amp; operator on a literal, is a instance of the literal created on memory, and is thus allocated an address?&lt;/p&gt;

</description>
      <category>go</category>
      <category>question</category>
      <category>help</category>
    </item>
    <item>
      <title>Is javascript or typescript the best for backend development? </title>
      <dc:creator>hitochan</dc:creator>
      <pubDate>Sun, 18 Feb 2018 09:24:29 +0000</pubDate>
      <link>https://forem.com/hitochan777/is-javascript-or-typescript-the-best-for-backend-development--2co9</link>
      <guid>https://forem.com/hitochan777/is-javascript-or-typescript-the-best-for-backend-development--2co9</guid>
      <description>

&lt;p&gt;If you use javascirpt (or typescript) for backend server development, you can basically write web apps only with it.&lt;br&gt;
From this, do you agree that javascript or typescript is the best language for backend development?&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Why do you agree/disagree?&lt;/li&gt;
&lt;li&gt;In what cases, are they suitable for backend server?&lt;/li&gt;
&lt;/ol&gt;


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