<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mike A. Marin&#39;s personal site</title>
    <link>https://www.mkAmarin.com/</link>
    <description>Recent content on Mike A. Marin&#39;s personal site</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Fri, 01 Sep 2023 17:28:04 -0600</lastBuildDate><atom:link href="https://www.mkAmarin.com/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Bird Photography</title>
      <link>https://www.mkAmarin.com/posts/bird-photography/</link>
      <pubDate>Fri, 01 Sep 2023 17:28:04 -0600</pubDate>
      
      <guid>https://www.mkAmarin.com/posts/bird-photography/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;In here you will find links to my pictures stored in the &lt;a href=&#34;https://www.macaulaylibrary.org/&#34;&gt;Macaulay Library of The Cornell Lab of Ornithology&lt;/a&gt;.
These pictures were taken to record bird observations and not intended to be artistic photographs.
In some cases they include part of the bird habitat, but in most cases they just include the bird that is being documented.&lt;/p&gt;
&lt;p&gt;If you have an account on &lt;a href=&#34;https://ebird.org/&#34;&gt;eBird.org&lt;/a&gt; or in &lt;a href=&#34;https://www.birds.cornell.edu/&#34;&gt;The Cornell Lab of Ornithology&lt;/a&gt;, then you can see my &lt;a href=&#34;https://ebird.org/profile/MTQ1MDA0MA&#34;&gt;eBird profile with all my checklists&lt;/a&gt;.
In any case, you can, always, see the pictures by clicking on the links below.&lt;/p&gt;
&lt;h2 id=&#34;pictures-by-country&#34;&gt;Pictures by Country&lt;/h2&gt;
&lt;p&gt;You can click in the photos to see a larger picture with some metadata, including the date and location in which it was taken.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;regionCode=US&amp;amp;sort=rating_rank_desc&#34;&gt;United States of America &amp;ndash; US&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;regionCode=AR&amp;amp;sort=rating_rank_desc&#34;&gt;Argentina&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;regionCode=CL&amp;amp;sort=rating_rank_desc&#34;&gt;Chile&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;regionCode=CR&amp;amp;sort=rating_rank_desc&#34;&gt;Costa Rica&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;regionCode=MX&amp;amp;sort=rating_rank_desc&#34;&gt;Mexico&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;regionCode=NZ&amp;amp;sort=rating_rank_desc&#34;&gt;New Zealand&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;regionCode=PA&amp;amp;sort=rating_rank_desc&#34;&gt;Panama&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;regionCode=ZA&amp;amp;sort=rating_rank_desc&#34;&gt;South Africa&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;regionCode=ZW&amp;amp;sort=rating_rank_desc&#34;&gt;Zimbabwe&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;a href=&#34;https://search.macaulaylibrary.org/catalog?userId=USER1450040&amp;amp;sort=rating_rank_desc&#34;&gt;All the pictures&lt;/a&gt;&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Converting hugo sites to Gopher Hole and/or to Gemini Capsule</title>
      <link>https://www.mkAmarin.com/posts/xhugo2ggx/</link>
      <pubDate>Mon, 12 Dec 2022 18:08:56 -0800</pubDate>
      
      <guid>https://www.mkAmarin.com/posts/xhugo2ggx/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;If you are implementing your web site using &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo site&lt;/a&gt;, you may want to consider posting the same content as a Gopher hole and/or as a Gemini capsule.
This post will describe a tool to do exactly that, called &lt;a href=&#34;https://github.com/mkamarin/Hugo-2-Gopher-and-Gemini&#34;&gt;Hugo-2-Gopher-and-Gemini&lt;/a&gt;.
We will build an hypothetical web site in Hugo using a the &lt;a href=&#34;https://themes.gohugo.io/themes/hugo-theme-cactus-plus/&#34;&gt;mini&lt;/a&gt; theme, and will generate a Gopher hole and as a Gemini capsule from the site.&lt;/p&gt;
&lt;p&gt;In the old days of the Internet (circa 1990), when I started using it at work. We relied on &lt;a href=&#34;https://en.wikipedia.org/wiki/Email&#34;&gt;email&lt;/a&gt;, mailing lists (and its &lt;a href=&#34;https://en.wikipedia.org/wiki/FAQ&#34;&gt;faqs&lt;/a&gt;), &lt;a href=&#34;https://en.wikipedia.org/wiki/Usenet&#34;&gt;Usenet&lt;/a&gt; and &lt;a href=&#34;https://en.wikipedia.org/wiki/File_Transfer_Protocol&#34;&gt;FTP&lt;/a&gt;.
Then it came &lt;a href=&#34;https://en.wikipedia.org/wiki/Gopher_(protocol)&#34;&gt;Gopher&lt;/a&gt; (&lt;a href=&#34;https://datatracker.ietf.org/doc/html/rfc1436&#34;&gt;RFC 1436&lt;/a&gt;) that was much better that FTP, because it can link multiple sites.
But, then the &lt;a href=&#34;https://en.wikipedia.org/wiki/World_Wide_Web&#34;&gt;World Wide Web&lt;/a&gt; took over.
In any case, the Gopher protocol still in use today and there are some active sites (called Gopher holes).&lt;/p&gt;
&lt;p&gt;A modern attempt to rescue some of the advantages of Gopher is the &lt;a href=&#34;https://en.wikipedia.org/wiki/Gemini_(protocol)&#34;&gt;Gemini protocol&lt;/a&gt; described by the &lt;a href=&#34;https://gemini.circumlunar.space/&#34;&gt;Gemini Project&lt;/a&gt;.
It is described as heavier than Gopher but lighter than the web, but does not attempt to replace either of them.
A Gemini site is called a capsule.
The advantages of Gopher and Gemini is the lack of cookies, trackers and advertisement; which help with privacy.&lt;/p&gt;
&lt;p&gt;There are few use cases in which you want to use Hugo-2-Gopher-and-Gemini, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;A person with a current Hugo generated site that want to have presence in Gopher space or/and in Gemini space, while maintaining the original web site using Hugo. In this situation the person can use Hugo to maintain all the sites (the web site, the Gopher hole and the Gemini capsule). Most content will be common between them, but other content may be specific to one or two of the sites.&lt;/li&gt;
&lt;li&gt;A person that wants to use Hugo to generate and maintain a Gemini capsule or Gopher hole.&lt;/li&gt;
&lt;li&gt;A person that wants to migrate a current Hugo web site to a Gemini capsule or a Gopher hole.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;notation&#34;&gt;Notation&lt;/h2&gt;
&lt;p&gt;To simplify the instructions, I will use the following notation:&lt;/p&gt;
&lt;p&gt;Any time that I describe a command  to type in the command line, I will use a &lt;code&gt;$&lt;/code&gt; as the prompt of the line.
Before the &lt;code&gt;$&lt;/code&gt; will come the folder (directory) in which the command line is is open.
Therefore, you only need to type the command after the &lt;code&gt;$&lt;/code&gt;.
For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;~$ ls
~$ &lt;span style=&#34;color:#fff;font-weight:bold&#34;&gt;cd&lt;/span&gt; tmp
tmp$ ls
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;There are three commands here:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;code&gt;ls&lt;/code&gt; that should be typed in the user folder.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd tmp&lt;/code&gt; that should also be typed in the user folder. In here we are asuming that there is &lt;code&gt;tmp&lt;/code&gt; folder in user folder.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;ls&lt;/code&gt; that should be typed in the &lt;code&gt;tmp&lt;/code&gt; folder (assuming it exits)&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;creating-a-hugo-web-site&#34;&gt;Creating a Hugo Web site&lt;/h2&gt;
&lt;p&gt;This is a very detailed section and therefore long, but good if you are not familiar with Hugo.
The reason for this section is to have a sample web site to test the conversion process.
This not intended to be a good Hugo introduction, but just to walk you to the creation of a very simple site.
However if you are familiar with Hugo, you can safely skip it.&lt;/p&gt;
&lt;p&gt;In here we will follow the instructions in hugo&amp;rsquo;s &lt;a href=&#34;https://gohugo.io/getting-started/quick-start/&#34;&gt;quick start&lt;/a&gt; and will use the &lt;a href=&#34;https://themes.gohugo.io/themes/hugo-theme-cactus-plus/&#34;&gt;mini&lt;/a&gt; theme.
I assume that you have already &lt;a href=&#34;https://gohugo.io/installation/&#34;&gt;installed Hugo&lt;/a&gt; and &lt;a href=&#34;https://git-scm.com/book/en/v2/Getting-Started-Installing-Git&#34;&gt;git&lt;/a&gt;.
They are both required to work with Hugo to create a Web site.&lt;/p&gt;
&lt;p&gt;First, open a &lt;a href=&#34;https://en.wikipedia.org/wiki/Command-line_interface&#34;&gt;command line terminal&lt;/a&gt; and navigate to a folder (directory)  where you will develop your Web site.
For this example, I will create a folder called &lt;code&gt;source&lt;/code&gt;, and will work in that folder, as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;~$ mkdir &lt;span style=&#34;color:#fff;font-weight:bold&#34;&gt;source&lt;/span&gt;
~$ &lt;span style=&#34;color:#fff;font-weight:bold&#34;&gt;cd&lt;/span&gt; &lt;span style=&#34;color:#fff;font-weight:bold&#34;&gt;source&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img src=&#34;https://www.mkAmarin.com/images/cli-src.png&#34; alt=&#34;CLI&#34;&gt;&lt;/p&gt;
&lt;p&gt;Then, we will create the site called &lt;code&gt;nice-site&lt;/code&gt; using Hugo.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;~$ hugo new site nice-site
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;That will create the site and provide some useful information.
We will then, move into the site folder (&lt;code&gt;nice-site&lt;/code&gt;), and will initialize git.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;~$ &lt;span style=&#34;color:#fff;font-weight:bold&#34;&gt;cd&lt;/span&gt; nice-site
nice-site$ git init
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now we need to select a &lt;a href=&#34;https://themes.gohugo.io/&#34;&gt;theme&lt;/a&gt; for our site.
In this example, we will use the &lt;a href=&#34;https://themes.gohugo.io/themes/hugo-theme-cactus-plus/&#34;&gt;mini&lt;/a&gt; theme, and so we use the following git command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ git submodule add https://github.com/nodejh/hugo-theme-mini.git themes/mini
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note that we use &lt;code&gt;git submodule&lt;/code&gt; and not &lt;code&gt;git clone&lt;/code&gt;, because we want to place the &lt;code&gt;mini&lt;/code&gt; theme in the theme folder, but we don&amp;rsquo;t want ownership of &lt;code&gt;mini&lt;/code&gt;.
In addition, we don&#39; want to put a git project inside another git project.
However, doing that means that if we want to upgrade the &lt;code&gt;mini&lt;/code&gt; theme, we need to do it manually (using &lt;code&gt;git submodule update --remote --merge&lt;/code&gt;).
But, for now we are OK and need to work on the configuration of our site (file &lt;code&gt;config.toml&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;We need to add a line to the file &lt;code&gt;config.toml&lt;/code&gt; located in the base folder (&lt;code&gt;nice-site/config.toml&lt;/code&gt;).
That file was created by Hugo when we created the &lt;code&gt;new site nice-site&lt;/code&gt; above.
Now, we need to tell Hugo which theme we are using (in other words the name of the folder under &lt;code&gt;nice-site/themes/&#39;). So you need to edit the file &lt;/code&gt;config.toml` and add the following line :&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;theme = &lt;span style=&#34;color:#0ff;font-weight:bold&#34;&gt;&amp;#34;mini&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The location of the line does not matter, so just added as the last line of the file.
For this example, we will just do that to the file.
However, in a real situation, you will look into the &lt;code&gt;config.toml&lt;/code&gt; file located in the theme and adjust the main &lt;code&gt;config.toml&lt;/code&gt; file to customize it to your liking.
The content of the file, will probably look something like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;    baseURL = &lt;span style=&#34;color:#0ff;font-weight:bold&#34;&gt;&amp;#34;http://example.org/&amp;#34;&lt;/span&gt;
    languageCode = &lt;span style=&#34;color:#0ff;font-weight:bold&#34;&gt;&amp;#34;en-us&amp;#34;&lt;/span&gt;
    title = &lt;span style=&#34;color:#0ff;font-weight:bold&#34;&gt;&amp;#34;My New Hugo Site&amp;#34;&lt;/span&gt;
    theme = &lt;span style=&#34;color:#0ff;font-weight:bold&#34;&gt;&amp;#34;mini&amp;#34;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now you can test the resulting basic web site.
For that just execute &lt;code&gt;hugo server&lt;/code&gt; from the command line, as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ hugo server
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will create the nice-site in memory and will be exposed in the local machine.
Therefore, you want to use a browser and use the URL given by Hugo (probably &lt;code&gt;http://localhost:1313/&lt;/code&gt;)to check that everything is working until here.&lt;/p&gt;
&lt;h3 id=&#34;adding-content-to-the-hugo-site&#34;&gt;Adding content to the Hugo site&lt;/h3&gt;
&lt;p&gt;To understand how the tool (Hugo to Gopher and Gemini) works, we need to add some content to the site.
We will add an about page and five posts, as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ hugo new about.md
nice-site$ hugo new posts/some-good-content.md
nice-site$ hugo new posts/good-gopher-content.md
nice-site$ hugo new posts/good-gemini-content.md
nice-site$ hugo new posts/good-web-content.md
nice-site$ hugo new posts/more-content.md
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note that this created the five posts under the folder &lt;code&gt;nice-site/content/posts&lt;/code&gt;, and the About page (&lt;code&gt;nice-site/content/about.md&lt;/code&gt;).
At the beginning of each of those files there is front matter with some metadata about the post.
They will look something like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;    ---
    title: &amp;#34;Some Good Content&amp;#34;
    date: 2022-12-13T15:23:49-08:00
    draft: true
    ---

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The &lt;code&gt;draft: true&lt;/code&gt; metadata indicates that the post is not ready to be posted, and so will not appear in the site, because it is a draft.
Therefore, if you execute &lt;code&gt;hugo server&lt;/code&gt;, you will not see any of the files. Just give it a try.&lt;/p&gt;
&lt;p&gt;Now let edit each of those files to do two things. First let change &lt;code&gt;draft&lt;/code&gt; to false or delete the draft line, and second let add some content.
On the about.md file, you may want to delete the draft and the date lines, leaving only the title. Then you can add content to the about page.
For sake of space, I will just show you one of the files, with my modifications. But you should do similar changes to the other files.
The resulting file looks like this:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;    ---
    title: &amp;#34;Some Good Content&amp;#34;
    date: 2022-12-13T15:23:49-08:00
    draft: false
    ---

    # Introduction

    This is some good content. 

    This is a link to [my other site](https://www.mkamarin.com/).

    This is a ![image file](/image01.png)

    That is all.

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now we can again execute the web site in memory, using &lt;code&gt;hugo server&lt;/code&gt;.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ hugo server
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now you want to use a browser and the URL given by Hugo (probably &lt;code&gt;http://localhost:1313/&lt;/code&gt;) to check that everything still working.
Note that the public folder is empty. This is because we have only tested the site in memory. So, if you do an &lt;code&gt;ls public&lt;/code&gt; there is no content.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ ls public
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;When you want to host your web site, you need to generate it using &lt;code&gt;hugo&lt;/code&gt; and then copy the &lt;code&gt;public&lt;/code&gt; folder to the hosting machine.
Let now generate the site and list the generated files, as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ hugo 
nice-site$ ls public
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now that you have a our web site working and some test data, we can move to generate a Gopher hole and a Gemini capsule.&lt;/p&gt;
&lt;h2 id=&#34;hugo-2-gopher-and-gemini&#34;&gt;Hugo-2-Gopher-and-Gemini&lt;/h2&gt;
&lt;p&gt;In this section, we continue using the sample web site, we created in the previous sections for our examples.&lt;/p&gt;
&lt;p&gt;The tool Hugo-2-Gopher-and-Gemini is implemented as a Hugo theme.
Therefore it needs to be installed as an additional theme, which is OK because Hugo will use the configuration file to know which theme to use.
The design of Hugo allows you to have multiple themes for the same project.&lt;/p&gt;
&lt;p&gt;The idea here is to have at least two themes.
Your web site theme (which following our example is &amp;ldquo;mini&amp;rdquo;) and the Hugo-2-Gopher-and-Gemini theme.
Your main theme will generate the site in the &lt;code&gt;public&lt;/code&gt; folder, and the Hugo-2-Gopher-and-Gemini theme will generate the Gopher hole and/or the Gemini capsule under the &lt;code&gt;public-gg&lt;/code&gt; folder.
Therefore, this requires two distinct executions of &lt;code&gt;hugo&lt;/code&gt;, namely one for your regular web site theme, and one for the Hugo-2-Gopher-and-Gemini theme.
There will be no changes or side effects to your original Hugo site or files.&lt;/p&gt;
&lt;h3 id=&#34;installation&#34;&gt;Installation&lt;/h3&gt;
&lt;p&gt;&lt;strong&gt;First&lt;/strong&gt;, you need to add the Hugo-2-Gopher-and-Gemini theme to your current hugo site, just do:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ git submodule add  https://github.com/mkamarin/Hugo-2-Gopher-and-Gemini.git themes/Hugo-2-Gopher-and-Gemini
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now, you will have at least two themes under the themes folder.
In case that you want to update any of the submodules (meaning all the themes that you have installed using &lt;code&gt;git add submodule&lt;/code&gt;), you should use &lt;code&gt;git submodule update --remote --merge&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Second&lt;/strong&gt;, you need to create an empty folder called &lt;code&gt;layouts-gg&lt;/code&gt;. This is done to avoid Hugo from using the content in your main &lt;code&gt;layouts&lt;/code&gt; folder.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ mkdir layouts-gg
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Third&lt;/strong&gt;, you need to copy and edit the &lt;code&gt;config-gg.toml&lt;/code&gt; file to the main folder to adjust it to your situation.
You can just do:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ cp themes/Hugo-2-Gopher-and-Gemini/config-gg.toml .
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Now you need to edit the &lt;code&gt;config-gg.toml&lt;/code&gt; file to customize it for your situation.
The end result is that you have two distinct config files, namely one for your main theme (&lt;code&gt;config.toml&lt;/code&gt;) and one for Hugo-2-Gopher-and-Gemini (&lt;code&gt;config-gg.toml&lt;/code&gt;).&lt;/p&gt;
&lt;h3 id=&#34;using-hugo-2-gopher-and-gemini&#34;&gt;Using Hugo-2-Gopher-and-Gemini&lt;/h3&gt;
&lt;p&gt;The tool is implemented in python and it is located in &lt;code&gt;themes/Hugo-2-Gopher-and-Gemini/src/hugo2gg.py&lt;/code&gt;.
The output will be generated in a folder called &lt;code&gt;public-gg&lt;/code&gt;.
Assuming you generate both Gopher and Gemini, then the &lt;code&gt;public-gg&lt;/code&gt; folder will have two sub-folders, one for the Gopher hole named &lt;code&gt;public-gg/gopher&lt;/code&gt; and one for the Gemini capsule named &lt;code&gt;public-gg/gemini&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;You may want to start by executing the tool with the &amp;ndash;help command to understand your options.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ python3 themes/Hugo-2-Gopher-and-Gemini/src/hugo2gg.py --help
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Note that python3 is optional if you make the script executable.&lt;/p&gt;
&lt;p&gt;This tool relies on executing Hugo using &lt;code&gt;config-gg.toml&lt;/code&gt; and the Hugo-2-Gopher-and-Gemini theme.
The tool itself can invoke Hugo, but you have the alternative of executing Hugo yourself.
Therefore, there are at least two alternatives to use the tool, as follows:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Alternative one&lt;/strong&gt; is to just let the tool invoke Hugo.
Let assume that you are OK with all the default options, so just do:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ python3 themes/Hugo-2-Gopher-and-Gemini/src/hugo2gg.py --type all
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Alternative two&lt;/strong&gt; is to execute Hugo manually first and the the tool.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;nice-site$ hugo --config config-gg.toml --destination public-gg --layoutDir layouts-gg --disableKinds sitemap
nice-site$ python3 themes/Hugo-2-Gopher-and-Gemini/src/hugo2gg.py --type all --no-hugo
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Independent of the alternative you used, you will have the output in &lt;code&gt;public-gg&lt;/code&gt; (unless you selected a different location).&lt;/p&gt;
&lt;p&gt;Now you can check the generated files. By default, the Gopher hole will be in &lt;code&gt;public-gg/gopher&lt;/code&gt; and the Gemini capsule in &lt;code&gt;public-gg/gemini&lt;/code&gt;. You may want to browse those directories using the &lt;a href=&#34;https://github.com/mkamarin/Gopher-and-Gemini-Walker&#34;&gt;Gopher-and-Gemini-Walker&lt;/a&gt; tool before deploying them to your hosting environment.&lt;/p&gt;
&lt;h3 id=&#34;pages-front-matter&#34;&gt;Pages front matter&lt;/h3&gt;
&lt;p&gt;In some cases, you may want some pages to be treated different when generating them for Gopher or Gemini.
In those cases, you can add to the page front matter some of the flags described in &lt;code&gt;Hugo-2-Gopher-and-Gemini/archetypes/default.md&lt;/code&gt;.
For example, you may have a post with the following front matter:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;---
title: &amp;#34;Example post&amp;#34;
date: 2022-12-12T18:08:56-08:00
description: &amp;#34;some description&amp;#34;
draft: true
outputs: [&amp;#34;gemini&amp;#34;,&amp;#34;gopher&amp;#34;]
ggKeepRaw: false
ggRemoveExtras: false
ggCopyPage: false
ggIgnoreLinks: false
---
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Those flags are:&lt;/p&gt;
&lt;h4 id=&#34;outputs&#34;&gt;outputs&lt;/h4&gt;
&lt;p&gt;Outputs is a set of outputs.
Outputs is used to limit the generation of the page to one or more of &amp;ldquo;html&amp;rdquo;, &amp;ldquo;rss&amp;rdquo;, &amp;ldquo;gemini&amp;rdquo;, &amp;ldquo;gopher&amp;rdquo;.
For example, if you want a page to be generated for gopher only, then use: &amp;lsquo;outputs: [&amp;ldquo;gopher&amp;rdquo;]&amp;rsquo;&lt;/p&gt;
&lt;p&gt;The syntax is:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;outputs: [&amp;#34;html&amp;#34;, &amp;#34;rss&amp;#34;, &amp;#34;gemini&amp;#34;, &amp;#34;gopher&amp;#34;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;ggkeepraw&#34;&gt;ggKeepRaw&lt;/h4&gt;
&lt;p&gt;Keep raw flag will just keep the raw page as it was written. In other words, no conversion process will be done in the page.
Useful if the page was written specifically for Gopher or for Gemini and you use the corresponding outputs (above)&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;outputs: [&amp;#34;gopher&amp;#34;]
ggKeepRaw: true
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;ggremoveextras&#34;&gt;ggRemoveExtras&lt;/h4&gt;
&lt;p&gt;The remove extras flag will not generate extras for this page.
Extras are controlled in the config.gg.toml under &lt;code&gt;[params.gopher]&lt;/code&gt; and &lt;code&gt;[params.gemini]&lt;/code&gt;.
Their names start with &lt;code&gt;include&lt;/code&gt;. They are Menu, Categories, Social, Return home, and Author.
This is useful if you wants a specific page to be different.&lt;/p&gt;
&lt;p&gt;You can use it as:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;ggRemoveExtras: true
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;ggcopypage&#34;&gt;ggCopyPage&lt;/h4&gt;
&lt;p&gt;The copy page flag will force hugo2gg.py to copy this page from the &amp;lsquo;last&amp;rsquo; directory.
This uses the &lt;code&gt;hugo2gg.py --last&lt;/code&gt; option (default to public-gg-sav).
Useful when you manually modify a generated page and want to keep your changes.
In that case you will copy your modified site to a directory, and execute hugo2gg.py with the correct &lt;code&gt;--last&lt;/code&gt; option.&lt;/p&gt;
&lt;p&gt;You can use it as:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;ggCopyPage: true
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id=&#34;ggignorelinks&#34;&gt;ggIgnoreLinks&lt;/h4&gt;
&lt;p&gt;The ignore links flag will ignore the links in the page.
Links will not be generated for that page.
Useful for pages where the links are not that important, and  you don&amp;rsquo;t want to include them in Gopher or Gemini.&lt;/p&gt;
&lt;p&gt;You can use it as:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;
ggIgnoreLinks: true
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;other-tips-for-content-creation&#34;&gt;Other tips for content creation&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;If you plan to have content that is specific to Gopher and/or Gemini, you may want to use a naming convention for those posts. For example, you may name those posts &lt;code&gt;&amp;lt;name&amp;gt;-gg.md&lt;/code&gt; and write them in a way that will look nice in Gopher and/or Gemini. In that case, you want to add the following line to your main &lt;code&gt;config.toml&lt;/code&gt; file:&lt;/li&gt;
&lt;/ol&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-toml&#34; data-lang=&#34;toml&#34;&gt;ignoreFiles =  [&lt;span style=&#34;color:#0ff;font-weight:bold&#34;&gt;&amp;#34;-gg.md$&amp;#34;&lt;/span&gt;]
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then, when you want to create content that should only be in Gopher and/or Gemini, you will create the markdown file as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;~$ hugo new posts/name-gg.md
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start=&#34;2&#34;&gt;
&lt;li&gt;You may find the &lt;a href=&#34;https://github.com/mkamarin/Gopher-and-Gemini-Walker&#34;&gt;Gopher-and-Gemini-Walker&lt;/a&gt; tool useful to verify the generated Gopher hole and/or the Gemini capsule before deploying them.&lt;/li&gt;
&lt;/ol&gt;
</description>
    </item>
    
    <item>
      <title>Installing FreshTomato in Netgear R7000</title>
      <link>https://www.mkAmarin.com/posts/r7000-to-freshtomatos/</link>
      <pubDate>Mon, 05 Dec 2022 13:34:41 -0800</pubDate>
      
      <guid>https://www.mkAmarin.com/posts/r7000-to-freshtomatos/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;The &lt;a href=&#34;https://www.netgear.com/support/product/r7000.aspx&#34;&gt;Netgear R7000 Nighthawk AC1900 Router&lt;/a&gt; is a great dual band WiFi and gigabit router.
I did decommission mine few years ago because it was redundant in my network
However, early this year I decide to use it as a WiFi access point and switch for couple of machines in the network.
It is a great piece of hardware and will do a good job at this task.&lt;/p&gt;
&lt;p&gt;I started by updating the firmware from the Netgear support page and configuring the device as an access point.
I placed the R7000 as an access point and switch behind a gateway and firewall.
But unfortunately, I did not liked what I found.
It all worked, however I was unhappy with Netgear wanting to collect information from me and my home network.
Therefore, I decided to install &lt;a href=&#34;https://freshtomato.org/&#34;&gt;FreshTomato&lt;/a&gt; on the device.&lt;/p&gt;
&lt;h2 id=&#34;motivation&#34;&gt;Motivation&lt;/h2&gt;
&lt;p&gt;There are few reasons for the decision, but all of then point to Netgear trying to collect information.
Some of my reasons are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Some of the device functionality requires a Netgear account, which I refuse to do.
This is my device and it is inside my home network, so I don&amp;rsquo;t see any reason for a Netgear account.&lt;/li&gt;
&lt;li&gt;I attached a shared USB disk and I was unable to encrypt the disk. But, for the disk to be useful, it need to be encrypted.&lt;/li&gt;
&lt;li&gt;The USB disk was too slow, which may had something to do with the protocol being used. But, I did not spend time investigating the reasons.&lt;/li&gt;
&lt;li&gt;The last straw was the attempts, of the device, to reach Netgear from inside my home network. Checking my PI-Hole, I noticed a lot of DNS queries to &lt;em&gt;&lt;a href=&#34;http://www.netgear.com&#34;&gt;www.netgear.com&lt;/a&gt;&lt;/em&gt;. Looking at the details, it turns out the R7000 is communicating with Netgear. After I blacklisted &lt;a href=&#34;http://www.netgear.com&#34;&gt;www.netgear.com&lt;/a&gt; the R7000 keep querying it every 60 seconds.
It seems that it was using &lt;a href=&#34;http://www.netgear.com&#34;&gt;www.netgear.com&lt;/a&gt; as the NTP server, but I did not like it anyway.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Therefore, I need to change the firmware in that device. That should fix most (if not all) of my problems with the device.
I decided to use &lt;a href=&#34;https://freshtomato.org/&#34;&gt;FreshTomato&lt;/a&gt;, and I have been very happy with that decision.
I did installed it in April 2022 and it has been working perfectly ever since.
It is configured as an access point and switch.
In addition, I attached a printer and a USB disk.
That allows me to print and run backups from any of the WiFi devices in the network.
So, I&amp;rsquo;m happy with the results.&lt;/p&gt;
&lt;h2 id=&#34;process&#34;&gt;Process&lt;/h2&gt;
&lt;p&gt;The process that I used is described in here.
The goal was to reproduce the R7000 configuration in FreshTomato, so I started by getting a readable copy of the R7000 configuration.
Unfortunately, There is no good way to print out the configuration in a readable way, therefore I decided to grab a video of navigating to the whole R7000 user interface in the browser.&lt;/p&gt;
&lt;h3 id=&#34;capturing-video-of-the-r7000-web-application&#34;&gt;Capturing video of the R7000 web application&lt;/h3&gt;
&lt;p&gt;a) I used &lt;code&gt;ffmpeg&lt;/code&gt; to capture a video of the session in the browser.
To start the capture, I used &lt;code&gt;ffmpeg&lt;/code&gt; with the information about my monitor, as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;ffmpeg -f x11grab -s 1280x1024  -r 25 -i :0.0+0,0 out.mp4
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Then, I navigated to all the pages showing the configuration of the R7000.
When I finish navigating, I terminated the execution of &lt;code&gt;ffmpeg&lt;/code&gt; using &lt;code&gt;Ctrl-C&lt;/code&gt;.&lt;/p&gt;
&lt;h4 id=&#34;saved-a-copy-of-the-configuration&#34;&gt;Saved a copy of the configuration&lt;/h4&gt;
&lt;p&gt;I also saved a copy of the R7000 configuration.
This was not necessary, but it seems like a good idea.
In any case, This is what I did:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Login into the router&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;Advanced =&amp;gt; Administration =&amp;gt; Backup Settings =&amp;gt; Save a copy of the current settings&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Unplugged the R7000 Ethernet cable from the switch (from my network).
That was necessary, because the R7000 has a fix IP (not 192.168.1.1) and when it reboots it do revert to that IP.
This creates problems in the rest of my home network.
So, better to get it out of the network.&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;installing-and-configuring-freshtomato&#34;&gt;Installing and configuring FreshTomato&lt;/h3&gt;
&lt;p&gt;b) I started by downloading all the necessary files from &lt;code&gt;freshtomato.org&lt;/code&gt;, and I checked all the files with &lt;code&gt;md5sum&lt;/code&gt;, as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;cat MD5SUM* | grep R7000 &amp;gt; check.txt
md5sum -c check.txt
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;c) I read few articles and watched a video in preparation for the installation and configuration as an access point.
The following pages were useful:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;https://becomethesolution.com/blogs/reviews/upgrade-netgear-r7000-router-firmware-with-tomato-latest-version&#34;&gt;How To: Upgrade Netgear r7000 Router Firmware with Tomato Latest Version from Become The Solution&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://wonghoi.humgar.com/blog/2021/12/01/freshtomato-for-netgear-nighthawk-r7000/&#34;&gt;Freshtomato for Netgear (Nighthawk) R7000 from Rambling Nerd with a Plan&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://www.youtube.com/watch?v=w10jLqRmdLM&#34;&gt;Watched the video Netgear R7000 - How to install Tomato-ARM by Shibby Mod&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;d) I ended following the instruction in the video, as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;In a browser login into the R7000.&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;Advanced =&amp;gt; Administration =&amp;gt; Backup Settings =&amp;gt; Revert to factory default settings (Erase)&lt;/code&gt;.
It will reboot the router and revert to 192.168.1.1, which is OK because the rest of the network don’t see it.
But, it did ask to be connected to the internet, and so I answered few questions in the negative (because internet connection was not necessary and the device was disconnected from the network). After few tries I was able to get into the router. Which asked to set password, etc. which I did.&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;Advanced =&amp;gt; Administration =&amp;gt; Router update =&amp;gt; browser&lt;/code&gt; and selected the initial FreshTomatos file.&lt;/li&gt;
&lt;li&gt;I ping the device now executing FreshTomatos: &lt;code&gt;ping 192.168.0.1&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;In a browser, go to &lt;code&gt;192.168.0.1&lt;/code&gt;, which now it is running FreshTomato. The credentials are: &lt;code&gt;root&lt;/code&gt; / &lt;code&gt;admin&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;Administration =&amp;gt; Upgrade&lt;/code&gt;. In here you need to select the right file (AIO or VPN) and do the upgrade.&lt;/li&gt;
&lt;li&gt;Reboot the device and get back into FreshTomatos in the browser.&lt;/li&gt;
&lt;li&gt;Go to &lt;code&gt;Administration =&amp;gt; Configuration =&amp;gt; Restore Default Configuration =&amp;gt; Erase all data in NVRAM memory&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Reboot the device and get back into FreshTomatos in the browser.&lt;/li&gt;
&lt;li&gt;This time it ask for a user and password: &lt;code&gt;admin&lt;/code&gt; / &lt;code&gt;admin&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Reboot it again (don’t know the reason, but well)&lt;/li&gt;
&lt;li&gt;Configure the router, based on your old config.&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Any time you play with firmware and flash a device with new and different firmware, you need to be prepared to experiment and try multiple times.
I was surprised how well it worked with FreshTomatos, as it worked in the first try.
I had more problems with the Netgear software when I reverted to factory settings, as it wanted to connect to the network.&lt;/p&gt;
&lt;p&gt;The good news is that FreshTomatos have worked perfectly, and I&amp;rsquo;m happy with the performance and functionality.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Banning Facebook and blocking ads from you network</title>
      <link>https://www.mkAmarin.com/posts/blocking-facebook/</link>
      <pubDate>Fri, 23 Oct 2020 16:08:24 -0700</pubDate>
      
      <guid>https://www.mkAmarin.com/posts/blocking-facebook/</guid>
      <description>&lt;h2 id=&#34;introduction&#34;&gt;Introduction&lt;/h2&gt;
&lt;p&gt;Removing the Facebook application from your devices does not means you have remove all communication of your devices with Facebook.
Other applications that you use and web pages that you visit maybe using the Facebook &lt;a href=&#34;https://en.wikipedia.org/wiki/API&#34;&gt;API&lt;/a&gt;, and so, passing data to Facebook.
Adding an &lt;a href=&#34;https://en.wikipedia.org/wiki/Ad_blocking&#34;&gt;ad blocker&lt;/a&gt; to your browser helps eliminate some of that communication.
However, adding and correctly configuring ad blockers in all your devices may not be practical.
In some cases, it is hard or impossible to configure and block unwanted API calls (for example in your TV).&lt;/p&gt;
&lt;p&gt;One practical alternative is to use a &lt;a href=&#34;https://en.wikipedia.org/wiki/DNS_sinkhole&#34;&gt;DNS sinkhole&lt;/a&gt; in your network and configure it to ignore (or blacklist) the unwanted APIs (in this case the Facebook APIs).
An excellent &lt;a href=&#34;https://en.wikipedia.org/wiki/Open_source&#34;&gt;open source&lt;/a&gt; DNS sinkhole project is &lt;a href=&#34;https://pi-hole.net/&#34;&gt;Pi-hole&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;pi-hole&#34;&gt;Pi-hole&lt;/h2&gt;
&lt;p&gt;I have been running Pi-hole in my home network for several years using an old &lt;a href=&#34;https://www.raspberrypi.org/&#34;&gt;Raspberry Pi&lt;/a&gt; 1 model A from 2012.
Initially, I was concerned with the impact on my network, but it turns out that it has a positive impact on my network traffic, by eliminating ads from the network traffic.
This machine has 512 MB of ram and runs at 700 MHz, so it is a very minimal machine, but Pi-hole runs perfectly in that hardware.&lt;/p&gt;
&lt;p&gt;My installation is very simple, just the Raspberry Pi running Pi-hole and connected to my main router/cable modem.
The normal status is for the Raspeberry Pi to be at 112.9F, with Pi-hole using 14% of the available memory as reported by the Pi-hole dashboard.
Just for fun, let &lt;a href=&#34;https://en.wikipedia.org/wiki/Ssh&#34;&gt;ssh&lt;/a&gt; to the Raspberry Pi and see the memory and CPU specs, as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;~$ ssh pi@192.168.0.251
pi@192.168.0.251&lt;span style=&#34;color:#f00&#34;&gt;&amp;#39;&lt;/span&gt;s password: 
Linux MY-DNS-PI-HOLE 4.14.98+ &lt;span style=&#34;color:#007f7f&#34;&gt;#1200 Tue Feb 12 20:11:02 GMT 2019 armv6l&lt;/span&gt;

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms &lt;span style=&#34;color:#fff;font-weight:bold&#34;&gt;for&lt;/span&gt; each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Sep &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;14&lt;/span&gt; 21:44:54 &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;2020&lt;/span&gt; from 192.168.0.15

pi@MY-DNS-PI-HOLE:~ $ free --mega
              total        used        free      shared  buff/cache   available
Mem:            &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;443&lt;/span&gt;          &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;46&lt;/span&gt;          &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;45&lt;/span&gt;          &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;37&lt;/span&gt;         &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;351&lt;/span&gt;         &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;305&lt;/span&gt;
Swap:           &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;102&lt;/span&gt;           &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;0&lt;/span&gt;         &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;102&lt;/span&gt;

pi@MY-DNS-PI-HOLE:~ $ cat /proc/cpuinfo
processor	: &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;0&lt;/span&gt;
model name	: ARMv6-compatible processor rev &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;7&lt;/span&gt; (v6l)
BogoMIPS	: 697.95
Features	: half thumb fastmult vfp edsp java tls 
CPU implementer	: 0x41
CPU architecture: &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;7&lt;/span&gt;
CPU variant	: 0x0
CPU part	: 0xb76
CPU revision	: &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;7&lt;/span&gt;

Hardware	: BCM2835
Revision	: 000e

pi@MY-DNS-PI-HOLE:~ $ lscpu
Architecture:          armv6l
Byte Order:            Little Endian
CPU(s):                &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;1&lt;/span&gt;
On-line CPU(s) list:   &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;0&lt;/span&gt;
Thread(s) per core:    &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;1&lt;/span&gt;
Core(s) per socket:    &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;1&lt;/span&gt;
Socket(s):             &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;1&lt;/span&gt;
Model:                 &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;7&lt;/span&gt;
Model name:            ARMv6-compatible processor rev &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;7&lt;/span&gt; (v6l)
CPU max MHz:           700.0000
CPU min MHz:           700.0000
BogoMIPS:              697.95
Flags:                 half thumb fastmult vfp edsp java tls

pi@MY-DNS-PI-HOLE:~ $ &lt;span style=&#34;color:#fff;font-weight:bold&#34;&gt;exit&lt;/span&gt;
&lt;span style=&#34;color:#fff;font-weight:bold&#34;&gt;logout&lt;/span&gt;
Connection to 192.168.0.251 closed.
~$ 
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;raspberry-pi&#34;&gt;Raspberry Pi&lt;/h3&gt;
&lt;p&gt;For this project, you need a Raspberry Pi, an Ethernet cable to connect the Raspberry Pi to your main router, an SD card and a power supply for the Raspberry Pi.
As I describe before, any old Raspberry Pi with an Ethernet port will work fine.
Depending of the Raspberry Pi, you could use a phone charger as the power supply.
Just be sure it has the right voltage and enough amperage to drive the Raspberry Pi.
Even if you buy all the components, you should be able to do this project for less than 50 dollars.&lt;/p&gt;
&lt;h3 id=&#34;installing-and-configuring-pi-hole&#34;&gt;Installing and configuring Pi-hole&lt;/h3&gt;
&lt;p&gt;There are several good tutorials on installing Pi-hole, so I will not cover that in here.
A search for “&lt;a href=&#34;https://duckduckgo.com/?q=pi+hole+raspberry+pi+headless+install&amp;amp;t=lm&amp;amp;atb=v228-1&amp;amp;ia=web&#34;&gt;pi hole raspberry pi headless install&lt;/a&gt;” should give you a good set of tutorials.
The &lt;a href=&#34;https://pi-hole.net/&#34;&gt;Pi-hole page&lt;/a&gt; have also installation instructions.&lt;/p&gt;
&lt;h4 id=&#34;tips&#34;&gt;Tips&lt;/h4&gt;
&lt;p&gt;It is important to configure your main router to redirect DNS traffic to your Pi-hole.
But, don’t forget any other router that your may have in your house.
So, be sure to configure all your routers.
In my case, I have two routers and their configuration was different, as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Main router. LAN Setup =&amp;gt; LAN Settings =&amp;gt; DNS Override&lt;/li&gt;
&lt;li&gt;Secondary router. Internet =&amp;gt; internet setup =&amp;gt; Domain Name Server (DNS) Address&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You want to be sure your Pi-hole up to date.
Once in a while, I logon into the Pi-hole dashboard and check that I’m running the latest version (in the bottom of the main dashboard page will list the current version and if it needs to be update).
If the version need to be updated, just exit from the dashboard and logon into the Raskpberry Pi using ssh and run the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;pihole -up
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;blocking-facebook&#34;&gt;Blocking Facebook&lt;/h3&gt;
&lt;p&gt;By default, Pi-hole block most ads, including several google analytic APIs.
However, it does not blocks applications, including Facebook.
Therefore, I have specifically blocked Facebook and its APIs.&lt;/p&gt;
&lt;p&gt;To block Facebook just login to the Pi-hole dashboard and look at the Query Log section.
By default, in the Query Log section you can see the last 100 DNS queries.
Each DNS query is listed in green if it was not blocked, and in red if it was blocked.
On each query you has the ability to blacklist it or whitelist it by pressing a button.&lt;/p&gt;
&lt;p&gt;The easy way to block Facebook is from the Query Log, by looking at any query that includes a Facebook domain and blacklist it.
Alternatively, you can go to the Blacklist section of the dashboard and add the domains to block or a regular expression.
For example: &lt;code&gt;(\.|^)(facebook|fb|fbcdn|fbsbx|tfbnw)\.(com|net)$&lt;/code&gt; and &amp;lsquo;^(fbstatic|fbexternal|fbcdn).*akamaihd.net$&amp;rsquo; that will block most of the facebook domains.&lt;/p&gt;
&lt;h2 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;Having a DNS sinkhole at home as a companion to the main router can be done easily and cheap using Pi-hole.
In addition to block Facebook, you will be able to block ads and improve the speed of the network&lt;/p&gt;
&lt;p&gt;This morning, looking at my Pi-hole dashboard, I noticed in the top blocked domains, &lt;a href=&#34;http://www.facebook.com&#34;&gt;www.facebook.com&lt;/a&gt; with 262 hits and graph.facebook.com with 218. So, blocking is working.
But, I also notice a different trend, our cellular phones are very active at night with a minimum of 56 queries each 10 minutes. For a device that should be just charging, having 336 DNS queries per hour seems excessive.
This will merit further research and a potential solution.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Contact</title>
      <link>https://www.mkAmarin.com/contact/</link>
      <pubDate>Mon, 19 Oct 2020 11:20:45 -0700</pubDate>
      
      <guid>https://www.mkAmarin.com/contact/</guid>
      <description>&lt;p&gt;
Thanks for your contact, I will get back to you as soon as possible.
Please note that you will be redirected to the home page when you press send.
&lt;/p&gt;

&lt;form name=&#34;contactz&#34; method=&#34;POST&#34; data-netlify=&#34;true&#34; data-netlify-recaptcha=&#34;true&#34; netlify-honeypot=&#34;phone&#34; &gt; &lt;!-- action=&#34;https://www.mkAmarin.com/&#34; --&gt;
&lt;input type=&#34;hidden&#34; name=&#34;form-name&#34; value=&#34;contactz&#34; /&gt;
&lt;p style=&#34;display-box: none; visibility: hidden;&#34;&gt; &lt;label&gt;Don’t fill this out if you&#39;re human: &lt;input name=&#34;phone&#34; type=&#34;text&#34; &gt;&lt;/label&gt; &lt;/p&gt;
  &lt;p&gt;
    &lt;label&gt;Your Name: &lt;input type=&#34;text&#34; name=&#34;name&#34;  type=&#34;text&#34; size=&#34;50&#34; required &gt;&lt;/label&gt;   
  &lt;/p&gt;
  &lt;p&gt;
    &lt;label&gt;Your Email: &lt;input type=&#34;email&#34; name=&#34;email&#34;  type=&#34;text&#34; size=&#34;50&#34; required &gt;&lt;/label&gt;
  &lt;/p&gt;
  &lt;p&gt;
    &lt;label&gt;Message: &lt;textarea name=&#34;message&#34; rows = &#34;10&#34; cols = &#34;65&#34; required &gt;&lt;/textarea&gt;&lt;/label&gt;
  &lt;/p&gt;
&lt;div data-netlify-recaptcha=&#34;true&#34;&gt;&lt;/div&gt;
  &lt;p&gt;
    &lt;button type=&#34;submit&#34;&gt;Send&lt;/button&gt;
  &lt;/p&gt;
&lt;/form&gt;
</description>
    </item>
    
    <item>
      <title>About Me</title>
      <link>https://www.mkAmarin.com/about/</link>
      <pubDate>Sat, 17 Oct 2020 11:20:45 -0700</pubDate>
      
      <guid>https://www.mkAmarin.com/about/</guid>
      <description>&lt;p&gt;I am a hands-on technical leader with more than 30 years of experience architecting, designing and developing software products, including several domain specific languages (DSL), workflow, business process management (BPM), enterprise content management (ECM), and case management products. I have also worked on compilers and computer language translation technology. During the last few years, I have worked with Docker containers managed in Kubernetes environments.&lt;/p&gt;
&lt;p&gt;After a long and successful career at IBM, FileNet and Unisys; I decided to dedicate time to my personal projects. Currently, I am working on embedded systems using micro-controllers (ATMega/Arduino, Attiny, ESP32, ESP8266, STM32, etc.) on what is currently known as internet of things (IoT). This allows me to play with both hardware and software.&lt;/p&gt;
&lt;p&gt;In addition, I have participated in standard organizations including the Workflow Management Coalition (WfMC), the Object Management Group (OMG), and the Organization for the Advancement of Structured Information Standards (OASIS). I have edited and contributed to the definition of several software standards, including the Web Services Business Process Execution Language (WS-BPEL), Business Process Model and Notation (BPMN), XML Process Definition Language (XPDL), and Case Management Model and Notation (CMMN).  I am a distinguished and Life Member of the Association for Computing Machinery (ACM) and a member of the Institute of Electrical and Electronics Engineers (IEEE).&lt;/p&gt;
&lt;p&gt;My hobbies include amateur radio, electronics, software development, reading non-fiction, photography, hiking and camping.
All my personal machines run Linux, my preferred text editor is Vim.  I use LaTeX instead of a word processor and use R for statistics analysis.
My preferred programming language is C/C++ although I do program in a variety of languages and scripts.&lt;/p&gt;
&lt;h2 id=&#34;about-this-site&#34;&gt;About this site&lt;/h2&gt;
&lt;p&gt;This site is a work in progress.
It is an static site created with &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt; and hosted on &lt;a href=&#34;https://www.netlify.com/&#34;&gt;netlify&lt;/a&gt;.
I started with a Hugo template, but I have heavily modified it to remove unwanted dependencies and to customize it to my taste.
In particular, this site do not use external APIs, so no tracking in here.
The use of JavaScript has been minimized to support only two use cases: dynamic control of the background color (see top right icon) and LaTeX mathematical expressions.&lt;/p&gt;
&lt;h2 id=&#34;contact-me&#34;&gt;Contact Me&lt;/h2&gt;
&lt;p&gt;I am available to collaborate on interesting projects or educational opportunities.
Including mentoring technical leaders and teaching opportunities.
You can contact me via social media below or via the &lt;a href=&#34;https://www.mkAmarin.com/contact/&#34;&gt;contact form&lt;/a&gt; in this site.&lt;/p&gt;
</description>
    </item>
    
    <item>
      <title>Publications</title>
      <link>https://www.mkAmarin.com/publications/</link>
      <pubDate>Sat, 17 Oct 2020 11:20:45 -0700</pubDate>
      
      <guid>https://www.mkAmarin.com/publications/</guid>
      <description>&lt;p&gt;For an updated list of publications see &lt;a href=&#34;http://scholar.google.com/citations?user=YgiIFrsAAAAJ/&#34;&gt;Google Scholar&lt;/a&gt; or &lt;a href=&#34;http://www.researchgate.net/profile/Mike_Marin/&#34;&gt;ResearchGate&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;conference-publications&#34;&gt;Conference publications&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin, Hugo Lotriet, and John A. van der Poll. &lt;em&gt;Implementing Deterministic Finite State Machines using Guard-Stage-Milestone&lt;/em&gt;.  In: &lt;em&gt;Proceedings of the South African Institute for Computer Scientists and Information Technologists Conference (SAICSIT&#39;16)&lt;/em&gt;. Johannesburg, South Africa: ACM Press, New York, USA, 2016.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin, Hugo Lotriet, and John A. van der Poll. &lt;em&gt;Metrics for the Case Management Modeling and Notation (CMMN) Speciﬁcation&lt;/em&gt;. In: &lt;em&gt;Proceedings of the 2015 Annual Research Conference on South African Institute of Computer Scientists and Information Technologists, SAICSIT &amp;lsquo;15&lt;/em&gt;, Stellenbosch, South Africa, September 28-30, 2015].  2015, p. 28. doi: &lt;a href=&#34;https://doi.org/10.1145/2815782.2815813&#34;&gt;10.1145/2815782.2815813&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Yiqin Yu, Xiang Li, Haifeng Liu, Jing Mei, Nirmal Mukhi, Vatche Ishakian, Guotong Xie, GeetikaT. Lakshmanan, and Mike A. Marin.  &lt;em&gt;Case Analytics Workbench: Platform for Hybrid Process Model Creation and Evolution&lt;/em&gt;. English. In: &lt;em&gt;Business Process Management&lt;/em&gt;. Ed. by Hamid Reza Motahari-Nezhad, Jan Recker, and Matthias Weidlich. Vol. 9253. Lecture Notes in Computer Science. Springer International Publishing, 2015, pp. 226&amp;ndash;241. doi: &lt;a href=&#34;https://doi.org/10.1007/978-3-319-23063-4_16&#34;&gt;10.1007/978-3-319-23063-4˙16&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin, Matheus Hauder, and Florian Matthes. &lt;em&gt;Case Management: An Evaluation of Existing Approaches for Knowledge-Intensive Processes&lt;/em&gt;. In: &lt;em&gt;International Workshop on Adaptive Case Management and other non-workﬂow approaches to BPM (AdaptiveCM)&lt;/em&gt;. Innsbruck, Austria, 2015, pp. 1&amp;ndash;12.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin. &lt;em&gt;Complexity metrics for the Case Management Modeling Notation (CMMN) Project Description&lt;/em&gt;. M&amp;amp;D Workshop SAICSIT &amp;lsquo;14, Centurion, South Africa. 2014.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin, Hugo Lotriet, and John A. van der Poll. &lt;em&gt;Measuring Method Complexity of the Case Management Modeling and Notation (CMMN)&lt;/em&gt;. In: &lt;em&gt;Southern African Institute for Computer Scientist and Information Technologists Annual Conference 2014, SAICSIT &amp;lsquo;14&lt;/em&gt;, Centurion, South Africa, September 29 - October 1, 2014. 2014, p.  209. doi: &lt;a href=&#34;https://doi.org/10.1145/2664591.2664608&#34;&gt;10.1145/2664591.2664608&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin, Richard Hull, and Roman Vaculín. &lt;em&gt;Data Centric BPM and the Emerging Case Management Standard: A Short Survey&lt;/em&gt;. In: &lt;em&gt;Business Process Management Workshops&lt;/em&gt;. Ed. by Marcello La Rosa and Pnina Soﬀer. Vol. 132. Lecture Notes in Business Information Processing. Springer Berlin Heidelberg, 2013, pp. 24&amp;ndash;30. doi: &lt;a href=&#34;https://doi.org/10.1007/978-3-642-36285-9_4&#34;&gt;10.1007/978-3-642-36285-9˙4&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin, Michael Masin, Segev Wasserkrug, Sergey Zeltyn, and Dagan Gilat. &lt;em&gt;Real-Time Workforce Scheduling in Multi-Process Environment&lt;/em&gt;. In: &lt;em&gt;Proceedings of Manufacturing and Service Operations Management (MSOM)&lt;/em&gt;.  Haifa, Israel: The Manufacturing and Service Operations Management Society, 2010, pp. 1&amp;ndash;4.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;conference-posters&#34;&gt;Conference posters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Mike A. Marin. &lt;em&gt;Exploring complexity metrics for the Case Management Modeling Notation (CMMN)&lt;/em&gt;. M&amp;amp;D Poster session SAICSIT &amp;lsquo;14, Centurion, South Africa. 2014.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;books&#34;&gt;Books&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Wei-dong Zhu, Srinivas Chitiveli, Thuy Do, Anand Iyer, Srinivas Jandhyala, Mike A. Marin, Armando Mastracci, Alan Morton, Monique Ruggiero, Sathis Marudanayagam, Lauren Mayes, Eugene Rozhdestvensky, and Shao Hong Xu.&lt;em&gt;Advanced Case Management with IBM Case Manager&lt;/em&gt;. Second. IBM Redbooks, 2012, p. 584.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wei-dong Zhu, Boris Becker, Julie Boudreaux, Scott Braman, Thuy Do, David Gomez, Mike A. Marin, and Andrew Vaughan. &lt;em&gt;Advanced Case Management with IBM Case Manager&lt;/em&gt;. IBM Redbooks, 2011, p. 473.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Wei-Dong Zhu, Eric Adel, William Benjamin, Imtiaz A Khan, Mike A.  Marin, and Mark Yingling. &lt;em&gt;Introducing IBM FileNet Business Process Manager&lt;/em&gt;. IBM Redbooks, 2008, p. 354.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;book-chapters&#34;&gt;Book Chapters&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Mark Von Rosing, August-wilhelm Scheer, Henrik Von Scheel, D M Adam, Alex Kokkonen, Andrew M Ross, Anette Falk Bøgebjerg, Antony Dicks, Asif Qumer Gill, Bas Bach, Bob J Storms, Callie Smit, Cay
Clemmensen, Christopher K Swierczynski, Clemens Utschig-utschig, Dan Moorcroft, Daniel T Jones, David Coloma, Deb Boykin, Dickson Hunja, Duarte Gonçalves, Fabrizio Maria Maggi, Fan Zhao, Fatima Senghore,
Fatma Dandashi, Fred Cummins, Freek Stoﬀel, Gabriel Von Scheel, Gabriella Von, Gary Doucet, Gert Meiling, Gert O Jansson, Hans Scheruhn, Henk De Man, Henk Kuil, Henrik Naundrup Vester, Jacob
Gammelgaard, James P Womack, Jeanne W Ross, Jeﬀ Greer, Jens Theodor Nielsen, A John, John Bertram, John Golden, John M Rogers, Jonnro Erasmus, Von Scheel, Joshua Waters, Justin Tomlinson, Karin
Gräslund, Katia Bartels, Keith D Swenson, Kenneth Dean Teske, Kevin Govender, Klaus Vitt, Leanne Spurrell, Lloyd Dugan, Lotte Tange, Mads Clausager, Maria Rybrink, Marianne Fonseca, Mark Stanford,
Marlon Dumas, Mathias Kirchmer, Maxim Arzumanyan, Michael D Tisdel, Michel Van Den, Mikael Munck, Mike A. Marin, Mona Von Rosing, Nathaniel Palmer, Neil Kemp, Nils Faltin, Partha Chakravartti,
Patricia Kemp, Peter Franz, Philippe Lebacq, Rich Hilliard, Richard L Fallon, Richard N Conzo, Rod Peacock, Ronald N Batdorf, Sarel J Snyman, Scott Davis, M Simon, Stephen White, Steve Durbin, Steve
Willoughby, Sven Vollbehr, Thomas Boosz, Thomas Christian Olsen, Tim Hoebeek, Tom Preston, Victor Abele, Vincent Snels, Volker Rebhan,
and Wim Laurier. &lt;em&gt;Business Process Trends&lt;/em&gt;. In: &lt;em&gt;The Complete Business Process Handbook, Body of Knowledge from Process Modeling to BPM, Volume I&lt;/em&gt;. Morgan Kaufmann, 2015, pp. 187&amp;ndash;216.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tommy Hansen, Mike A. Marin, and Khoi Dang. &lt;em&gt;Metrics Based Business Process Management&lt;/em&gt;. In: &lt;em&gt;Workﬂow Handbook 2004&lt;/em&gt;.  Ed. by Layna Fisher. Lighthouse Point, Florida, USA: Future Strategies Inc., 2004.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Jean Faget, Mike A. Marin, Patrick Mégard, Vincent J. Owens, and LLaurent-Olivier Tarin.  &lt;em&gt;Business Processes and Business Rules: Business Agility Becomes Real&lt;/em&gt;. In: &lt;em&gt;Workﬂow Handbook 2003&lt;/em&gt;. Ed. by Layna Fisher. Lighthouse Point, Florida, USA: Future Strategies Inc., 2003, pp. 77&amp;ndash;92.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin. &lt;em&gt;Business Process Technology: From EAI and Workﬂow to BPM&lt;/em&gt;. In: &lt;em&gt;Workﬂow Handbook 2002&lt;/em&gt;. Ed. by Layna Fisher. Lighthouse Point, Florida, USA: Future Strategies Inc., 2002, pp. 133&amp;ndash;145.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin. &lt;em&gt;The Role of Workﬂow in Portal Environments&lt;/em&gt;. In: &lt;em&gt;Workﬂow Handbook 2001&lt;/em&gt;. Ed. by Layna Fisher.  Lighthouse Point, Florida, USA: Future Strategies Inc., 2001, pp.  79&amp;ndash;90.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;technical-reports&#34;&gt;Technical reports&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin. &lt;em&gt;Introduction to the Case Management Model and Notation (CMMN)&lt;/em&gt;. In: &lt;em&gt;Computing Research Repository&lt;/em&gt; (2016). arXiv: &lt;a href=&#34;https://arxiv.org/abs/abs/1608.05011&#34;&gt;abs/1608.05011&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin and Matheus Hauder. &lt;em&gt;Case Management: a data set of deﬁnitions&lt;/em&gt;. In: &lt;em&gt;Computing Research Repository&lt;/em&gt; (2015). arXiv: &lt;a href=&#34;https://arxiv.org/abs/abs/1507.04004&#34;&gt;abs/1507.04004&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin and Jay A. Brown. &lt;em&gt;Implementing a Case Management Modeling and Notation (CMMN) System using a Content Management Interoperability Services (CMIS) compliant repository&lt;/em&gt;. In: &lt;em&gt;Computing Research Repository&lt;/em&gt; (2015). arXiv: &lt;a href=&#34;https://arxiv.org/abs/abs/1504.06778&#34;&gt;abs/1504.06778&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Darik Siegfried and Mike A. Marin. &lt;em&gt;IBM FileNet P8 BPM XPDL 2.0 extensions&lt;/em&gt;.  IBM DeveloperWorks, 2008.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Michael zur Muehlen, Mike A. Marin, and Ismael Ghalimi. &lt;em&gt;A Taxonomy of Web Service Standards - A Joint BPMI/WfMC White Paper&lt;/em&gt;. white paper. BPMI and WfMC, Nov. 2002.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin. &lt;em&gt;Eﬀective use of Assertions in C++&lt;/em&gt;. In: &lt;em&gt;SIGPLAN Notices&lt;/em&gt; 31.11 (1996), pp. 28&amp;ndash;32. doi: &lt;a href=&#34;https://doi.org/10.1145/240964.240969&#34;&gt;10.1145/240964.240969&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;tutorials&#34;&gt;Tutorials&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;Mike A. Marin. &lt;em&gt;The Case Management Model and Notation (CMMN) version 1.0 Tutorial&lt;/em&gt;. 2016. url: &lt;a href=&#34;http://cmmn.byethost4.com&#34;&gt;http://cmmn.byethost4.com&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;phd-thesis&#34;&gt;PhD Thesis&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin. &lt;em&gt;Exploring Complexity Metrics for Artifact-Centric Business Process Models&lt;/em&gt;. PhD thesis. University of South Africa, 2017.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin. &lt;em&gt;Research data, sources and documents for thesis on Exploring Complexity Metrics for Artifact-Centric Business Process Models&lt;/em&gt;. May 2018. doi: &lt;a href=&#34;https://doi.org/10.5281/zenodo.1241595&#34;&gt;10.5281/zenodo.1241595&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;patents&#34;&gt;Patents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin. &lt;em&gt;Content manager checklist object&lt;/em&gt;. Pat. US 10,210,574.  2019.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin. &lt;em&gt;Generation of a three-dimensional virtual reality environment from a business process model&lt;/em&gt;. Pat. US 9,886,682. 2018.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Dagan Gilat, Mike A. Marin, Michael Masin, Segev E. Wasserkrug, and Sergey Zeltyn. &lt;em&gt;Resource optimization for real-time task assignment in multi-process environments.&lt;/em&gt; Pat. US 9,015,723. 2015.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Mike A. Marin, Daniel S. Whelan, and Michael G. Winter. &lt;em&gt;Component Integrator&lt;/em&gt;. Pat. US 8,028,304 and US 7,415,716. 2011.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
</description>
    </item>
    
    <item>
      <title>Remove Facebook&#39;s app from Android device</title>
      <link>https://www.mkAmarin.com/posts/remove-facebook-from-android/</link>
      <pubDate>Thu, 15 Oct 2020 16:42:54 -0700</pubDate>
      
      <guid>https://www.mkAmarin.com/posts/remove-facebook-from-android/</guid>
      <description>&lt;h3 id=&#34;introduction&#34;&gt;Introduction&lt;/h3&gt;
&lt;p&gt;It is well known that some Samsung phones come with the Facebook app installed in a way that prevents it to be uninstalled, as described in TIME&amp;rsquo;s &amp;ldquo;&lt;a href=&#34;https://time.com/5497200/samsung-facebook-app-delete/&#34;&gt;Some Samsung Users Are Finding They Can&amp;rsquo;t Delete Facebook From Their Phones&lt;/a&gt;&amp;rdquo; (based on an article by &lt;a href=&#34;https://www.bloomberg.com/news/articles/2019-01-08/samsung-phone-users-get-a-shock-they-can-t-delete-facebook&#34;&gt;Bloomberg&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;Unfortunately, this is not unique to Samsung or to Facebook. It is common practice for phone providers to enter in agreements with app makes to provide those apps in their devices. But for security conscious consumers are starting to be annoyed of this practice. In particular Facebook data collection (see Huffpost&amp;rsquo;s &amp;ldquo;&lt;a href=&#34;https://www.huffpost.com/entry/facebook-app-data-investigation_n_5c707229e4b00eed08343fe1&#34;&gt;Facebook Is Collecting App Users’ Data Without Consent, Wall Street Journal Finds&lt;/a&gt;&amp;rdquo;, Yahoo news&#39; &amp;ldquo;&lt;a href=&#34;https://finance.yahoo.com/news/jeffrey-gundlach-facebook-diabolical-data-collection-monster-225256609.html&#34;&gt;Gundlach: Facebook is a ‘diabolical data collection monster’&lt;/a&gt;&amp;rdquo;, and TIME&amp;rsquo;s &amp;ldquo;&lt;a href=&#34;https://time.com/5516453/facebook-data-research/&#34;&gt;The Most Disturbing Thing About Facebook&amp;rsquo;s Controversial Data Research Program&lt;/a&gt;&amp;quot;).&lt;/p&gt;
&lt;p&gt;In this post, I will show you how to remove Facebook from your Android device without rooting it.
I will focus on Samsung phones, but the procedure should work for other Android devices as well.
I will show how to remove Facebook, but again you can remove other apps too.&lt;/p&gt;
&lt;h3 id=&#34;easy-way&#34;&gt;Easy way&lt;/h3&gt;
&lt;p&gt;First let try to remove Facebook app in the standard way provided by Android.
Just follow the instruction in &amp;ldquo;&lt;a href=&#34;https://www.wikihow.com/Uninstall-Facebook-on-Android&#34;&gt;How to Uninstall Facebook on Android&lt;/a&gt;&amp;rdquo; in wikiHow.
If that works, then you are done and can skip the rest of the post.&lt;/p&gt;
&lt;h3 id=&#34;not-so-easy-way&#34;&gt;Not so easy way&lt;/h3&gt;
&lt;p&gt;If the standard procedure did not work, then we will need to a little bit more complicated procedure.
We will base our approach on the “&lt;a href=&#34;https://christitus.com/debloat-android/&#34;&gt;Debloat Android&lt;/a&gt;” post by Chis Titus.
We will tackle the problem in four steps,&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Install &lt;a href=&#34;https://developer.android.com/studio/command-line/adb&#34;&gt;Android Debug Bridge (ADB)&lt;/a&gt; in your computer&lt;/li&gt;
&lt;li&gt;Configure your device for ADB debugging&lt;/li&gt;
&lt;li&gt;Remove Facebook&lt;/li&gt;
&lt;li&gt;Cleanup&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;For the first two steps, we will use Chris Titus instruction. But, let go step by step, as follows:&lt;/p&gt;
&lt;h4 id=&#34;1-install-android-debug-bridge-adb-in-your-laptop&#34;&gt;1. Install Android Debug Bridge (ADB) in your laptop&lt;/h4&gt;
&lt;p&gt;You need to set your computer to use ADB.
ADB works in Linux, Windows and MacOS.
So, let install it following Chris’ instructions on “&lt;a href=&#34;https://christitus.com/debloat-android/#setup-computer-with-adb-platform-tools&#34;&gt;Setup Computer with ADB Platform Tools&lt;/a&gt;”.&lt;/p&gt;
&lt;h4 id=&#34;2-configure-your-device-for-adb-debugging&#34;&gt;2. Configure your device for ADB debugging&lt;/h4&gt;
&lt;p&gt;Now you need to enter development options and enable USB Debugging in your device.
Again, let follows Chris’ instruction on “&lt;a href=&#34;https://christitus.com/debloat-android/#setup-phone-for-adb-debugging&#34;&gt;Setup Phone for ADB Debugging&lt;/a&gt;”.&lt;/p&gt;
&lt;h4 id=&#34;3-remove-facebook&#34;&gt;3. Remove Facebook&lt;/h4&gt;
&lt;p&gt;Here comes the main part of the procedure.
Now we will connect our device to the computer using a USB cable and use the ADB shell to connect to device and uninstall Facebook.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Connect the device to the computer via a USB cable.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Open a command line window.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;In Windows click Start and type &lt;code&gt;cmd&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;In most Linux distributions just type &lt;code&gt;Ctrl + Alt + T&lt;/code&gt;, or select it from the launchpad.&lt;/li&gt;
&lt;li&gt;In MacOs select terminal from the launchpad, or press &lt;code&gt;Command + Space&lt;/code&gt; and search for Terminal.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now let find our connected device using &lt;code&gt;adb devices&lt;/code&gt;, as follows:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;~$adb devices
List of devices attached
9889d5453742424c4d	device
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You may need to do this twice, as the first time may start the ADB daemon.
If no devices are shown, you may need to look in your device and allow the connection to the computer.
You must be sure that your USB cable allows data (some USB cables are for charging only).
So, you may need to try other cables.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Now let connect to the device using &lt;code&gt;adb shell&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;~$ adb shell
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;(Optionally) Now that we are connected to the device let look around and find the packages that we need to uninstall&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;dream2qlteue:/ $ whoami
shell

dream2qlteue:/ $ id
uid=2000(shell) gid=2000(shell) groups=2000(shell),1004(input),1007(log),1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin),3002(net_bt),3003(inet),3006(net_bw_stats),3009(readproc),3011(uhid) context=u:r:shell:s0

dream2qlteue:/ $ pm list packages |grep acebook
package:com.facebook.services
package:com.facebook.katana
package:com.facebook.system
package:com.facebook.appmanager
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Notice that we &lt;code&gt;grep&lt;/code&gt; for Facebook in the list of packages.
But, if you want to see all the packages, just use &lt;code&gt;pm list packages&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Let uninstall Facebook packages, using &lt;code&gt;pm uninstall --user 0 com.facebook.&amp;lt;package&amp;gt;&lt;/code&gt;&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;dream2qlteue:/ $ pm uninstall --user &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;0&lt;/span&gt; com.facebook.katana
Success

dream2qlteue:/ $ pm uninstall --user &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;0&lt;/span&gt; com.facebook.services
Success

dream2qlteue:/ $ pm uninstall --user &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;0&lt;/span&gt; com.facebook.appmanager
Success

dream2qlteue:/ $ pm uninstall --user &lt;span style=&#34;color:#ff0;font-weight:bold&#34;&gt;0&lt;/span&gt; com.facebook.system
Success
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Let exist from the device.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre style=&#34;color:#e5e5e5;background-color:#000;-moz-tab-size:4;-o-tab-size:4;tab-size:4&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;dream2qlteue:/ $ &lt;span style=&#34;color:#fff;font-weight:bold&#34;&gt;exit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;You can now disconnect the device.&lt;/p&gt;
&lt;h4 id=&#34;4-cleanup&#34;&gt;4. Cleanup&lt;/h4&gt;
&lt;p&gt;There are two areas that we need to clean up.
First in the device we want to turn off USB debugging and remove Development options, as follows:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Go to settings =&amp;gt; Development options and turn of USB Debugging
2- At the top of the Development options page, turn off it.
This will remove them from settings.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Second, optionally uninstall ADB from your computer. This can be done easily in Linux with &lt;code&gt;sudo apt-get remove android-tools-adb android-tools-fastboot&lt;/code&gt;.
Uninstalling ABD in other platforms are left as an exercise to the reader.&lt;/p&gt;
&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h3&gt;
&lt;p&gt;This post showed how to uninstall Facebook from an Android device.
However, WhatsApp, Instagram, and Messenger are also Facebook property and poses similar data collection concerns.
What is more troubling is the fact that Facebook’s plans to unify all of these applications (see “&lt;a href=&#34;https://bgr.com/2020/08/17/facebook-messenger-instagram-unified-chat-no-whatsapp-support/&#34;&gt;Facebook starts ambitious plan to unify all of its instant messenger apps&lt;/a&gt;”.&lt;/p&gt;
</description>
    </item>
    
  </channel>
</rss>
