This repository has been archived on 2022-02-01. You can view files and clone it, but cannot push or open issues or pull requests.
blog.old/output/feeds/atom.xml

754 lines
126 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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-09-01T21:40:00+06:00</updated><subtitle>Blog</subtitle><entry><title>Motivation</title><link href="https://murtezayesil.me/motivation.html" rel="alternate"></link><published>2020-09-01T21:40:00+06:00</published><updated>2020-09-01T21:40:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-09-01:/motivation.html</id><summary type="html">&lt;p&gt;Staying motivated is a problem Mike, I and many more people share.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Motivation is that magic like force that keeps us going through life. One can't have enough of it. Problem is that it is decays, expires, cannot be chased or collected. It comes and goes seemingly randomly. At least that is how I learned to see motivation as. Sorry for sounding pessimistic but it is hard to say good things when you don't have motivation. &lt;/p&gt;
&lt;p&gt;&lt;a href="https://fosstodon.org/@mike"&gt;Mike Stone&lt;/a&gt; wrote about his struggle to find &lt;a href="https://mikestone.me/motivation"&gt;motivation&lt;/a&gt; back in June. When I first joined Fosstodon and was a much more amateur in life, I saw Mike and Kev as role models in IT. Now seeing that Kev had problem keeping up with &lt;a href="https://100daystooffload.com/"&gt;#100DaysToOffload&lt;/a&gt; that he started in the first place and Mike is also facing lack of motivation too, I am relived 😐️&lt;/p&gt;
&lt;p&gt;I worried about something being inherently wrong with me. It turns out motivation comes and goes. There maybe a way to find motivation but I come to believe that the &lt;strong&gt;way to find motivation is different for everybody, time and occasion&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;For many occasions the motivation for Mike was his family. Me writing this post instead of postponing it for 1 more day is the fear of feeling shame and at loss.&lt;/p&gt;
&lt;div class="tooltip"&gt;Hover or tap to read removed Draft Notes
&lt;span class="tooltiptext"&gt;Sometimes motivation wears a mask called "purpose" and my eyes just miss it, when I don't see the purpose in something I just don't have motivation to do it. My wish is the motivation being apparent to all of us so that we don't waste time.&lt;/span&gt;
&lt;/div&gt;</content><category term="draft"></category><category term="100DaysToOffload"></category></entry><entry><title>Summer 2020 Begins</title><link href="https://murtezayesil.me/summer-2020-begins.html" rel="alternate"></link><published>2020-08-28T22:09:00+06:00</published><updated>2020-08-28T22:09:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-28:/summer-2020-begins.html</id><summary type="html">&lt;p&gt;It is nearly end of August and it finally is safe enough to go out.&lt;/p&gt;</summary><content type="html">&lt;p&gt;It is nearly end of August and it finally is safe enough to go out for a holiday. In fact, I am back. I spend last 4 days in rural area near a lake. When I first received the invite, I didn't want to go. I was making excuses like "clinics in rural area may not have adequate tools for Covid19" in my head. As it turns out, there isn't many people on country side and it would be an achievement to get sick there.&lt;/p&gt;
&lt;p&gt;2 things to convinced me go to:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Seeing that Covid19 cases in city was record low. That means going to country side maybe safe enough.&lt;/li&gt;
&lt;li&gt;I thought to myself "Elderly people often talk about their regrets and their regrets usually are the things they didn't do. If I miss on that, I may regret"&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;I also was away from computer (almost) the whole time. For sake of consistency, I wanted to write a blog about my time there. But given that I take my time to write, I could spend an entire day in front of a computer. Instead I postponed it to after return which is now.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I am glad I did go.&lt;br&gt;
I am glad I didn't spend my time there in front of a computer.&lt;br&gt;
I am glad 😀️&lt;/p&gt;</content><category term="Personal"></category><category term="100DaysToOffload"></category></entry><entry><title>Properly unorganized</title><link href="https://murtezayesil.me/properly-unorganized.html" rel="alternate"></link><published>2020-08-24T12:25:00+06:00</published><updated>2020-08-24T12:25:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-24:/properly-unorganized.html</id><summary type="html">&lt;p&gt;Chaotically Organized File System&lt;/p&gt;</summary><content type="html">&lt;p&gt;I always envied people who can keep their living space tidy, data storage organized and wake up on time. Thanks to living abroad as a student, my life fits into 1 luggage, 1 handbag and 1 backpack. I have to throw stuff around get untidy due to lack of stuff. That being said, I have Juggernaut with enough SSD and 1TB HDD and I heavily utilize the HDD.&lt;/p&gt;
&lt;p&gt;I am not going HDDless even on my laptop just yet thanks to some advantages it offers when paired with much faster SSD.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Offloading data on SSD to HDD is important for longer SSD lifespan.
Data blocks on SSD is much more fragile than sectors on HDD. If most of the SSD is filled, smaller section will be used for supervisioning and cause certain blocks to age much faster and possibly causing premature death of SSD.&lt;/li&gt;
&lt;li&gt;SSD speed can be affected by how much of it is filled. Less data on SSD means the faster it can operate.
SSD write operation depends on finding healthy blocks and utilizing them instead of previously used and more degraded blocks. More available storage means faster the SSD will find a suitable block and start operation.&lt;/li&gt;
&lt;li&gt;HDD is my first line of backup and redundancy.&lt;/li&gt;
&lt;li&gt;Local HDD is faster than remote NAS&lt;/li&gt;
&lt;li&gt;Local HDD doesn't require a local NAS server.&lt;/li&gt;
&lt;/ol&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="images/screenshots/hdd_storage.webp" alt="File manager showing some directories in Juggernaut's HDD, the storage device. Visible directories are Books, Backups, timeshift, Linux and sub directories of Linux such as Distro Hop Backups"&gt;
&lt;/div&gt;
&lt;p&gt;You probably got that I heavily use my HDD.
It has an installed distro for recovery (that I hop will never need to boot into), my data from previous distro hops, Steam and GOG backups, game saves, encrypted diary, distro ISOs, ebooks, phone backups etc, etc, etc.&lt;/p&gt;
&lt;p&gt;My HDD is a beautiful mess. Even though I organize stuff in outer most level, Not knowing whether something is in Pictures or Backup/[Device]_[Date]/Pictures or Linux/Distro Hop Backups/[Distro]_[Date]/Pictures turns looking for files into dumpster diving. And I still can find the stuff I am looking for. &lt;strong&gt;It annoys me but doesn't disable me&lt;/strong&gt; from finding what I need. I just hate myself for being disorganized and envy tidy people.&lt;/p&gt;</content><category term="Personal"></category><category term="100DaysToOffload"></category></entry><entry><title>May we meet in Heaven Dear Omar Hamza</title><link href="https://murtezayesil.me/may-we-meet-in-heaven-dear-omar-hamza.html" rel="alternate"></link><published>2020-08-21T20:36:00+06:00</published><updated>2020-08-21T20:36:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-21:/may-we-meet-in-heaven-dear-omar-hamza.html</id><summary type="html">&lt;p&gt;My unworthy writing about recently deceased friend, Muhammed Omer Hamza.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Today is Friday, holy day for Muslims. Sun put on its brightest smile and birds are chirping to turn the day into festive. Unfortunately, not for us. We are going to funeral for our beloved friend &lt;strong&gt;Muhammad Omar Hamza&lt;/strong&gt; who closed his eyes to get some rest during recover after his surgery never to open them again.&lt;/p&gt;
&lt;p&gt;I always use my headphones to listen to something while riding a taxi. Today is different. I am thinking of death as we ride to the mosque. I am listening to the bitter feelings as tiers grind over the asphalt. Feeling, as if I am the one in the coffin.&lt;/p&gt;
&lt;p&gt;While I am in deep thoughts, we arrived at the mosque. Follow the broken hearts and you shall find the Beautiful Muhammad in whites. It grabbed my attention that he isn't in a coffin. Must be the rush during Covid19. After the prayer, we carried the Glorious Omar to hearse to deliver him to his final home, semi-mixed graveyard for Christians and Muslims. Flat places were taken. Great Hamza is lowered to a grave on slope. Thank god I was lucky enough to carry him to the hearse and put dirt on his grave as we farewell him to his final home. He past away in the abroad country he came to study. His parents couldn't attend to his funeral, so I put a shovel of dirt for each of his parents too.&lt;/p&gt;
&lt;p&gt;We left him in his final home in this world, along with angels to question him and ask about his deeds. My prayers are that I can reunite with all the people I love, that includes Muhammad Omar Hamza, and his parents can visit the grave of their son and recite Quran.&lt;/p&gt;</content><category term="Personal"></category><category term="100DaysToOffload"></category></entry><entry><title>Blog in Progress #2</title><link href="https://murtezayesil.me/blog-in-progress-2.html" rel="alternate"></link><published>2020-08-19T12:45:00+06:00</published><updated>2020-08-19T12:45:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-19:/blog-in-progress-2.html</id><summary type="html">&lt;p&gt;I have more ambitious plans for the update to blog's theme. It will take time. I am thinking of few months.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Current theme I use isn't all old school but it isn't responsive enough either. Since I don't want to have external dependencies to other frameworks there will be no Bootstrap import. I am thinking of writing a responsive theme from scratch. Also, I am putting more emphasize on the text size and spacing. which is one of the things I don't like about the current theme. Of course I could change text sizes in blueidea theme but I am feeling itchy for a challenge 😅️&lt;/p&gt;
&lt;p&gt;There is currently nothing to see. It doesn't render anything since bare minimum templates such as base.html and index.html aren't in place yet.&lt;/p&gt;
&lt;p&gt;This is an ambitious projects since I didn't write any website from scratch before. I only have basic understanding of HTML, CSS, responsive design and &lt;a href="https://www.a11yproject.com/" title="Make Web Accessible for everyone"&gt;a11y&lt;/a&gt;. Features I implemented into blueidea are held together with band-aids. That is why I didn't made a pull request with my changes to &lt;a href="https://github.com/nasskach/pelican-blueidea"&gt;blueidea's github repo&lt;/a&gt;. This new theme will have those features by design (now that is a selling pitch for something that doesn't exist yet).&lt;/p&gt;
&lt;p&gt;Planned features are decided but not yet &lt;strong&gt;TBA&lt;/strong&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;I still didn't fix MP4 MIME type issue. If you are facing that issue, you can download the video via . There is currently only one mp4 video and I am thinking of self hosting a PeerTube instance and embedding videos from the that instead of using limited storage space of server for this blog. &lt;/p&gt;
&lt;p&gt;&lt;img alt="this is fine gif" src="images/gifs/this_is_fine.gif"&gt;&lt;/p&gt;</content><category term="Notes"></category><category term="100DaysToOffload"></category></entry><entry><title>Name Everything</title><link href="https://murtezayesil.me/name-everything.html" rel="alternate"></link><published>2020-08-17T17:14:00+06:00</published><updated>2020-08-17T17:14:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-17:/name-everything.html</id><summary type="html">&lt;p&gt;Finding a suitable name for stuff is both fun and a possible cause of cancer. So, I am naming devices I own.&lt;/p&gt;</summary><content type="html">&lt;p&gt;You probably have a phone and a laptop and possibly even a desktop for heavy duty jobs such as wm ricing. But what do you call those devices? If you have 2 phones how do you differentiate them? If they are the same make, do you use their modal numbers?&lt;/p&gt;
&lt;p&gt;I wanted to solve this non-existing problem for my devices so that when I want to refer to any of them in my blog posts, readers would have a confusing (and in my opinion funny) moment and go "What the heck even is X?" in their head 😜️&lt;/p&gt;
&lt;h1&gt;&lt;a href="https://www.thefreedictionary.com/juggernaut" title="An overwhelming or unstoppable force"&gt;Juggernaut&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;My laptop which was low end back in 2017 when I bought it brand new and even lower end now 7nm era.&lt;/p&gt;
&lt;p&gt;Model: Lenovo IdeaPad 110 15acl&lt;br&gt;
CPU: AMD A8 7410 - 4 cores each ticking at 2.2GHz&lt;br&gt;
iGPU: AMD R5 - 900MHz 1GB RAM from shared memory&lt;br&gt;
dGPU: AMD R5 - 1050MHz 2GB RAM&lt;br&gt;
RAM: 8GB DDR3 1600MHz&lt;br&gt;
SSD: 240GB with DRAM - Solus OS + swap&lt;br&gt;
HDD: 1TB 5400rpm - Solus OS (for emergency) + Storage&lt;/p&gt;
&lt;h1&gt;&lt;a href="https://en.wikipedia.org/wiki/Andromeda_Galaxy" title="is our neighboring galaxy"&gt;Andromeda&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;My Android smartphone which is a mid range phone that still rocks after 3 years 👍️&lt;br&gt;
Screen is still healthy even though both its glass surface and protective glass took a good beating thanks to clumsy me. Front speaker and microphone connection of headphone jack stopped working after a recent drop 😐️ I still like this phone and looking forward to using it for another 3 years.&lt;/p&gt;
&lt;p&gt;Model: Redmi Note 4 - mido&lt;br&gt;
CPU: SnapDragon 625&lt;br&gt;
RAM: 4GB&lt;br&gt;
Storage: 64GB&lt;br&gt;
Battery: ~3000mAh (was 4100mAh but aged 25% in 3 years)&lt;/p&gt;
&lt;h1&gt;Sophisticated Noise Cans&lt;/h1&gt;
&lt;p&gt;Model:Redmi Airbuds in-ear Bluetooth earphones&lt;/p&gt;
&lt;p&gt;I bought them after dropping phone which caused front speaker to brake and headphone jack's metal piece for microphone come out. I only have it for phone/video calls and it was the only solution that fit into my budget. Without them the only other way to make phone calls is to use loudspeaker which is not always appropriate. Sound quality is good for the price (20$).&lt;/p&gt;
&lt;p&gt;What I don't like about Airbuds is the in-ear design. I tried tips with different sizes but my ears still hurt. Not only that they hurt which I can get used to, using in-ear earphones feels like my ears are blocked.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Do you name your devices? What are the creative names you came up for your devices?&lt;/p&gt;</content><category term="Personal"></category><category term="100DaysToOffload"></category></entry><entry><title>Blog in Progress #1</title><link href="https://murtezayesil.me/blog-in-progress-1.html" rel="alternate"></link><published>2020-08-15T12:00:00+06:00</published><updated>2020-08-15T12:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-15:/blog-in-progress-1.html</id><summary type="html">&lt;p&gt;Removed Google Fonts dependency to load the page faster and discovered an issue where MP4 viewer won't load video.&lt;/p&gt;</summary><content type="html">&lt;div style="text-align: center;"&gt;
&lt;img src="images/gifs/construction_progress_bar.gif" alt="Under Construction GIF"&gt;
&lt;/div&gt;
&lt;p&gt;I am redesigning this blog's theme piece by piece. But there is a possibility that you will be reading this article after the new theme is applied. So &lt;a href="images/screenshots/index_full_page_screenshot_w760.webp" title="Old index page"&gt;here is a reference screenshot&lt;/a&gt; before new theme is applied. Theme isn't the only change. I have few more changes in mind to extend blog's features and optimize it even further.&lt;/p&gt;
&lt;p&gt;If you want to know how well does this page performed in GTmetrix with old theme, &lt;a href="extra/gtmetrix_murtezayesil.me_2020_08_16.pdf"&gt;here is the report&lt;/a&gt; in PDF.&lt;/p&gt;
&lt;h1&gt;Removing Google Font dependency&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://www.yanone.de/fonts/kaffeesatz/"&gt;Yanone's Kaffeesatz font&lt;/a&gt; is beautiful, but it takes almost 300ms to load. Even though it is as small as 20KB, it is something that is not needed.&lt;/p&gt;
&lt;p&gt;Another reason I want to remove it is that, it is embedded through Google Fonts which also loads some Google API code. It would be ironic to not respect my readers while I am going through digital cleansing and de-Googling myself.&lt;/p&gt;
&lt;h1&gt;MP4 videos may fail to load&lt;/h1&gt;
&lt;p&gt;Honestly, I don't know how to fix that "No video with supported format and MIME type found." error. Only future proofed solution I can think is hosting videos on PeerTube and embedding them to posts. You can download video by using "save as ..." option in context (right click) menu 😐️&lt;/p&gt;
&lt;p&gt;Fun Fact: My IndieWeb profile image is 1024 by 1024 PNG and is 174 KB, around 9 times the Yanone's Kaffesatz font from Google Fonts, but still takes a third less time to download. That being said, it isn't displayed anywhere and shouldn't be loaded unless explicitly wanted. 128x128 would be fine too. 1024x1024 is an overkill for an image that isn't displayed 😬️&lt;/p&gt;</content><category term="Notes"></category><category term="100DaysToOffload"></category></entry><entry><title>Resizing 2500 photos</title><link href="https://murtezayesil.me/resizing-2500-photos.html" rel="alternate"></link><published>2020-08-13T07:19:00+06:00</published><updated>2020-08-13T07:19:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-13:/resizing-2500-photos.html</id><summary type="html">&lt;p&gt;We needed to resize 2500 photographs for a website. There is a shell script for that.&lt;/p&gt;</summary><content type="html">&lt;p&gt;I was asked to write a program to resize thousands of images which were gonna be uploaded to a website. Images had to be the same height for them to look organized in gallery. I remembered how I used &lt;a href="https://imagemagick.org/"&gt;imagemagick&lt;/a&gt; to write &lt;a href="https://gitlab.com/murtezayesil/student/-/tree/master/sh/desktop-clock" title="use imagemagick, figlet and feh for tty-clock on wallpaper"&gt;desktop-clock&lt;/a&gt;, immitate tty-clock on wallpaper. That experience helped me to design the program in my mind as we continue to speak on the phone.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;/‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾&lt;span class="se"&gt;\ &lt;/span&gt;
&lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; each image &lt;span class="p"&gt;|&lt;/span&gt;
&lt;span class="p"&gt;|&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; resize to &lt;span class="nv"&gt;height&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="m"&gt;800&lt;/span&gt; &lt;span class="p"&gt;|&lt;/span&gt;
&lt;span class="se"&gt;\_&lt;/span&gt;__________________________/
O
o &lt;span class="se"&gt;\_\_&lt;/span&gt; _/_/
. &lt;span class="se"&gt;\_&lt;/span&gt;_/
&lt;span class="o"&gt;(&lt;/span&gt;oo&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="se"&gt;\_&lt;/span&gt;______
&lt;span class="o"&gt;(&lt;/span&gt;__&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="se"&gt;\ &lt;/span&gt; &lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="se"&gt;\/\&lt;/span&gt;
&lt;span class="o"&gt;||&lt;/span&gt;----w &lt;span class="p"&gt;|&lt;/span&gt;
&lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1&gt;This is a learning opportunity&lt;/h1&gt;
&lt;p&gt;Since I don't have much of an experience on shell scripting, I was &lt;a href="https://start.duckduckgo.com/" title="DuckDuckGo"&gt;Duck&lt;/a&gt;ing everything. I learned to do few things during this task.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href="https://duckduckgo.com/?q=for+loop+shell+script" title="There are many tutorials"&gt;For loops in shell script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Getting &lt;a href="https://stackoverflow.com/questions/2437452/how-to-get-the-list-of-files-in-a-directory-in-a-shell-script" title="I didn't know how to use asteriks 😅️"&gt;list of files&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Correct syntax for &lt;a href="https://imagemagick.org/script/convert.php" title="It ain't magick but it quiet is 😉️"&gt;resizing with ImageMagick&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;After reading tutorials and looking at examples everything felt as simple as lego. I just needed to put them together. &lt;/p&gt;
&lt;p&gt;Here is &lt;code&gt;image_shrinker.v0.1_alpha.sh&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/sh&lt;/span&gt;
mkdir ../output
&lt;span class="k"&gt;for&lt;/span&gt; image in ./*
&lt;span class="k"&gt;do&lt;/span&gt;
convert &lt;span class="nv"&gt;$image&lt;/span&gt; -scale 1000000x800 ../output/&lt;span class="nv"&gt;$image&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This version has problems which I can't call "feature" 😁️ :&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Resolution is hard coded. Btw, only way to define resolution is in WIDTHxHEIGHT format AFAIK.&lt;/li&gt;
&lt;li&gt;Script must be in same directory as images&lt;/li&gt;
&lt;li&gt;PWD must point to the directory where script is&lt;/li&gt;
&lt;/ol&gt;
&lt;h2&gt;Adjustable resolution&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/sh&lt;/span&gt;
mkdir ../output
&lt;span class="nv"&gt;WIDTH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nv"&gt;HEIGHT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; image in ./*
&lt;span class="k"&gt;do&lt;/span&gt;
convert &lt;span class="nv"&gt;$image&lt;/span&gt; -scale &lt;span class="nv"&gt;$WIDTHx$HEIGHT&lt;/span&gt; ../output/&lt;span class="nv"&gt;$image&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;This fixes the hard coded resolution problem but new problem is that the user has to know that WIDTH and HEIGHT must be given. I fix that by showing correct syntax to the user and then exiting :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/sh&lt;/span&gt;
&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;$#&lt;/span&gt; -lt &lt;span class="m"&gt;2&lt;/span&gt; &lt;span class="o"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;then&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;&amp;quot;USAGE:&amp;quot;&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; -e &lt;span class="s2"&gt;&amp;quot;\t\$IMAGE_DIRECTORY/image_shrinker.sh WIDTH HEIGHT&amp;quot;&lt;/span&gt;
&lt;span class="nb"&gt;exit&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;fi&lt;/span&gt;
&lt;span class="nv"&gt;WIDTH&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt; &lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="nv"&gt;HEIGHT&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$2&lt;/span&gt;
mkdir ../output
&lt;span class="k"&gt;for&lt;/span&gt; image in *
&lt;span class="k"&gt;do&lt;/span&gt;
convert &lt;span class="nv"&gt;$image&lt;/span&gt; -scale &lt;span class="nv"&gt;$Resolution&lt;/span&gt; ../output/&lt;span class="nv"&gt;$image&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;Here is some other attempt to make code a bit more flexible in terms of where images can be and where output can go. Actually no but that is what I was going for 😜️&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="ch"&gt;#!/bin/sh&lt;/span&gt;
&lt;span class="nv"&gt;DIR&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;&lt;span class="nb"&gt;pwd&lt;/span&gt;&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; image in ./*.*
&lt;span class="k"&gt;do&lt;/span&gt;
&lt;span class="c1"&gt;# Below code will scale images to 800px height without breaking aspect ratio&lt;/span&gt;
convert &lt;span class="nv"&gt;$DIR&lt;/span&gt;/&lt;span class="nv"&gt;$image&lt;/span&gt; -scale 10000x800 -write &lt;span class="nv"&gt;$DIR&lt;/span&gt;/../output/&lt;span class="nv"&gt;$image&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;It is hard to ask for help (especially after torturing with my code) but if you would like to give me feedback and advice, reply to toot of this post.&lt;/p&gt;</content><category term="Tech"></category><category term="code"></category><category term="100DaysToOffload"></category></entry><entry><title>Switching to Bluetooth earphones</title><link href="https://murtezayesil.me/switching-to-bluetooth-earphones.html" rel="alternate"></link><published>2020-08-11T18:29:00+06:00</published><updated>2020-08-11T18:29:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-11:/switching-to-bluetooth-earphones.html</id><summary type="html">&lt;p&gt;After I droped my phone and broke its headphone jack, I had to switch to bluetooth earphone. Redmi Airdots is my choice thanks to its price.&lt;/p&gt;</summary><content type="html">&lt;p&gt;My one and only phone, Andromeda, is a Redmi Note 4. I purchased it 3 years ago. It initially suffered from problems such as consuming battery for self overheating. But I later switched custom ROMs, Lineage and Havoc OS, and battery started to last more than a day. Andromeda served me well in its 3 years of service and it continues to do so albeit with some hickups.&lt;/p&gt;
&lt;p&gt;I am not the best phone user. I actually am a clumsy person who drops his phone on regular basis. So much so that Andromeda's display got replaced once and glass twice. Its glass is broken as I write these lines 😁️&lt;/p&gt;
&lt;p&gt;But broken glass isn't the issue. It still detects my touches fairly accurately. Real problem is that, a recent drop resulted &lt;strong&gt;front speaker to stop working&lt;/strong&gt; so that I can't hear other person during phone calls and some copper piece come out of headphone jack which rendered &lt;strong&gt;microphone on headsets to not connect&lt;/strong&gt; so that other person cannot hear me during a phone call (if I am using a headphone). My temporary solution was to use loud speaker which is annoying and makes private calls difficult. Also it is rude in public. Another option was bluetooth speaker which requires some budget.&lt;/p&gt;
&lt;p&gt;I could spare 20$ for a pair bluetooth earphones. Pretty generous huh 😜️&lt;br&gt;
Anyway, after some market search I set my mind on Redmi Airdots.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Do I recommend them?&lt;/strong&gt;&lt;br&gt;
No and Yes. They aren't the best earphones, not even best in-ear earphones, but they are affordable.&lt;br&gt;
Just like every other in-ear earphones, they aren't comfortable even after I replaced the tips with different size that better fits 😕️ They will do for now. It isn't too much of a deal since I am planning to use them only for calls. Speakers on wired earphones still work with the phone fortunately.&lt;/p&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="images/memes/modern_problems_bluetooth_earphones.jpg" alt="Top Caption: Switched to Bluetooth earphones after phone's headphone jack. Bottom Caption: Modern problems require modern solutions"&gt;
&lt;/div&gt;</content><category term="Personal"></category><category term="100DaysToOffload"></category></entry><entry><title>Yet Another Last Hop Attempt</title><link href="https://murtezayesil.me/yet-another-last-hop-attempt.html" rel="alternate"></link><published>2020-08-09T22:00:00+06:00</published><updated>2020-08-09T22:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-09:/yet-another-last-hop-attempt.html</id><summary type="html">&lt;p&gt;Solus 4.1 was one of the best polished experiences I had. I hope it continues that way and I don't feel the need for a hop.&lt;/p&gt;</summary><content type="html">&lt;p&gt;I tried many distros ever since I purchased this laptop, Lenovo Ideapad 110, back in 2017. My previous post was about &lt;a href="my-linux-journey.html"&gt;my Linux journey&lt;/a&gt;. And as it could be seen there, my every hop was due to some frustration or some feature I missed. But leaving a well polished OS like Manjaro and Pop_OS! is much more difficult and it hurts to need moving away. I tried Pop_OS! twice and n both cases it slowed within a month. In fact, I have been having problems and hopping once a month pretty regularly.&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;img src="images/distro_backups.png" alt="A directory with backups of important files before I replace the distro on SSD. I put the distro name and the date it was removed on the directory. It turns out I have been distro hopping once a month from February to August of 2020"&gt;
&lt;/div&gt;
&lt;p&gt;I have been distro hopping every month for the last seven months. I am not some adventurous person who hops for fun, except that time I decided to use &lt;a href="http://www.linuxfromscratch.org/" title="Linux From Scratch"&gt;LFS 😅️&lt;/a&gt; I heard that people were using Pop_OS! for months with great performance. I used Pop before and experienced performance degragation on SSD. Manjaro stayed fast but installing too many AUR packages got the best of it. Arch, well, was born dead in the hands of a newbie like me 😜️ Elementary is beatiful and good for people switching from Mac, but isn't for me.&lt;/p&gt;
&lt;p&gt;Everytime I distro hop, I want it to be the last hopping. I want to settle with a distro on the bare metal. I am not against trying new distros on VM. I am talking about desktop distros btw. Since I am new to server space, I only tried Ubuntu 20.04 and Debian 10 so far.&lt;/p&gt;
&lt;h1&gt;Solus 4.1 vs Solus 3.99&lt;/h1&gt;
&lt;p&gt;The biggest improvement I noticed so far is the black screen issue upon booting after a gpu driver upgrade is gone. I hope it stays that way. Another thing I noticed is that my GPU supports Vulkan now. It didn't before. Even though I installed bunch of drivers and libraries from different PPAs as instructed in Lutris and Steam wikis. I simply installed Steam and Solus pulled every Vulkan stuff games would need.&lt;/p&gt;
&lt;h1&gt;I want this to be the last hop I will do on baremetal&lt;/h1&gt;
&lt;p&gt;Be ready to quote me on that as "Last Famous Words"&lt;/p&gt;
&lt;p&gt;Fun Fact: Solus' package manager, eopkg, is derived from &lt;a href="https://en.wikipedia.org/wiki/Pardus_(operating_system)"&gt;Pardus&lt;/a&gt;' package manager &lt;a href="https://en.wikipedia.org/wiki/Pardus_(operating_system)#PiSi_package_management" title="means &amp;quot;kitty&amp;quot; in Turkish"&gt;PiSi&lt;/a&gt; which was the first Linux distro and package manager I used. Unfortunately PiSi was discontinued when Pardus moved to Debian base. It lives in Solus. That is a nice nostalgia.&lt;/p&gt;
&lt;div style="text-align:center;"&gt;
&lt;img src="images/neofetch_juggernaut_lenovo_ip110.png" alt="Neofetch command showing system info on the terminal: Username: Murteza, Computername: Juggernaut, OS: Solus, Kernel: Linux 5.6.19, Computer Make: Lenovo Ideapad 110-15ACL, DE: Budgie, CPU: AMD A8 7410, GPU: AMD Radeon R5, RAM: 6860MiB total"&gt;
&lt;/div&gt;
&lt;div style="text-align:center;"&gt;
&lt;img src="images/juggernaut_screenshot_sunday.png" alt="Screenshot of a clean desktop with no icons. Wallpaper is blurry dark and darker blue with Solus written in the middle. Taskbar is tranparent background with application menu and icons on the left, clock in the middle and system tray for wifi, battery, volume and more indicators on the right" width=100% height=auto&gt;
&lt;/div&gt;</content><category term="Personal"></category><category term="distros"></category><category term="100DaysToOffload"></category></entry><entry><title>My Linux Journey</title><link href="https://murtezayesil.me/my-linux-journey.html" rel="alternate"></link><published>2020-08-07T23:59:00+06:00</published><updated>2020-08-07T23:59:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-07:/my-linux-journey.html</id><summary type="html">&lt;p&gt;Like many other distro hoppers, I tried many distros. Solus was one of the best polished experiences. That is not to say it is perfect.&lt;/p&gt;</summary><content type="html">&lt;h1&gt;TL;DR&lt;/h1&gt;
&lt;p&gt;I learned to use linux by breaking it. First time I broke Ubuntu, I purged Xorg while trying to remove KDE 😬️&lt;/p&gt;
&lt;h1&gt;&lt;img src="https://www.pardus.org.tr/wp-content/uploads/2019/08/Pardus-04.png" alt="Pardus logo" width=20em height=auto&gt; Pardus&lt;/h1&gt;
&lt;p&gt;I started my Linux journey with &lt;a href="https://www.pardus.org.tr"&gt;Pardus&lt;/a&gt; installation CD distributed with science magazine of &lt;a href="https://www.tubitak.gov.tr/en" title="Scientific and Technological Research Council of Turkey"&gt;TÜBİTAK&lt;/a&gt;. It probably was around 2011. What I do remember is the sluggish KDE 4 desktop that put old family computer (512MB RAM, 1,6GHz single core CPU) onto its knees. What I liked about Linux was how easy it was to get started. WiFi worked out of the box with some occasional disconnection issue. It also had Firefox and no Internet Explorer. I learned one thing with Pardus, Windows is not the only operating system developer.&lt;/p&gt;
&lt;p&gt;2011 was the time I never knew about the terminal. I never searched for it on application manager. Linux desktop was usable without CLI in 2011. Forget about shell commands, I didn't know English language back then. Unfortunately the 7 years old laptop couldn't hold any longer and just died one day never to boot again.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;6/10&lt;/strong&gt;&lt;br&gt;
Would run it for nostalgia on a VM 😁️&lt;/p&gt;
&lt;h1&gt;Hardware&lt;/h1&gt;
&lt;p&gt;Lenovo IdeaPad &lt;strong&gt;110&lt;/strong&gt;&lt;br&gt;
&lt;strong&gt;AMD A8&lt;/strong&gt; CPU (4 cores boosting to 2.2GHz) with iGPU (for rendering desktop)&lt;br&gt;
&lt;strong&gt;8GB RAM&lt;/strong&gt; (6.7GB usable thanks to integrated GPU 😠️)&lt;br&gt;
&lt;strong&gt;AMD R5&lt;/strong&gt; GPU (2GB Vram for projector support)&lt;br&gt;
&lt;strong&gt;Fan&lt;/strong&gt; for cooling through motivation&lt;br&gt;
&lt;strong&gt;1366x768&lt;/strong&gt; display (for 720p window + 48 pixel for title and task bars 😅️)&lt;br&gt;
&lt;strong&gt;Keyboard&lt;/strong&gt; (with short Shift key 😠️) with numberpad&lt;br&gt;
&lt;strong&gt;Touchpad&lt;/strong&gt; which is comfortable and sometimes makes me forget to use mouse&lt;br&gt;
&lt;strong&gt;Barely Camera&lt;/strong&gt; because why not&lt;br&gt;
&lt;strong&gt;Plastic body&lt;/strong&gt; because it worked for Barbie 🤣️
&lt;strong&gt;1TB HDD&lt;/strong&gt; 5200 RPM
&lt;strong&gt;DVD R/W bay&lt;/strong&gt; which I replaced with &lt;strong&gt;240GB SSD&lt;/strong&gt; with on board RAM&lt;/p&gt;
&lt;h1&gt;&lt;img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/010/369/original/ubuntu.png" alt="Ubuntu logo" width=20em height=auto&gt; Ubuntu&lt;/h1&gt;
&lt;p&gt;I installed Ubuntu on IdeaPad 110 the day it was delivered in 2017. Unity desktop environment was a nice change from other operating systems I used. Ubuntu was amazing and every program I could need was available in the store. WiFi and bluetooth worked amazingly well out of the box.&lt;/p&gt;
&lt;p&gt;There were 2 things I didn't like about Ubuntu:&lt;br&gt;
First is the AppArmor internal error prompt. I disabled AppArmor and issue was fixed 🤦‍♂️️&lt;br&gt;
Second was the half new and half old looking system after a release upgrade.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;7/10&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;&lt;img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/106/747/original/ab7ee760c4d7d8b4.png" alt="Mint Logo" width=20em height=auto&gt; Linux Mint&lt;/h1&gt;
&lt;p&gt;&lt;div style="text-align: center;"&gt;
&lt;img src="images/linux_mint_change_my_mind_1.jpg" alt="Linux Mint is Ubuntu plus cinnamon DE minus snap packages. Change my mind"&gt;
&lt;/div&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8/10&lt;/strong&gt;&lt;br&gt;
Roll it to earn 1 point&lt;/p&gt;
&lt;h1&gt;&lt;img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/090/050/original/ae5ab97b259fe17d.png" alt="Solus Logo" width=20em height=auto&gt; Arch&lt;/h1&gt;
&lt;p&gt;I learned what RTFM means and how useful Arch wiki is. Nonetheless I ended up with something that wouldn't work. I know it was my mistake to install whatever I could find on AUR which can break the system. But in my defense, I was spoiled by installing stuff from a repo and not breaking anything.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Some assembly required&lt;/strong&gt; / 10&lt;br&gt;
I am not &lt;a href="https://www.jupiterbroadcasting.com/57622/arch-home-server-challenge-las-313/" title="Arch Home Server"&gt;Mad Lad&lt;/a&gt; enough&lt;/p&gt;
&lt;h1&gt;&lt;img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/128/original/ba24e6fc18d3e34a.png" alt="Solus Logo" width=20em height=auto&gt; Solus 3.99&lt;/h1&gt;
&lt;p&gt;I tried Solus because my prejudgment for stability of Arch Linux prevented me trying Manjaro. Solus was much faster than Ubuntu even though I tried GNOME edition. Games were playable which is an interesting development given that this laptop is suitable for offices and gaming isn't something it should be able to do.&lt;/p&gt;
&lt;p&gt;Every GPU driver update was causing system to boot into black screen. Fix was rebooting it system to safe mod and rebooting to latest driver. I would be happy to use stable kernel instaled of edge but graphics drivers didn't work with stable for some reason. Given Solus is a rolling release, I was getting this problem 2 or 3 times a week.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;███ / 10&lt;/strong&gt;&lt;/p&gt;
&lt;h1&gt;&lt;img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/121/original/81f2041d18d0535b.png" alt="Manjaro logo" width=20em height=auto&gt; Manjaro&lt;/h1&gt;
&lt;p&gt;It works. It is lighter than anything I tried so far, partly thanks to optimization done to KDE. Manjaro is stable and is recommendable to grandpas. That being said, Manjaro and Arch's one of the biggest attraction is AUR which also is the weak spot. Most people break their systems because they did something wrong while installing from AUR.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;8/10&lt;/strong&gt;&lt;br&gt;
Still recommended though&lt;/p&gt;
&lt;h1&gt;&lt;img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/123/original/a76f54a7dbcd8afd.png" alt="Pop OS logo" width=20em height=auto&gt; Pop_OS!&lt;/h1&gt;
&lt;p&gt;Pop_OS! is the Ubuntu++ that I expected Linux Mint to be. Pop is especially recommended for computers with Nvidia's sand. But for some reason it kept slowing down faster than any other OS I tried on this computer (excpet Windows 10 which always was slow).&lt;/p&gt;
&lt;p&gt;I started the installation and let it use the entire SSD the way it wished. All the defaults except the encryption which I don't think effects the performance because if it did, why wasn't it affecting at the beginning. About 50GB or 240GB SSD is filled.&lt;/p&gt;
&lt;p&gt;I used to distro hop for fun and trying other distros. Not with Pop_OS ! I wanted to use this for the long shot but it keeps slowing down on me.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;9/10&lt;/strong&gt;&lt;br&gt;
Only if it knew it was installed on an SSD and performed so.&lt;/p&gt;
&lt;h1&gt;&lt;img src="https://fosstodon.b-cdn.net/custom_emojis/images/000/025/128/original/ba24e6fc18d3e34a.png" alt="Solus Logo" width=20em height=auto&gt; Solus 4.1&lt;/h1&gt;
&lt;p&gt;It turns out, both iGPU and complementrary dedicated GPU supports Vulkan. No other system could run anything on Vulkan before. Even after adding PPAs and installing &lt;code&gt;mesa&lt;/code&gt; and &lt;code&gt;vulkan&lt;/code&gt; stuff, I always had to use &lt;code&gt;PROTON_USE_WINED3D=1&lt;/code&gt; flag to run windows games. Native games performed poorly too. Solus was like a fresh air to my computer 😃️&lt;/p&gt;
&lt;p&gt;GPU driver update no longer causes black screen. I installed it on the HDD to try it out. And with Pop_OS! on SSD slowed down enough to be almost match with Solus on HDD, I am planning to replace Pop with Solus.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;9/10&lt;/strong&gt; until it break again&lt;br&gt;
Sorry for being negative but if it won't break (hopefully), I will make a newbie mistake at some point and break it 😁️&lt;/p&gt;
&lt;h1&gt;This is NOT the end for a distro hopper&lt;/h1&gt;
&lt;p&gt;I believe the reason geeks started to distro hop is that there are many different people with different needs and there are different distros with strong point and weaknesses. Desire for finding the best for our own use case pushes us to hop between many distros.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;There are developers who need to have the latest libraries to test against their projects. &lt;/li&gt;
&lt;li&gt;There are grand parents who need a way to communicate with their children and grandchildren.&lt;/li&gt;
&lt;li&gt;There are servers which run day and night to provide services to millions of people.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;There is no single best solution. That is actually why there are many distros in the first place. We will keep hopping in hopes of finding the best for our personal use case andbe able to give educated answer to people who ask for recomendation.&lt;/p&gt;
&lt;div style="text-align: center;"&gt;
&lt;img src="images/distro_hopping_bullet_cat_1.jpg" alt="A cat hovering off the ground. Top caption: There is a new distro with mouse themed wallpapers. Bottom caption: It is time to hop"&gt;
&lt;/div&gt;</content><category term="Personal"></category><category term="distros"></category><category term="100DaysToOffload"></category></entry><entry><title>Marble League 2020</title><link href="https://murtezayesil.me/marble-league-2020.html" rel="alternate"></link><published>2020-08-05T11:11:00+06:00</published><updated>2020-08-05T11:11:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-05:/marble-league-2020.html</id><summary type="html">&lt;p&gt;I am not like interested in sports. But I find Jelle's Marble Runs silly. That is a solid reason to love something 😅️&lt;/p&gt;</summary><content type="html">&lt;h1&gt;COVID-19, sport events and me&lt;/h1&gt;
&lt;p&gt;I am not a person who followes football, basketball or any other sports league. I don't think I was ever excited about any sports events. As a Turkish, I would support Turkey in an internetional competition. But I never painted my face red and white or went to stadium for a sport event.&lt;/p&gt;
&lt;p&gt;I actually have not been interested in sport events for over 20 years. But ever since we had to self-isolate the &lt;a href="https://covid19.who.int/"&gt;COVID-19&lt;/a&gt; by staying in our houses, I restarted bloging, deployed NextCloud instance for my phone and computer to sync, joined Fediverse and also started watching YouTube more and more. Some of the videos are programming related and others are entertainment, comedians and stuff.&lt;/p&gt;
&lt;p&gt;John Oliver, host of Last Week Tonight, dedicated an episode to &lt;a href="https://www.youtube.com/watch?v=z4gBMw64aqk" title="Watch the episode on YouTube"&gt;sports and COVID-19's effect on them&lt;/a&gt;. As it turns out, all sport events are halted. Except one! Marble League, Jelle's Marble Runs, continues without a hickup. I never heard about MarbleLympics before but after seeing some clips in Last Week Tonight's episode, I knew I had to watch it.&lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;&lt;a href="https://jellesmarbleruns.com/series/ml/"&gt;Marble League &lt;img width=25em height=auto alt="Jelle's Marble Runs Logo" src="https://jellesmarbleruns.com/wp-content/uploads/2020/07/cropped-circle-cropped.png"&gt;&lt;/a&gt;&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://jellesmarbleruns.fandom.com/wiki/Jelle_Bakker"&gt;Jelle Bakker&lt;/a&gt; co-founded Marble League with his brother &lt;a href="https://jellesmarbleruns.fandom.com/wiki/Dion_Bakker"&gt;Dion Bakker&lt;/a&gt; back in 2014. It is a silly event and commentator speaks in a way that assumes marbles are real athletes with personalities and traits. In my opinion, it is silly in a not weird but oddly entertaining way. I ❤️ Marble League.&lt;/p&gt;
&lt;table style="text-align: center;"&gt;
&lt;tr&gt;
&lt;td width=50%&gt;
&lt;img src="https://vignette.wikia.nocookie.net/marblelympics/images/1/1d/JelleBakker.png" alt="Orange marble with purple flowers" width=75%&gt;
&lt;p&gt;Jelle Bakker&lt;/p&gt;
&lt;/td&gt;
&lt;td width=50%&gt;
&lt;img src="https://vignette.wikia.nocookie.net/marblelympics/images/7/78/Dion_Bakker_M1.png" alt="Black and White" width=75%&gt;
&lt;p&gt;Dion Bakker&lt;/p&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;table&gt;
But watching a sport event without supporting any team is weird silly. I didn't like the idea of supporting whichever team is sitting on top of the leaderboard. I wanted my team to surprise marbles with its achievements and I found a team that is not expected to win, not expecting to win*, close to Earth 😉️
&lt;div style="text-align: center;"&gt;
&lt;img width=50% src="https://vignette.wikia.nocookie.net/marblelympics/images/b/b1/Oceanics-0.png" alt="Orange marble with purple flowers"&gt;
&lt;/div&gt;
* At least I am not expecting my team to win. I just like them the way they are regardless of whether they win or not. That being said, I expect them to pass balancing so that I can watch them compete.
&lt;iframe src="https://fosstodon.org/@gray/104638372103104260/embed" class="mastodon-embed" style="max-width: 100%; border: 0" width="400" allowfullscreen="allowfullscreen"&gt;&lt;/iframe&gt;&lt;script src="https://fosstodon.org/embed.js" async="async"&gt;&lt;/script&gt;</content><category term="Personal"></category><category term="100DaysToOffload"></category></entry><entry><title>Digital Cleansing - Music</title><link href="https://murtezayesil.me/digital-cleansing-music.html" rel="alternate"></link><published>2020-08-03T15:00:00+06:00</published><updated>2020-08-03T15:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-03:/digital-cleansing-music.html</id><summary type="html">&lt;p&gt;There aren't many options to buy DRM free music, are there!&lt;/p&gt;</summary><content type="html">&lt;p&gt;I like listening to musics and I am not the only one. Just look at how many people are listening to &lt;a href="https://www.youtube.com/watch?v=5qap5aO4i9A" title="lofi hip hop radio - beats to relax/study to on YouTube"&gt;LoFi music with the study girl&lt;/a&gt; or look how many views &lt;a href="https://www.youtube.com/watch?v=dQw4w9WgXcQ"&gt;this song&lt;/a&gt; has. As a young adult, I remember the times the CDs were the king of music distribution. But they are long gone. Thanks to internet, digital music stores and music streaming services replaced CDs.&lt;br&gt;
So here I am, looking for the best music listening solution I can get. After a little search on the internet I came up with the below list of music stores or streaming services.&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Online Music Stores&lt;/th&gt;
&lt;th&gt;Music Streaming Services&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.apple.com/itunes/" title="DRM"&gt;iTunes&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://music.apple.com/" title="DRM"&gt;Apple Music&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://bandcamp.com/"&gt;BandCamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bandcamp.com/"&gt;BandCamp&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://amazon.com" title="DRM"&gt;Amazon Store&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://music.amazon.com/" title="DRM"&gt;Amazon Music&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.emusic.com/" title="Limited selection but may use"&gt;eMusic&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.spotify.com/" title="Not available"&gt;Spotify&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://bleep.com/" title="limited selection"&gt;Bleep&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://us.napster.com/" title="DRM"&gt;Napster&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://killedbygoogle.com/" title="Killed By Google - December 2020"&gt;Google Play Music&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://music.youtube.com/" title="Not available"&gt;YouTube Music&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.jamendo.com/"&gt;Jamendo&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.jamendo.com/"&gt;Jamendo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.beatport.com/" title="not my jazz"&gt;BeatPort&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://tidal.com/" title="DRM"&gt;Tidal&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;There are many options and above isn't an exhaustive list. Thankfully I have constraints to help me make more educated choice.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;Availability&lt;/strong&gt; (in my region) : Even though I can use VPN to appear on some other location on the face of Earth, my bank card will give my location up or won't be accepted 👎️&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DRM&lt;/strong&gt; : I want to put music on my phone, computer and even my NextCloud to listen from anywhere. When I spent money on music, I don't want to stuck with whatever the vendor supports. I want no vendor lock-in or any other limitation. Those limitations are pushing many people to pirate 😥️&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Discoverability&lt;/strong&gt; : Whenever there is a new music, I want to be able to find it.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Options&lt;/strong&gt; : Does it even has my jazz!&lt;/li&gt;
&lt;/ol&gt;
&lt;h1&gt;Finally here are my options&lt;/h1&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Online music stores&lt;/th&gt;
&lt;th&gt;Streaming services&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://bandcamp.com/"&gt;BandCamp&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://www.jamendo.com/"&gt;Jamendo&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;a href="https://www.jamendo.com/"&gt;Jamendo&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;&lt;a href="https://bandcamp.com/"&gt;BandCamp&lt;/a&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h2&gt;Why BandCamp&lt;/h2&gt;
&lt;p&gt;DRM free songs and musics to purchase and download in high quality. I skimmed over the Term of Services and I dind't notice any red flags for my privacy. It isn't the perfect service. Every artist isn't there and only some of the new songs appear there. But its ToS and Privacy Policy is one of the best ones I skimmed through in a long time.&lt;/p&gt;
&lt;h2&gt;Why Jamendo&lt;/h2&gt;
&lt;p&gt;Musics licensed under Creative Commons licenses* are available to listen without an account and available to download in high quality with an account. There almost isn't any popular song on Jamendo. But that is an oppportunity to discover new talents. It also has a nice ToS and Privacy Policy.&lt;/p&gt;
&lt;h3&gt;I love DRM-free stuff&lt;/h3&gt;
&lt;p&gt;As a student living on pocket money, I don't have much of a budget for purchasing music. I am planning to spend 5$ every month on DRM-free musics instead of a streaming service with DRM. I like DRMless content because I know vendor is trusting me. Whenever a platform emposes DRM, I feel treated like a pirate who is expected to steal. No thanks to digital content pirates, I understand why a vendor would put DRM and it is sad that this is the reality. I just am happy that there still are DRM-free alternatives 🙃️&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Why not pirate &lt;img height="25em" width="auto" src="https://fosstodon.b-cdn.net/custom_emojis/images/000/083/931/original/a43b334e1ab006d2.png" alt="funny shaped thinking emoji"&gt;&lt;/h2&gt;
&lt;p&gt;I don't believe pirating is ethical. Someone spent hours coming up with a poem or lyrics, someone else composed music for it, and someone else (probably) drank raw eggs to maintain her/his voice. I wouldn't want people get my hardwork for free unless I put it out there as a demo or as open source. Some people act like pirating is okay if the singer or band is rich. It isn't okay to pirate and I am not giving up on my principles to enjoy some music for free.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;* Most of the musics on Jamendo are licensed under Non Commercial licenses, such as &lt;a href="https://www.jamendo.com/legal/creative-commons" title="read a little description here"&gt;CC BY-NC-SA 4.0&lt;/a&gt;. You need to purchase a commercial license to play them in your restaurant, bar, cafe, clothing store, convenience store, market, shopping mall, advertisement, podcast, YouTube/Vimeo/PeerTube video, movie, etc.
You can't play songs from your Spotify account either. Songs on Spotify/Apple Music/YouTube Music and other popular services are for personal listening only too, unless they specifically mention that it is okay to play a song in a venue in music's license. Pijama parties are okay I guess.&lt;/p&gt;</content><category term="Tech"></category><category term="digitalcleansing"></category><category term="music"></category><category term="100DaysToOffload"></category></entry><entry><title>Swap on SSD done right</title><link href="https://murtezayesil.me/swap-on-ssd-done-right.html" rel="alternate"></link><published>2020-08-01T12:00:00+06:00</published><updated>2020-08-01T12:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-08-01:/swap-on-ssd-done-right.html</id><summary type="html">&lt;p&gt;SSDs are fragile and swaps can be damaging. But they can live happily together.&lt;/p&gt;</summary><content type="html">&lt;p&gt;TL;DR : If you have SSD and need swap, you should use swapspace daemon for healthier SSD. Btw, you want SSD and you need swap.&lt;/p&gt;
&lt;p&gt;Note: I expect you to be familiar with &lt;a href="https://en.wikipedia.org/wiki/Random-access_memory"&gt;RAM&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/Paging#Unix_and_Unix-like_systems"&gt;swap&lt;/a&gt; and concept of &lt;a href="https://en.wikipedia.org/wiki/Paging"&gt;paging&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Here is the short edition:&lt;br&gt;
&lt;strong&gt;RAM&lt;/strong&gt; is fast memory for currently running programs.&lt;br&gt;
&lt;strong&gt;Swap&lt;/strong&gt; is kinda like backup RAM. In case of RAM is filling up, swap will be uyilized to move less often accessed data off the RAM.&lt;br&gt;
&lt;strong&gt;Paging&lt;/strong&gt; is moving data between RAM and swap memory. It occurs when RAM is close to full and needs emptying into the swap or when a data in swap is needed in RAM.&lt;/p&gt;
&lt;p&gt;Since swap is located on HDD or SSD, it is much slower than RAM and we want to utilize RAM as much as we can. But sometimes RAM fills up and computer runs into &lt;a href="https://en.wikipedia.org/wiki/Out_of_memory" title="Out Of Memory"&gt;&lt;strong&gt;OOM&lt;/strong&gt;&lt;/a&gt; state. Even though it is slow, swap can be a life (or work) saver in such cases. &lt;/p&gt;
&lt;h3&gt;Estimated Memory Speeds&lt;/h3&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Device Type&lt;/th&gt;
&lt;th&gt;Speed (MB/s)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HDD&lt;/td&gt;
&lt;td&gt;100&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSD - SATA&lt;/td&gt;
&lt;td&gt;560&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;SSD - NVMe&lt;/td&gt;
&lt;td&gt;2000-3000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAM DDR2&lt;/td&gt;
&lt;td&gt;3000-8000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAM DDR3&lt;/td&gt;
&lt;td&gt;8000-12000&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;RAM DDR4&lt;/td&gt;
&lt;td&gt;19000-35000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;Data of RAM speeds is from &lt;a href="https://www.crucial.com/support/memory-speeds-compatability"&gt;this article of Crucial&lt;/a&gt;. HDD and SSD speeds are commonly observed speeds. Not from the Crucial's testing.&lt;/p&gt;
&lt;p&gt;You definitely want swap memory to avoid possible OOM issue. You also may want to use SSD for swap memory since it is much faster than HDD or your computer only has SSD. But SSDs have one weak spot. Storage blocks of the SSD that is being read and wrote 100s of times will fail. Thankfully SSDs got smarter. Instead of using a single block too often and causing it to die early, SSDs tend to utilize every block equally. This is called Garbage Collection. And together with &lt;a href="https://www.invidio.us/watch?v=Q15wN8JC2L4" title="Techquickie video on overprovisioning"&gt;overprovisioning&lt;/a&gt;, they increase longevity of the SSD.&lt;/p&gt;
&lt;p&gt;I don't think fixed swap partitions and files are good for SSD's health. We need a system to dynamically allocate swap. So that swap file will be erased when notneeded and created in lesser degraded blocks when needed.&lt;/p&gt;
&lt;h1&gt;Meet Swapspace&lt;/h1&gt;
&lt;p&gt;&lt;a href="http://manpages.org/swapspace/8" title="read manpage"&gt;Swapspace&lt;/a&gt; is a background service that understands swap needs and either creates or removes swap files on the fly.&lt;/p&gt;
&lt;p&gt;Swapspace is available on many &lt;em&gt;local repos&lt;/em&gt;, &lt;em&gt;AUR&lt;/em&gt; and on &lt;a href="https://github.com/Tookmund/Swapspace"&gt;&lt;em&gt;GitHub&lt;/em&gt;&lt;/a&gt;. &lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: How aggressively the Kernel should use swap memory can be controlled via a value called swappiness. Read about &lt;a href="https://www.howtogeek.com/449691/what-is-swapiness-on-linux-and-how-to-change-it/"&gt;changing swappiness&lt;/a&gt; for better RAM utilization.&lt;/p&gt;</content><category term="Tech"></category><category term="100DaysToOffload"></category></entry><entry><title>Silent Rage Quits</title><link href="https://murtezayesil.me/silent-rage-quits.html" rel="alternate"></link><published>2020-07-30T16:49:00+06:00</published><updated>2020-07-30T16:49:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-30:/silent-rage-quits.html</id><summary type="html">&lt;p&gt;nobody saw it coming&lt;/p&gt;</summary><content type="html">&lt;p&gt;Has it ever happened to you that when you start to change your life for better by building a good habit but at some point you give up seemingly out of nowhere, kinda like rage quit but without rage?&lt;/p&gt;
&lt;p&gt;Announcing your goal to public or close friends and family members for them to keep you reminded of your goal is called "motivational accountability". It sounds like a great idea. But it only back fired in my cases.&lt;/p&gt;
&lt;p&gt;I decided to announce what my goal was and wanted people to motivate me by reminding me my goals. I got the support of people I love. I also got bombarded with what I should and shouldn't do. I am mad at myself for pushing myself to the spotlight and too much attention.&lt;/p&gt;
&lt;p&gt;If you look from outside there was nothing wrong, my path was wide open, weather was clear. People around me made sure of that. I can't be mad at them for their help. I pressured myself by taking too much support which turned into pressure. There is a fine line between supporting someone by reminding one's goals and pressuring them to reach their goals. Even though some people were keeping the balance when mixed with other's pressure, they all turned into pressure.&lt;/p&gt;
&lt;h2&gt;I finally snapped and I silently rage quitted&lt;/h2&gt;
&lt;p&gt;I still do set targets for myself but I don't announce them. They instead are my secrets until they are reached.&lt;br&gt;
Asking for help, opinions and experiences of others is important for making educated decisions. But it sure is difficult without revealing anything. If people really have to know, it should be as few people as possible in my opinion.&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;Read on your own risk&lt;/h3&gt;
&lt;p&gt;In case you are wondering what I rage quitted, it is computer programming (or at least CS degree). After spending 4 years in 2 different universities in 2 different countries and hearing about what programming languages to learn, which online courses to take, what programs to write, how much mark to get, how many hours to sit on the arse and practise coding, practising for interviews, solving puzzles on Leetcode, memorizing a tone of formulas for no other reason than they will be asked in the exam, what should one aim for ...&lt;/p&gt;
&lt;p&gt;Maybe you think I got it all wrong and annoyed and frustrated for no good reason. If you don't recall this feeling, I am happy for you. I hope you never experience it.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;If you find accountability very motivational and working for you then I am glad for you. Let the world know and help you to reach your goals.&lt;/p&gt;</content><category term="Personal"></category><category term="100DaysToOffload"></category></entry><entry><title>Decentralized Internet is More Reliable</title><link href="https://murtezayesil.me/decentralized-internet-is-more-reliable.html" rel="alternate"></link><published>2020-07-28T12:00:00+06:00</published><updated>2020-07-28T12:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-28:/decentralized-internet-is-more-reliable.html</id><summary type="html">&lt;p&gt;Every system is prone to failure and will face down time. Decentralization avoids total system failure.&lt;/p&gt;</summary><content type="html">&lt;h1&gt;Introduction&lt;/h1&gt;
&lt;p&gt;I was looking for a way to explain decentralized internet to my family. Then Yarmo Mackenbach came up with the idea of &lt;a href="https://yarmo.eu/post/eliuf" title="Explain Like I Use Facebook"&gt;ELIUF&lt;/a&gt;. A decentralized attempt to explain concept, advantages and disadvantages of decentralized internet to people using centralized platforms, such as Facebook, Twitter, YouTube, Instagram, TikTok, WhatsApp, etc.&lt;/p&gt;
&lt;p&gt;From power surge to aged hardware, bug in software to cyber attack, there are many reasons a system may fail. Neither centralized or decentralized systems are %100 safe from failures.&lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;System failure&lt;/h1&gt;
&lt;h2&gt;Centralized Systems&lt;/h2&gt;
&lt;p&gt;There is a central server that stores every data required to offer a service. Any failure in the central server may cause it to go out of service. Any maintenace such as updating software or replacing aged hardware may require powering server off thus putting it out of service. &lt;/p&gt;
&lt;h2&gt;Decentralized Systems&lt;/h2&gt;
&lt;p&gt;In a decentralized network, there are multiple servers and each of them store only the data for their own clients. Servers communicate with each other if they need to get data stored in some other server. If any server fails or goes to maintenance, only the clients connected to that server will lose service. Rest of the network will continue to function as usual. That being said, any attempts to communicate with failed server will fail too.&lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;Cyber attacks&lt;/h1&gt;
&lt;p&gt;User credentials (such as emails, passwords, bank card numbers) and user data (such as profile pictures, birthday videos, phone numbers) uploaded to server are stored by the server and they make an attractive target for cyber criminals.&lt;/p&gt;
&lt;h2&gt;Centralized Systems&lt;/h2&gt;
&lt;p&gt;All the data is available from central server. Cyber attacks put every single user's data in danger.&lt;/p&gt;
&lt;h2&gt;Decentralized Systems&lt;/h2&gt;
&lt;p&gt;There is no server that has access to every data of every user. When servers are communicating, they only share minimum amount of data required. User credentials (email and password) are only known by the server user is connected to. If a server is attacked by cyber criminals, only the users of that server will get affected. Users on the other servers of the network won't be affected by the attack. That being said, all the communications made to attacked server may also be visible to attackers.&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;Redundancy isn't decentralization&lt;/h3&gt;
&lt;p&gt;Both centralized and decentralized platfroms may utilize redundancy servers to avoid going entirely out of service in case of server failure. Facebook for instance deploys multiple data centers in different countries. So if one of the data center goes to maintenance, users connected to it will be routed to other data centers and continue to receive the service without down time.&lt;br&gt;
Redundancy is a good way to ensure reliable network but also costly one.&lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;Conclusion&lt;/h1&gt;
&lt;p&gt;Decentralization doesn't make a server more durable or secure. Every server, regardless of whether a part of centralized or decentralized network, is prone to failures and cyber attacks. Decentralization reduces the impact and limits the number of users being affected.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;ELIUF posts elsewhere on the internet&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://yarmo.eu/post/eliuf"&gt;ELIUF: Explain Like I Use Facebook&lt;/a&gt; by &lt;a href="https://yarmo.eu/"&gt;Yarmo Mackenbach&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.garron.blog/posts/eliuf.html"&gt;How to decentralize the Internet&lt;/a&gt; by &lt;a href="https://www.garron.blog/about.html"&gt;Guillermo Garron&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</content><category term="Tech"></category><category term="100DaysToOffload"></category></entry><entry><title>Deleting Amazon account</title><link href="https://murtezayesil.me/deleting-amazon-account.html" rel="alternate"></link><published>2020-07-26T21:15:00+06:00</published><updated>2020-07-26T21:15:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-26:/deleting-amazon-account.html</id><summary type="html">&lt;p&gt;Deleting Amazon account has more steps (friction) than I would like. But not impossible.&lt;/p&gt;</summary><content type="html">&lt;p&gt;I call it "deleting account", Amazon calls it "closing account". I used them interchangibly in this post.&lt;/p&gt;
&lt;p&gt;If you set your mind to delete (or close) your account, don't let too many steps discourage you. I understand that some people run their businesses on AWS and deleting their Amazon account will also delete AWS servers connected to that account. Amazon has given me 2 warnings about it and accepted to delete my account anyway. I wasn't invested in Amazon ecosystem and never used AWS anyway.&lt;/p&gt;
&lt;p&gt;According my experience, here are the steps you may need to go through:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Click on &lt;a href="https://www.amazon.com/gp/help/customer/display.html" title="Currently this page"&gt;Help&lt;/a&gt; in the page footer and search for "close account".&lt;/li&gt;
&lt;li&gt;You will be presented with an article that warns you about Amazon services you will lose access to. Read and make sure you stopped using those services already.&lt;/li&gt;
&lt;li&gt;There is "&lt;strong&gt;Note:&lt;/strong&gt; To close your account, please &lt;a href="https://www.amazon.com/hz/contact-us/request-data"&gt;Contact Us&lt;/a&gt; to request that your account be closed." at the very end of the help page. Click on "Contact Us" to continue.&lt;/li&gt;
&lt;li&gt;If not yet logged in you will be asked to, login. Choose email for communication. There is also an option to call but I don't know how would that go since I don't live in US or Canada.&lt;/li&gt;
&lt;li&gt;They will send the same help article with a bit more information and links to make sure you stopped using everything such as AWS, Alexa, Kindle Publishing, Prime video, Amazon Music etc. Near the end of email you will see "If you still want to close your Amazon.com account after reviewing the items above, please click this link and state that you want to close your account: &lt;em&gt;Some Link&lt;/em&gt;", click on the link.&lt;/li&gt;
&lt;li&gt;It will open a page with a text box. Write why you want to close your account and submit. If you are not sure what to write and also feeling adventurous, you can copy paste this link : https://www.youtube.com/watch?v=dQw4w9WgXcQ&lt;/li&gt;
&lt;li&gt;They will email you within 24 hours either for more instructions or to tell you that your account is closed.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;: Depending on where you live or how many Amazon services you used, you may need to go through more steps.&lt;/p&gt;</content><category term="Notes"></category><category term="100DaysToOffload"></category></entry><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;
&lt;code&gt;
adb: error: failed to get feature set: device unauthorized.&lt;br&gt;
This adb server's $ADB_VENDOR_KEYS is not set&lt;br&gt;
Try 'adb kill-server' if that seems wrong.&lt;br&gt;
Otherwise check for a confirmation dialog on your device.&lt;br&gt;
ERROR: "adb push" returned with value 1
&lt;/code&gt;
&lt;/blockquote&gt; &lt;/p&gt;
&lt;h2&gt;Easy way | Grant access using prompt on the phone&lt;/h2&gt;
&lt;p&gt;After enabling &lt;a href="https://www.howtogeek.com/129728/how-to-access-the-developer-options-menu-and-enable-usb-debugging-on-android-4.2/"&gt;USB debugging in Developer options&lt;/a&gt; connect phone to computer and run &lt;code&gt;scrcpy&lt;/code&gt;. Phone should prompt you for granting access to computer. All you have to do is accept and connection will be granted 🎉️&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;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 &lt;a href="https://stackoverflow.com/a/26309956"&gt;this answer on stack &lt;strong&gt;overflow&lt;/strong&gt;&lt;/a&gt;. Which leads to a &lt;a href="https://android.googlesource.com/platform/system/core/+/d5fcafaf41f8ec90986c813f75ec78402096af2d"&gt;commit message for (new) adb authentication&lt;/a&gt; implemented in 2012. This prompt copies ~/.android/adbkey.pub on computer, &lt;code&gt;$ADB_VENDOR_KEYS&lt;/code&gt;, to &lt;code&gt;/data/misc/adb/adb_keys&lt;/code&gt; file in phone's memory. since prompt isn't working for me I have to add that key manually 😕️&lt;/p&gt;
&lt;h2&gt;Littler harder way | copy-paste using Termux + root&lt;/h2&gt;
&lt;p&gt;Since &lt;code&gt;/data/misc/adb/adb_keys&lt;/code&gt; file is offlimits for the user, we need root priviledges for this method.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Copy ~/.android/adbkey.pub to phone's memory&lt;/li&gt;
&lt;li&gt;Open Termux and install sudo &amp;gt; &lt;code&gt;pkg install tsu&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Navigate to where file adbkey.pub is. I'm using Redmi Note 4 and its &lt;code&gt;/sdcard&lt;/code&gt; directory is used for .&lt;br&gt;
File is at &lt;code&gt;/sdcard/adbkey.pub&lt;/code&gt; in my case &amp;gt; &lt;code&gt;cd /sdcard&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Copy &lt;code&gt;adbkey.pub&lt;/code&gt; to &lt;code&gt;/data/misc/adb/adb_keys&lt;/code&gt; with sudo priviledges &amp;gt; &lt;code&gt;sudo cp adbkey.pub /data/misc/adb/adb_keys&lt;/code&gt; &lt;/li&gt;
&lt;li&gt;Double check if content of &lt;code&gt;/data/misc/adb/adb_keys&lt;/code&gt; on phone and &lt;code&gt;~/.android/adbkey.pub&lt;/code&gt; on computer are the same&lt;/li&gt;
&lt;li&gt;Enjoy 😊️&lt;/li&gt;
&lt;/ol&gt;
&lt;video width="720" height="auto" controls="controls"&gt;
&lt;source src="https://murtezayesil.me/videos/copying_adb_vendor_keys_using_termux_and_root.mp4" type="video/mp4"&gt;
Your browser does not support the video tag.
&lt;/video&gt;
&lt;hr&gt;
&lt;h2&gt;Hard way | copy-paste using TWRP&lt;/h2&gt;
&lt;p&gt;This is the "no-root" hard method. You will still need root priviledges to edit &lt;code&gt;/data/misc/adb/adb_keys&lt;/code&gt;. If your phone isn't rooted but has TWRP, GREAT. TWRP has root priviledges and a file manager.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Boot into TWRP by holding Vol+ and Power keys while the phone is turned off.&lt;/li&gt;
&lt;li&gt;Connect phone to computer&lt;/li&gt;
&lt;li&gt;Copy ~/.android/adbkey.pub to phone's memory&lt;/li&gt;
&lt;li&gt;Go to Advanced &amp;gt; File manager&lt;/li&gt;
&lt;li&gt;Navigate to where adbkey.pub was copied to. I am using Redmi Note 4 and MTP connects to &lt;code&gt;/sdcard&lt;/code&gt; on this device.&lt;/li&gt;
&lt;li&gt;Copy &lt;code&gt;adbkey.pub&lt;/code&gt; to &lt;code&gt;/data/misc/adb/adb_keys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Delete &lt;code&gt;adb_keys&lt;/code&gt; in &lt;/li&gt;
&lt;li&gt;Rename &lt;code&gt;adbkey.pub&lt;/code&gt; to &lt;code&gt;abd_keys&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Double check if content of &lt;code&gt;/data/misc/adb/adb_keys&lt;/code&gt; on phone and &lt;code&gt;~/.android/adbkey.pub&lt;/code&gt; on computer are the same&lt;/li&gt;
&lt;li&gt;Enjoy 😊️&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;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"&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;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 &lt;strong&gt;overflow&lt;/strong&gt;.&lt;/p&gt;
&lt;h3&gt;I hope this guide was helpful to you 😊️&lt;/h3&gt;</content><category term="Notes"></category><category term="android"></category><category term="problem"></category><category term="100DaysToOffload"></category></entry><entry><title>FizzBuzz with single semicolon</title><link href="https://murtezayesil.me/fizzbuzz-with-single-semicolon.html" rel="alternate"></link><published>2020-07-20T00:00:00+06:00</published><updated>2020-07-20T00:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-20:/fizzbuzz-with-single-semicolon.html</id><summary type="html">&lt;p&gt;Attempt to write an eccentric FizzBuzz program with as few semicolon as possible.&lt;/p&gt;</summary><content type="html">&lt;p&gt;Semicolon is a bit special in Rust. It only comes after statements, not expressions. that includes codeblock returns. This gave me a silly idea.&lt;/p&gt;
&lt;h2&gt;How many semicolons needed to write a FizzBuzz program in Rust?&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre&gt;&lt;span&gt;&lt;/span&gt;&lt;code&gt;&lt;span class="k"&gt;fn&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// for every number from 1 to 100&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;in&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="o"&gt;..&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;{}&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// check if number is&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// divisible by both 3 &amp;amp; 5&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;fizzbuzz&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_string&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// if so return &amp;quot;fizzbuzz&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// divisible by 3&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;fizz&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_string&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// if so return &amp;quot;fizz&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;%&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;==&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// divisible by 5&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;quot;buzz&amp;quot;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_string&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// if so return &amp;quot;buzz&amp;quot;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// but if not&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;to_string&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// return number as String&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="c1"&gt;// print returned value&lt;/span&gt;
&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;h1 style="text-align: center;"&gt;1&lt;/h1&gt;
&lt;p&gt;There is also &lt;a href="https://github.com/Keith-S-Thompson/fizzbuzz-c/blob/master/fizzbuzz004.c" title="Brute forcing FizzBuzz in C"&gt;brute forcing method&lt;/a&gt; 🤦‍♂️️&lt;/p&gt;</content><category term="Notes"></category><category term="code"></category><category term="100DaysToOffload"></category></entry><entry><title>Digital Cleansing - Jitsi</title><link href="https://murtezayesil.me/digital-cleansing-jitsi.html" rel="alternate"></link><published>2020-07-18T00:00:00+06:00</published><updated>2020-07-18T00:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-18:/digital-cleansing-jitsi.html</id><summary type="html">&lt;p&gt;My family and relatives live different countries and make good use of video calling services regardless of who is offering the service&lt;/p&gt;</summary><content type="html">&lt;p&gt;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 &lt;strong&gt;Communication&lt;/strong&gt; problem.&lt;/p&gt;
&lt;p&gt;We have 3 kinds of communication needs in the family:&lt;br&gt;
1. Text messages&lt;br&gt;
2. Voice Calls&lt;br&gt;
3. (Mostly group) Video Calls&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;Text Messaging &amp;amp; Voice Calls&lt;/h3&gt;
&lt;p&gt;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) 😄️ &lt;br&gt;
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.&lt;br&gt;
I know I mentioned Telegram but there is one more great alternative to WhatsApp (or even Telegram). It is called &lt;a href="https://signal.org/" title="Official page"&gt;Signal&lt;/a&gt; and it is developed by a non-profit founded by Co-founder of WhatsApp, Brian Acton. It is one freaking secure messaging app 😎️&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;Group Video Calls&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;Zoom was &lt;a href="https://en.wikipedia.org/wiki/Zoom_(software)#History" title="History of Zoom on Wikipedia"&gt;launched in September 2012&lt;/a&gt;, reached &lt;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"&gt;1 Million user base in January 2013&lt;/a&gt; and rapidly grow during global quarantine to a point that Zoom got &lt;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]"&gt;2.13 Million downloads on March 23rd 2020&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;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:&lt;br&gt;
&lt;strong&gt;Windows&lt;/strong&gt; : &lt;a href="https://arstechnica.com/information-technology/2020/04/unpatched-zoom-bug-lets-attackers-steal-windows-credentials-with-no-warning/"&gt;Attackers can use Zoom to steal users Windows credentials with no warning - ars technica&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;MacOS&lt;/strong&gt; : &lt;a href="https://threatpost.com/zoom-zero-day-mac-webcam-hijacking/146317/"&gt;Zoom Zero-Day Bug Opens Mac Users to Webcam Hijacking - threat post&lt;/a&gt;. This prompted Apple to use its MRT (Malware Removal Tool) to remotely delete Zoom from Mac computers.&lt;br&gt;
&lt;strong&gt;MacOS&lt;/strong&gt; : &lt;a href="https://medium.com/bugbountywriteup/zoom-zero-day-4-million-webcams-maybe-an-rce-just-get-them-to-visit-your-website-ac75c83f4ef5"&gt;Zoom Zero Day: 4+ Million Webcams &amp;amp; maybe an RCE? Just get them to visit your website! - InfoSec Write-ups&lt;/a&gt; allowing Zoom to reinstall itself after being uninstalled and join a video call with camera activated without user's permission.&lt;br&gt;
&lt;strong&gt;MacOS&lt;/strong&gt; : &lt;a href="https://nitter.net/c1truz_/status/1244737672930824193"&gt;Zoom App installation uses the same method used by malwares to gain root priviledges - Twitter thread on Nitter&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;iOS&lt;/strong&gt; : &lt;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"&gt;Zoom iOS App Sends Data to Facebook Even if You Dont Have a Facebook Account - Vice&lt;/a&gt;&lt;br&gt;
&lt;strong&gt;Android&lt;/strong&gt; : 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
&lt;strong&gt;Linux&lt;/strong&gt; : No vulnerability was found YET. Remember that &lt;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%"&gt;Linux desktop has a small marketshare&lt;/a&gt; and apps for it are less likely to be targeted by hackers.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;"Zoom has just had so many missteps."
- Patrick Wardle, Jamf&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;You can read about Zoom's vulnerabilities on MacOS and iOS in detail in &lt;a href="https://objective-see.com/blog/blog_0x56.html" title="The 'S' in Zoom, Stands for Security - Objective-See"&gt;this blog post of Objective-See&lt;/a&gt;. &lt;/p&gt;
&lt;p&gt;These issues were &lt;strong&gt;FIXED&lt;/strong&gt; 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 &lt;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"&gt;contributed to censorship&lt;/a&gt; by closing human rights activist Zhou Fengsuo's paid account and closing Social activist Lee Cheuk Yan's account upon China's request.&lt;/p&gt;
&lt;p&gt;👉️ Since those vulnerabilities are fixed it should be safe to use Zoom, right?&lt;br&gt;
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 &lt;a href="https://zoom.us/privacy#_Toc44414842"&gt;not assuring enough&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;👉️ They introduced end-to-end encryption, E2EE. Is it insecure encryption?&lt;br&gt;
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.&lt;/p&gt;
&lt;p&gt;👉️ They say Zoom encrypts every meeting by default. Are they lying?&lt;br&gt;
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 &lt;a href="https://en.wikipedia.org/wiki/Https#Security"&gt;HTTPS&lt;/a&gt;. 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 &lt;a href="https://en.wikipedia.org/wiki/Session_key"&gt;session key&lt;/a&gt; for encryption. Your meeting is apparent to Zoom, not hidden from it.&lt;/p&gt;
&lt;p&gt;👉️ Zoom has faced &lt;a href="https://en.wikipedia.org/wiki/Zero-day_(computing)" title="Learn about zero day attacks on Wikipedia"&gt;0-day attacks&lt;/a&gt; which weren't fair.&lt;br&gt;
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 &lt;a href="https://www.intel.com/content/www/us/en/security-center/bug-bounty-program.html" title="Intel offers upto 100,000$"&gt;bug&lt;/a&gt; &lt;a href="https://hackerone.com/verizonmedia?type=team" title="Verizon offers upto 15,000$"&gt;bounty&lt;/a&gt; &lt;a href="https://www.microsoft.com/en-us/msrc/bounty" title="Microsoft offers upto 100,000$"&gt;program&lt;/a&gt;.&lt;br&gt;
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.&lt;br&gt;
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.&lt;/p&gt;
&lt;p&gt;What if I am forced to Zoom by my employer/school/family?&lt;br&gt;
Desktop/laptop users:&lt;br&gt;
1. Windows: Use virtual machine and apply one of the below Linux methods&lt;br&gt;
2. MacOS: Use virtual machine and apply one of the below Linux methods&lt;br&gt;
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.&lt;br&gt;
4. Linux: &lt;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"&gt;Install Zoom into a firejail&lt;/a&gt;, greatly limiting what it can reach.&lt;br&gt;
Mobile users:&lt;br&gt;
1. Android: &lt;a href="https://www.howtogeek.com/333484/how-to-set-up-multiple-user-profiles-on-android/" title="This process maybe different for different brands"&gt;Create a restricted user&lt;/a&gt; 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.&lt;/p&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;p&gt;I also wanted to read articles &lt;a href="https://medium.com/@rowantrollope/beyond-the-noise-7-reasons-its-safe-to-run-zoom-9a2e639b13ec"&gt;that&lt;/a&gt; &lt;a href="https://blog.prialto.com/3-reasons-why-zoom-provides-the-best-video-conferencing-software"&gt;defend&lt;/a&gt; &lt;a href="https://www.forbes.com/sites/rebeccabellan/2020/03/24/what-you-need-to-know-about-using-zoom/#3cee9d0d3284"&gt;Zoom&lt;/a&gt;. 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.&lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;Jitsi&lt;/h1&gt;
&lt;p&gt;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.&lt;/p&gt;
&lt;h1 style="text-align: center;"&gt;You can host Jitsi on your own server without relying on another entity&lt;/h1&gt;
&lt;p&gt;You want more?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Jitsi has Clean UI that is familiar to that of Zoom. &lt;/li&gt;
&lt;li&gt;Jitsi &lt;strong&gt;doesn't&lt;/strong&gt; have looping video feature which helps students or emplyees fake paying attention. &lt;/li&gt;
&lt;li&gt;Jitsi is &lt;strong title="Free Open Source Software"&gt;FOSS&lt;/strong&gt; developed by &lt;a href="https://8x8.com"&gt;8x8&lt;/a&gt;. &lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Hosting Jitsi doesn't require a server with powerful CPU or GPU. Important resource is bandwidth. &lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Jitsi doesn't have virtual background but it instead has background blurring in development.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;👉️ Is it truely E2EE?&lt;br&gt;
&lt;strong&gt;This is what I understood from reading &lt;a href="https://github.com/jitsi/jitsi-meet/issues/409#issuecomment-260652107"&gt;this threat&lt;/a&gt;. Please correct me if I am wrong&lt;/strong&gt;&lt;br&gt;
Short answer is No.&lt;br&gt;
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.&lt;br&gt;
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 &lt;strong&gt;isn't&lt;/strong&gt; true E2EE.&lt;/p&gt;
&lt;p&gt;👉️ Do anyone even use it?&lt;br&gt;
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.&lt;/p&gt;
&lt;h2&gt;How to install Jitsi server?&lt;/h2&gt;
&lt;p&gt;I followed &lt;strong&gt;Nerd on the Street&lt;/strong&gt;'s &lt;a href="https://invidio.us/watch?v=IQRwtUamHQU"&gt;Host a Jitsi Meet Server&lt;/a&gt; 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.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;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 &lt;a href="https://en.wikipedia.org/wiki/Zoom_(software)" title="Read more about Zoom on WikiPedia"&gt;Wikipedia&lt;/a&gt;. 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.&lt;/p&gt;
&lt;hr&gt;
&lt;h3&gt;Other side of the coin&lt;/h3&gt;
&lt;p&gt;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.&lt;/p&gt;</content><category term="Tech"></category><category term="digitalcleansing"></category><category term="privacy"></category><category term="jitsi"></category><category term="100DaysToOffload"></category></entry><entry><title>Digital Cleansing - NextCloud</title><link href="https://murtezayesil.me/digital-cleansing-nextcloud.html" rel="alternate"></link><published>2020-07-16T10:00:00+06:00</published><updated>2020-07-16T10:00:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-16:/digital-cleansing-nextcloud.html</id><summary type="html">&lt;p&gt;NextCloud has 4 things going for me. It is FOSS, it gives me control, it is convenient and it works.&lt;/p&gt;</summary><content type="html">&lt;p&gt;This article reflects my opinions and experiences with few file server services.&lt;/p&gt;
&lt;p&gt;TL;DR : I think NextCloud is a far superior product for the price.&lt;/p&gt;
&lt;p&gt;Digital cleansing is about reowning personal data and regaining control over how it is processed. When I started digital cleansing, I wanted to start from where the most of my data is stored. There are 2 such services, Google Drive and Photos. I started by looking for &lt;a href="https://alternativeto.net/software/google-drive/"&gt;alternatives&lt;/a&gt;. OwnCloud and NextCloud seemed like &lt;strong&gt;affordable&lt;/strong&gt; and &lt;strong title="Free Open Source Software"&gt;FOSS&lt;/strong&gt; alternatives that allow &lt;strong title="Can be hosted on personal (or home) computer/server without relying on another service provider"&gt;self-hosting&lt;/strong&gt;.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;Owncloud&lt;/h2&gt;
&lt;p&gt;I started my journey by renting a VM on Digital Ocean, droplet. I installed &lt;a href="https://en.wikipedia.org/wiki/LAMP_(software_bundle)" title="Minimum set of softwares needed for a working web service"&gt;LAMP stack&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/OwnCloud" title="File server service"&gt;OwnCloud&lt;/a&gt;. As a new comer to OwnCloud, I started to click every button in every menu to discover and learn more about OwnCloud. &lt;a href="https://marketplace.owncloud.com/"&gt;Marketplace&lt;/a&gt;, a feature manager to add/remove more features, has many stuff that can appeal to enterprises and teams working from home. Next, I browsed the &lt;a href="https://search.f-droid.org/?q=owncloud" title="Apps for OwnCloud on F-droid"&gt;available Android apps for OwnCloud&lt;/a&gt;. To my surprise, there aren't many. I expected niche apps on Android for using niche features on marketplace. Instead, I would run into more &lt;a href="https://search.f-droid.org/?q=nextcloud" title="Apps for NextCloud on F-droid"&gt;apps branded for NextCloud&lt;/a&gt;. Meanwhile I updated the droplet, because updates are important, but ran into "kernel updates rendering server unbootable" kind of issues, I switched to Linode and NextCloud after strugling on Digital Ocean for a week.&lt;/p&gt;
&lt;p&gt;Just like Owncloud's marketplace, NextCloud has its own "app store", I'd like to them "feature manager" instead because both marketplace and app store are used for en/disabling features on the platform. But NextCloud has niche apps for Android and I believe this provides more convenience to mobile users like myself.&lt;/p&gt;
&lt;hr&gt;
&lt;h2&gt;NextCloud&lt;/h2&gt;
&lt;p&gt;Since NextCloud is a file server in its core, it was the drop-in Google Drive &amp;amp; Photos replacement I needed. It also has built-in &lt;a href="https://en.wikipedia.org/wiki/WebDAV" title="Protocol for using remote file system over HTTP"&gt;WebDAV&lt;/a&gt;, &lt;a href="https://en.wikipedia.org/wiki/CardDAV" title="vCard (contact info) extension for WebDAV"&gt;CardDAV&lt;/a&gt; and &lt;a href="https://en.wikipedia.org/wiki/CalDAV" title="Calendar extension for WebDAV"&gt;CalDAV&lt;/a&gt; support, which means I can use NextCloud as Google Contacts &amp;amp; Calendar replacement as well and access files in native file manager as if it was a USB drive 🎉️&lt;/p&gt;
&lt;p&gt;After enabling more services from feature manager (yes, I am sticking with this name) it also became my notes, tasks, bookmarks manager as well. All powered by a VM that costs 5$/month to run, +2$ for backup.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;One who loves roses should endure thorns - Turkish Proverb&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;NextCloud is great. But just like every other artificial thing in this world, it isn't perfect. The biggest problem I face with it is the &lt;strong&gt;performance&lt;/strong&gt; of web interface. It is written in PHP and being not compiled program is not doing any favors. Image preview loading can be called sluggish by many. Since I use mobile app most of the time which caches the previews, user experience isn't bad in my opinion.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;a href="https://kevq.uk" title="his blog"&gt;Kev Quirk&lt;/a&gt; wrote a blog about his opinions and experiences with &lt;strong title="My current choice of file server solution"&gt;NextCloud&lt;/strong&gt; and &lt;strong title="His choice of home server solution"&gt;Synology&lt;/strong&gt;. This is my answer to &lt;a href="https://kevq.uk/synology-vs-nextcloud-which-is-better-for-a-home-server/" title="Synology vs Nextcloud Which Is Better For A Home Server?"&gt;his blog&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Synology's home server sound like a great product. I am happy for you and your family that your data is safe and accesible without giving up your privacy. After reading your blog, I wanted to try Synology as well. Upon seeing the price for &lt;a href="https://www.newegg.com/synology-ds420/p/N82E16822108744" title="4 HDD bay NAS for home/small business use (disks not included)"&gt;Synology 420+&lt;/a&gt; is 500$ and another 400$ for 4x &lt;a href="https://www.newegg.com/seagate-ironwolf-st4000vn008-4tb/p/N82E16822179005" title="SeaGate NAS HDD"&gt;4TB HDD&lt;/a&gt; for RAID 6, I believe NextCloud is the best choice I have. I am 1 student who has no movies, musics, 4K family photos or video project for YouTube channel to utilize TBs of storage not do I have budget for it. Under these requirements and constraints, I want to offer an alternative to Google to my family. Since I can't just ask for ~900$ for Synology, NextCloud on a VM is the best option I have. I still have option of increasing VM disk size or mounting external block storage as our storage needs grow.&lt;/p&gt;
&lt;p&gt;It is nice that we have different perspectives on same topic. I wrote this answer because I wanted you to see from the eyes of a student living on pocket money and still afford for privacy of his and his family. May your Synology system last long and serve your family well 🙂️&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;If you think Google services aren't that bad and I would be better off keep using Google services, &lt;a href="https://tosdr.org/#google"&gt;here is my reasoning #1&lt;/a&gt; and &lt;a href="https://www.reuters.com/article/us-alphabet-google-privacy-lawsuit/google-faces-lawsuit-over-tracking-in-apps-even-when-users-opted-out-idUSKCN24F2N4" title="Google faces lawsuit over tracking in apps even when users opted out - Reuters"&gt;#2&lt;/a&gt;. But if you still think that I should use Google services, tell me your reasoning and help me see your side of the coin. I would like to stay open minded.&lt;/p&gt;</content><category term="Tech"></category><category term="digitalcleansing"></category><category term="privacy"></category><category term="nextcloud"></category><category term="100DaysToOffload"></category></entry><entry><title>Digital Cleansing - Identifying services we use</title><link href="https://murtezayesil.me/digital-cleansing-identifying-services-we-use.html" rel="alternate"></link><published>2020-07-14T03:40:00+06:00</published><updated>2020-07-14T03:40:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-14:/digital-cleansing-identifying-services-we-use.html</id><summary type="html">&lt;p&gt;Step 1 of digital cleansing is identifying services I want to drop&lt;/p&gt;</summary><content type="html">&lt;h1&gt;Digital Cleansing For Better Privacy&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;Identifying products and services we use&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;Finding/Offering alternatives&lt;/li&gt;
&lt;li&gt;Moving to alternatives and helping my family to move as well&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I will make a list of services I use or used in the past but didn't delete my account. For each service, I will look for alternatives, move my data to alternatives or deploy an instance of alternative on my server. I will use the alternatives for a while and learn more about how to use them properly. This way I will be able to help my family have a smooth transition. &lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Here is my list. This list may be different for you, therefore you should make your own list.&lt;br&gt;
This list may get longer as I remember services I subscribed to but didn't use in a while.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Gmail&lt;/li&gt;
&lt;li&gt;Google Drive&lt;/li&gt;
&lt;li&gt;Google Photos&lt;/li&gt;
&lt;li&gt;Google Contacts&lt;/li&gt;
&lt;li&gt;Google Search&lt;/li&gt;
&lt;li&gt;Facebook&lt;/li&gt;
&lt;li&gt;Instagram&lt;/li&gt;
&lt;li&gt;WhatsApp&lt;/li&gt;
&lt;li&gt;WhatsApp (Voice/Video Call)&lt;/li&gt;
&lt;li&gt;Zoom&lt;/li&gt;
&lt;li&gt;Windows OS&lt;/li&gt;
&lt;li&gt;Stock Android ROM (due to embedded Google services)&lt;/li&gt;
&lt;li&gt;Mi account (because I used MIUI Android ROM)&lt;/li&gt;
&lt;li&gt;...&lt;/li&gt;
&lt;li&gt;Note to self: Check archieved emails to find services you stopped using and request account deletion&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;Now I have a "list of service to opt-out from" to help me focus better. That being said, I started to de-google a while ago and replaced Gmail with Protonmail already. If you think Google is privacy friendly and no need to avoid Google services, &lt;a href="https://tosdr.org/#google"&gt;here is why I decided to de-google&lt;/a&gt;.
I will start with looking for alternatives to Google Drive.&lt;/p&gt;
&lt;p&gt;If there is any other service you think I should stay away from, you can write to comment toot.&lt;br&gt;
If you have written a blog post as an answer, mention that too.&lt;br&gt;
If you think some of the services or softwares I mentioned here aren't that bad and I would be better of keep using them, please share why you think so. I want to keep an open mind and look at those services from your perspective too.&lt;/p&gt;</content><category term="Tech"></category><category term="digitalcleansing"></category><category term="privacy"></category><category term="100daystooffload"></category></entry><entry><title>Digital Cleansing For Better Privacy</title><link href="https://murtezayesil.me/digital-cleansing-for-better-privacy.html" rel="alternate"></link><published>2020-07-12T00:07:00+06:00</published><updated>2020-07-12T00:07:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-12:/digital-cleansing-for-better-privacy.html</id><summary type="html">&lt;p&gt;I am documenting my journey to claiming my digital freedom. Previously called "My Master Plan For Privacy (of my family)".&lt;/p&gt;</summary><content type="html">&lt;p&gt;I previously wrote about &lt;a href="privacy_for_the_whole_family.md" title="Privacy For The Whole Family"&gt;how I got became more privacy caring individual&lt;/a&gt; and I tooted about &lt;a href="https://fosstodon.org/@murtezayesil/104480280886518081"&gt;My Master Plan for Privacy of My Family&lt;/a&gt;. As I grew up, I came to realize how much we gave up on privacy for the convinience and "free" services. We are social creatures. I was using Google Photos, WhatsApp, Youtube and Instagram as much as I could and my family is doing the same. We are putting each other's privacy at stake by uploading data about each other without knowing. I decided to change that either by finding privacy focused alternatives to digital services I was using or by build server system to offer alternatives myself.&lt;/p&gt;
&lt;p&gt;I am not the first to do this. There are many privacy friendly alternatives developed by people who care about privacy. It isn't hard to find those &lt;a href="https://alternativeto.net/" title="Crowdsourced Software Recomendations"&gt;alternatives&lt;/a&gt;. Many people went through this journey, which I call "Digital Cleansing For Better Privacy". During my journey, I will document the steps I have taken and write my thoughts about the alternatives I tried.&lt;/p&gt;
&lt;hr&gt;
&lt;h1&gt;Digital Cleansing For Better Privacy&lt;/h1&gt;
&lt;ol&gt;
&lt;li&gt;Identifying products and services we use&lt;/li&gt;
&lt;li&gt;Finding/Offering alternatives&lt;/li&gt;
&lt;li&gt;Moving to alternatives and helping my family to move as well&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;p&gt;After identifying the products and services that needs replacing, I will loop step 2 and 3 for each product and service. This way I will be introducing only 1 service to my family at a time. I am planning to give them enough time for learning each alternative and understand why they should use it instead. Else, this would get overwhelming very quick.&lt;/p&gt;</content><category term="Tech"></category><category term="digitalcleansing"></category><category term="privacy"></category><category term="100DaysToOffload"></category></entry><entry><title>Privacy For The Whole Family</title><link href="https://murtezayesil.me/privacy-for-the-whole-family.html" rel="alternate"></link><published>2020-07-10T11:18:00+06:00</published><updated>2020-07-10T11:18:00+06:00</updated><author><name>Ali Murteza Yesil</name></author><id>tag:murtezayesil.me,2020-07-10:/privacy-for-the-whole-family.html</id><summary type="html">&lt;p&gt;My story of learning about wounds in my privacy and my first steps to cure it, helping my family for the same too.&lt;/p&gt;</summary><content type="html">&lt;p&gt;According to my mother, we had internet in our house while I was a baby. Internet back in the day used to make iconic dial sound, was slow and would lose connection whenever someone called the landline. I grew up seeing webpages full of GIFs (I won't argue about its pronounciation, it was decided long ago) and banner ads injected by adwares. Flash and Shockwave were the fundamental building blocks of interactive webpages with animations.&lt;/p&gt;
&lt;p&gt;All those colorful flash games sites were offering tones of free games in exchange of distributing adverts and malware in their websites. As a child attracted by colors, I believed that those games were actually free. Some of those "free" game sites are still around and powered by Google AdSense. Others moved to Facebook and started earning from Facebook Ads and in-game currencies often called "gems". Around that time my classmates started to talk about Facebook and I had to go there too.&lt;/p&gt;
&lt;p&gt;I grew up since then. I came abroad to study computer science. I have my own laptop and smartphone. I was using my devices and all those free services to talk to my family from thousands of kilometres away. I was using those sweet and free services for backing up my data, photos, documents, contacts and more. These services are free for us because all those wonderful advertisers are paying them off their goodwill ...&lt;/p&gt;
&lt;h4&gt;&lt;em&gt;&lt;strong&gt;So I thought&lt;/strong&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p&gt;I was naive to upload my and my family's photos to Google Photos. I was naive to tag my friends in photos on Facebook. I was naive to use Amazon instead of taking a walk in tech market and support the independent sellers. I was feeding tech giants for convenience and damaging local economy without knowing. I didn't know any better and I confussed giving up my privacy with convenience. I am not that naive kid anymore. I learned English Language in Kenya and I learned to harness the knowledge in the internet. I learned that there are alternatives that I can use.&lt;/p&gt;
&lt;h4&gt;&lt;em&gt;&lt;strong&gt;I learned that there is a way to gain my digital freedom&lt;/strong&gt;&lt;/em&gt;&lt;/h4&gt;
&lt;p&gt;My first action was to switch to &lt;a href="https://duckduckgo.com"&gt;&lt;img alt="DuckDuckGo logo" src="https://fosstodon.b-cdn.net/custom_emojis/images/000/010/368/static/duckduckgo.png"&gt; DuckDuckGo&lt;/a&gt; from Google Search. I found that the most widely adopted service of Google is a text box for us to write our most intimate secrets in plain text.&lt;/p&gt;
&lt;p&gt;&lt;img alt="Google wants user data. Users use Google Search for sensitive personal issues. Google says &amp;quot;It's Free Real Estate&amp;quot;" src="https://murtezayesil.me/images/it_is_free_real_estate_1.jpg"&gt;&lt;/p&gt;
&lt;p&gt;Dropping Google Search wasn't gonna cut it though. I still was relying on Google Contacts, Photos and Drive to backup my data. I needed something that could backup my phone properly while not giving up my data to data hungry companies.&lt;/p&gt;
&lt;h1&gt;NextCloud to the rescue&lt;/h1&gt;
&lt;p&gt;NextCloud is a file hosting service with built-in CardDAV (contact sync), CalDAV (calendar sync) and WebDAV (file sync) servers. Not to mention, it supports adding more features by installing modules from its &lt;a href="https://apps.nextcloud.com/"&gt;apps library&lt;/a&gt;. It is &lt;a href="https://en.wikipedia.org/wiki/Free_and_open-source_software" title="Free and Open Source Software"&gt;FOSS&lt;/a&gt; free as in freedom for everyone and int this case free as in price for non-enterprise users. Nice thing about NextCloud is that it offers &lt;em&gt;all of its features&lt;/em&gt; to both its enterprise and home/personal users. Enterprise users also benefit from technical maintenance support direct from the NextCloud.&lt;/p&gt;
&lt;p&gt;The way I deployed my NextCloud instance was to rent a remote VM. I am a student who can't afford to buy a machine and run it 24/7. Renting a server seemed like the most affordable and logical idea to me. Rent costs $5/month for the cheapest tier. I am careful with my pocket money and after cancelling my Netflix subscription, I had more than enough to pay $5/month.&lt;/p&gt;
&lt;p&gt;After renting a server, I started experimenting with different OSes. I tried Debian but its php packages were old. I tried CentOS based NethServer but default user credentials for NextCloud were wrong and I couldn't use it either. I finally settled at Ubuntu 20.04 LTS. I followed few tutorials before I found Kev's tutorial. I deviated from those tutorials because I am young and ... nevermind. I finally found Kev's tutorial and &lt;/p&gt;
&lt;p&gt;There still was a problem though. I am not he only one sharing data about me. My family can do that too. And I felt responsible for helping my family with claiming their digital freedom too. I decided to create accounts for them and help them migrate to my NextCloud instance. It turns out my family acknowledged the privacy they were giving up for the convenience. But they didn't know any alternatives. When I invited them to use my NextCloud instance they were excited. But moving from Google Suite to NextCloud isn't done yet. It takes time to learn new systems and their quirks.&lt;/p&gt;
&lt;h2&gt;Conclusion&lt;/h2&gt;
&lt;p&gt;I think this was a successful attempt. Of course I am not done here. I may need to introduce my family to Fediverse, free social media powered by voluntaries, or Jitsi, Open Source alternative to Zoom and WhatsApp video calls services. But for now we all made good progress I would say. I will let some time pass until they get more comfortable at using NextCloud. I don't want to overwhelm them and make them regret switching. I don't want to be another reason they stay on Google. &lt;/p&gt;
&lt;p&gt;Meanwhile, why won't you make an attempt to gain your own digital freedom ?&lt;br&gt;
I see many ways this can be achieved (numbers in front suggest how difficult I think they are, rated out of 5):&lt;br&gt;
3 - Manually install NextCloud on a remote VM&lt;br&gt;
2 - Install NextCloud via Snap Package on a remote VM&lt;br&gt;
4 - Manually install NextCloud on an old computer&lt;br&gt;
3 - Install NextCloud via Snap on an old computer&lt;br&gt;
1 - Purchase a &lt;a href="https://www.synology.com"&gt;Synology&lt;/a&gt; NAS to easily self-host data backup, sync and similar services&lt;br&gt;
2 - Purchase a shared hosting on one of many service providers tested by NextCloud company&lt;/p&gt;
&lt;h2&gt;Tutorials&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;Installing on own server&lt;/strong&gt;: Kev beautifully explains both Snap Package way and manual way of installing in his &lt;a href="https://kevq.uk/how-to-setup-a-nextcloud-server-in-ubuntu/"&gt;tutorial&lt;/a&gt;.&lt;br&gt;
&lt;strong&gt;Installing on shared hosting&lt;/strong&gt;: But if you are intimidated with the idea of setting up your own server and managing it, you can use a shared hosting instead. Kev has a &lt;a href="https://kevq.uk/how-to-install-nextcloud-on-shared-hosting/"&gt;tutorial&lt;/a&gt; for that too, albeit it aged a bit old. &lt;br&gt;
&lt;strong&gt;Repurposing old hardware&lt;/strong&gt;: If you have an old computer gathering dust in a closet, why not use it as a home server! You will find many tutorials on the internet on &lt;a href="https://lbry.tv/@TheLinuxGuy:d/How-to-Install-Ubuntu-Server-20.04-LTS:5"&gt;how to install Ubuntu server&lt;/a&gt;. &lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;The only reason I followed manual method was some rookie mistake I made that caused Let's Encrypt HTTPS script to not work properly 😬️ I highly doubt you will face the same issue if you follow the tutorials carefully. Even if you do face some problems with &lt;a href="https://certbot.eff.org/"&gt;getting HTTPS certificate using &lt;code&gt;certbot&lt;/code&gt;&lt;/a&gt; command isn't difficult at all.&lt;/p&gt;</content><category term="Tech"></category><category term="privacy"></category><category term="nextcloud"></category><category term="self-hosting"></category><category term="100DaysToOffload"></category></entry></feed>