<?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: ArcCosine</title>
    <description>The latest articles on DEV Community by ArcCosine (@arccosine).</description>
    <link>https://dev.to/arccosine</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%2F42756%2F0a0196ae-6208-4d6c-915f-18cf90c45ae3.jpg</url>
      <title>DEV Community: ArcCosine</title>
      <link>https://dev.to/arccosine</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/arccosine"/>
    <language>en</language>
    <item>
      <title>Enable PWA with next.js 13 or later using next-pwa (disabled in development environment)</title>
      <dc:creator>ArcCosine</dc:creator>
      <pubDate>Sun, 28 May 2023 00:50:39 +0000</pubDate>
      <link>https://dev.to/arccosine/enable-pwa-with-nextjs-13-or-later-using-next-pwa-disabled-in-development-environment-1eda</link>
      <guid>https://dev.to/arccosine/enable-pwa-with-nextjs-13-or-later-using-next-pwa-disabled-in-development-environment-1eda</guid>
      <description>&lt;p&gt;Maybe next-pwa will support it in time, so you can wait and it will be fine, but this is a patch code for those who really want to support it right now. Version,&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;next ^13.4.2&lt;/li&gt;
&lt;li&gt;next-pwa ^5.6.0&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The file to be modified is next-pwa ^5.6.0. The file to be modified is next.config.js&lt;/p&gt;

&lt;h2&gt;
  
  
  next.config.js
&lt;/h2&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;/** @type {import('next').NextConfig} */&lt;br&gt;
const path = require("path");&lt;br&gt;
const isDev = process.env.NODE_ENV !== "production";&lt;br&gt;
const withPWA = require("next-pwa")({&lt;br&gt;
    dest: "public",&lt;br&gt;
    disable: isDev,&lt;br&gt;
    buildExcludes: ["app-build-manifest.json"],&lt;br&gt;
});&lt;br&gt;
const generateAppDirEntry = (entry) =&amp;gt; {&lt;br&gt;
    const packagePath = require.resolve("next-pwa");&lt;br&gt;
    const packageDirectory = path.dirname(packagePath);&lt;br&gt;
    const registerJs = path.join(packageDirectory, "register.js");&lt;br&gt;
    return entry().then((entries) =&amp;gt; {&lt;br&gt;
        // Register SW on App directory, solution: &lt;a href="https://github.com/shadowwalker/next-pwa/pull/427"&gt;https://github.com/shadowwalker/next-pwa/pull/427&lt;/a&gt;&lt;br&gt;
        if (entries["main-app"] &amp;amp;&amp;amp; !entries["main-app"].includes(registerJs)) {&lt;br&gt;
            if (Array.isArray(entries["main-app"])) {&lt;br&gt;
                entries["main-app"].unshift(registerJs);&lt;br&gt;
            } else if (typeof entries["main-app"] === "string") {&lt;br&gt;
                entries["main-app"] = [registerJs, entries["main-app"]];&lt;br&gt;
            }&lt;br&gt;
        }&lt;br&gt;
        return entries;&lt;br&gt;
    });&lt;br&gt;
};&lt;br&gt;
const nextConfig = {&lt;br&gt;
    experimental: {&lt;br&gt;
        appDir: true,&lt;br&gt;
    },&lt;br&gt;
    reactStrictMode: true,&lt;br&gt;
    webpack(config) {&lt;br&gt;
        if( !isDev ){&lt;br&gt;
            const entry = generateAppDirEntry(config.entry);&lt;br&gt;
            config.entry = () =&amp;gt; entry;&lt;br&gt;
        }&lt;br&gt;
        return config;&lt;br&gt;
    },&lt;br&gt;
};&lt;br&gt;
module.exports = withPWA(nextConfig);&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Referenced Sources&lt;br&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/shadowwalker/next-pwa/issues/424"&gt;Next v13 app-build-manifest.json - Does not register a service worker that controls page and start_url #424&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>How add keyboard shortcuts on google search pages</title>
      <dc:creator>ArcCosine</dc:creator>
      <pubDate>Thu, 18 Oct 2018 13:17:40 +0000</pubDate>
      <link>https://dev.to/arccosine/how-add-keyboard-shortcuts-on-google-search-pages-ho8</link>
      <guid>https://dev.to/arccosine/how-add-keyboard-shortcuts-on-google-search-pages-ho8</guid>
      <description>&lt;p&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%2Fgkloklzf67kq0ea0vn86.jpg" 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%2Fgkloklzf67kq0ea0vn86.jpg" alt="keyboard"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Hi, there.&lt;/p&gt;

&lt;p&gt;How do you open a link when you go to the Google search results page?&lt;br&gt;
Use mouse?&lt;br&gt;
Use tab key?&lt;/p&gt;

&lt;p&gt;If so, you are missing valuable user experience.&lt;/p&gt;

&lt;p&gt;In the past, short cuts were installed on the Google search result page.&lt;br&gt;
Unfortunately, that function was &lt;em&gt;killed&lt;/em&gt;.&lt;/p&gt;

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

&lt;p&gt;I wanted to get the impression, I made it.&lt;br&gt;
This is an extension of Google Chrome.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://chrome.google.com/webstore/detail/fake-google-keyboard-shor/fbncheplcafgghkdodoilhclpmmahcnk" rel="noopener noreferrer"&gt;fake-google-keyboard-shortcuts&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I have not tested everything, but it should work in &lt;strong&gt;most countries&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Documentation
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/ArcCosine/fake-google-keyboard-shortcuts" rel="noopener noreferrer"&gt;https://github.com/ArcCosine/fake-google-keyboard-shortcuts&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;See github.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to use.
&lt;/h2&gt;

&lt;p&gt;Easy to use.&lt;/p&gt;

&lt;p&gt;Install, search keywords on google, and use &lt;strong&gt;j&lt;/strong&gt; or &lt;strong&gt;k&lt;/strong&gt; or &lt;strong&gt;enter&lt;/strong&gt; or &lt;strong&gt;/&lt;/strong&gt;.&lt;br&gt;
Have a nice experience!&lt;/p&gt;

</description>
      <category>googlechrome</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Multistage SSH's configuration.</title>
      <dc:creator>ArcCosine</dc:creator>
      <pubDate>Thu, 02 Aug 2018 09:08:49 +0000</pubDate>
      <link>https://dev.to/arccosine/multistage-sshs-configuration-360i</link>
      <guid>https://dev.to/arccosine/multistage-sshs-configuration-360i</guid>
      <description>&lt;h1&gt;
  
  
  Multistage ssh
&lt;/h1&gt;

&lt;p&gt;In some circumstances, it was necessary to use multistage SSH.&lt;br&gt;
(It is bad that "ssh port 22 Operation timed out" comes out almost on AWS.)&lt;/p&gt;

&lt;h2&gt;
  
  
  Preparation
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Create server1's private key.&lt;/li&gt;
&lt;li&gt;Create server2's private key.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Update config
&lt;/h2&gt;

&lt;p&gt;Edit ssh config file.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;vim ~/.ssh/config
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Add the following parameters.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Host preserver
  HostName server2.com
  ForwardAgent yes
  User server2user-name 
  IdentityFile ~/.ssh/server2key
  ProxyCommand ssh -l server1user-name -i ~/.ssh/server1key -p port-number server1.com -W %h:%p
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h2&gt;
  
  
  Command
&lt;/h2&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;ssh-add ~/.ssh/server2key
ssh preserver
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Enjoy!&lt;/p&gt;

</description>
      <category>ssh</category>
    </item>
    <item>
      <title>Restore ftp and telnet erased by macOS High Sierra</title>
      <dc:creator>ArcCosine</dc:creator>
      <pubDate>Mon, 27 Nov 2017 16:28:51 +0000</pubDate>
      <link>https://dev.to/arccosine/restore-ftp-and-telnet-erased-by-macos-high-sierra-9hj</link>
      <guid>https://dev.to/arccosine/restore-ftp-and-telnet-erased-by-macos-high-sierra-9hj</guid>
      <description>

&lt;h1&gt;
  
  
  macOS High Sierra can not use ftp and telnet
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://discussions.apple.com/thread/8093031?start=0&amp;amp;tstart=0"&gt;https://discussions.apple.com/thread/8093031?start=0&amp;amp;tstart=0&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I understand the idea of wanting to be secure, but how about erasing basic tools?&lt;/p&gt;

&lt;h1&gt;
  
  
  Resurrection spell
&lt;/h1&gt;


&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;brew install inetutils&lt;br&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;
&lt;br&gt;
  &lt;br&gt;
  &lt;br&gt;
  Reference&lt;br&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://apple.stackexchange.com/questions/299758/how-to-get-bsd-ftp-and-telnet-back-in-10-13-high-sierra"&gt;https://apple.stackexchange.com/questions/299758/how-to-get-bsd-ftp-and-telnet-back-in-10-13-high-sierra&lt;/a&gt;&lt;/p&gt;


</description>
      <category>macosxhighsierra</category>
    </item>
    <item>
      <title>How to use &lt;ruby&gt; tag</title>
      <dc:creator>ArcCosine</dc:creator>
      <pubDate>Wed, 15 Nov 2017 16:26:03 +0000</pubDate>
      <link>https://dev.to/arccosine/how-to-use-ruby-tag-6nh</link>
      <guid>https://dev.to/arccosine/how-to-use-ruby-tag-6nh</guid>
      <description>&lt;p&gt;&amp;lt;ruby&amp;gt; tag? What is that?&lt;br&gt;
If you see it for the first time, you may not know how to use it.&lt;/p&gt;

&lt;p&gt;The &amp;lt;ruby&amp;gt; tag is used mainly to indicate how to read kanji.&lt;br&gt;
For example,&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;ruby&amp;gt;&amp;lt;rb&amp;gt;花&amp;lt;/rb&amp;gt;&amp;lt;rp&amp;gt;(&amp;lt;/rp&amp;gt;&amp;lt;rt&amp;gt;はな&amp;lt;/rt&amp;gt;&amp;lt;rp&amp;gt;)&amp;lt;/rp&amp;gt;&amp;lt;/ruby&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;花(はな) &lt;/p&gt;

&lt;p&gt;&lt;del&gt;Because the style has been reset in dev.to, it is not displayed in the style that looks good in Japan:)&lt;/del&gt;&lt;br&gt;
Since Ben responded quickly, it is displayed as expected. Great.&lt;/p&gt;

&lt;p&gt;You can apply this to emoji.&lt;/p&gt;

&lt;p&gt;For example,&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;&amp;lt;ruby&amp;gt;&amp;lt;rb&amp;gt;🌼&amp;lt;/rb&amp;gt;&amp;lt;rp&amp;gt;(&amp;lt;/rp&amp;gt;&amp;lt;rt&amp;gt;Flower&amp;lt;/rt&amp;gt;&amp;lt;rp&amp;gt;)&amp;lt;/rp&amp;gt;&amp;lt;/ruby&amp;gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;🌼(Flower) &lt;/p&gt;

&lt;p&gt;It's a nice feeling!&lt;/p&gt;

&lt;p&gt;You can play like this.&lt;br&gt;
🍺🍕🍺🍕🍺🍕🍺🍕(Today is Product Hunt) &lt;/p&gt;

&lt;p&gt;Let's enjoy new expressions with &amp;lt;ruby&amp;gt; tag!&lt;/p&gt;

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