publish blog: Digital Cleansing - Mastodon

This commit is contained in:
Ali Mürteza Yeşil 2020-07-24 23:37:30 +06:00
parent d7b9ea3da0
commit 91d4d993be
18 changed files with 1029 additions and 430 deletions

View File

@ -0,0 +1,58 @@
title: Digital Cleansing - Mastodon
date: 2020-07-24 15:23
tags: digitalcleansing, privacy, fediverse, 100DaysToOffload
summary: Centralized microblogging platforms are rich in user data and attractive to cyber criminals. I recommend decentralized alternatives.
status: published
comment: https://fosstodon.org/@murtezayesil/104570041953140255
hundreddaystooffload: 8
## Microblogging
[Microblogging](https://en.wikipedia.org/wiki/Microblogging "Read in more details on Wikipedia") is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.
Do you know someone who uses a microblogging platform?
I guess you do. I will go as far as saying that may be you are using a microblogging platform.
Surprised? Don't be.
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.
Every microblogging platform implements it differently.
Twitter is a place where everybody can see everybody else's posts.
Facebook is for only reading posts from people you know in real life.
Instagram is for posting photos and short videos.
Tumblr is for normal blogging first and microblogging in form of comments.
Reddit is similar to Tumblr except that it is more categorized and structured imo.
All of the platforms I just mentioned, except Fediverse, has something in common. __They are centralized__. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.
### Fediverse is different
1. Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.
2. Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.
---
Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.
---
## Mastodon
I heard about Mastodon in a [IRL Podcast](https://irlpodcast.org/season4/episode6/ "Decentralize It - S4/E6"). I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.
<div style="text-align: center;">
<iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'></iframe>
</div>
For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden.
---
# Deploying a Mastodon instance for my family
I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)
I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.
[Mastodon's documentation](https://docs.joinmastodon.org/ "What is Mastodon?")'s installation guide part expects a SysAdmin to know more than I do. I also got help from [another guide](https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/ "Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate"). But after try installing Mastodon twice and rollback once, [I got a working instance](https://yesil.club/). Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.
Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.

View File

@ -0,0 +1,16 @@
title: I Love Fediverse 😀️
date: 2020-12-31 23:59
tags: 100DaysToOffload
summary:
status: draft
comment: https://fosstodon.org/@murtezayesil/
hundreddaystooffload:
You should know by now that
1. Fediverse is decentralized. There are many small servers communicating with each other. They collectively form Fediverse.
2. Fediverse is formed by many instances running as different platforms. Therefore Fediverse is many platforms.
Some instance (running Mastodon or Pleroma) is a microblogging platform, other instance running PeerTube is a video sharing platform, another instance running PixelFed is an image sharing platform and some other instance running Funkwhale is a music sharing/streaming platform. Someone on Mastodon can like a music on Funkwhale and comment (aka toot) to a photo on PixelFed. You can comment to a video on PeerTube with your PixelFed account and that video creator can reply to your comment and you would get a notification on PixelFed.
It isn't a platform that is only for one thing. It is the combination of many different platforms. There are many servers running different services and all connect to each other. Together they form Fediverse. We call those servers, instances. Some servers run Mastodon or Pleroma instance to offer microblogging

View File

@ -50,6 +50,8 @@
<h1>Archives for Ali Murteza Yesil</h1>
<dl>
<dt>Fri 24 July 2020</dt>
<dd><a href="https://murtezayesil.me/digital-cleansing-mastodon.html">Digital Cleansing - Mastodon</a></dd>
<dt>Wed 22 July 2020</dt>
<dd><a href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html">$ADB_VENDOR_KEYS is not set</a></dd>
<dt>Mon 20 July 2020</dt>

View File

@ -49,72 +49,77 @@
<aside id="featured" class="body">
<article>
<h1 class="entry-title"><a href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html">$ADB_VENDOR_KEYS is not set</a></h1>
<h1 class="entry-title"><a href="https://murtezayesil.me/digital-cleansing-mastodon.html">Digital Cleansing - Mastodon</a></h1>
<footer class="post-info">
<span>Fri 24 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/fediverse.html">fediverse</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>8</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Microblogging</h2>
<p><a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia">Microblogging</a> is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.<br>
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.</p>
<p>Do you know someone who uses a microblogging platform?<br>
I guess you do. I will go as far as saying that may be you are using a microblogging platform.<br>
Surprised? Don't be.<br>
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.</p>
<p>Every microblogging platform implements it differently.<br>
Twitter is a place where everybody can see everybody else's posts.<br>
Facebook is for only reading posts from people you know in real life.<br>
Instagram is for posting photos and short videos.<br>
Tumblr is for normal blogging first and microblogging in form of comments.<br>
Reddit is similar to Tumblr except that it is more categorized and structured imo.</p>
<p>All of the platforms I just mentioned, except Fediverse, has something in common. <strong>They are centralized</strong>. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.</p>
<h3>Fediverse is different</h3>
<ol>
<li>
<p>Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.</p>
</li>
<li>
<p>Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.</p>
</li>
</ol>
<hr>
<p>Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.</p>
<hr>
<h2>Mastodon</h2>
<p>I heard about Mastodon in a <a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6">IRL Podcast</a>. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.<br>
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.</p>
<div style="text-align: center;">
<iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'></iframe>
</div>
<p>For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. </p>
<hr>
<h1>Deploying a Mastodon instance for my family</h1>
<p>I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)</p>
<p>I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.</p>
<p><a href="https://docs.joinmastodon.org/" title="What is Mastodon?">Mastodon's documentation</a>'s installation guide part expects a SysAdmin to know more than I do. I also got help from <a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate">another guide</a>. But after try installing Mastodon twice and rollback once, <a href="https://yesil.club/">I got a working instance</a>. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.</p>
<p>Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.</p><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104570041953140255">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
<li><article class="hentry">
<header>
<h1><a href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html" rel="bookmark"
title="Permalink to $ADB_VENDOR_KEYS is not set">$ADB_VENDOR_KEYS is not set</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<span>Wed 22 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/android.html">android</a><a href="https://murtezayesil.me/tag/error.html">error</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>7</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Story</h2>
<p>I like <a href="https://github.com/Genymobile/scrcpy" title="scrcpy by Genymobile - GitHub">scrcpy</a>. It allows me to cast my phone to computer and use it ther thanks to cable technology (wifi works too). So, after hopping to <img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/123/static/a76f54a7dbcd8afd.png" width="15em" height="15em"> Pop_OS! I reinstalled adb and scrcpy.
But this time scrcpy didn't work. Instead it throw this error:<br>
<blockquote style="font-style: normal;">
<code>
adb: error: failed to get feature set: device unauthorized.<br>
This adb server's $ADB_VENDOR_KEYS is not set<br>
Try 'adb kill-server' if that seems wrong.<br>
Otherwise check for a confirmation dialog on your device.<br>
ERROR: "adb push" returned with value 1
</code>
</blockquote> </p>
<h2>Easy way | Grant access using prompt on the phone</h2>
<p>After enabling <a href="https://www.howtogeek.com/129728/how-to-access-the-developer-options-menu-and-enable-usb-debugging-on-android-4.2/">USB debugging in Developer options</a> connect phone to computer and run <code>scrcpy</code>. Phone should prompt you for granting access to computer. All you have to do is accept and connection will be granted 🎉️</p>
<hr>
<p>This prompt didn't appear on my phone. As it turns out, that prompt doesn't works as expected on some custom ROMS. After some digging online, I came across <a href="https://stackoverflow.com/a/26309956">this answer on stack <strong>overflow</strong></a>. Which leads to a <a href="https://android.googlesource.com/platform/system/core/+/d5fcafaf41f8ec90986c813f75ec78402096af2d">commit message for (new) adb authentication</a> implemented in 2012. This prompt copies ~/.android/adbkey.pub on computer, <code>$ADB_VENDOR_KEYS</code>, to <code>/data/misc/adb/adb_keys</code> file in phone's memory. since prompt isn't working for me I have to add that key manually 😕️</p>
<h2>Littler harder way | copy-paste using Termux + root</h2>
<p>Since <code>/data/misc/adb/adb_keys</code> file is offlimits for the user, we need root priviledges for this method.</p>
<ol>
<li>Copy ~/.android/adbkey.pub to phone's memory</li>
<li>Open Termux and install sudo &gt; <code>pkg install tsu</code></li>
<li>Navigate to where file adbkey.pub is. I'm using Redmi Note 4 and its <code>/sdcard</code> directory is used for .<br>
File is at <code>/sdcard/adbkey.pub</code> in my case &gt; <code>cd /sdcard</code></li>
<li>Copy <code>adbkey.pub</code> to <code>/data/misc/adb/adb_keys</code> with sudo priviledges &gt; <code>sudo cp adbkey.pub /data/misc/adb/adb_keys</code> </li>
<li>Double check if content of <code>/data/misc/adb/adb_keys</code> on phone and <code>~/.android/adbkey.pub</code> on computer are the same</li>
<li>Enjoy 😊️</li>
</ol>
<video width="720" height="auto" controls="controls">
<source src="https://murtezayesil.me/videos/copying_adb_vendor_keys_using_termux_and_root.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<hr>
<h2>Hard way | copy-paste using TWRP</h2>
<p>This is the "no-root" hard method. You will still need root priviledges to edit <code>/data/misc/adb/adb_keys</code>. If your phone isn't rooted but has TWRP, GREAT. TWRP has root priviledges and a file manager.</p>
<ol>
<li>Boot into TWRP by holding Vol+ and Power keys while the phone is turned off.</li>
<li>Connect phone to computer</li>
<li>Copy ~/.android/adbkey.pub to phone's memory</li>
<li>Go to Advanced &gt; File manager</li>
<li>Navigate to where adbkey.pub was copied to. I am using Redmi Note 4 and MTP connects to <code>/sdcard</code> on this device.</li>
<li>Copy <code>adbkey.pub</code> to <code>/data/misc/adb/adb_keys</code></li>
<li>Delete <code>adb_keys</code> in </li>
<li>Rename <code>adbkey.pub</code> to <code>abd_keys</code></li>
<li>Double check if content of <code>/data/misc/adb/adb_keys</code> on phone and <code>~/.android/adbkey.pub</code> on computer are the same</li>
<li>Enjoy 😊️</li>
</ol>
<p><img alt="SCRCPY is casting Android phone's screen on to computer after manually copying computer's adbkey.pub file to phone's adb_keys file" src="images/scrcpy_casting_android_to_computer.png" title="scrcpy is finally working"></p>
<hr>
<p>It was a little annoying adventure for me to find where the adbkey.pub suppose to go. I am not immitated with having to do that thing manually. I was annoyed that this information isn't out there in Android documentations and requires reading answers from 2014 on stack <strong>overflow</strong>.</p>
<h3>I hope this guide was helpful to you 😊️</h3><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104558575376752243">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
</footer><!-- /.post-info --> </div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>

View File

@ -48,7 +48,7 @@
</header><!-- /#banner -->
<section id="content" class="body">
<h1>Authors on Ali Murteza Yesil</h1> <li><a href="https://murtezayesil.me/author/ali-murteza-yesil.html">Ali Murteza Yesil</a> (7)</li>
<h1>Authors on Ali Murteza Yesil</h1> <li><a href="https://murtezayesil.me/author/ali-murteza-yesil.html">Ali Murteza Yesil</a> (8)</li>
</section>
<section id="extras" class="body">

View File

@ -49,7 +49,7 @@
<h1>Categories on Ali Murteza Yesil</h1>
<ul>
<li><a href="https://murtezayesil.me/category/notes.html">Notes</a> (1)</li>
<li><a href="https://murtezayesil.me/category/tech.html">Tech</a> (6)</li>
<li><a href="https://murtezayesil.me/category/tech.html">Tech</a> (7)</li>
</ul>
<section id="extras" class="body">
<div class="blogroll">

View File

@ -49,72 +49,77 @@
<aside id="featured" class="body">
<article>
<h1 class="entry-title"><a href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html">$ADB_VENDOR_KEYS is not set</a></h1>
<h1 class="entry-title"><a href="https://murtezayesil.me/digital-cleansing-mastodon.html">Digital Cleansing - Mastodon</a></h1>
<footer class="post-info">
<span>Fri 24 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/fediverse.html">fediverse</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>8</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Microblogging</h2>
<p><a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia">Microblogging</a> is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.<br>
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.</p>
<p>Do you know someone who uses a microblogging platform?<br>
I guess you do. I will go as far as saying that may be you are using a microblogging platform.<br>
Surprised? Don't be.<br>
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.</p>
<p>Every microblogging platform implements it differently.<br>
Twitter is a place where everybody can see everybody else's posts.<br>
Facebook is for only reading posts from people you know in real life.<br>
Instagram is for posting photos and short videos.<br>
Tumblr is for normal blogging first and microblogging in form of comments.<br>
Reddit is similar to Tumblr except that it is more categorized and structured imo.</p>
<p>All of the platforms I just mentioned, except Fediverse, has something in common. <strong>They are centralized</strong>. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.</p>
<h3>Fediverse is different</h3>
<ol>
<li>
<p>Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.</p>
</li>
<li>
<p>Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.</p>
</li>
</ol>
<hr>
<p>Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.</p>
<hr>
<h2>Mastodon</h2>
<p>I heard about Mastodon in a <a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6">IRL Podcast</a>. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.<br>
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.</p>
<div style="text-align: center;">
<iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'></iframe>
</div>
<p>For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. </p>
<hr>
<h1>Deploying a Mastodon instance for my family</h1>
<p>I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)</p>
<p>I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.</p>
<p><a href="https://docs.joinmastodon.org/" title="What is Mastodon?">Mastodon's documentation</a>'s installation guide part expects a SysAdmin to know more than I do. I also got help from <a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate">another guide</a>. But after try installing Mastodon twice and rollback once, <a href="https://yesil.club/">I got a working instance</a>. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.</p>
<p>Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.</p><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104570041953140255">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
<li><article class="hentry">
<header>
<h1><a href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html" rel="bookmark"
title="Permalink to $ADB_VENDOR_KEYS is not set">$ADB_VENDOR_KEYS is not set</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<span>Wed 22 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/android.html">android</a><a href="https://murtezayesil.me/tag/error.html">error</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>7</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Story</h2>
<p>I like <a href="https://github.com/Genymobile/scrcpy" title="scrcpy by Genymobile - GitHub">scrcpy</a>. It allows me to cast my phone to computer and use it ther thanks to cable technology (wifi works too). So, after hopping to <img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/123/static/a76f54a7dbcd8afd.png" width="15em" height="15em"> Pop_OS! I reinstalled adb and scrcpy.
But this time scrcpy didn't work. Instead it throw this error:<br>
<blockquote style="font-style: normal;">
<code>
adb: error: failed to get feature set: device unauthorized.<br>
This adb server's $ADB_VENDOR_KEYS is not set<br>
Try 'adb kill-server' if that seems wrong.<br>
Otherwise check for a confirmation dialog on your device.<br>
ERROR: "adb push" returned with value 1
</code>
</blockquote> </p>
<h2>Easy way | Grant access using prompt on the phone</h2>
<p>After enabling <a href="https://www.howtogeek.com/129728/how-to-access-the-developer-options-menu-and-enable-usb-debugging-on-android-4.2/">USB debugging in Developer options</a> connect phone to computer and run <code>scrcpy</code>. Phone should prompt you for granting access to computer. All you have to do is accept and connection will be granted 🎉️</p>
<hr>
<p>This prompt didn't appear on my phone. As it turns out, that prompt doesn't works as expected on some custom ROMS. After some digging online, I came across <a href="https://stackoverflow.com/a/26309956">this answer on stack <strong>overflow</strong></a>. Which leads to a <a href="https://android.googlesource.com/platform/system/core/+/d5fcafaf41f8ec90986c813f75ec78402096af2d">commit message for (new) adb authentication</a> implemented in 2012. This prompt copies ~/.android/adbkey.pub on computer, <code>$ADB_VENDOR_KEYS</code>, to <code>/data/misc/adb/adb_keys</code> file in phone's memory. since prompt isn't working for me I have to add that key manually 😕️</p>
<h2>Littler harder way | copy-paste using Termux + root</h2>
<p>Since <code>/data/misc/adb/adb_keys</code> file is offlimits for the user, we need root priviledges for this method.</p>
<ol>
<li>Copy ~/.android/adbkey.pub to phone's memory</li>
<li>Open Termux and install sudo &gt; <code>pkg install tsu</code></li>
<li>Navigate to where file adbkey.pub is. I'm using Redmi Note 4 and its <code>/sdcard</code> directory is used for .<br>
File is at <code>/sdcard/adbkey.pub</code> in my case &gt; <code>cd /sdcard</code></li>
<li>Copy <code>adbkey.pub</code> to <code>/data/misc/adb/adb_keys</code> with sudo priviledges &gt; <code>sudo cp adbkey.pub /data/misc/adb/adb_keys</code> </li>
<li>Double check if content of <code>/data/misc/adb/adb_keys</code> on phone and <code>~/.android/adbkey.pub</code> on computer are the same</li>
<li>Enjoy 😊️</li>
</ol>
<video width="720" height="auto" controls="controls">
<source src="https://murtezayesil.me/videos/copying_adb_vendor_keys_using_termux_and_root.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<hr>
<h2>Hard way | copy-paste using TWRP</h2>
<p>This is the "no-root" hard method. You will still need root priviledges to edit <code>/data/misc/adb/adb_keys</code>. If your phone isn't rooted but has TWRP, GREAT. TWRP has root priviledges and a file manager.</p>
<ol>
<li>Boot into TWRP by holding Vol+ and Power keys while the phone is turned off.</li>
<li>Connect phone to computer</li>
<li>Copy ~/.android/adbkey.pub to phone's memory</li>
<li>Go to Advanced &gt; File manager</li>
<li>Navigate to where adbkey.pub was copied to. I am using Redmi Note 4 and MTP connects to <code>/sdcard</code> on this device.</li>
<li>Copy <code>adbkey.pub</code> to <code>/data/misc/adb/adb_keys</code></li>
<li>Delete <code>adb_keys</code> in </li>
<li>Rename <code>adbkey.pub</code> to <code>abd_keys</code></li>
<li>Double check if content of <code>/data/misc/adb/adb_keys</code> on phone and <code>~/.android/adbkey.pub</code> on computer are the same</li>
<li>Enjoy 😊️</li>
</ol>
<p><img alt="SCRCPY is casting Android phone's screen on to computer after manually copying computer's adbkey.pub file to phone's adb_keys file" src="images/scrcpy_casting_android_to_computer.png" title="scrcpy is finally working"></p>
<hr>
<p>It was a little annoying adventure for me to find where the adbkey.pub suppose to go. I am not immitated with having to do that thing manually. I was annoyed that this information isn't out there in Android documentations and requires reading answers from 2014 on stack <strong>overflow</strong>.</p>
<h3>I hope this guide was helpful to you 😊️</h3><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104558575376752243">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
</footer><!-- /.post-info --> </div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>

View File

@ -0,0 +1,172 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Digital Cleansing - Mastodon</title>
<link rel="stylesheet" href="https://murtezayesil.me/theme/css/main.css" />
<link href="https://murtezayesil.me/feeds/atom.xml" type="application/atom+xml" rel="alternate" title="Ali Murteza Yesil Atom Feed" />
<link href="https://murtezayesil.me/feeds/rss.xml" type="application/rss+xml" rel="alternate" title="Ali Murteza Yesil RSS Feed" />
<!-- This border added via BLACK_LIVES_MATTER toggle in site settings -->
<style>
body {
border-width: 5em ;
border-color: #000000 ;
border-style: none solid solid solid ; /* top border : none, right bottom left : solid */
}
</style>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body id="index" class="home">
<!-- This banner added via BLACK_LIVES_MATTER toggle in site settings -->
<div style="background-color: black; padding: 1em; margin-bottom: .8em">
<h1 style="text-align: center; margin-bottom: 0em"><a href="https://blacklivesmatter.com/" style="color: #fce21b; font-size: 2em">Black Lives Matter</a></h1>
</div>
<header id="banner" class="body">
<h1><a href="https://murtezayesil.me/">Ali Murteza Yesil <strong>Blog</strong></a></h1>
<nav><ul>
<li><a href="https://murtezayesil.me/pages/about.html">About</a></li>
<li><a href="https://murtezayesil.me/pages/contact.html">Contact</a></li>
</ul>
<form id="search" action"#" onsubmit="javascript:window.open('https://duckduckgo.com/?q='+document.getElementById('keywords').value+'+site:https://murtezayesil.me');">
<input id="keywords" type="text" />
</form>
</nav>
<div id="submenu">
<ul>
<li><a href="https://murtezayesil.me/category/notes.html">Notes</a></li>
<li class="active"><a href="https://murtezayesil.me/category/tech.html">Tech</a></li>
</ul>
<div>
</header><!-- /#banner -->
<section id="content" class="body">
<article>
<header>
<h1 class="entry-title">
<a href="https://murtezayesil.me/digital-cleansing-mastodon.html" rel="bookmark"
title="Permalink to Digital Cleansing - Mastodon">Digital Cleansing - Mastodon</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<span>Fri 24 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/fediverse.html">fediverse</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>8</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --> <h2>Microblogging</h2>
<p><a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia">Microblogging</a> is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.<br>
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.</p>
<p>Do you know someone who uses a microblogging platform?<br>
I guess you do. I will go as far as saying that may be you are using a microblogging platform.<br>
Surprised? Don't be.<br>
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.</p>
<p>Every microblogging platform implements it differently.<br>
Twitter is a place where everybody can see everybody else's posts.<br>
Facebook is for only reading posts from people you know in real life.<br>
Instagram is for posting photos and short videos.<br>
Tumblr is for normal blogging first and microblogging in form of comments.<br>
Reddit is similar to Tumblr except that it is more categorized and structured imo.</p>
<p>All of the platforms I just mentioned, except Fediverse, has something in common. <strong>They are centralized</strong>. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.</p>
<h3>Fediverse is different</h3>
<ol>
<li>
<p>Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.</p>
</li>
<li>
<p>Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.</p>
</li>
</ol>
<hr>
<p>Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.</p>
<hr>
<h2>Mastodon</h2>
<p>I heard about Mastodon in a <a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6">IRL Podcast</a>. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.<br>
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.</p>
<div style="text-align: center;">
<iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'></iframe>
</div>
<p>For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. </p>
<hr>
<h1>Deploying a Mastodon instance for my family</h1>
<p>I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)</p>
<p>I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.</p>
<p><a href="https://docs.joinmastodon.org/" title="What is Mastodon?">Mastodon's documentation</a>'s installation guide part expects a SysAdmin to know more than I do. I also got help from <a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate">another guide</a>. But after try installing Mastodon twice and rollback once, <a href="https://yesil.club/">I got a working instance</a>. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.</p>
<p>Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.</p>
</div><!-- /.entry-content -->
<!-- #100DaysToOffload message -->
<p>Day <strong>8</strong> of <a href="https://100daystooffload.com/" title="click to read about the challenge">#100DaysToOffload</a></p>
<!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104570041953140255">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</section>
<section id="extras" class="body">
<div class="blogroll">
<h2>blogroll</h2>
<ul>
<li><a href="https://kevq.uk">Kev Quirk</a></li>
<li><a href="https://mikestone.me">Mike Stone</a></li>
<li><a href="https://yarmo.eu/">Yarmo Mackenbach</a></li>
</ul>
</div><!-- /.blogroll -->
<div class="social">
<h2>social</h2>
<ul>
<li><a href="https://murtezayesil.me/feeds/atom.xml" type="application/atom+xml" rel="alternate">atom feed</a></li>
<li><a href="https://murtezayesil.me/feeds/rss.xml" type="application/rss+xml" rel="alternate">rss feed</a></li>
<li><a href="https://fosstodon.org/@murtezayesil" rel="me">Fostodon</a></li>
</ul>
</div><!-- /.social -->
</section><!-- /#extras -->
<footer id="contentinfo" class="body">
<p>Powered by <a href="http://getpelican.com/">Pelican</a>. Theme <a href="https://github.com/blueicefield/pelican-blueidea/">blueidea</a>, inspired by the default theme.</p>
</footer><!-- /#contentinfo -->
<!-- IndieWeb Profile -->
<!-- ToDo : Make IndieWeb Profile auto generating according to site preferences -->
<!-- This profile is created by following https://kevq.uk/how-to-create-an-indieweb-profile/ blog post. Thanks to Kev Quirk -->
<section style="display: none;" class="h-card">
<!-- About me -->
<span class="p-name">Ali Murteza Yesil</span>
<span class="p-note">I'm a student, privacy advocate and SysAdmin wannabe. I was born in Turkey but I live abroad.</span>
<!-- Profile picture -->
<img class="u-photo" src="https://murtezayesil.me/images/avatar_polygon_1.png"/>
<!-- My location -->
<!-- <span class="p-locality">City, Country or Country</span> -->
<!-- Links -->
<a class="u-url u-uid" href="https://murtezayesil.me"></a>
<!-- Mail Template <a class="u-email" rel="me" href="mailto:USERNAME@SERVICEPROVIDER"></a> -->
<a class="u-url" rel="me" href="https://fosstodon.org/@murtezayesil"></a>
<!-- Twitter Example <a class="u-url" rel="me" href="https://twitter.com/USERNAME"></a> -->
<!-- Template <a class="u-url" rel="me" href="https://URL"></a> -->
<!-- Categories -->
<span class="p-category">Blogging</span>
<span class="p-category">Open Source Software</span>
<span class="p-category">Privacy</span>
</section>
</body>
</html>

View File

@ -0,0 +1,140 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>I Love Fediverse 😀️</title>
<link rel="stylesheet" href="https://murtezayesil.me/theme/css/main.css" />
<link href="https://murtezayesil.me/feeds/atom.xml" type="application/atom+xml" rel="alternate" title="Ali Murteza Yesil Atom Feed" />
<link href="https://murtezayesil.me/feeds/rss.xml" type="application/rss+xml" rel="alternate" title="Ali Murteza Yesil RSS Feed" />
<!-- This border added via BLACK_LIVES_MATTER toggle in site settings -->
<style>
body {
border-width: 5em ;
border-color: #000000 ;
border-style: none solid solid solid ; /* top border : none, right bottom left : solid */
}
</style>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body id="index" class="home">
<!-- This banner added via BLACK_LIVES_MATTER toggle in site settings -->
<div style="background-color: black; padding: 1em; margin-bottom: .8em">
<h1 style="text-align: center; margin-bottom: 0em"><a href="https://blacklivesmatter.com/" style="color: #fce21b; font-size: 2em">Black Lives Matter</a></h1>
</div>
<header id="banner" class="body">
<h1><a href="https://murtezayesil.me/">Ali Murteza Yesil <strong>Blog</strong></a></h1>
<nav><ul>
<li><a href="https://murtezayesil.me/pages/about.html">About</a></li>
<li><a href="https://murtezayesil.me/pages/contact.html">Contact</a></li>
</ul>
<form id="search" action"#" onsubmit="javascript:window.open('https://duckduckgo.com/?q='+document.getElementById('keywords').value+'+site:https://murtezayesil.me');">
<input id="keywords" type="text" />
</form>
</nav>
<div id="submenu">
<ul>
<li><a href="https://murtezayesil.me/category/notes.html">Notes</a></li>
<li><a href="https://murtezayesil.me/category/tech.html">Tech</a></li>
</ul>
<div>
</header><!-- /#banner -->
<section id="content" class="body">
<article>
<header>
<h1 class="entry-title">
<a href="https://murtezayesil.me/drafts/i-love-fediverse.html" rel="bookmark"
title="Permalink to I Love Fediverse 😀️">I Love Fediverse 😀️</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<span>Thu 31 December 2020</span>
<span>| in <a href="https://murtezayesil.me/category/draft.html">draft</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span>
</footer><!-- /.post-info --> <p>You should know by now that</p>
<ol>
<li>
<p>Fediverse is decentralized. There are many small servers communicating with each other. They collectively form Fediverse.</p>
</li>
<li>
<p>Fediverse is formed by many instances running as different platforms. Therefore Fediverse is many platforms.</p>
</li>
</ol>
<p>Some instance (running Mastodon or Pleroma) is a microblogging platform, other instance running PeerTube is a video sharing platform, another instance running PixelFed is an image sharing platform and some other instance running Funkwhale is a music sharing/streaming platform. Someone on Mastodon can like a music on Funkwhale and comment (aka toot) to a photo on PixelFed. You can comment to a video on PeerTube with your PixelFed account and that video creator can reply to your comment and you would get a notification on PixelFed.
It isn't a platform that is only for one thing. It is the combination of many different platforms. There are many servers running different services and all connect to each other. Together they form Fediverse. We call those servers, instances. Some servers run Mastodon or Pleroma instance to offer microblogging </p>
</div><!-- /.entry-content -->
<!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</section>
<section id="extras" class="body">
<div class="blogroll">
<h2>blogroll</h2>
<ul>
<li><a href="https://kevq.uk">Kev Quirk</a></li>
<li><a href="https://mikestone.me">Mike Stone</a></li>
<li><a href="https://yarmo.eu/">Yarmo Mackenbach</a></li>
</ul>
</div><!-- /.blogroll -->
<div class="social">
<h2>social</h2>
<ul>
<li><a href="https://murtezayesil.me/feeds/atom.xml" type="application/atom+xml" rel="alternate">atom feed</a></li>
<li><a href="https://murtezayesil.me/feeds/rss.xml" type="application/rss+xml" rel="alternate">rss feed</a></li>
<li><a href="https://fosstodon.org/@murtezayesil" rel="me">Fostodon</a></li>
</ul>
</div><!-- /.social -->
</section><!-- /#extras -->
<footer id="contentinfo" class="body">
<p>Powered by <a href="http://getpelican.com/">Pelican</a>. Theme <a href="https://github.com/blueicefield/pelican-blueidea/">blueidea</a>, inspired by the default theme.</p>
</footer><!-- /#contentinfo -->
<!-- IndieWeb Profile -->
<!-- ToDo : Make IndieWeb Profile auto generating according to site preferences -->
<!-- This profile is created by following https://kevq.uk/how-to-create-an-indieweb-profile/ blog post. Thanks to Kev Quirk -->
<section style="display: none;" class="h-card">
<!-- About me -->
<span class="p-name">Ali Murteza Yesil</span>
<span class="p-note">I'm a student, privacy advocate and SysAdmin wannabe. I was born in Turkey but I live abroad.</span>
<!-- Profile picture -->
<img class="u-photo" src="https://murtezayesil.me/images/avatar_polygon_1.png"/>
<!-- My location -->
<!-- <span class="p-locality">City, Country or Country</span> -->
<!-- Links -->
<a class="u-url u-uid" href="https://murtezayesil.me"></a>
<!-- Mail Template <a class="u-email" rel="me" href="mailto:USERNAME@SERVICEPROVIDER"></a> -->
<a class="u-url" rel="me" href="https://fosstodon.org/@murtezayesil"></a>
<!-- Twitter Example <a class="u-url" rel="me" href="https://twitter.com/USERNAME"></a> -->
<!-- Template <a class="u-url" rel="me" href="https://URL"></a> -->
<!-- Categories -->
<span class="p-category">Blogging</span>
<span class="p-category">Open Source Software</span>
<span class="p-category">Privacy</span>
</section>
</body>
</html>

View File

@ -1,5 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Ali Murteza Yesil</title><link href="https://murtezayesil.me/" rel="alternate"></link><link href="https://murtezayesil.me/feeds/atom.xml" rel="self"></link><id>https://murtezayesil.me/</id><updated>2020-07-22T00:00:00+06:00</updated><subtitle>Blog</subtitle><entry><title>$ADB_VENDOR_KEYS is not set</title><link href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html" rel="alternate"></link><published>2020-07-22T00:00:00+06:00</published><updated>2020-07-22T00:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-22:/adb_vendor_keys-is-not-set.html</id><summary type="html">&lt;p&gt;Authorizing adb when no prompt will come, the hard way.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Story&lt;/h2&gt;
<feed xmlns="http://www.w3.org/2005/Atom"><title>Ali Murteza Yesil</title><link href="https://murtezayesil.me/" rel="alternate"></link><link href="https://murtezayesil.me/feeds/atom.xml" rel="self"></link><id>https://murtezayesil.me/</id><updated>2020-07-24T15:23:00+06:00</updated><subtitle>Blog</subtitle><entry><title>Digital Cleansing - Mastodon</title><link href="https://murtezayesil.me/digital-cleansing-mastodon.html" rel="alternate"></link><published>2020-07-24T15:23:00+06:00</published><updated>2020-07-24T15:23:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-24:/digital-cleansing-mastodon.html</id><summary type="html">&lt;p&gt;Centralized microblogging platforms are rich in user data and attractive to cyber criminals. I recommend decentralized alternatives.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Microblogging&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia"&gt;Microblogging&lt;/a&gt; is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.&lt;br&gt;
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.&lt;/p&gt;
&lt;p&gt;Do you know someone who uses a microblogging platform?&lt;br&gt;
I guess you do. I will go as far as saying that may be you are using a microblogging platform.&lt;br&gt;
Surprised? Don't be.&lt;br&gt;
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.&lt;/p&gt;
&lt;p&gt;Every microblogging platform implements it differently.&lt;br&gt;
Twitter is a place where everybody can see everybody else's posts.&lt;br&gt;
Facebook is for only reading posts from people you know in real life.&lt;br&gt;
Instagram is for posting photos and short videos.&lt;br&gt;
Tumblr is for normal blogging first and microblogging in form of comments.&lt;br&gt;
Reddit is similar to Tumblr except that it is more categorized and structured imo.&lt;/p&gt;
&lt;p&gt;All of the platforms I just mentioned, except Fediverse, has something in common. &lt;strong&gt;They are centralized&lt;/strong&gt;. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.&lt;/p&gt;
&lt;h3&gt;Fediverse is different&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Mastodon&lt;/h2&gt;
&lt;p&gt;I heard about Mastodon in a &lt;a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6"&gt;IRL Podcast&lt;/a&gt;. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.&lt;br&gt;
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.&lt;/p&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. &lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;Deploying a Mastodon instance for my family&lt;/h1&gt;
&lt;p&gt;I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)&lt;/p&gt;
&lt;p&gt;I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.joinmastodon.org/" title="What is Mastodon?"&gt;Mastodon's documentation&lt;/a&gt;'s installation guide part expects a SysAdmin to know more than I do. I also got help from &lt;a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate"&gt;another guide&lt;/a&gt;. But after try installing Mastodon twice and rollback once, &lt;a href="https://yesil.club/"&gt;I got a working instance&lt;/a&gt;. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.&lt;/p&gt;
&lt;p&gt;Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.&lt;/p&gt;</content><category term="Tech"></category><category term="digitalcleansing"></category><category term="privacy"></category><category term="fediverse"></category><category term="100DaysToOffload"></category></entry><entry><title>$ADB_VENDOR_KEYS is not set</title><link href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html" rel="alternate"></link><published>2020-07-22T00:00:00+06:00</published><updated>2020-07-22T00:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-22:/adb_vendor_keys-is-not-set.html</id><summary type="html">&lt;p&gt;Authorizing adb when no prompt will come, the hard way.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Story&lt;/h2&gt;
&lt;p&gt;I like &lt;a href="https://github.com/Genymobile/scrcpy" title="scrcpy by Genymobile - GitHub"&gt;scrcpy&lt;/a&gt;. It allows me to cast my phone to computer and use it ther thanks to cable technology (wifi works too). So, after hopping to &lt;img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/123/static/a76f54a7dbcd8afd.png" width="15em" height="15em"&gt; Pop_OS! I reinstalled adb and scrcpy.
But this time scrcpy didn't work. Instead it throw this error:&lt;br&gt;
&lt;blockquote style="font-style: normal;"&gt;

File diff suppressed because one or more lines are too long

View File

@ -1,5 +1,44 @@
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Ali Murteza Yesil - Tech</title><link href="https://murtezayesil.me/" rel="alternate"></link><link href="https://murtezayesil.me/feeds/tech.atom.xml" rel="self"></link><id>https://murtezayesil.me/</id><updated>2020-07-22T00:00:00+06:00</updated><subtitle>Blog</subtitle><entry><title>$ADB_VENDOR_KEYS is not set</title><link href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html" rel="alternate"></link><published>2020-07-22T00:00:00+06:00</published><updated>2020-07-22T00:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-22:/adb_vendor_keys-is-not-set.html</id><summary type="html">&lt;p&gt;Authorizing adb when no prompt will come, the hard way.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Story&lt;/h2&gt;
<feed xmlns="http://www.w3.org/2005/Atom"><title>Ali Murteza Yesil - Tech</title><link href="https://murtezayesil.me/" rel="alternate"></link><link href="https://murtezayesil.me/feeds/tech.atom.xml" rel="self"></link><id>https://murtezayesil.me/</id><updated>2020-07-24T15:23:00+06:00</updated><subtitle>Blog</subtitle><entry><title>Digital Cleansing - Mastodon</title><link href="https://murtezayesil.me/digital-cleansing-mastodon.html" rel="alternate"></link><published>2020-07-24T15:23:00+06:00</published><updated>2020-07-24T15:23:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-24:/digital-cleansing-mastodon.html</id><summary type="html">&lt;p&gt;Centralized microblogging platforms are rich in user data and attractive to cyber criminals. I recommend decentralized alternatives.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Microblogging&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia"&gt;Microblogging&lt;/a&gt; is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.&lt;br&gt;
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.&lt;/p&gt;
&lt;p&gt;Do you know someone who uses a microblogging platform?&lt;br&gt;
I guess you do. I will go as far as saying that may be you are using a microblogging platform.&lt;br&gt;
Surprised? Don't be.&lt;br&gt;
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.&lt;/p&gt;
&lt;p&gt;Every microblogging platform implements it differently.&lt;br&gt;
Twitter is a place where everybody can see everybody else's posts.&lt;br&gt;
Facebook is for only reading posts from people you know in real life.&lt;br&gt;
Instagram is for posting photos and short videos.&lt;br&gt;
Tumblr is for normal blogging first and microblogging in form of comments.&lt;br&gt;
Reddit is similar to Tumblr except that it is more categorized and structured imo.&lt;/p&gt;
&lt;p&gt;All of the platforms I just mentioned, except Fediverse, has something in common. &lt;strong&gt;They are centralized&lt;/strong&gt;. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.&lt;/p&gt;
&lt;h3&gt;Fediverse is different&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Mastodon&lt;/h2&gt;
&lt;p&gt;I heard about Mastodon in a &lt;a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6"&gt;IRL Podcast&lt;/a&gt;. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.&lt;br&gt;
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.&lt;/p&gt;
&lt;div style="text-align: center;"&gt;
&lt;iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'&gt;&lt;/iframe&gt;
&lt;/div&gt;
&lt;p&gt;For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. &lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;Deploying a Mastodon instance for my family&lt;/h1&gt;
&lt;p&gt;I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)&lt;/p&gt;
&lt;p&gt;I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.&lt;/p&gt;
&lt;p&gt;&lt;a href="https://docs.joinmastodon.org/" title="What is Mastodon?"&gt;Mastodon's documentation&lt;/a&gt;'s installation guide part expects a SysAdmin to know more than I do. I also got help from &lt;a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate"&gt;another guide&lt;/a&gt;. But after try installing Mastodon twice and rollback once, &lt;a href="https://yesil.club/"&gt;I got a working instance&lt;/a&gt;. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.&lt;/p&gt;
&lt;p&gt;Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.&lt;/p&gt;</content><category term="Tech"></category><category term="digitalcleansing"></category><category term="privacy"></category><category term="fediverse"></category><category term="100DaysToOffload"></category></entry><entry><title>$ADB_VENDOR_KEYS is not set</title><link href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html" rel="alternate"></link><published>2020-07-22T00:00:00+06:00</published><updated>2020-07-22T00:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-22:/adb_vendor_keys-is-not-set.html</id><summary type="html">&lt;p&gt;Authorizing adb when no prompt will come, the hard way.&lt;/p&gt;</summary><content type="html">&lt;h2&gt;Story&lt;/h2&gt;
&lt;p&gt;I like &lt;a href="https://github.com/Genymobile/scrcpy" title="scrcpy by Genymobile - GitHub"&gt;scrcpy&lt;/a&gt;. It allows me to cast my phone to computer and use it ther thanks to cable technology (wifi works too). So, after hopping to &lt;img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/123/static/a76f54a7dbcd8afd.png" width="15em" height="15em"&gt; Pop_OS! I reinstalled adb and scrcpy.
But this time scrcpy didn't work. Instead it throw this error:&lt;br&gt;
&lt;blockquote style="font-style: normal;"&gt;

View File

@ -49,72 +49,77 @@
<aside id="featured" class="body">
<article>
<h1 class="entry-title"><a href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html">$ADB_VENDOR_KEYS is not set</a></h1>
<h1 class="entry-title"><a href="https://murtezayesil.me/digital-cleansing-mastodon.html">Digital Cleansing - Mastodon</a></h1>
<footer class="post-info">
<span>Fri 24 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/fediverse.html">fediverse</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>8</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Microblogging</h2>
<p><a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia">Microblogging</a> is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.<br>
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.</p>
<p>Do you know someone who uses a microblogging platform?<br>
I guess you do. I will go as far as saying that may be you are using a microblogging platform.<br>
Surprised? Don't be.<br>
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.</p>
<p>Every microblogging platform implements it differently.<br>
Twitter is a place where everybody can see everybody else's posts.<br>
Facebook is for only reading posts from people you know in real life.<br>
Instagram is for posting photos and short videos.<br>
Tumblr is for normal blogging first and microblogging in form of comments.<br>
Reddit is similar to Tumblr except that it is more categorized and structured imo.</p>
<p>All of the platforms I just mentioned, except Fediverse, has something in common. <strong>They are centralized</strong>. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.</p>
<h3>Fediverse is different</h3>
<ol>
<li>
<p>Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.</p>
</li>
<li>
<p>Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.</p>
</li>
</ol>
<hr>
<p>Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.</p>
<hr>
<h2>Mastodon</h2>
<p>I heard about Mastodon in a <a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6">IRL Podcast</a>. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.<br>
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.</p>
<div style="text-align: center;">
<iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'></iframe>
</div>
<p>For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. </p>
<hr>
<h1>Deploying a Mastodon instance for my family</h1>
<p>I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)</p>
<p>I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.</p>
<p><a href="https://docs.joinmastodon.org/" title="What is Mastodon?">Mastodon's documentation</a>'s installation guide part expects a SysAdmin to know more than I do. I also got help from <a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate">another guide</a>. But after try installing Mastodon twice and rollback once, <a href="https://yesil.club/">I got a working instance</a>. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.</p>
<p>Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.</p><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104570041953140255">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
<li><article class="hentry">
<header>
<h1><a href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html" rel="bookmark"
title="Permalink to $ADB_VENDOR_KEYS is not set">$ADB_VENDOR_KEYS is not set</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<span>Wed 22 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/android.html">android</a><a href="https://murtezayesil.me/tag/error.html">error</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>7</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Story</h2>
<p>I like <a href="https://github.com/Genymobile/scrcpy" title="scrcpy by Genymobile - GitHub">scrcpy</a>. It allows me to cast my phone to computer and use it ther thanks to cable technology (wifi works too). So, after hopping to <img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/123/static/a76f54a7dbcd8afd.png" width="15em" height="15em"> Pop_OS! I reinstalled adb and scrcpy.
But this time scrcpy didn't work. Instead it throw this error:<br>
<blockquote style="font-style: normal;">
<code>
adb: error: failed to get feature set: device unauthorized.<br>
This adb server's $ADB_VENDOR_KEYS is not set<br>
Try 'adb kill-server' if that seems wrong.<br>
Otherwise check for a confirmation dialog on your device.<br>
ERROR: "adb push" returned with value 1
</code>
</blockquote> </p>
<h2>Easy way | Grant access using prompt on the phone</h2>
<p>After enabling <a href="https://www.howtogeek.com/129728/how-to-access-the-developer-options-menu-and-enable-usb-debugging-on-android-4.2/">USB debugging in Developer options</a> connect phone to computer and run <code>scrcpy</code>. Phone should prompt you for granting access to computer. All you have to do is accept and connection will be granted 🎉️</p>
<hr>
<p>This prompt didn't appear on my phone. As it turns out, that prompt doesn't works as expected on some custom ROMS. After some digging online, I came across <a href="https://stackoverflow.com/a/26309956">this answer on stack <strong>overflow</strong></a>. Which leads to a <a href="https://android.googlesource.com/platform/system/core/+/d5fcafaf41f8ec90986c813f75ec78402096af2d">commit message for (new) adb authentication</a> implemented in 2012. This prompt copies ~/.android/adbkey.pub on computer, <code>$ADB_VENDOR_KEYS</code>, to <code>/data/misc/adb/adb_keys</code> file in phone's memory. since prompt isn't working for me I have to add that key manually 😕️</p>
<h2>Littler harder way | copy-paste using Termux + root</h2>
<p>Since <code>/data/misc/adb/adb_keys</code> file is offlimits for the user, we need root priviledges for this method.</p>
<ol>
<li>Copy ~/.android/adbkey.pub to phone's memory</li>
<li>Open Termux and install sudo &gt; <code>pkg install tsu</code></li>
<li>Navigate to where file adbkey.pub is. I'm using Redmi Note 4 and its <code>/sdcard</code> directory is used for .<br>
File is at <code>/sdcard/adbkey.pub</code> in my case &gt; <code>cd /sdcard</code></li>
<li>Copy <code>adbkey.pub</code> to <code>/data/misc/adb/adb_keys</code> with sudo priviledges &gt; <code>sudo cp adbkey.pub /data/misc/adb/adb_keys</code> </li>
<li>Double check if content of <code>/data/misc/adb/adb_keys</code> on phone and <code>~/.android/adbkey.pub</code> on computer are the same</li>
<li>Enjoy 😊️</li>
</ol>
<video width="720" height="auto" controls="controls">
<source src="https://murtezayesil.me/videos/copying_adb_vendor_keys_using_termux_and_root.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<hr>
<h2>Hard way | copy-paste using TWRP</h2>
<p>This is the "no-root" hard method. You will still need root priviledges to edit <code>/data/misc/adb/adb_keys</code>. If your phone isn't rooted but has TWRP, GREAT. TWRP has root priviledges and a file manager.</p>
<ol>
<li>Boot into TWRP by holding Vol+ and Power keys while the phone is turned off.</li>
<li>Connect phone to computer</li>
<li>Copy ~/.android/adbkey.pub to phone's memory</li>
<li>Go to Advanced &gt; File manager</li>
<li>Navigate to where adbkey.pub was copied to. I am using Redmi Note 4 and MTP connects to <code>/sdcard</code> on this device.</li>
<li>Copy <code>adbkey.pub</code> to <code>/data/misc/adb/adb_keys</code></li>
<li>Delete <code>adb_keys</code> in </li>
<li>Rename <code>adbkey.pub</code> to <code>abd_keys</code></li>
<li>Double check if content of <code>/data/misc/adb/adb_keys</code> on phone and <code>~/.android/adbkey.pub</code> on computer are the same</li>
<li>Enjoy 😊️</li>
</ol>
<p><img alt="SCRCPY is casting Android phone's screen on to computer after manually copying computer's adbkey.pub file to phone's adb_keys file" src="images/scrcpy_casting_android_to_computer.png" title="scrcpy is finally working"></p>
<hr>
<p>It was a little annoying adventure for me to find where the adbkey.pub suppose to go. I am not immitated with having to do that thing manually. I was annoyed that this information isn't out there in Android documentations and requires reading answers from 2014 on stack <strong>overflow</strong>.</p>
<h3>I hope this guide was helpful to you 😊️</h3><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104558575376752243">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
</footer><!-- /.post-info --> </div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>

View File

@ -49,72 +49,77 @@
<aside id="featured" class="body">
<article>
<h1 class="entry-title"><a href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html">$ADB_VENDOR_KEYS is not set</a></h1>
<h1 class="entry-title"><a href="https://murtezayesil.me/digital-cleansing-mastodon.html">Digital Cleansing - Mastodon</a></h1>
<footer class="post-info">
<span>Fri 24 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/fediverse.html">fediverse</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>8</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Microblogging</h2>
<p><a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia">Microblogging</a> is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.<br>
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.</p>
<p>Do you know someone who uses a microblogging platform?<br>
I guess you do. I will go as far as saying that may be you are using a microblogging platform.<br>
Surprised? Don't be.<br>
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.</p>
<p>Every microblogging platform implements it differently.<br>
Twitter is a place where everybody can see everybody else's posts.<br>
Facebook is for only reading posts from people you know in real life.<br>
Instagram is for posting photos and short videos.<br>
Tumblr is for normal blogging first and microblogging in form of comments.<br>
Reddit is similar to Tumblr except that it is more categorized and structured imo.</p>
<p>All of the platforms I just mentioned, except Fediverse, has something in common. <strong>They are centralized</strong>. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.</p>
<h3>Fediverse is different</h3>
<ol>
<li>
<p>Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.</p>
</li>
<li>
<p>Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.</p>
</li>
</ol>
<hr>
<p>Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.</p>
<hr>
<h2>Mastodon</h2>
<p>I heard about Mastodon in a <a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6">IRL Podcast</a>. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.<br>
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.</p>
<div style="text-align: center;">
<iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'></iframe>
</div>
<p>For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. </p>
<hr>
<h1>Deploying a Mastodon instance for my family</h1>
<p>I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)</p>
<p>I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.</p>
<p><a href="https://docs.joinmastodon.org/" title="What is Mastodon?">Mastodon's documentation</a>'s installation guide part expects a SysAdmin to know more than I do. I also got help from <a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate">another guide</a>. But after try installing Mastodon twice and rollback once, <a href="https://yesil.club/">I got a working instance</a>. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.</p>
<p>Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.</p><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104570041953140255">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
<li><article class="hentry">
<header>
<h1><a href="https://murtezayesil.me/adb_vendor_keys-is-not-set.html" rel="bookmark"
title="Permalink to $ADB_VENDOR_KEYS is not set">$ADB_VENDOR_KEYS is not set</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<span>Wed 22 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/android.html">android</a><a href="https://murtezayesil.me/tag/error.html">error</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>7</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Story</h2>
<p>I like <a href="https://github.com/Genymobile/scrcpy" title="scrcpy by Genymobile - GitHub">scrcpy</a>. It allows me to cast my phone to computer and use it ther thanks to cable technology (wifi works too). So, after hopping to <img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/123/static/a76f54a7dbcd8afd.png" width="15em" height="15em"> Pop_OS! I reinstalled adb and scrcpy.
But this time scrcpy didn't work. Instead it throw this error:<br>
<blockquote style="font-style: normal;">
<code>
adb: error: failed to get feature set: device unauthorized.<br>
This adb server's $ADB_VENDOR_KEYS is not set<br>
Try 'adb kill-server' if that seems wrong.<br>
Otherwise check for a confirmation dialog on your device.<br>
ERROR: "adb push" returned with value 1
</code>
</blockquote> </p>
<h2>Easy way | Grant access using prompt on the phone</h2>
<p>After enabling <a href="https://www.howtogeek.com/129728/how-to-access-the-developer-options-menu-and-enable-usb-debugging-on-android-4.2/">USB debugging in Developer options</a> connect phone to computer and run <code>scrcpy</code>. Phone should prompt you for granting access to computer. All you have to do is accept and connection will be granted 🎉️</p>
<hr>
<p>This prompt didn't appear on my phone. As it turns out, that prompt doesn't works as expected on some custom ROMS. After some digging online, I came across <a href="https://stackoverflow.com/a/26309956">this answer on stack <strong>overflow</strong></a>. Which leads to a <a href="https://android.googlesource.com/platform/system/core/+/d5fcafaf41f8ec90986c813f75ec78402096af2d">commit message for (new) adb authentication</a> implemented in 2012. This prompt copies ~/.android/adbkey.pub on computer, <code>$ADB_VENDOR_KEYS</code>, to <code>/data/misc/adb/adb_keys</code> file in phone's memory. since prompt isn't working for me I have to add that key manually 😕️</p>
<h2>Littler harder way | copy-paste using Termux + root</h2>
<p>Since <code>/data/misc/adb/adb_keys</code> file is offlimits for the user, we need root priviledges for this method.</p>
<ol>
<li>Copy ~/.android/adbkey.pub to phone's memory</li>
<li>Open Termux and install sudo &gt; <code>pkg install tsu</code></li>
<li>Navigate to where file adbkey.pub is. I'm using Redmi Note 4 and its <code>/sdcard</code> directory is used for .<br>
File is at <code>/sdcard/adbkey.pub</code> in my case &gt; <code>cd /sdcard</code></li>
<li>Copy <code>adbkey.pub</code> to <code>/data/misc/adb/adb_keys</code> with sudo priviledges &gt; <code>sudo cp adbkey.pub /data/misc/adb/adb_keys</code> </li>
<li>Double check if content of <code>/data/misc/adb/adb_keys</code> on phone and <code>~/.android/adbkey.pub</code> on computer are the same</li>
<li>Enjoy 😊️</li>
</ol>
<video width="720" height="auto" controls="controls">
<source src="https://murtezayesil.me/videos/copying_adb_vendor_keys_using_termux_and_root.mp4" type="video/mp4">
Your browser does not support the video tag.
</video>
<hr>
<h2>Hard way | copy-paste using TWRP</h2>
<p>This is the "no-root" hard method. You will still need root priviledges to edit <code>/data/misc/adb/adb_keys</code>. If your phone isn't rooted but has TWRP, GREAT. TWRP has root priviledges and a file manager.</p>
<ol>
<li>Boot into TWRP by holding Vol+ and Power keys while the phone is turned off.</li>
<li>Connect phone to computer</li>
<li>Copy ~/.android/adbkey.pub to phone's memory</li>
<li>Go to Advanced &gt; File manager</li>
<li>Navigate to where adbkey.pub was copied to. I am using Redmi Note 4 and MTP connects to <code>/sdcard</code> on this device.</li>
<li>Copy <code>adbkey.pub</code> to <code>/data/misc/adb/adb_keys</code></li>
<li>Delete <code>adb_keys</code> in </li>
<li>Rename <code>adbkey.pub</code> to <code>abd_keys</code></li>
<li>Double check if content of <code>/data/misc/adb/adb_keys</code> on phone and <code>~/.android/adbkey.pub</code> on computer are the same</li>
<li>Enjoy 😊️</li>
</ol>
<p><img alt="SCRCPY is casting Android phone's screen on to computer after manually copying computer's adbkey.pub file to phone's adb_keys file" src="images/scrcpy_casting_android_to_computer.png" title="scrcpy is finally working"></p>
<hr>
<p>It was a little annoying adventure for me to find where the adbkey.pub suppose to go. I am not immitated with having to do that thing manually. I was annoyed that this information isn't out there in Android documentations and requires reading answers from 2014 on stack <strong>overflow</strong>.</p>
<h3>I hope this guide was helpful to you 😊️</h3><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104558575376752243">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
</footer><!-- /.post-info --> </div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>

View File

@ -49,103 +49,77 @@
<aside id="featured" class="body">
<article>
<h1 class="entry-title"><a href="https://murtezayesil.me/digital-cleansing-jitsi.html">Digital Cleansing - Jitsi</a></h1>
<h1 class="entry-title"><a href="https://murtezayesil.me/digital-cleansing-mastodon.html">Digital Cleansing - Mastodon</a></h1>
<footer class="post-info">
<span>Fri 24 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/fediverse.html">fediverse</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>8</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Microblogging</h2>
<p><a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia">Microblogging</a> is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.<br>
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.</p>
<p>Do you know someone who uses a microblogging platform?<br>
I guess you do. I will go as far as saying that may be you are using a microblogging platform.<br>
Surprised? Don't be.<br>
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.</p>
<p>Every microblogging platform implements it differently.<br>
Twitter is a place where everybody can see everybody else's posts.<br>
Facebook is for only reading posts from people you know in real life.<br>
Instagram is for posting photos and short videos.<br>
Tumblr is for normal blogging first and microblogging in form of comments.<br>
Reddit is similar to Tumblr except that it is more categorized and structured imo.</p>
<p>All of the platforms I just mentioned, except Fediverse, has something in common. <strong>They are centralized</strong>. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.</p>
<h3>Fediverse is different</h3>
<ol>
<li>
<p>Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.</p>
</li>
<li>
<p>Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.</p>
</li>
</ol>
<hr>
<p>Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.</p>
<hr>
<h2>Mastodon</h2>
<p>I heard about Mastodon in a <a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6">IRL Podcast</a>. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.<br>
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.</p>
<div style="text-align: center;">
<iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'></iframe>
</div>
<p>For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. </p>
<hr>
<h1>Deploying a Mastodon instance for my family</h1>
<p>I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)</p>
<p>I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.</p>
<p><a href="https://docs.joinmastodon.org/" title="What is Mastodon?">Mastodon's documentation</a>'s installation guide part expects a SysAdmin to know more than I do. I also got help from <a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate">another guide</a>. But after try installing Mastodon twice and rollback once, <a href="https://yesil.club/">I got a working instance</a>. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.</p>
<p>Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.</p><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104570041953140255">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
<li><article class="hentry">
<header>
<h1><a href="https://murtezayesil.me/digital-cleansing-jitsi.html" rel="bookmark"
title="Permalink to Digital Cleansing - Jitsi">Digital Cleansing - Jitsi</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<span>Sat 18 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/jitsi.html">jitsi</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>5</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><p>My family is spread into 3 countries in 3 different continents. If we include my close relatives too, these numbers go even higher. It is important to stay in contact with your family and relatives in Turkish culture and we try to do that. Let it be weekend Zoom meetings (in 40 minute chunks :) or phone calls on WhatsApp (owned by Facebook), we heavily rely on third party services for communication. After launching NextCloud for my family to use, I what I wanted to tackle the <strong>Communication</strong> problem.</p>
<p>We have 3 kinds of communication needs in the family:<br>
1. Text messages<br>
2. Voice Calls<br>
3. (Mostly group) Video Calls</p>
<hr>
<h3>Text Messaging &amp; Voice Calls</h3>
<p>I have been usign Telegram wherever I can for few years. Its UI is very similar to that of WhatsApp which I hope will ease the transition for my relatives. Since it also has voice calling, I don't need to look for another service for that. I love hitting two birds with one stone (only in metaphor) 😄️ <br>
That being said, I won't actually talk much about WhatsApp. Facebook bought WhatsApp back in February 2014. I believe that was a great deal for Facebook and a terrible deal for users.<br>
I know I mentioned Telegram but there is one more great alternative to WhatsApp (or even Telegram). It is called <a href="https://signal.org/" title="Official page">Signal</a> and it is developed by a non-profit founded by Co-founder of WhatsApp, Brian Acton. It is one freaking secure messaging app 😎️</p>
<hr>
<h3>Group Video Calls</h3>
<p>My families' and relatives' current choice of Group Video Calling service is Zoom, just like millions of other people who needed a video calling service for remote work, distance education and calling their loved ones. But Zoom seemingly popped out of nowhere for many people. I wanted to learn more about who Zoom is and how trustable it is. I hope my findings will help you to make educated decisions.</p>
<p>Zoom was <a href="https://en.wikipedia.org/wiki/Zoom_(software)#History" title="History of Zoom on Wikipedia">launched in September 2012</a>, reached <a href="https://www.tmcnet.com/topics/articles/2013/05/23/339279-zoom-video-communications-reaches-1-million-participants.htm" title="Zoom Video Communications Reaches 1 Million Participants - TMCnet">1 Million user base in January 2013</a> and rapidly grow during global quarantine to a point that Zoom got <a href="https://web.archive.org/web/20200422125131/https://www.theguardian.com/technology/2020/mar/31/zoom-booms-as-demand-for-video-conferencing-tech-grows-in-coronavirus-outbreak" title="Zoom booms as demand for video-conferencing tech grows - The Guardian [archive]">2.13 Million downloads on March 23rd 2020</a>.</p>
<p>After some research (reading Wikipedia) I found that Zoom had many wounds that hurt many of its users. Given that Zoom reached 1 Million userbase 5 months after launching (from September 2012 to January 2013) and they were charging 9.99$/month, I expect Zoom to invest into infrastructure and app security. I am saying this because they clearly had time to fix issues in their apps before the pandemic arrived. Here are few examples to show how Zoom messed up:<br>
<strong>Windows</strong> : <a href="https://arstechnica.com/information-technology/2020/04/unpatched-zoom-bug-lets-attackers-steal-windows-credentials-with-no-warning/">Attackers can use Zoom to steal users Windows credentials with no warning - ars technica</a><br>
<strong>MacOS</strong> : <a href="https://threatpost.com/zoom-zero-day-mac-webcam-hijacking/146317/">Zoom Zero-Day Bug Opens Mac Users to Webcam Hijacking - threat post</a>. This prompted Apple to use its MRT (Malware Removal Tool) to remotely delete Zoom from Mac computers.<br>
<strong>MacOS</strong> : <a href="https://medium.com/bugbountywriteup/zoom-zero-day-4-million-webcams-maybe-an-rce-just-get-them-to-visit-your-website-ac75c83f4ef5">Zoom Zero Day: 4+ Million Webcams &amp; maybe an RCE? Just get them to visit your website! - InfoSec Write-ups</a> allowing Zoom to reinstall itself after being uninstalled and join a video call with camera activated without user's permission.<br>
<strong>MacOS</strong> : <a href="https://nitter.net/c1truz_/status/1244737672930824193">Zoom App installation uses the same method used by malwares to gain root priviledges - Twitter thread on Nitter</a><br>
<strong>iOS</strong> : <a href="https://www.vice.com/en_ca/article/k7e599/zoom-ios-app-sends-data-to-facebook-even-if-you-dont-have-a-facebook-account">Zoom iOS App Sends Data to Facebook Even if You Dont Have a Facebook Account - Vice</a><br>
<strong>Android</strong> : I didn't find any news about Zoom Android App vulnerabilities. But if they used Facebook tracker in iOS app, I don't see any reason why zoom wouldn't use the same on Android
<strong>Linux</strong> : No vulnerability was found YET. Remember that <a href="https://netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Custom%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222019-08%22%2C%22dateEnd%22%3A%222020-06%22%2C%22plotKeys%22%3A%5B%7B%22platform%22%3A%22Linux%22%7D%2C%7B%22platform%22%3A%22Mac%20OS%22%7D%2C%7B%22platform%22%3A%22Chrome%20OS%22%7D%5D%2C%22segments%22%3A%22-1000%22%7D" title="Less than 4%">Linux desktop has a small marketshare</a> and apps for it are less likely to be targeted by hackers.</p>
<blockquote>
<p>"Zoom has just had so many missteps."
- Patrick Wardle, Jamf</p>
</blockquote>
<p>You can read about Zoom's vulnerabilities on MacOS and iOS in detail in <a href="https://objective-see.com/blog/blog_0x56.html" title="The 'S' in Zoom, Stands for Security - Objective-See">this blog post of Objective-See</a>. </p>
<p>These issues were <strong>FIXED</strong> by Zoom. But Zoom took long time to responde some of the cyber security personel as if it didn't care about the user privacy and security. I only mentioned the vulnerabilities in Zoom's apps. Zoom also <a href="https://www.axios.com/zoom-closes-chinese-user-account-tiananmen-square-f218fed1-69af-4bdd-aac4-7eaf67f34084.html" title="Zoom closed account of U.S.-based Chinese activist “to comply with local law” - Axios">contributed to censorship</a> by closing human rights activist Zhou Fengsuo's paid account and closing Social activist Lee Cheuk Yan's account upon China's request.</p>
<p>👉️ Since those vulnerabilities are fixed it should be safe to use Zoom, right?<br>
Unfortunately, NO. Even if apps became less vulnerable, users still are through weak privacy practices and use of third party trackers. Zoom's Privacy Policy is <a href="https://zoom.us/privacy#_Toc44414842">not assuring enough</a>.</p>
<p>👉️ They introduced end-to-end encryption, E2EE. Is it insecure encryption?<br>
AES-256 ECB algorithm used for E2EE is one of the greatest encryption algorithms out there. But it isn't enabled by default and enabling E2EE disables many features such as screensharing, which doesn't incentivise people to use E2EE. Both enterprise customers and teachers would want to use screensharing, thus not using E2EE.</p>
<p>👉️ They say Zoom encrypts every meeting by default. Are they lying?<br>
No, they are not. But they aren't telling the whole story either. When you start a Zoom meeting, your device establishes a connection to Zoom over <a href="https://en.wikipedia.org/wiki/Https#Security">HTTPS</a>. Meaning data is encrypted during transmission between you and Zoom. Data gets decrypted in Zoom and encrypted again before it goes to whoever you are meeting with. This is done because everybody in the meeting has different <a href="https://en.wikipedia.org/wiki/Session_key">session key</a> for encryption. Your meeting is apparent to Zoom, not hidden from it.</p>
<p>👉️ Zoom has faced <a href="https://en.wikipedia.org/wiki/Zero-day_(computing)" title="Learn about zero day attacks on Wikipedia">0-day attacks</a> which weren't fair.<br>
Not a question but I get your point. When a cyber security personal discovers a vulnerability, (s)he informs the vendor about the vulnerability in disguise and asks for bounty. Vendor checks if that is a legit vulnerability or a scam. Then they work together to fix the issue and vendor pays the bounty. Many companies have a <a href="https://www.intel.com/content/www/us/en/security-center/bug-bounty-program.html" title="Intel offers upto 100,000$">bug</a> <a href="https://hackerone.com/verizonmedia?type=team" title="Verizon offers upto 15,000$">bounty</a> <a href="https://www.microsoft.com/en-us/msrc/bounty" title="Microsoft offers upto 100,000$">program</a>.<br>
A cyber security personal may choose to release the vulnerability to public for it to be exploited by other people, which turns a vulnerability into zero day attack. This action incentivises vendor to fix that issue immediately since issue became well-known.<br>
Zoom had time since 2013 for testing its softwares properly. Proper testing would uncover those bugs before hackers did. Any company that is careless about security and privacy of its customers' deserves to be pinched to start acting.</p>
<p>What if I am forced to Zoom by my employer/school/family?<br>
Desktop/laptop users:<br>
1. Windows: Use virtual machine and apply one of the below Linux methods<br>
2. MacOS: Use virtual machine and apply one of the below Linux methods<br>
3. Linux: Install Linux Live image on a USB and boot into it everytime you need to Zoom. Install Zoom into that Live environment. Zoom will only be able to access what is in that Live environment. Shutting down a Live environment deletes everything that was installed in that session.<br>
4. Linux: <a href="https://ar.al/2020/06/25/how-to-use-the-zoom-malware-safely-on-linux-if-you-absolutely-have-to/" title="How to use the Zoom malware safely on Linux if you absolutely have to - Aral Balkan">Install Zoom into a firejail</a>, greatly limiting what it can reach.<br>
Mobile users:<br>
1. Android: <a href="https://www.howtogeek.com/333484/how-to-set-up-multiple-user-profiles-on-android/" title="This process maybe different for different brands">Create a restricted user</a> on your phone and install Zoom there. Not in your main user.
2. Android: If you can, use Zoom on Linux as described above.
3. iOS: Don't give it permissions if you don't need them. Don't let it run in background. Uninstall after using.
4. iOS: If you can, use Zoom on Linux as described above.</p>
<p>PS: I don't own a Mac, iPhone or Windows PC. But since Zoom on those platforms seem to be the affected most, I recommend everybody to use Zoom on Linux in a firejail if you absolutely have to.</p>
<p>I also wanted to read articles <a href="https://medium.com/@rowantrollope/beyond-the-noise-7-reasons-its-safe-to-run-zoom-9a2e639b13ec">that</a> <a href="https://blog.prialto.com/3-reasons-why-zoom-provides-the-best-video-conferencing-software">defend</a> <a href="https://www.forbes.com/sites/rebeccabellan/2020/03/24/what-you-need-to-know-about-using-zoom/#3cee9d0d3284">Zoom</a>. But they are mostly talking about Zoom's E2EE feature (that is not default), how people got creative with Virtual Background feature, Zoom's clean UI, ability to fake paying attention and its price. They either say nothing about Zooms privacy policy or even if they say something, it is not assuring in my opinion.</p>
<hr>
<h1>Jitsi</h1>
<p>Jitsi is an open source alternative to Video Calling (Conferencing) services. I will prove that Jitsi is much better than Zoom with only 1 sentence.</p>
<h1 style="text-align: center;">You can host Jitsi on your own server without relying on another entity</h1>
<p>You want more?</p>
<ol>
<li>Jitsi has Clean UI that is familiar to that of Zoom. </li>
<li>Jitsi <strong>doesn't</strong> have looping video feature which helps students or emplyees fake paying attention. </li>
<li>Jitsi is <strong title="Free Open Source Software">FOSS</strong> developed by <a href="https://8x8.com">8x8</a>. </li>
<li>
<p>Hosting Jitsi doesn't require a server with powerful CPU or GPU. Important resource is bandwidth. </p>
</li>
<li>
<p>Jitsi doesn't have virtual background but it instead has background blurring in development.</p>
</li>
</ol>
<p>👉️ Is it truely E2EE?<br>
<strong>This is what I understood from reading <a href="https://github.com/jitsi/jitsi-meet/issues/409#issuecomment-260652107">this threat</a>. Please correct me if I am wrong</strong><br>
Short answer is No.<br>
Long answer is: Just like in Zoom's case, connection between users and Jitsi VideoBridge (server) is encrypted. Server decrypts and encrypts everybody's stream for everybody else. But by having the control of Jitsi VideoBridge (server) by hosting it on your own server, you can assure that no other company/organization is holding your plain data except the recepient you are meeting with.<br>
That being said, Jitsi can establish P2P connection in rooms where there are only 2 people. This is a feature of WebRTC that Jitsi is built upon. It still <strong>isn't</strong> true E2EE.</p>
<p>👉️ Do anyone even use it?<br>
Glad you ask. Many companies banned use of Zoom and switched to alternatives such as Microsoft Teams, Skype, Hangout Meet and Jitsi. You probably won't see Jitsi's UI very often in the wild, but many companies use Jitsi VideoBridge as their backend for video conferences. Out of all the alternatives, only Jitsi allows self-hosting of server (Jitsi VideoBridge) AFAIK.</p>
<h2>How to install Jitsi server?</h2>
<p>I followed <strong>Nerd on the Street</strong>'s <a href="https://invidio.us/watch?v=IQRwtUamHQU">Host a Jitsi Meet Server</a> installation tutorial. It took about 30 minute of my time (I am a noob) to get the server running. It takes another 10 minutes to secure it.</p>
<hr>
<p>When I started this blog post, I expected to list 2 reasons not to use WhatsApp and Zoom then start talking about why Jitsi is the answer to my family's Group Video Calling needs. To fact check what I knew about about them (Zoom in particular) I searched them on <a href="https://en.wikipedia.org/wiki/Zoom_(software)" title="Read more about Zoom on WikiPedia">Wikipedia</a>. I learned much more than I expected. I am sorry for turning this post into "Rant of Zoom". I hope you learned a thing or two too.</p>
<hr>
<h3>Other side of the coin</h3>
<p>If you think I would be better of sticking to WhatsApp or Zoom, tell me more. Even though I read many negative things about Zoom, I will try my best to keep an open mind and hear people seeing other side of the coin. I am a human and can make mistakes. If there is something important I should know to better understand what is going on, please reply to comment toot linked below.</p><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104535970036319662">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
</footer><!-- /.post-info --> </div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>

164
output/tag/fediverse.html Normal file
View File

@ -0,0 +1,164 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Ali Murteza Yesil - fediverse</title>
<link rel="stylesheet" href="https://murtezayesil.me/theme/css/main.css" />
<link href="https://murtezayesil.me/feeds/atom.xml" type="application/atom+xml" rel="alternate" title="Ali Murteza Yesil Atom Feed" />
<link href="https://murtezayesil.me/feeds/rss.xml" type="application/rss+xml" rel="alternate" title="Ali Murteza Yesil RSS Feed" />
<!-- This border added via BLACK_LIVES_MATTER toggle in site settings -->
<style>
body {
border-width: 5em ;
border-color: #000000 ;
border-style: none solid solid solid ; /* top border : none, right bottom left : solid */
}
</style>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
</head>
<body id="index" class="home">
<!-- This banner added via BLACK_LIVES_MATTER toggle in site settings -->
<div style="background-color: black; padding: 1em; margin-bottom: .8em">
<h1 style="text-align: center; margin-bottom: 0em"><a href="https://blacklivesmatter.com/" style="color: #fce21b; font-size: 2em">Black Lives Matter</a></h1>
</div>
<header id="banner" class="body">
<h1><a href="https://murtezayesil.me/">Ali Murteza Yesil <strong>Blog</strong></a></h1>
<nav><ul>
<li><a href="https://murtezayesil.me/pages/about.html">About</a></li>
<li><a href="https://murtezayesil.me/pages/contact.html">Contact</a></li>
</ul>
<form id="search" action"#" onsubmit="javascript:window.open('https://duckduckgo.com/?q='+document.getElementById('keywords').value+'+site:https://murtezayesil.me');">
<input id="keywords" type="text" />
</form>
</nav>
<div id="submenu">
<ul>
<li><a href="https://murtezayesil.me/category/notes.html">Notes</a></li>
<li><a href="https://murtezayesil.me/category/tech.html">Tech</a></li>
</ul>
<div>
</header><!-- /#banner -->
<aside id="featured" class="body">
<article>
<h1 class="entry-title"><a href="https://murtezayesil.me/digital-cleansing-mastodon.html">Digital Cleansing - Mastodon</a></h1>
<footer class="post-info">
<span>Fri 24 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/fediverse.html">fediverse</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>8</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Microblogging</h2>
<p><a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia">Microblogging</a> is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.<br>
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.</p>
<p>Do you know someone who uses a microblogging platform?<br>
I guess you do. I will go as far as saying that may be you are using a microblogging platform.<br>
Surprised? Don't be.<br>
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.</p>
<p>Every microblogging platform implements it differently.<br>
Twitter is a place where everybody can see everybody else's posts.<br>
Facebook is for only reading posts from people you know in real life.<br>
Instagram is for posting photos and short videos.<br>
Tumblr is for normal blogging first and microblogging in form of comments.<br>
Reddit is similar to Tumblr except that it is more categorized and structured imo.</p>
<p>All of the platforms I just mentioned, except Fediverse, has something in common. <strong>They are centralized</strong>. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.</p>
<h3>Fediverse is different</h3>
<ol>
<li>
<p>Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.</p>
</li>
<li>
<p>Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.</p>
</li>
</ol>
<hr>
<p>Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.</p>
<hr>
<h2>Mastodon</h2>
<p>I heard about Mastodon in a <a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6">IRL Podcast</a>. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.<br>
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.</p>
<div style="text-align: center;">
<iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'></iframe>
</div>
<p>For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. </p>
<hr>
<h1>Deploying a Mastodon instance for my family</h1>
<p>I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)</p>
<p>I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.</p>
<p><a href="https://docs.joinmastodon.org/" title="What is Mastodon?">Mastodon's documentation</a>'s installation guide part expects a SysAdmin to know more than I do. I also got help from <a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate">another guide</a>. But after try installing Mastodon twice and rollback once, <a href="https://yesil.club/">I got a working instance</a>. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.</p>
<p>Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.</p><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104570041953140255">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
<p class="paginator">
Page 1 / 1
</p>
</aside><!-- /#featured -->
</ol><!-- /#posts-list -->
</section><!-- /#content -->
<section id="extras" class="body">
<div class="blogroll">
<h2>blogroll</h2>
<ul>
<li><a href="https://kevq.uk">Kev Quirk</a></li>
<li><a href="https://mikestone.me">Mike Stone</a></li>
<li><a href="https://yarmo.eu/">Yarmo Mackenbach</a></li>
</ul>
</div><!-- /.blogroll -->
<div class="social">
<h2>social</h2>
<ul>
<li><a href="https://murtezayesil.me/feeds/atom.xml" type="application/atom+xml" rel="alternate">atom feed</a></li>
<li><a href="https://murtezayesil.me/feeds/rss.xml" type="application/rss+xml" rel="alternate">rss feed</a></li>
<li><a href="https://fosstodon.org/@murtezayesil" rel="me">Fostodon</a></li>
</ul>
</div><!-- /.social -->
</section><!-- /#extras -->
<footer id="contentinfo" class="body">
<p>Powered by <a href="http://getpelican.com/">Pelican</a>. Theme <a href="https://github.com/blueicefield/pelican-blueidea/">blueidea</a>, inspired by the default theme.</p>
</footer><!-- /#contentinfo -->
<!-- IndieWeb Profile -->
<!-- ToDo : Make IndieWeb Profile auto generating according to site preferences -->
<!-- This profile is created by following https://kevq.uk/how-to-create-an-indieweb-profile/ blog post. Thanks to Kev Quirk -->
<section style="display: none;" class="h-card">
<!-- About me -->
<span class="p-name">Ali Murteza Yesil</span>
<span class="p-note">I'm a student, privacy advocate and SysAdmin wannabe. I was born in Turkey but I live abroad.</span>
<!-- Profile picture -->
<img class="u-photo" src="https://murtezayesil.me/images/avatar_polygon_1.png"/>
<!-- My location -->
<!-- <span class="p-locality">City, Country or Country</span> -->
<!-- Links -->
<a class="u-url u-uid" href="https://murtezayesil.me"></a>
<!-- Mail Template <a class="u-email" rel="me" href="mailto:USERNAME@SERVICEPROVIDER"></a> -->
<a class="u-url" rel="me" href="https://fosstodon.org/@murtezayesil"></a>
<!-- Twitter Example <a class="u-url" rel="me" href="https://twitter.com/USERNAME"></a> -->
<!-- Template <a class="u-url" rel="me" href="https://URL"></a> -->
<!-- Categories -->
<span class="p-category">Blogging</span>
<span class="p-category">Open Source Software</span>
<span class="p-category">Privacy</span>
</section>
</body>
</html>

View File

@ -49,103 +49,77 @@
<aside id="featured" class="body">
<article>
<h1 class="entry-title"><a href="https://murtezayesil.me/digital-cleansing-jitsi.html">Digital Cleansing - Jitsi</a></h1>
<h1 class="entry-title"><a href="https://murtezayesil.me/digital-cleansing-mastodon.html">Digital Cleansing - Mastodon</a></h1>
<footer class="post-info">
<span>Fri 24 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/fediverse.html">fediverse</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>8</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><h2>Microblogging</h2>
<p><a href="https://en.wikipedia.org/wiki/Microblogging" title="Read in more details on Wikipedia">Microblogging</a> is blogging smaller but usually more frequent updates. Microblogging platforms put some limitaions like the number of characters, photo size and video length in their platforms. Constraints make people to get creative to craft short and brief posts.<br>
These platforms take away the hustle of maintaining your blog and reduce the friction to start writing/sharing.</p>
<p>Do you know someone who uses a microblogging platform?<br>
I guess you do. I will go as far as saying that may be you are using a microblogging platform.<br>
Surprised? Don't be.<br>
Reddit, Twitter, Facebook, Instagram, Tumblr, VK, Fediverse are just a few.</p>
<p>Every microblogging platform implements it differently.<br>
Twitter is a place where everybody can see everybody else's posts.<br>
Facebook is for only reading posts from people you know in real life.<br>
Instagram is for posting photos and short videos.<br>
Tumblr is for normal blogging first and microblogging in form of comments.<br>
Reddit is similar to Tumblr except that it is more categorized and structured imo.</p>
<p>All of the platforms I just mentioned, except Fediverse, has something in common. <strong>They are centralized</strong>. Centralized means aech of these services have their own data centers where they aggregate credentials and data of their users. These data centers are rich in user data and appealing target for cyber criminals. Adding fuel to the fire, some of those companies put weak cyber security systems in place and couldn't very large data breaches.</p>
<h3>Fediverse is different</h3>
<ol>
<li>
<p>Fediverse is decentralized. There are many small servers (aka instances) communicating with each other. They collectively form Fediverse.</p>
</li>
<li>
<p>Instances forming the Fediverse can run as different platforms. Therefore Fediverse isn't only about microblogging.</p>
</li>
</ol>
<hr>
<p>Even though I said Fediverse is different from other microblogging platforms, threat of cyber attacks are very possible. Every instance carries user credentials and user data of its own users. If an instance was to be cyber attacked, only the users of that particular instance would be affected while rest of Fediverse function unaffected.</p>
<hr>
<h2>Mastodon</h2>
<p>I heard about Mastodon in a <a href="https://irlpodcast.org/season4/episode6/" title="Decentralize It - S4/E6">IRL Podcast</a>. I just wanted to try that twitter like thing that somehow didn't have a central place to collect all the tweets everybody was posting. I created an account on some instance and tried it for few days.<br>
What I understood at the time was that, there are servers running Mastodon system and Mastodon systems on different servers can communicate with each other to inform about cross platform messages. Fediverse is formed when instances start sommunicating with each other.</p>
<div style="text-align: center;">
<iframe id='ivplayer' width='640' height='360' src='https://invidio.us/embed/IPSbNdBmWKE?autoplay=0' style='border:none;'></iframe>
</div>
<p>For example: I am @murteza on strawberry.garden instance and I need help to collect strawberries. When I post "We need @batman@gotham.city to help us collect strawberries🍓", @batman from gotham.city instance will receive a notification from @murteza@strawberry.garden. </p>
<hr>
<h1>Deploying a Mastodon instance for my family</h1>
<p>I want to become a SysAdmin and know all about this server stuff. So I decided to deploy servers that I will need to maintain and learn about system administration during the process. I believe this is a good excuse to stay indoors during pandemic 😷️ (Emoji doesn't imply that I am sick, I am not. I also don't want to become one)</p>
<p>I deployed a NextCloud server for my family and a Jitsi server too. Why not add Mastodon to do pile as well. I rented a 5$/month server and a 100GB storage for database and user uploaded content for another 5$/month.</p>
<p><a href="https://docs.joinmastodon.org/" title="What is Mastodon?">Mastodon's documentation</a>'s installation guide part expects a SysAdmin to know more than I do. I also got help from <a href="https://computingforgeeks.com/install-mastodon-on-ubuntu-with-letsencrypt-ssl-certificate/" title="Install Mastodon on Ubuntu 20.04/18.04 With Lets Encrypt SSL Certificate">another guide</a>. But after try installing Mastodon twice and rollback once, <a href="https://yesil.club/">I got a working instance</a>. Since it is an instance for my family. I am not allowing account creation from outside, but only via invite.</p>
<p>Next piece of the puzzle will be backuping database and user data. I don't know what is the best way to approach this but we shall see.</p><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104570041953140255">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
<li><article class="hentry">
<header>
<h1><a href="https://murtezayesil.me/digital-cleansing-jitsi.html" rel="bookmark"
title="Permalink to Digital Cleansing - Jitsi">Digital Cleansing - Jitsi</a></h1>
</header>
<div class="entry-content">
<footer class="post-info">
<span>Sat 18 July 2020</span>
<span>| in <a href="https://murtezayesil.me/category/tech.html">Tech</a></span>
<span>| tags: <a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a><a href="https://murtezayesil.me/tag/privacy.html">privacy</a><a href="https://murtezayesil.me/tag/jitsi.html">jitsi</a><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a></span> <span>| Day <strong>5</strong> of #100DaysToOffload</span>
</footer><!-- /.post-info --><p>My family is spread into 3 countries in 3 different continents. If we include my close relatives too, these numbers go even higher. It is important to stay in contact with your family and relatives in Turkish culture and we try to do that. Let it be weekend Zoom meetings (in 40 minute chunks :) or phone calls on WhatsApp (owned by Facebook), we heavily rely on third party services for communication. After launching NextCloud for my family to use, I what I wanted to tackle the <strong>Communication</strong> problem.</p>
<p>We have 3 kinds of communication needs in the family:<br>
1. Text messages<br>
2. Voice Calls<br>
3. (Mostly group) Video Calls</p>
<hr>
<h3>Text Messaging &amp; Voice Calls</h3>
<p>I have been usign Telegram wherever I can for few years. Its UI is very similar to that of WhatsApp which I hope will ease the transition for my relatives. Since it also has voice calling, I don't need to look for another service for that. I love hitting two birds with one stone (only in metaphor) 😄️ <br>
That being said, I won't actually talk much about WhatsApp. Facebook bought WhatsApp back in February 2014. I believe that was a great deal for Facebook and a terrible deal for users.<br>
I know I mentioned Telegram but there is one more great alternative to WhatsApp (or even Telegram). It is called <a href="https://signal.org/" title="Official page">Signal</a> and it is developed by a non-profit founded by Co-founder of WhatsApp, Brian Acton. It is one freaking secure messaging app 😎️</p>
<hr>
<h3>Group Video Calls</h3>
<p>My families' and relatives' current choice of Group Video Calling service is Zoom, just like millions of other people who needed a video calling service for remote work, distance education and calling their loved ones. But Zoom seemingly popped out of nowhere for many people. I wanted to learn more about who Zoom is and how trustable it is. I hope my findings will help you to make educated decisions.</p>
<p>Zoom was <a href="https://en.wikipedia.org/wiki/Zoom_(software)#History" title="History of Zoom on Wikipedia">launched in September 2012</a>, reached <a href="https://www.tmcnet.com/topics/articles/2013/05/23/339279-zoom-video-communications-reaches-1-million-participants.htm" title="Zoom Video Communications Reaches 1 Million Participants - TMCnet">1 Million user base in January 2013</a> and rapidly grow during global quarantine to a point that Zoom got <a href="https://web.archive.org/web/20200422125131/https://www.theguardian.com/technology/2020/mar/31/zoom-booms-as-demand-for-video-conferencing-tech-grows-in-coronavirus-outbreak" title="Zoom booms as demand for video-conferencing tech grows - The Guardian [archive]">2.13 Million downloads on March 23rd 2020</a>.</p>
<p>After some research (reading Wikipedia) I found that Zoom had many wounds that hurt many of its users. Given that Zoom reached 1 Million userbase 5 months after launching (from September 2012 to January 2013) and they were charging 9.99$/month, I expect Zoom to invest into infrastructure and app security. I am saying this because they clearly had time to fix issues in their apps before the pandemic arrived. Here are few examples to show how Zoom messed up:<br>
<strong>Windows</strong> : <a href="https://arstechnica.com/information-technology/2020/04/unpatched-zoom-bug-lets-attackers-steal-windows-credentials-with-no-warning/">Attackers can use Zoom to steal users Windows credentials with no warning - ars technica</a><br>
<strong>MacOS</strong> : <a href="https://threatpost.com/zoom-zero-day-mac-webcam-hijacking/146317/">Zoom Zero-Day Bug Opens Mac Users to Webcam Hijacking - threat post</a>. This prompted Apple to use its MRT (Malware Removal Tool) to remotely delete Zoom from Mac computers.<br>
<strong>MacOS</strong> : <a href="https://medium.com/bugbountywriteup/zoom-zero-day-4-million-webcams-maybe-an-rce-just-get-them-to-visit-your-website-ac75c83f4ef5">Zoom Zero Day: 4+ Million Webcams &amp; maybe an RCE? Just get them to visit your website! - InfoSec Write-ups</a> allowing Zoom to reinstall itself after being uninstalled and join a video call with camera activated without user's permission.<br>
<strong>MacOS</strong> : <a href="https://nitter.net/c1truz_/status/1244737672930824193">Zoom App installation uses the same method used by malwares to gain root priviledges - Twitter thread on Nitter</a><br>
<strong>iOS</strong> : <a href="https://www.vice.com/en_ca/article/k7e599/zoom-ios-app-sends-data-to-facebook-even-if-you-dont-have-a-facebook-account">Zoom iOS App Sends Data to Facebook Even if You Dont Have a Facebook Account - Vice</a><br>
<strong>Android</strong> : I didn't find any news about Zoom Android App vulnerabilities. But if they used Facebook tracker in iOS app, I don't see any reason why zoom wouldn't use the same on Android
<strong>Linux</strong> : No vulnerability was found YET. Remember that <a href="https://netmarketshare.com/operating-system-market-share.aspx?options=%7B%22filter%22%3A%7B%22%24and%22%3A%5B%7B%22deviceType%22%3A%7B%22%24in%22%3A%5B%22Desktop%2Flaptop%22%5D%7D%7D%5D%7D%2C%22dateLabel%22%3A%22Custom%22%2C%22attributes%22%3A%22share%22%2C%22group%22%3A%22platform%22%2C%22sort%22%3A%7B%22share%22%3A-1%7D%2C%22id%22%3A%22platformsDesktop%22%2C%22dateInterval%22%3A%22Monthly%22%2C%22dateStart%22%3A%222019-08%22%2C%22dateEnd%22%3A%222020-06%22%2C%22plotKeys%22%3A%5B%7B%22platform%22%3A%22Linux%22%7D%2C%7B%22platform%22%3A%22Mac%20OS%22%7D%2C%7B%22platform%22%3A%22Chrome%20OS%22%7D%5D%2C%22segments%22%3A%22-1000%22%7D" title="Less than 4%">Linux desktop has a small marketshare</a> and apps for it are less likely to be targeted by hackers.</p>
<blockquote>
<p>"Zoom has just had so many missteps."
- Patrick Wardle, Jamf</p>
</blockquote>
<p>You can read about Zoom's vulnerabilities on MacOS and iOS in detail in <a href="https://objective-see.com/blog/blog_0x56.html" title="The 'S' in Zoom, Stands for Security - Objective-See">this blog post of Objective-See</a>. </p>
<p>These issues were <strong>FIXED</strong> by Zoom. But Zoom took long time to responde some of the cyber security personel as if it didn't care about the user privacy and security. I only mentioned the vulnerabilities in Zoom's apps. Zoom also <a href="https://www.axios.com/zoom-closes-chinese-user-account-tiananmen-square-f218fed1-69af-4bdd-aac4-7eaf67f34084.html" title="Zoom closed account of U.S.-based Chinese activist “to comply with local law” - Axios">contributed to censorship</a> by closing human rights activist Zhou Fengsuo's paid account and closing Social activist Lee Cheuk Yan's account upon China's request.</p>
<p>👉️ Since those vulnerabilities are fixed it should be safe to use Zoom, right?<br>
Unfortunately, NO. Even if apps became less vulnerable, users still are through weak privacy practices and use of third party trackers. Zoom's Privacy Policy is <a href="https://zoom.us/privacy#_Toc44414842">not assuring enough</a>.</p>
<p>👉️ They introduced end-to-end encryption, E2EE. Is it insecure encryption?<br>
AES-256 ECB algorithm used for E2EE is one of the greatest encryption algorithms out there. But it isn't enabled by default and enabling E2EE disables many features such as screensharing, which doesn't incentivise people to use E2EE. Both enterprise customers and teachers would want to use screensharing, thus not using E2EE.</p>
<p>👉️ They say Zoom encrypts every meeting by default. Are they lying?<br>
No, they are not. But they aren't telling the whole story either. When you start a Zoom meeting, your device establishes a connection to Zoom over <a href="https://en.wikipedia.org/wiki/Https#Security">HTTPS</a>. Meaning data is encrypted during transmission between you and Zoom. Data gets decrypted in Zoom and encrypted again before it goes to whoever you are meeting with. This is done because everybody in the meeting has different <a href="https://en.wikipedia.org/wiki/Session_key">session key</a> for encryption. Your meeting is apparent to Zoom, not hidden from it.</p>
<p>👉️ Zoom has faced <a href="https://en.wikipedia.org/wiki/Zero-day_(computing)" title="Learn about zero day attacks on Wikipedia">0-day attacks</a> which weren't fair.<br>
Not a question but I get your point. When a cyber security personal discovers a vulnerability, (s)he informs the vendor about the vulnerability in disguise and asks for bounty. Vendor checks if that is a legit vulnerability or a scam. Then they work together to fix the issue and vendor pays the bounty. Many companies have a <a href="https://www.intel.com/content/www/us/en/security-center/bug-bounty-program.html" title="Intel offers upto 100,000$">bug</a> <a href="https://hackerone.com/verizonmedia?type=team" title="Verizon offers upto 15,000$">bounty</a> <a href="https://www.microsoft.com/en-us/msrc/bounty" title="Microsoft offers upto 100,000$">program</a>.<br>
A cyber security personal may choose to release the vulnerability to public for it to be exploited by other people, which turns a vulnerability into zero day attack. This action incentivises vendor to fix that issue immediately since issue became well-known.<br>
Zoom had time since 2013 for testing its softwares properly. Proper testing would uncover those bugs before hackers did. Any company that is careless about security and privacy of its customers' deserves to be pinched to start acting.</p>
<p>What if I am forced to Zoom by my employer/school/family?<br>
Desktop/laptop users:<br>
1. Windows: Use virtual machine and apply one of the below Linux methods<br>
2. MacOS: Use virtual machine and apply one of the below Linux methods<br>
3. Linux: Install Linux Live image on a USB and boot into it everytime you need to Zoom. Install Zoom into that Live environment. Zoom will only be able to access what is in that Live environment. Shutting down a Live environment deletes everything that was installed in that session.<br>
4. Linux: <a href="https://ar.al/2020/06/25/how-to-use-the-zoom-malware-safely-on-linux-if-you-absolutely-have-to/" title="How to use the Zoom malware safely on Linux if you absolutely have to - Aral Balkan">Install Zoom into a firejail</a>, greatly limiting what it can reach.<br>
Mobile users:<br>
1. Android: <a href="https://www.howtogeek.com/333484/how-to-set-up-multiple-user-profiles-on-android/" title="This process maybe different for different brands">Create a restricted user</a> on your phone and install Zoom there. Not in your main user.
2. Android: If you can, use Zoom on Linux as described above.
3. iOS: Don't give it permissions if you don't need them. Don't let it run in background. Uninstall after using.
4. iOS: If you can, use Zoom on Linux as described above.</p>
<p>PS: I don't own a Mac, iPhone or Windows PC. But since Zoom on those platforms seem to be the affected most, I recommend everybody to use Zoom on Linux in a firejail if you absolutely have to.</p>
<p>I also wanted to read articles <a href="https://medium.com/@rowantrollope/beyond-the-noise-7-reasons-its-safe-to-run-zoom-9a2e639b13ec">that</a> <a href="https://blog.prialto.com/3-reasons-why-zoom-provides-the-best-video-conferencing-software">defend</a> <a href="https://www.forbes.com/sites/rebeccabellan/2020/03/24/what-you-need-to-know-about-using-zoom/#3cee9d0d3284">Zoom</a>. But they are mostly talking about Zoom's E2EE feature (that is not default), how people got creative with Virtual Background feature, Zoom's clean UI, ability to fake paying attention and its price. They either say nothing about Zooms privacy policy or even if they say something, it is not assuring in my opinion.</p>
<hr>
<h1>Jitsi</h1>
<p>Jitsi is an open source alternative to Video Calling (Conferencing) services. I will prove that Jitsi is much better than Zoom with only 1 sentence.</p>
<h1 style="text-align: center;">You can host Jitsi on your own server without relying on another entity</h1>
<p>You want more?</p>
<ol>
<li>Jitsi has Clean UI that is familiar to that of Zoom. </li>
<li>Jitsi <strong>doesn't</strong> have looping video feature which helps students or emplyees fake paying attention. </li>
<li>Jitsi is <strong title="Free Open Source Software">FOSS</strong> developed by <a href="https://8x8.com">8x8</a>. </li>
<li>
<p>Hosting Jitsi doesn't require a server with powerful CPU or GPU. Important resource is bandwidth. </p>
</li>
<li>
<p>Jitsi doesn't have virtual background but it instead has background blurring in development.</p>
</li>
</ol>
<p>👉️ Is it truely E2EE?<br>
<strong>This is what I understood from reading <a href="https://github.com/jitsi/jitsi-meet/issues/409#issuecomment-260652107">this threat</a>. Please correct me if I am wrong</strong><br>
Short answer is No.<br>
Long answer is: Just like in Zoom's case, connection between users and Jitsi VideoBridge (server) is encrypted. Server decrypts and encrypts everybody's stream for everybody else. But by having the control of Jitsi VideoBridge (server) by hosting it on your own server, you can assure that no other company/organization is holding your plain data except the recepient you are meeting with.<br>
That being said, Jitsi can establish P2P connection in rooms where there are only 2 people. This is a feature of WebRTC that Jitsi is built upon. It still <strong>isn't</strong> true E2EE.</p>
<p>👉️ Do anyone even use it?<br>
Glad you ask. Many companies banned use of Zoom and switched to alternatives such as Microsoft Teams, Skype, Hangout Meet and Jitsi. You probably won't see Jitsi's UI very often in the wild, but many companies use Jitsi VideoBridge as their backend for video conferences. Out of all the alternatives, only Jitsi allows self-hosting of server (Jitsi VideoBridge) AFAIK.</p>
<h2>How to install Jitsi server?</h2>
<p>I followed <strong>Nerd on the Street</strong>'s <a href="https://invidio.us/watch?v=IQRwtUamHQU">Host a Jitsi Meet Server</a> installation tutorial. It took about 30 minute of my time (I am a noob) to get the server running. It takes another 10 minutes to secure it.</p>
<hr>
<p>When I started this blog post, I expected to list 2 reasons not to use WhatsApp and Zoom then start talking about why Jitsi is the answer to my family's Group Video Calling needs. To fact check what I knew about about them (Zoom in particular) I searched them on <a href="https://en.wikipedia.org/wiki/Zoom_(software)" title="Read more about Zoom on WikiPedia">Wikipedia</a>. I learned much more than I expected. I am sorry for turning this post into "Rant of Zoom". I hope you learned a thing or two too.</p>
<hr>
<h3>Other side of the coin</h3>
<p>If you think I would be better of sticking to WhatsApp or Zoom, tell me more. Even though I read many negative things about Zoom, I will try my best to keep an open mind and hear people seeing other side of the coin. I am a human and can make mistakes. If there is something important I should know to better understand what is going on, please reply to comment toot linked below.</p><!-- Comments -->
<hr>
<h2>Comments</h2>
<p>Toot on <a href="https://fosstodon.org/@murtezayesil/104535970036319662">this thread</a> to comment. This blog is a static site. Comments won't appear here.</p>
</article>
</aside><!-- /#featured -->
<section id="content" class="body">
<h1>Other articles</h1>
<ol id="posts-list" class="hfeed">
</footer><!-- /.post-info --> </div><!-- /.entry-content -->
</article></li>
<li><article class="hentry">
<header>

View File

@ -48,14 +48,15 @@
</header><!-- /#banner -->
<section id="content" class="body">
<h1>Tags for Ali Murteza Yesil</h1> <li><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a> (7)</li>
<h1>Tags for Ali Murteza Yesil</h1> <li><a href="https://murtezayesil.me/tag/100daystooffload.html">100DaysToOffload</a> (8)</li>
<li><a href="https://murtezayesil.me/tag/android.html">android</a> (1)</li>
<li><a href="https://murtezayesil.me/tag/code.html">code</a> (1)</li>
<li><a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a> (4)</li>
<li><a href="https://murtezayesil.me/tag/digitalcleansing.html">digitalcleansing</a> (5)</li>
<li><a href="https://murtezayesil.me/tag/error.html">error</a> (1)</li>
<li><a href="https://murtezayesil.me/tag/fediverse.html">fediverse</a> (1)</li>
<li><a href="https://murtezayesil.me/tag/jitsi.html">jitsi</a> (1)</li>
<li><a href="https://murtezayesil.me/tag/nextcloud.html">nextcloud</a> (2)</li>
<li><a href="https://murtezayesil.me/tag/privacy.html">privacy</a> (5)</li>
<li><a href="https://murtezayesil.me/tag/privacy.html">privacy</a> (6)</li>
<li><a href="https://murtezayesil.me/tag/self-hosting.html">self-hosting</a> (1)</li>
</section>