<?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: Bayu Angora</title>
    <description>The latest articles on DEV Community by Bayu Angora (@bayuangora).</description>
    <link>https://dev.to/bayuangora</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%2F178077%2Fadbc3cff-275c-419e-b1a8-f26e1f5fe13f.jpg</url>
      <title>DEV Community: Bayu Angora</title>
      <link>https://dev.to/bayuangora</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/bayuangora"/>
    <language>en</language>
    <item>
      <title>[HELP] Can't Launch Website Apps</title>
      <dc:creator>Bayu Angora</dc:creator>
      <pubDate>Wed, 03 Apr 2024 05:00:47 +0000</pubDate>
      <link>https://dev.to/bayuangora/help-cant-launch-website-apps-2gha</link>
      <guid>https://dev.to/bayuangora/help-cant-launch-website-apps-2gha</guid>
      <description>&lt;p&gt;Dear All&lt;/p&gt;

&lt;p&gt;I build PWA and it's detected with good score -&amp;gt;&lt;br&gt;
&lt;a href="https://www.pwabuilder.com/reportcard?site=https://angora.id" rel="noopener noreferrer"&gt;https://www.pwabuilder.com/reportcard?site=https://angora.id&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But after I installed it on Mobile Chrome (Android) it can't be launched and getting error like this -&amp;gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fdread5w1j2x1djrs2wjk.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fdread5w1j2x1djrs2wjk.jpg" alt="Image description" width="720" height="1280"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;java.lang.RuntimeException: Unable to get provider org.chromium.webapk.shell_apk.h2o.SplashContentProvider: java.lang.ClassNotFoundException: Didn't find class "org.chromium.webapk.shell_apk.h2o.SplashContentProvider" on path: DexPathList[[zip file "/data/app/org.chromium.webapk.aed72650bb8b07d40_v2-1/base.apk"],nativeLibraryDirectories=[/data/app/org.chromium.webapk.aed72650bb8b07d40_v2-1/lib/arm, /data/app/org.chromium.webapk.aed72650bb8b07d40_v2-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
    at android.app.ActivityThread.installProvider(ActivityThread.java:6105)
    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5572)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5511)
    at android.app.ActivityThread.-wrap2(ActivityThread.java)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1611)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:165)
    at android.app.ActivityThread.main(ActivityThread.java:6375)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:912)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:802)
Caused by: java.lang.ClassNotFoundException: Didn't find class "org.chromium.webapk.shell_apk.h2o.SplashContentProvider" on path: DexPathList[[zip file "/data/app/org.chromium.webapk.aed72650bb8b07d40_v2-1/base.apk"],nativeLibraryDirectories=[/data/app/org.chromium.webapk.aed72650bb8b07d40_v2-1/lib/arm, /data/app/org.chromium.webapk.aed72650bb8b07d40_v2-1/base.apk!/lib/armeabi-v7a, /system/lib, /vendor/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:74)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
    at android.app.ActivityThread.installProvider(ActivityThread.java:6081)
    ... 10 more
    Suppressed: java.io.IOException: Failed to open dex files from /data/app/org.chromium.webapk.aed72650bb8b07d40_v2-1/base.apk because: Failed to open dex file '/data/app/org.chromium.webapk.aed72650bb8b07d40_v2-1/base.apk' from memory: Unrecognized version number in /data/app/org.chromium.webapk.aed72650bb8b07d40_v2-1/base.apk: 0 3 8 
        at dalvik.system.DexFile.openDexFileNative(Native Method)
        at dalvik.system.DexFile.openDexFile(DexFile.java:373)
        at dalvik.system.DexFile.&amp;lt;init&amp;gt;(DexFile.java:113)
        at dalvik.system.DexFile.&amp;lt;init&amp;gt;(DexFile.java:78)
        at dalvik.system.DexPathList.loadDexFile(DexPathList.java:366)
        at dalvik.system.DexPathList.makeElements(DexPathList.java:327)
        at dalvik.system.DexPathList.makeDexElements(DexPathList.java:263)
        at dalvik.system.DexPathList.&amp;lt;init&amp;gt;(DexPathList.java:126)
        at dalvik.system.BaseDexClassLoader.&amp;lt;init&amp;gt;(BaseDexClassLoader.java:62)
        at dalvik.system.PathClassLoader.&amp;lt;init&amp;gt;(PathClassLoader.java:64)
        at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)
        at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:58)
        at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:522)
        at android.app.LoadedApk.getClassLoader(LoadedApk.java:555)
        at android.app.ActivityThread.getTopLevelResources(ActivityThread.java:1942)
        at android.app.LoadedApk.getResources(LoadedApk.java:773)
        at android.app.ContextImpl.&amp;lt;init&amp;gt;(ContextImpl.java:2078)
        at android.app.ContextImpl.createAppContext(ContextImpl.java:2023)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5410)
        ... 8 more
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;How to fix this problem?&lt;/p&gt;

&lt;p&gt;Source:&lt;br&gt;
&lt;a href="https://angora.id/script.js" rel="noopener noreferrer"&gt;https://angora.id/script.js&lt;/a&gt;&lt;br&gt;
&lt;a href="https://angora.id/service.js" rel="noopener noreferrer"&gt;https://angora.id/service.js&lt;/a&gt;&lt;br&gt;
&lt;a href="https://angora.id/manifest.json" rel="noopener noreferrer"&gt;https://angora.id/manifest.json&lt;/a&gt;&lt;/p&gt;

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

</description>
      <category>help</category>
      <category>webdev</category>
      <category>javascript</category>
      <category>android</category>
    </item>
    <item>
      <title>How I Got Web Design Awards In Early 2020</title>
      <dc:creator>Bayu Angora</dc:creator>
      <pubDate>Sat, 04 Jan 2020 12:33:58 +0000</pubDate>
      <link>https://dev.to/bayuangora/how-i-got-web-design-awards-in-early-2020-2005</link>
      <guid>https://dev.to/bayuangora/how-i-got-web-design-awards-in-early-2020-2005</guid>
      <description>&lt;p&gt;In the middle 2019, I submitted my website to &lt;a href="https://www.web-design.co.za/getAward.php" rel="noopener noreferrer"&gt;Web Design Awards&lt;/a&gt;. Few days ago, I got an email from Web Design Team. The message is about announcement that in early 2020, my website will be &lt;a href="https://tiny.cc/web-design-awards" rel="noopener noreferrer"&gt;displayed as a winner&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Flecq7iwlklmusarztrht.jpg" class="article-body-image-wrapper"&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%2Farticles%2Flecq7iwlklmusarztrht.jpg" alt="Bayu Angora Awards" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I know there are so many great websites submitted every years. But I feel optimist that &lt;a href="https://angora.me" rel="noopener noreferrer"&gt;my website&lt;/a&gt; is qualified enough to displayed on Web Design Awards, at least as a nominee. Because Web Design Awards is not only about aesthetic, but also about speed and user friendliness too. &lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fowvufymdjby9xqtg24km.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fowvufymdjby9xqtg24km.jpg" alt="Web Design Awards" width="800" height="1295"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://angora.me" rel="noopener noreferrer"&gt;My website&lt;/a&gt; is very fast and simple. Load page is about your blink eyes. Very secure and responsive. No bloated script, no animation, no heavy images. I only use simple CSS with minimal JS for darkmode button. I got perfect score on &lt;a href="https://tiny.cc/-lighthouse" rel="noopener noreferrer"&gt;Lighthouse&lt;/a&gt; and &lt;a href="https://tiny.cc/-validator" rel="noopener noreferrer"&gt;Validator&lt;/a&gt;. Also I got A+ grade on &lt;a href="https://tiny.cc/-securityheaders" rel="noopener noreferrer"&gt;Security&lt;/a&gt; and &lt;a href="https://tiny.cc/-observatory" rel="noopener noreferrer"&gt;Observatory&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="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%2Farticles%2Fcz7qvq2z7wyysqngowfy.jpg" class="article-body-image-wrapper"&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%2Farticles%2Fcz7qvq2z7wyysqngowfy.jpg" alt="Bayu Angora Website" width="800" height="845"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;My principal for my website is keep it simple. User friendly on every devices is a must. Avoid every bloated things that you don't need. And prioritize function rather than redundant decoration. &lt;/p&gt;

</description>
      <category>website</category>
      <category>design</category>
      <category>awards</category>
    </item>
    <item>
      <title>What Is Your Favorite Mobile Browser?</title>
      <dc:creator>Bayu Angora</dc:creator>
      <pubDate>Fri, 25 Oct 2019 19:29:22 +0000</pubDate>
      <link>https://dev.to/bayuangora/what-is-your-favorite-mobile-browser-45n4</link>
      <guid>https://dev.to/bayuangora/what-is-your-favorite-mobile-browser-45n4</guid>
      <description>&lt;p&gt;What's your favorite mobile browser?&lt;br&gt;
I like Opera Mini, but now I use Via Browser because it more lighter and faster with full of cool feature such view source, user agent, desktop mode, etc. What about you?&lt;/p&gt;

</description>
      <category>discuss</category>
      <category>browser</category>
      <category>mobile</category>
    </item>
    <item>
      <title>Need Help About JavaScript Error Log</title>
      <dc:creator>Bayu Angora</dc:creator>
      <pubDate>Sat, 28 Sep 2019 10:47:19 +0000</pubDate>
      <link>https://dev.to/bayuangora/need-help-about-javascript-error-log-5agj</link>
      <guid>https://dev.to/bayuangora/need-help-about-javascript-error-log-5agj</guid>
      <description>&lt;p&gt;Dear All &lt;/p&gt;

&lt;p&gt;I have this code -&amp;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="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;serviceWorker&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;
&lt;span class="nb"&gt;navigator&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;serviceWorker&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/service.js&lt;/span&gt;&lt;span class="dl"&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;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;preferredTheme&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;===&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;dark&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="nf"&gt;setDarkMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;
&lt;span class="kd"&gt;function&lt;/span&gt; &lt;span class="nf"&gt;setDarkMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;isDark&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;darkBtn&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;darkBtn&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;lightBtn&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lightBtn&lt;/span&gt;&lt;span class="dl"&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;isDark&lt;/span&gt;&lt;span class="p"&gt;){&lt;/span&gt;&lt;span class="nx"&gt;lightBtn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;block&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;darkBtn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;none&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;preferredTheme&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;dark&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;lightBtn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;none&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;darkBtn&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;style&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;display&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;block&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="nx"&gt;localStorage&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;removeItem&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;preferredTheme&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;
&lt;span class="nb"&gt;document&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;classList&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;toggle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;darkmode&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;);}&lt;/span&gt;
&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;darkBtn&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&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="nf"&gt;setDarkMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;);});&lt;/span&gt;
&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;lightBtn&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;addEventListener&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;click&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="nf"&gt;setDarkMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;);});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And I got this warning from LightHouse -&amp;gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;TypeError: Cannot read property 'addEventListener' of null at &lt;a href="https://angora.me/script.js" rel="noopener noreferrer"&gt;https://angora.me/script.js&lt;/a&gt; :13:35&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Any suggestion how to fix it?&lt;/p&gt;

&lt;p&gt;Regards&lt;/p&gt;

</description>
      <category>ask</category>
      <category>help</category>
      <category>javascript</category>
    </item>
    <item>
      <title>How To Change Preload From Default Hover To Page Display Instantly?</title>
      <dc:creator>Bayu Angora</dc:creator>
      <pubDate>Fri, 27 Sep 2019 08:20:33 +0000</pubDate>
      <link>https://dev.to/bayuangora/how-to-change-preload-from-default-hover-to-page-display-instantly-387i</link>
      <guid>https://dev.to/bayuangora/how-to-change-preload-from-default-hover-to-page-display-instantly-387i</guid>
      <description>&lt;p&gt;Dear All &lt;/p&gt;

&lt;p&gt;I use instant page script for &lt;a href="https://angora.me" rel="noopener noreferrer"&gt;https://angora.me&lt;/a&gt; with default code like this -&amp;gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;let urlToPreload;
let mouseoverTimer;
let lastTouchTimestamp;
const prefetcher=document.createElement("link");
const isSupported=prefetcher.relList&amp;amp;&amp;amp;prefetcher.relList.supports&amp;amp;&amp;amp;prefetcher.relList.supports("prefetch");
const isDataSaverEnabled=navigator.connection&amp;amp;&amp;amp;navigator.connection.saveData;
const allowQueryString="instantAllowQueryString" in document.body.dataset;
const allowExternalLinks="instantAllowExternalLinks" in document.body.dataset;
const useWhitelist="instantWhitelist" in document.body.dataset;
let delayOnHover=60;
let useMousedown=!1;
let useMousedownOnly=!1;
if("instantIntensity" in document.body.dataset){if(document.body.dataset.instantIntensity.substr(0,"mousedown".length)==="mousedown"){useMousedown=!0;
if(document.body.dataset.instantIntensity==="mousedown-only"){useMousedownOnly=!0;}}
else{const milliseconds=parseInt(document.body.dataset.instantIntensity);
if(milliseconds!==isNaN){delayOnHover=milliseconds;}}}
if(isSupported&amp;amp;&amp;amp;!isDataSaverEnabled){prefetcher.rel="prefetch";
document.head.appendChild(prefetcher);
const eventListenersOptions={capture:!0,passive:!0,};
if(!useMousedownOnly){document.addEventListener("touchstart",touchstartListener,eventListenersOptions);}
if(!useMousedown){document.addEventListener("mouseover",mouseoverListener,eventListenersOptions);}
else{document.addEventListener("mousedown",mousedownListener,eventListenersOptions);}}
function touchstartListener(event){lastTouchTimestamp=performance.now();
const linkElement=event.target.closest("a");
if(!isPreloadable(linkElement)){return;}
linkElement.addEventListener("touchcancel",touchendAndTouchcancelListener,{passive:!0});
linkElement.addEventListener("touchend",touchendAndTouchcancelListener,{passive:!0});
urlToPreload=linkElement.href;
preload(linkElement.href);}
function touchendAndTouchcancelListener(){urlToPreload=undefined;
stopPreloading();}
function mouseoverListener(event){if(performance.now()-lastTouchTimestamp&amp;lt;1100){return;}
const linkElement=event.target.closest("a");
if(!isPreloadable(linkElement)){return;}
linkElement.addEventListener("mouseout",mouseoutListener,{passive:!0});
urlToPreload=linkElement.href;
mouseoverTimer=setTimeout(() =&amp;gt; {preload(linkElement.href);
mouseoverTimer=undefined;},delayOnHover);}
function mousedownListener(event){const linkElement=event.target.closest("a");
if(!isPreloadable(linkElement)){return;}
linkElement.addEventListener("mouseout",mouseoutListener,{passive:!0});
urlToPreload=linkElement.href;
preload(linkElement.href);}
function mouseoutListener(event){if(event.relatedTarget&amp;amp;&amp;amp;event.target.closest("a")===event.relatedTarget.closest("a")){return;}
if(mouseoverTimer){clearTimeout(mouseoverTimer);
mouseoverTimer=undefined;}
urlToPreload=undefined;
stopPreloading();}
function isPreloadable(linkElement){if(!linkElement||!linkElement.href){return;}
if(urlToPreload===linkElement.href){return;}
if(useWhitelist&amp;amp;&amp;amp;!("instant" in linkElement.dataset)){return;}
if(!allowExternalLinks&amp;amp;&amp;amp;linkElement.origin!==location.origin&amp;amp;&amp;amp;!("instant" in linkElement.dataset)){return;}
if(!["http:","https:"].includes(linkElement.protocol)){return;}
if(linkElement.protocol==="http:"&amp;amp;&amp;amp;location.protocol==="https:"){return;}
if(!allowQueryString&amp;amp;&amp;amp;linkElement.search&amp;amp;&amp;amp;!("instant" in linkElement.dataset)){return;}
if(linkElement.hash&amp;amp;&amp;amp;linkElement.pathname+linkElement.search===location.pathname+location.search){return;}
if("noInstant" in linkElement.dataset){return;}
return!0;}
function preload(url){prefetcher.href=url;}
function stopPreloading(){prefetcher.removeAttribute("href");}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The default code above is preload everytime user hover to url. I want to change it to preload everytime the page is displayed. So, every url on that page is always preloaded instantly. How to do that? &lt;/p&gt;

&lt;p&gt;Regards&lt;/p&gt;

</description>
      <category>ask</category>
      <category>help</category>
      <category>instant</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Downgrade About Dark Mode And Content Security Policy</title>
      <dc:creator>Bayu Angora</dc:creator>
      <pubDate>Sun, 22 Sep 2019 01:56:04 +0000</pubDate>
      <link>https://dev.to/bayuangora/downgrade-about-dark-mode-and-content-security-policy-n62</link>
      <guid>https://dev.to/bayuangora/downgrade-about-dark-mode-and-content-security-policy-n62</guid>
      <description>&lt;p&gt;&lt;a href="https://observatory.mozilla.org/" rel="noopener noreferrer"&gt;https://observatory.mozilla.org/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Observatory (grade checker by Mozilla) will downgrade score if website still use inline style or script.  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://infosec.mozilla.org/guidelines/web_security#content-security-policy" rel="noopener noreferrer"&gt;https://infosec.mozilla.org/guidelines/web_security#content-security-policy&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How to fix this issue while dark mode toggle needs "onclick" to trigger and switch the light / dark mode?&lt;/p&gt;

</description>
      <category>ask</category>
      <category>code</category>
      <category>help</category>
      <category>darkmode</category>
    </item>
    <item>
      <title>Need Help About Cross Browser Compatibility</title>
      <dc:creator>Bayu Angora</dc:creator>
      <pubDate>Sat, 21 Sep 2019 14:46:57 +0000</pubDate>
      <link>https://dev.to/bayuangora/need-help-about-cross-browser-compatibility-2f78</link>
      <guid>https://dev.to/bayuangora/need-help-about-cross-browser-compatibility-2f78</guid>
      <description>&lt;p&gt;Dear All  &lt;/p&gt;

&lt;p&gt;I need some help about cross browser compatibility for my website -&amp;gt;  &lt;a href="https://angora.me/blog/" rel="noopener noreferrer"&gt;https://angora.me/blog/&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;And here is my CSS code -&amp;gt; &lt;br&gt;
&lt;a href="https://angora.me/style.css" rel="noopener noreferrer"&gt;https://angora.me/style.css&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;On modern browser, my website looks fine like this -&amp;gt;&lt;br&gt;&lt;br&gt;
&lt;a href="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%2Farticles%2Fdsclrxpj7b7c1x9lpts9.png" class="article-body-image-wrapper"&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%2Farticles%2Fdsclrxpj7b7c1x9lpts9.png" width="800" height="953"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;But on some old browser, my website looks ugly like this -&amp;gt;&lt;br&gt;&lt;br&gt;
&lt;a href="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%2Farticles%2Fy9s19qosg1uzi8iv9e8c.png" class="article-body-image-wrapper"&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%2Farticles%2Fy9s19qosg1uzi8iv9e8c.png" width="800" height="606"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;Even failed connection like this -&amp;gt;&lt;br&gt;&lt;br&gt;
&lt;a href="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%2Farticles%2Fk57yd5jhpegjotl1es2i.png" class="article-body-image-wrapper"&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%2Farticles%2Fk57yd5jhpegjotl1es2i.png" width="800" height="600"&gt;&lt;/a&gt;  &lt;/p&gt;

&lt;p&gt;I use Hugo with Netlify and Let's Encrypt SSL. I don't know if this compatibility issue is from my code side, SSL side, server side, browser side, etc? Any idea how to fix this issue?  &lt;/p&gt;

&lt;p&gt;Regards&lt;/p&gt;

</description>
      <category>ask</category>
      <category>code</category>
      <category>help</category>
      <category>browser</category>
    </item>
    <item>
      <title>Why Paying For Something You Can Get For Free?</title>
      <dc:creator>Bayu Angora</dc:creator>
      <pubDate>Mon, 16 Sep 2019 04:23:28 +0000</pubDate>
      <link>https://dev.to/bayuangora/why-paying-for-something-you-can-get-for-free-4ioe</link>
      <guid>https://dev.to/bayuangora/why-paying-for-something-you-can-get-for-free-4ioe</guid>
      <description>&lt;p&gt;Dear All&lt;/p&gt;

&lt;p&gt;I use Netlify for my &lt;a href="https://angora.me" rel="noopener noreferrer"&gt;website&lt;/a&gt; because Netlify provide complete feature (SSL, hosting, deployment, etc) for free.&lt;/p&gt;

&lt;p&gt;Another service such AWS, Azure, Firebase, etc, there are good. But the feature isn't as complete as Netlify. You need to integrate with external deployment to make it works. Or you have to subscribe monthly payment to upgrade the limitation.&lt;/p&gt;

&lt;p&gt;I don't affiliated with Netlify or another service above. But I just curious, why so many people out there choose another service with limited feature and monthly payment?&lt;/p&gt;

&lt;p&gt;Cheers!&lt;/p&gt;

</description>
      <category>ask</category>
      <category>free</category>
      <category>hosting</category>
      <category>serverless</category>
    </item>
    <item>
      <title>Devblog Is The Fastest Blogging Platform With User Friendly Feature Like Social Media</title>
      <dc:creator>Bayu Angora</dc:creator>
      <pubDate>Tue, 30 Jul 2019 00:59:23 +0000</pubDate>
      <link>https://dev.to/bayuangora/devblog-is-the-fastest-blogging-platform-with-user-friendly-feature-like-social-media-3n25</link>
      <guid>https://dev.to/bayuangora/devblog-is-the-fastest-blogging-platform-with-user-friendly-feature-like-social-media-3n25</guid>
      <description>&lt;p&gt;So many people out there uses social media to share their idea. But the most problem about social media is we don't have a full of &lt;a href="https://angora.me/sitemaps" rel="noopener noreferrer"&gt;freedom&lt;/a&gt; there, because of social media censorship and restriction. Even we can loss it all if our accounts got suspended.&lt;/p&gt;

&lt;p&gt;To avoid censorship and restriction, we can build personal website as primary platform. We can post whatever we want without worry about censorship and account suspended, as long as we don't abuse the hosting terms of service. But, there's an extra effort to build personal website.&lt;/p&gt;

&lt;p&gt;Beside a cost for domain and hosting, we have to learn about basic blogging and development. Not every people will confident with this. Finally, they will back to choose mainstream social media as their primary platform. Unfortunately, they can't use social media with their own domain for branding.&lt;/p&gt;

&lt;p&gt;Finally, I found &lt;a href="https://bayuangora.hashnode.dev" rel="noopener noreferrer"&gt;Devblog&lt;/a&gt; from Hashnode to cover it all. Devblog is user friendly blogging platform that load faster and rich feature. We can use Devblog subdomain for free or we can connect our own domain for personal branding. Just post whatever you want and let's celebrate our freedom of speech.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href="https://angora.me" rel="noopener noreferrer"&gt;Bayu Angora&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

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