<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
    <title>alavi.me - engineering</title>
    <subtitle>My mind on the web</subtitle>
    <link rel="self" type="application/atom+xml" href="https://alavi.me/tags/engineering/atom.xml"/>
    <link rel="alternate" type="text/html" href="https://alavi.me"/>
    <generator uri="https://www.getzola.org/">Zola</generator>
    <updated>2026-04-22T00:00:00+00:00</updated>
    <id>https://alavi.me/tags/engineering/atom.xml</id>
    <entry xml:lang="en">
        <title>We Need Apocalypse-Proof Software</title>
        <published>2026-01-10T00:00:00+00:00</published>
        <updated>2026-02-15T00:00:00+00:00</updated>
        
        <author>
          <name>
            Alireza Alavi
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://alavi.me/blog/we-need-apocalypse-proof-software/"/>
        <id>https://alavi.me/blog/we-need-apocalypse-proof-software/</id>
        
        
        <content type="html" xml:base="https://alavi.me/blog/we-need-apocalypse-proof-software/">&lt;h2 id=&quot;preface&quot;&gt;Preface&lt;a class=&quot;zola-anchor&quot; href=&quot;#preface&quot; aria-label=&quot;Anchor link for: preface&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;After experiencing war, numerous revolution attempts and mass protests, and numerous
extended internet blackouts, I have experienced how it is to live in situations
where there is no internet and no connectivity (among other things).&lt;&#x2F;p&gt;
&lt;p&gt;In my country, Iran, we are currently going through a full internet blackout due to mass protests.
Today, I wanted to start working on one of my projects (using Clojure and kit-clj),
And right from the start, trying to start my dev server with &lt;code&gt;clj -M:dev:nrepl&lt;&#x2F;code&gt; I get faced
by these errors:&lt;&#x2F;p&gt;
&lt;pre class=&quot;giallo&quot; style=&quot;color-scheme: light dark; color: light-dark(#4C4F69, #CDD6F4); background-color: light-dark(#EFF1F5, #1E1E2E);&quot;&gt;&lt;code data-lang=&quot;plain&quot;&gt;&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;```&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;Unable to fetch &#x2F;home&#x2F;alireza&#x2F;.gitlibs&#x2F;_repos&#x2F;https&#x2F;github.com&#x2F;cognitect-labs&#x2F;test-runner&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;fatal: unable to access &amp;#39;https:&#x2F;&#x2F;github.com&#x2F;cognitect-labs&#x2F;test-runner.git&#x2F;&amp;#39;: Could not resolve host: github.com&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;
&lt;span class=&quot;giallo-l&quot;&gt;&lt;span&gt;```&lt;&#x2F;span&gt;&lt;&#x2F;span&gt;&lt;&#x2F;code&gt;&lt;&#x2F;pre&gt;
&lt;p&gt;So I can&#x27;t work on my project when there is no internet. Which is pretty sad
(it could still be run if I commented out some of the startup dependencies, but still).&lt;&#x2F;p&gt;
&lt;p&gt;Yesterday, I tried to connect my sister&#x27;s Samsung phone to my NAS(network attached storage)
to listen to music, and the file manager tried to download the FTP functionality from
the galaxy store, although she had connected to the NAS before.&lt;br &#x2F;&gt;
While my FOSS file manager &quot;Material Files&quot; already has FTP functionality built-in and it takes only
20MB of space on my phone.&lt;&#x2F;p&gt;
&lt;p&gt;You can see this pattern a lot. Software that are not online in nature, needing an internet connection.&lt;br &#x2F;&gt;
Depending on where you live on the blue-ish globe, You might experience outages quite often, like
we Iranians do. And it&#x27;s not only about governmental outages. Many countries or places on the world
simply don&#x27;t have internet. You might be on vacation with no internet, maybe your internet
subscription has ended,
you might be in a cafe and you don&#x27;t want to connect to the public internet, or maybe the
zombies have broken loose and chewed your internet cable!&lt;br &#x2F;&gt;
Its simple. &lt;strong&gt;You shouldn&#x27;t need to be online for doing something inherently offline. We don&#x27;t need
to be constantly online.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;Many of our software are built on top of the assumption of good, stable, high speed connectivity,
up to date hardware and the ability to babysit, update and fix the software constantly.&lt;br &#x2F;&gt;
In bad situations like this, you don&#x27;t have any of this. You might go months without being connected
to the internet, you might have to use decades old hardware, and the software should be reliable
enough so you don&#x27;t have to constantly babysit it.&lt;&#x2F;p&gt;
&lt;p&gt;In fact, creating software and hardware for &quot;the apocalypse&quot; or more realistically,
&quot;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Societal_collapse&quot;&gt;Civilizational collapse&lt;&#x2F;a&gt;&quot; has been a focus of many smart people over the years.&lt;br &#x2F;&gt;
For example, the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;plan9.io&#x2F;plan9&#x2F;&quot;&gt;plan9 operating system&lt;&#x2F;a&gt; or &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;collapseos.org&#x2F;&quot;&gt;collapseOS&lt;&#x2F;a&gt; are operating systems that
are either specifically built for this scenario or fit very well with it.
So these aren&#x27;t just my schizophrenic thoughts, these are very much real experiences.&lt;&#x2F;p&gt;
&lt;p&gt;And this isn&#x27;t just about the collapse of civilizations, wars, outages etc. (which are very likely).&lt;br &#x2F;&gt;
Even disregarding these matters, we need to create software for worst case scenario, the same way
good automotive manufacturers do (or used to do).&lt;br &#x2F;&gt;
You can rely on a good car in pretty dire situations, pushing it much further from it&#x27;s normal and rated usage, and it will be mostly fine.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-do-we-address-this-as-software-engineers&quot;&gt;How do we address this as software engineers?&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-do-we-address-this-as-software-engineers&quot; aria-label=&quot;Anchor link for: how-do-we-address-this-as-software-engineers&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;h3 id=&quot;we-must-take-an-offline-first-and-local-first-approach-to-our-critical-not-inherently-online-software&quot;&gt;We must take an offline-first and local-first approach to our critical, not inherently online software&lt;a class=&quot;zola-anchor&quot; href=&quot;#we-must-take-an-offline-first-and-local-first-approach-to-our-critical-not-inherently-online-software&quot; aria-label=&quot;Anchor link for: we-must-take-an-offline-first-and-local-first-approach-to-our-critical-not-inherently-online-software&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;It doesn&#x27;t get worse than opening your text editor or image editor program
and it not working because you are not connected to the internet.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;If the nature of your software isn&#x27;t online, make sure it doesn&#x27;t require to be.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;h3 id=&quot;we-must-make-robust-software-that-can-work-for-years-without-needing-to-update&quot;&gt;We must make robust software that can work for years without needing to update&lt;a class=&quot;zola-anchor&quot; href=&quot;#we-must-make-robust-software-that-can-work-for-years-without-needing-to-update&quot; aria-label=&quot;Anchor link for: we-must-make-robust-software-that-can-work-for-years-without-needing-to-update&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;This is a whole topic on how to make robust software, but in general:&lt;&#x2F;p&gt;
&lt;ol&gt;
&lt;li&gt;we have to release our software tested and verified, to sensible degree.&lt;&#x2F;li&gt;
&lt;li&gt;we must use stable technology for our software development.&lt;&#x2F;li&gt;
&lt;li&gt;we must create high quality software.&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;p&gt;Can we start formally verifying every piece of software we write?&lt;br &#x2F;&gt;
No. That is not feasible, because the cost would be too high, and some software isn&#x27;t just that critical to justify
the cost. But, we must verify and test our software, to the degree that is sensible for its
criticality, to deliver stable and robust software. Software that works even when things go wrong.
Not software that is glued together and falls apart as soon as it faces the most minor inconvenience.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;we-must-make-more-software-that-are-meant-to-help-in-situations-like-these&quot;&gt;We must make more software that are meant to help in situations like these&lt;a class=&quot;zola-anchor&quot; href=&quot;#we-must-make-more-software-that-are-meant-to-help-in-situations-like-these&quot; aria-label=&quot;Anchor link for: we-must-make-more-software-that-are-meant-to-help-in-situations-like-these&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;Bringing offline functionality for critical tasks will really help us in situations like these,
like Kiwix, Zeal, and many others do.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;our-software-must-contain-offline-documentation&quot;&gt;Our software must contain offline documentation&lt;a class=&quot;zola-anchor&quot; href=&quot;#our-software-must-contain-offline-documentation&quot; aria-label=&quot;Anchor link for: our-software-must-contain-offline-documentation&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;In Neovim, you can do &lt;code&gt;:help&lt;&#x2F;code&gt; or for example &lt;code&gt;:help netrw&lt;&#x2F;code&gt; or any part or module of nvim and
you will get pretty good documentation right there. Those &lt;code&gt;.txt&lt;&#x2F;code&gt; files &lt;em&gt;are&lt;&#x2F;em&gt; the official documentation of Neovim. That&#x27;s what you see on the website too. This is great practice.&lt;br &#x2F;&gt;
Most good plugins also add their manuals there.&lt;br &#x2F;&gt;
The same goes for Emacs. I think Emacs is even stronger in that since how the codes are the documents.&lt;br &#x2F;&gt;
Most good software will have &lt;code&gt;man&lt;&#x2F;code&gt; pages which you can use. There is a lot of information that you can
get from a good manpage. We should write good manpages, or other forms of easily accessible
offline documentation for our software.&lt;br &#x2F;&gt;
For example, the &lt;code&gt;fennel&lt;&#x2F;code&gt; programming language provides it&#x27;s whole tutorial in the manpages with
&lt;code&gt;man fennel-tutorial&lt;&#x2F;code&gt;.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;we-should-write-efficient-software-that-run-great-on-low-end-systems&quot;&gt;We should write efficient software that run great on low end systems&lt;a class=&quot;zola-anchor&quot; href=&quot;#we-should-write-efficient-software-that-run-great-on-low-end-systems&quot; aria-label=&quot;Anchor link for: we-should-write-efficient-software-that-run-great-on-low-end-systems&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;p&gt;Do I need to dive further in this or did the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;2024%E2%80%93present_global_memory_supply_shortage&quot;&gt;recent global RAM shortage&lt;&#x2F;a&gt;
gave us the lesson we needed to learn?&lt;br &#x2F;&gt;
We can&#x27;t just keep bloating our software and expecting users to throw more hardware at it.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;some-software-for-apocalypse&quot;&gt;Some software for apocalypse&lt;a class=&quot;zola-anchor&quot; href=&quot;#some-software-for-apocalypse&quot; aria-label=&quot;Anchor link for: some-software-for-apocalypse&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;This can probably serve as a checklist for future events.&lt;&#x2F;p&gt;
&lt;p&gt;Note that circumventing governmental censorships is a topic of it&#x27;s own, which will not be covered
in this post. Here we are mostly trying to survive in the situation with what we have, and
circumventing it is a pretty complex task that we won&#x27;t cover in this post.&lt;br &#x2F;&gt;
But make sure you are also always prepared for that case too. To be realistic,
there will probably be governmental censorship in any critical situation as we saw during
COVID-19 or other dire situations around the world.&lt;&#x2F;p&gt;
&lt;h3 id=&quot;documentation-and-knowledge&quot;&gt;Documentation and knowledge&lt;a class=&quot;zola-anchor&quot; href=&quot;#documentation-and-knowledge&quot; aria-label=&quot;Anchor link for: documentation-and-knowledge&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;zealdocs.org&quot;&gt;Zeal&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Some other solutions for downloading documents not available in zeal.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Just downloading the HTML sources.(HTMX, babashka, kit-clj, reitit, Vue.js) how?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;arch-wiki-docs&lt;&#x2F;code&gt;
&lt;ul&gt;
&lt;li&gt;If you use Linux, the arch wiki is going to come in really handy.&lt;br &#x2F;&gt;
Download this package on arch with &lt;code&gt;pacman -Syu arch-wiki-docs&lt;&#x2F;code&gt;.
Then, you can probably see the document files in &lt;code&gt;&#x2F;usr&#x2F;share&#x2F;doc&#x2F;arch-wiki&#x2F;en&lt;&#x2F;code&gt; and
open them in your browser.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;kiwix.org&quot;&gt;Kiwix&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Kiwix is an offline browser for Wikipedia and many other Wikimedia wikis.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;man&lt;&#x2F;code&gt; pages
&lt;ul&gt;
&lt;li&gt;Learning to use &lt;code&gt;man&lt;&#x2F;code&gt;pages on Linux really helped me to keep working and understanding
my software even without internet.&lt;br &#x2F;&gt;
manpages are very powerful and good software always have good manpages.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;code&gt;info&lt;&#x2F;code&gt; tool
&lt;ul&gt;
&lt;li&gt;Lesser known than &lt;code&gt;man&lt;&#x2F;code&gt;, &lt;code&gt;info&lt;&#x2F;code&gt; is another tool for reading Info documentation.&lt;br &#x2F;&gt;
By just typing &lt;code&gt;info&lt;&#x2F;code&gt; you will get a list of documentation. Info documentation tends to be
more comprehensive and verbose than man pages, It has many documents, And covers almost all GNU projects.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Downloading documentation of needed libraries that aren&#x27;t available elsewhere
&lt;ul&gt;
&lt;li&gt;Most software and libraries have website documentation. You can clone the documentation from it&#x27;s repository&lt;&#x2F;li&gt;
&lt;li&gt;If they have a single page doc, save that as HTML with your browser&#x27;s &quot;save page as&quot;, and &quot;print&quot;&lt;&#x2F;li&gt;
&lt;li&gt;or use something like &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.httrack.com&#x2F;&quot;&gt;HTTrack&lt;&#x2F;a&gt; (&lt;code&gt;sudo pacman -S httrack&lt;&#x2F;code&gt;) to copy whole websites.&lt;&#x2F;li&gt;
&lt;li&gt;Make sure you have a simple http server like &lt;code&gt;http-server&lt;&#x2F;code&gt; (&lt;code&gt;npm install -g http-server&lt;&#x2F;code&gt;) to help you serve
and view static website easily.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;!-- TODO: what to use for farsi, english and arabic? --&gt;
&lt;ul&gt;
&lt;li&gt;Offline dictionary
&lt;ul&gt;
&lt;li&gt;For your native language and languages you use the most or are learning.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;file-sharing&quot;&gt;File sharing&lt;a class=&quot;zola-anchor&quot; href=&quot;#file-sharing&quot; aria-label=&quot;Anchor link for: file-sharing&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Torrenting
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;transmissionbt.com&#x2F;&quot;&gt;Transmission&lt;&#x2F;a&gt; (Linux, Windows, Mac)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;github.com&#x2F;proninyaroslav&#x2F;libretorrent&quot;&gt;LibreTorrent&lt;&#x2F;a&gt; (Android)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;localsend.org&#x2F;&quot;&gt;Localsend&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Has andriod, ios, linux, windows, mac and web clients. Also keep the installation files to share them.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;localsend.org&#x2F;&quot;&gt;Onionshare&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;Share files over Tor network.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;Keep an exFAT USB drive handy, to share files if you couldn&#x27;t use other solutions.
I use exFAT since both windows and Linux computers can use it.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;software-package-repositories&quot;&gt;Software package repositories&lt;a class=&quot;zola-anchor&quot; href=&quot;#software-package-repositories&quot; aria-label=&quot;Anchor link for: software-package-repositories&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Host your most needed and used packages on a mirror. You can use a heavy and feature rich tool
like &quot;nexus repository&quot; from Sonatype, or just &lt;code&gt;wget&lt;&#x2F;code&gt; your &lt;strong&gt;needed&lt;&#x2F;strong&gt; packages somewhere and
setup a simple mirror.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;collaboration&quot;&gt;Collaboration&lt;a class=&quot;zola-anchor&quot; href=&quot;#collaboration&quot; aria-label=&quot;Anchor link for: collaboration&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;kb.alavi.me&#x2F;#&#x2F;page&#x2F;git%20email%20workflow&quot;&gt;Git with email workflow&lt;&#x2F;a&gt; (or on a USB maybe?!)&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;communication&quot;&gt;Communication&lt;a class=&quot;zola-anchor&quot; href=&quot;#communication&quot; aria-label=&quot;Anchor link for: communication&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;briarproject.org&#x2F;&quot;&gt;Briar&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;P2P communication can come in very handy.&lt;&#x2F;li&gt;
&lt;li&gt;Currently only has stable Android and iOS applications.&lt;&#x2F;li&gt;
&lt;li&gt;In my experience, the P2P communication over the internet doesn&#x27;t work when there is an internet blackout.
I think P2P traffic is entirely block by firewalls, filtering and censorship systems.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;LAN Messenger
&lt;ul&gt;
&lt;li&gt;Honestly an underrated tool. It is unfortunately unmaintained but it is very useful and I&#x27;ve seen it
vastly used in organizations and teams.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;jami.net&#x2F;&quot;&gt;Jami&lt;&#x2F;a&gt;
&lt;ul&gt;
&lt;li&gt;P2P communication by GNU.&lt;&#x2F;li&gt;
&lt;li&gt;Cross platform (Mobile and desktop).&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;matrix.org&#x2F;&quot;&gt;Matrix&lt;&#x2F;a&gt;&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-1-1&quot;&gt;&lt;a href=&quot;#fn-1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
&lt;ul&gt;
&lt;li&gt;Kind of complex to setup, fully encrypted, great for use with friends, family and organizations.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;zulip.com&#x2F;&quot;&gt;Zulip&lt;&#x2F;a&gt;&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-1-2&quot;&gt;&lt;a href=&quot;#fn-1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
&lt;ul&gt;
&lt;li&gt;Focused on organizational communication, can keep your team going even in these situations.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;delta.chat&#x2F;en&#x2F;&quot;&gt;Deltachat&lt;&#x2F;a&gt;&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-1-3&quot;&gt;&lt;a href=&quot;#fn-1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
&lt;ul&gt;
&lt;li&gt;Very simple to use, fully encrypted, great for communication with friends and family. Simple server setup. High security.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;delta.chat&#x2F;en&#x2F;&quot;&gt;Movim&lt;&#x2F;a&gt;&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-1-4&quot;&gt;&lt;a href=&quot;#fn-1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;
&lt;ul&gt;
&lt;li&gt;Self hosted chat and social network powered by the powerful XMPP protocol.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;navigation&quot;&gt;Navigation&lt;a class=&quot;zola-anchor&quot; href=&quot;#navigation&quot; aria-label=&quot;Anchor link for: navigation&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;osmand.net&#x2F;&quot;&gt;OsmAnd&lt;&#x2F;a&gt; with offline maps&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;organicmaps.app&#x2F;&quot;&gt;Organic Maps&lt;&#x2F;a&gt; with offline maps&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h3 id=&quot;honorable-mentions&quot;&gt;Honorable mentions&lt;a class=&quot;zola-anchor&quot; href=&quot;#honorable-mentions&quot; aria-label=&quot;Anchor link for: honorable-mentions&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h3&gt;
&lt;ul&gt;
&lt;li&gt;Handy
Offline speech to text&lt;&#x2F;li&gt;
&lt;li&gt;A USB stick with TailsOS
I don&#x27;t think any OS gets more private and secure than TailOS. For sensitive work,
always carry a TailsOS stick with yourself.&lt;&#x2F;li&gt;
&lt;li&gt;A USB stick with some live OS
Why? Because you don&#x27;t always have your computer nearby. But you can always carry a tiny
USB storage with yourself. You can find a computer in most places but it&#x27;s hard to find
a secure computer with good and stable OS and software installed on it. So you bring the
OS and software.&lt;br &#x2F;&gt;
I choose MX Linux, or Linux Mint. They are lightweight, simple and very stable.
You can even setup persistent storage for it so you can keep your work.&lt;&#x2F;li&gt;
&lt;li&gt;llama.cpp + local models
We all hate LLMs but deep down, they come in handy for some tasks.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;hr &#x2F;&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=47023734&quot;&gt;Discuss this post on hackernews&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;hr &#x2F;&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn-1&quot;&gt;
&lt;p&gt;Self hosted and needs central servers, most likely a VPS (For when there is only &quot;intranet&quot;). &lt;a href=&quot;#fr-1-1&quot;&gt;↩&lt;&#x2F;a&gt; &lt;a href=&quot;#fr-1-2&quot;&gt;↩2&lt;&#x2F;a&gt; &lt;a href=&quot;#fr-1-3&quot;&gt;↩3&lt;&#x2F;a&gt; &lt;a href=&quot;#fr-1-4&quot;&gt;↩4&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;section&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Ethics &amp; Engineering</title>
        <published>2025-06-03T00:00:00+00:00</published>
        <updated>2026-04-22T00:00:00+00:00</updated>
        
        <author>
          <name>
            Alireza Alavi
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://alavi.me/blog/ethics-and-engineering/"/>
        <id>https://alavi.me/blog/ethics-and-engineering/</id>
        
        
        <content type="html" xml:base="https://alavi.me/blog/ethics-and-engineering/">&lt;h2 id=&quot;why-does-it-matter&quot;&gt;Why Does It Matter?&lt;a class=&quot;zola-anchor&quot; href=&quot;#why-does-it-matter&quot; aria-label=&quot;Anchor link for: why-does-it-matter&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Since thousands of years ago we have had doctors and we have had engineers. (Proof from ancient Iran, at least ~7500BC)&lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-1-1&quot;&gt;&lt;a href=&quot;#fn-1&quot;&gt;1&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt; &lt;sup class=&quot;footnote-reference&quot; id=&quot;fr-2-1&quot;&gt;&lt;a href=&quot;#fn-2&quot;&gt;2&lt;&#x2F;a&gt;&lt;&#x2F;sup&gt;&lt;br &#x2F;&gt;
Medical practitioners and doctors have had codes of conduct for ethics, like the Hippocratic oath by Hippocrates (400 BC) and Ethics of Doctors by Ishaq Bin-Ali Al-Rahawi (600 CE).&lt;br &#x2F;&gt;
They at least have to take one course about ethics and take the Hippocratic oath, which doesn&#x27;t mean they will necessarily obey it, but at least they have heard it once.&lt;br &#x2F;&gt;
This is important because doctors and medical practitioners work with lives, and them not following ethics can cause disasters and loss of lives.&lt;&#x2F;p&gt;
&lt;p&gt;I want to talk about why is there no mandatory course about ethics and philosophy for engineering students? Or even if there is, it is not a topic very much talked about in the world of engineers. We are much more fascinated by technicalities than matters like ethics.&lt;br &#x2F;&gt;
Although in the world of software engineers the matters of ethics are very bold, with movements like &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.fsf.org&#x2F;&quot;&gt;Free software&lt;&#x2F;a&gt; and &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Free_and_open-source_software&quot;&gt;FOSS&lt;&#x2F;a&gt;, the percentage of engineers who truly care and support these concepts is very small.&lt;&#x2F;p&gt;
&lt;p&gt;Of course, what doctors do is very delicate and deals with human lives and safety a lot, but doesn&#x27;t an engineer&#x27;s work deal with lives? Can&#x27;t we safely say that in the current age, The work of an engineer is more critical than the work of a doctor?
The footprint of engineering is more prevalent in our lives than any other time in history.
Everything, even medicine heavily depends on engineering now. You can&#x27;t make pharmaceuticals without engineering, you can&#x27;t conduct a surgery without engineering, and hell, you can&#x27;t even obtain knowledge from your computer without engineering. Engineering is the pillar of our society&#x27;s advancements.&lt;&#x2F;p&gt;
&lt;p&gt;Sadly, most engineers (that I know of, at least) have never even considered that there is a concept such as ethics in engineering.&lt;br &#x2F;&gt;
It is critical for an engineer to follow ethics, have an ethical framework and think about the consequences of their actions. Just as important as it is to doctors, for example.&lt;&#x2F;p&gt;
&lt;p&gt;This issue is felt more in a field that is very abstract, like software engineering. A civil engineer can see and know that if they have built a road wrong or a building wrong. It will visibly cause disaster and people will be hurt. They will directly see the consequences of their mistakes. But software engineers, for example, deal with much more philosophical and abstract concepts like consent, privacy, freedom, fairness, neutrality, etc.&lt;&#x2F;p&gt;
&lt;p&gt;A software engineer designing embedded software for a pacemaker must be very aware of the consequences of a bug in their software, and the consequences can be very tangible. But if they implement the capability for the pacemaker to connect to your smartphone and then send all your cardiac and maybe other biological data to their servers without your consent, or in a way that you cannot really refuse it, which they will eventually sell the data to the best buyer (for insurance manipulation and marketing for example), the consequences of this action are not very tangible.&lt;br &#x2F;&gt;
The engineer might convince themself that this is not a big deal and no harm can be done through this. Because things like privacy and freedom are abstract matters and are not widely accepted as a basic human right.&lt;&#x2F;p&gt;
&lt;p&gt;I have had countless debates with educated people about why privacy and freedom are important. And sometimes I can&#x27;t convince them at all!&lt;br &#x2F;&gt;
If I punch somebody in the face, they will immediately realize how bad punching someone in the face for no reason is, and how much it hurts, and that it bleeds.&lt;br &#x2F;&gt;
But it is very hard to make people see and feel the consequences of lack of something like privacy and freedom; Although, it&#x27;s a much bigger punch to the face and has much greater consequences.&lt;&#x2F;p&gt;
&lt;p&gt;It&#x27;s very hard to make somebody numb to getting punched in the face, but it&#x27;s very easy for them to become numb to the lack of freedom.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;“In a world where privacy is seen as a luxury, remember that it is a basic human right.”&lt;&#x2F;p&gt;
&lt;p&gt;– Edward Snowden&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;If you need help understanding why privacy is important, visit &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;teachprivacy.com&#x2F;10-reasons-privacy-matters&#x2F;&quot;&gt;this short article&lt;&#x2F;a&gt;. Also visit &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;whyprivacymatters.org&#x2F;&quot;&gt;whyprivacymatters.org&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;current-state&quot;&gt;Current State&lt;a class=&quot;zola-anchor&quot; href=&quot;#current-state&quot; aria-label=&quot;Anchor link for: current-state&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;So I hope we see how a lack of ethics can ruin our world, especially the lack of it within the disciplines of engineering.&lt;&#x2F;p&gt;
&lt;p&gt;Here are some significant elements of the state of our world today:&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;Constant surveillance and control (No privacy)&lt;&#x2F;li&gt;
&lt;li&gt;Humans have the illusion of freedom but they have less freedom than ever before.
&lt;ul&gt;
&lt;li&gt;You have to pay for water, good air, food, soil, things that nature just gave us but are monopolized and restricted now.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;You are a product to big companies. They are making money off of you and then selling it back to you.
&lt;ul&gt;
&lt;li&gt;Think about how YouTube, Facebook, Instagram, X, TikTok, etc. are making money.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;The majority of people are following mindlessly whatever is forced onto them.&lt;&#x2F;li&gt;
&lt;li&gt;Unethical company owners and managers give unethical orders, and unethical engineers follow through with the orders.
&lt;ul&gt;
&lt;li&gt;This is no different from the military leader ordering genocide and the soldiers that execute the order. Both are guilty and immoral.&lt;&#x2F;li&gt;
&lt;li&gt;Think about the harm that is caused by the engineers who are implementing forced telemetry and surveillance into software like Google Search or your phone&#x27;s OS (or every other closed source software). There&#x27;s no good outcome to that so they know what they are doing.&lt;&#x2F;li&gt;
&lt;li&gt;Think about the engineers who hid and redacted known faults of the reactor in Chernobyl, which caused the death and suffering of millions of people.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;People are getting more and more powerless against the things that are happening to them and eventually become numb. So they will follow through with more unethical acts. And close their eyes more upon injustice.&lt;&#x2F;li&gt;
&lt;li&gt;The planet that we are living on is probably at its worst state from the beginning of human kind. The planet and its nature will never be destroyed, but our lives that depend on it will be.
&lt;ul&gt;
&lt;li&gt;Humans are a small fraction of nature and the world&#x27;s ecosystem. We are currently moving against nature, which is THE &quot;unstoppable force&quot;. The only outcome will be our eradication and suffering.&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;This, &lt;em&gt;This is the result of a lack of ethics in engineering&lt;&#x2F;em&gt;. We are living the consequences of lack of ethics. Not only in engineering but in all the fields. But I think that currently, the lack of engineering ethics is having a very notable effect on us.&lt;&#x2F;p&gt;
&lt;p&gt;Following ethics needs a backbone. The courage to stand up, the courage to say no, The courage to turn down a big paycheck for a more modest paycheck with a better cause. To go a different route than the others.&lt;br &#x2F;&gt;
And it also needs integrity and dignity.&lt;&#x2F;p&gt;
&lt;p&gt;I understand it is very idealistic to never break. We are human after all and make mistakes. And sometimes, there is no other choice. So first ask yourself, &quot;Is there &lt;strong&gt;really&lt;&#x2F;strong&gt; no other choice?&quot;, If there isn&#x27;t, choose the bad option not the worse option. But if there &lt;em&gt;is&lt;&#x2F;em&gt; another viable choice which keeps you and your family alive, there are no excuses.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;A human without morals and ethics is no human, but a talking animal.&lt;&#x2F;strong&gt; What differs humans from animals is our morals and ethics, our codes of conduct, boundaries and philosophies.&lt;&#x2F;p&gt;
&lt;p&gt;&lt;strong&gt;It doesn&#x27;t matter to me how much technical skills on has&lt;&#x2F;strong&gt;, If he can write an operating system in 10 minutes, Or if has figured out quantum computers. &lt;strong&gt;If they do not have morals and ethics, to me, they are just an impressive beast. The same way a puzzle solving chimpanzee might be amusing.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;p&gt;This is why I do not admire people like Elon Musk, Bill Gates, Mark Zuckerberg, Sam Altman, and the rest.&lt;br &#x2F;&gt;
I am in love with engineering and technology, but it doesn&#x27;t matter to me what technical achievements they have made. From what I see, the net outcome of their actions is that they have made our world a worse place, and they are rotten, unethical people.&lt;&#x2F;p&gt;
&lt;p&gt;In the name of progression, we are losing the true meanings and values of life. The train of life is getting more steam power and moving faster and faster, and we are not riding it anymore, we are not looking out the window and enjoying the view, we are not eating at the buffet. We are only trying to catch up because we are not even on-board anymore.&lt;&#x2F;p&gt;
&lt;aside&gt;
    &lt;figure&gt;
        &lt;img src=&quot;.&#x2F;assets&#x2F;Ouroboros-simple.png&quot; alt=&quot;A 2D drawing of the Ouroboros snake symbol.&quot; &#x2F;&gt;
        &lt;figcaption&gt;
            The ouroboros or uroboros is an ancient symbol depicting a snake or dragon eating its own tail.
            It was adopted as a symbol in Gnosticism and Hermeticism and, most notably, in alchemy. Some snakes, such as rat snakes, have been known to consume themselves.
            &lt;a href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Ouroboros&quot;&gt;source&lt;&#x2F;a&gt;
        &lt;&#x2F;figcaption&gt;
    &lt;&#x2F;figure&gt;
&lt;&#x2F;aside&gt;
&lt;p&gt;We are having a hard time breathing, our drinking water is mostly polluted, The food we eat is mostly polluted, We are constantly being spied on, and you will shamelessly get punished for trying to fight or escape them.&lt;br &#x2F;&gt;
This is not progression. We have gone the wrong route because we have forgotten our base values.&lt;br &#x2F;&gt;
The world has become greedy, and nothing can satisfy it.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;mindset-going-forward&quot;&gt;Mindset Going Forward&lt;a class=&quot;zola-anchor&quot; href=&quot;#mindset-going-forward&quot; aria-label=&quot;Anchor link for: mindset-going-forward&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;Do you know why my country is called Iran and our people have called themselves Iranian for thousands of years? &quot;Iranian&quot; means free. Free from greed, free from temptation, free from envy. Free from this mortal world.^[3]&lt;br &#x2F;&gt;
This is what my people chose to call themselves because this was the highest value for them. Being free.&lt;&#x2F;p&gt;
&lt;p&gt;In the old times in Iran, We had Hakims.&lt;br &#x2F;&gt;
Hakims were known and praised for their &lt;em&gt;wisdom (hekmat)&lt;&#x2F;em&gt;. We also had kings, generals and scientists but they were not nearly as celebrated and respected as our wise men and women (Hakims). People would go to these people and ask for guidance and wisdom.&lt;br &#x2F;&gt;
These were people like Hakim Abolqasem Ferdowsi (who wrote the &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Shahnameh&quot;&gt;Shaahnameh&lt;&#x2F;a&gt;), &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Saadi_Shirazi&quot;&gt;Saadi&lt;&#x2F;a&gt;, &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Rumi&quot;&gt;Mowlavi&lt;&#x2F;a&gt;(known as Rumi in some countries) and so on.&lt;br &#x2F;&gt;
The words of these people are still alive and inspiring millions of people all around the world. Their wisdom is still relevant and words to live by.&lt;&#x2F;p&gt;
&lt;p&gt;We have regressed from wisdom, to an obsession for pure science and technological improvement.&lt;br &#x2F;&gt;
Technology for the sake of technology, without philosophy and thought behind it.&lt;br &#x2F;&gt;
Science as a weapon, as a tool for showmanship.&lt;&#x2F;p&gt;
&lt;p&gt;These must be solving problems and improving life quality, not creating more problems to sell more solutions.&lt;&#x2F;p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note:&lt;&#x2F;p&gt;
&lt;p&gt;Technology and science must be solving problems and improving life quality, not creating more problems to sell more solutions.&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;p&gt;When you mention that technology is making our lives worse, a very common argument is along the lines of:&lt;br &#x2F;&gt;
&lt;em&gt;&quot;Have you seen how people lived a hundred years ago? Working in fields with all kinds of diseases and all the problems?&quot;&lt;&#x2F;em&gt;.&lt;&#x2F;p&gt;
&lt;p&gt;I agree. Life was indeed hard, and I don&#x27;t suggest we should get rid of technology and &lt;em&gt;improvements&lt;&#x2F;em&gt;, But I emphasize on the &lt;em&gt;improvements&lt;&#x2F;em&gt; part. And people being dirty and sick doesn&#x27;t necessarily mean that they were not happy either. I might be wrong, but when my grandparents tell me their stories and stories about their parents (Even though none of them were dirty, or doing hard labor) and show me their photo albums or diaries, the prior generations seem much happier to me, and &lt;em&gt;they agree with this&lt;&#x2F;em&gt;.&lt;br &#x2F;&gt;
If you read stories from the books of Saadi from around 850 years ago, people were pretty much as happy as we are today, if not happier. They lived almost the same, only in a different form.&lt;br &#x2F;&gt;
Because &lt;strong&gt;happiness isn&#x27;t an absolute value, it is relative.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;call-to-action&quot;&gt;Call to action&lt;a class=&quot;zola-anchor&quot; href=&quot;#call-to-action&quot; aria-label=&quot;Anchor link for: call-to-action&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;p&gt;I don&#x27;t have solutions for the biggest problems of humanity, of course. But here are my thoughts.&lt;&#x2F;p&gt;
&lt;p&gt;We should start from ourselves. Each and every one of us are a part of this world&#x27;s puzzle. A missing or bad piece matters even in a million piece puzzle. We cannot change the whole world but we can change ourselves, and the sphere of life that we carry around us.&lt;&#x2F;p&gt;
&lt;p&gt;Ever since I was a kid, long before I knew what quantum mechanics were or what quantum entanglement is -And I still don&#x27;t know what they are-, I always thought about a concept that suggests how we humans and our universe are fully entangled. I strongly believe in this and have felt it. Even a thought forming in your mind can change the thoughts that form in the minds of others, Your &lt;strong&gt;intents&lt;&#x2F;strong&gt; have direct reflections on other people and the outside world. And when those intents and thoughts get materialized by strong belief, they have far greater and more noticeable results.&lt;br &#x2F;&gt;
So &lt;strong&gt;form and cultivate your intents, And materialize them by your belief&lt;&#x2F;strong&gt;. This is my plan for changing the world, maybe a tiny step. But billions and billions of tiny steps create a whole marathon.&lt;&#x2F;p&gt;
&lt;p&gt;Even though there are inherently bad and evil people and groups, trying to actively make the world worse, they will always exist and we can&#x27;t change them. So while we do fight them, don&#x27;t blame everything on them and then do nothing.&lt;&#x2F;p&gt;
&lt;p&gt;Forgive me if I have ranted too much, but I think we engineers are too busy (or have been purposely made busy) with &quot;Check out this new framework&quot;, &quot;Check out this new Rust rewrite&quot; &quot;Check out this cool new tool&quot; &quot;Check out this brand-new research&quot; that we are constantly playing catch-up and working mindlessly, and we have strayed from our true purpose.&lt;&#x2F;p&gt;
&lt;p&gt;Dear colleagues and engineers around the world, please put down your tutorials and shiny tools for a while, And think about&lt;&#x2F;p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Why&lt;&#x2F;em&gt; you are doing this?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;What&lt;&#x2F;em&gt; is your purpose?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;How&lt;&#x2F;em&gt; will this impact human lives?&lt;&#x2F;li&gt;
&lt;li&gt;&lt;em&gt;What&lt;&#x2F;em&gt; are the ethics and morals of it?&lt;&#x2F;li&gt;
&lt;li&gt;Are you currently doing anything unethical or immoral?
&lt;ul&gt;
&lt;li&gt;If yes, &lt;em&gt;how&lt;&#x2F;em&gt; can you stop it? &lt;em&gt;How&lt;&#x2F;em&gt; can you actually make the world a better place?&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;strong&gt;May we create a better society and find harmony with each other and our world, Starting with ourselves.&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;
&lt;h2 id=&quot;further-reading&quot;&gt;Further reading&lt;a class=&quot;zola-anchor&quot; href=&quot;#further-reading&quot; aria-label=&quot;Anchor link for: further-reading&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.nspe.org&#x2F;career-growth&#x2F;ethics&#x2F;code-ethics&quot;&gt;National Society of Professional Engineers (NPSE)&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;raeng.org.uk&#x2F;media&#x2F;batgo4ye&#x2F;engineering_ethics_in_practice_shorter.pdf&quot;&gt;https:&#x2F;&#x2F;raeng.org.uk&#x2F;media&#x2F;batgo4ye&#x2F;engineering_ethics_in_practice_shorter.pdf&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Engineering_ethics&quot;&gt;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Engineering_ethics&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Ethics_of_technology&quot;&gt;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Ethics_of_technology&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;lth.engineering.asu.edu&#x2F;reference-guide&#x2F;engineering-ethics&#x2F;&quot;&gt;Arizona State University (ASU)&lt;&#x2F;a&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;footnotes&quot;&gt;Footnotes&lt;a class=&quot;zola-anchor&quot; href=&quot;#footnotes&quot; aria-label=&quot;Anchor link for: footnotes&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;section class=&quot;footnotes&quot;&gt;
&lt;ol class=&quot;footnotes-list&quot;&gt;
&lt;li id=&quot;fn-1&quot;&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;History_of_Iran&quot;&gt;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;History_of_Iran&lt;&#x2F;a&gt; &lt;a href=&quot;#fr-1-1&quot;&gt;↩&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li id=&quot;fn-2&quot;&gt;
&lt;p&gt;&lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.worldhistory.org&#x2F;Persia&#x2F;&quot;&gt;https:&#x2F;&#x2F;www.worldhistory.org&#x2F;Persia&#x2F;&lt;&#x2F;a&gt; &lt;a href=&quot;#fr-2-1&quot;&gt;↩&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ol&gt;
&lt;&#x2F;section&gt;
</content>
        
    </entry>
    <entry xml:lang="en">
        <title>Understanding Sample Rate, Bit Rate And Bit Depth</title>
        <published>2024-10-01T00:00:00+00:00</published>
        <updated>2024-10-01T00:00:00+00:00</updated>
        
        <author>
          <name>
            Alireza Alavi
          </name>
        </author>
        
        <link rel="alternate" type="text/html" href="https://alavi.me/blog/samplerate-bitrate-bitdepth/"/>
        <id>https://alavi.me/blog/samplerate-bitrate-bitdepth/</id>
        
        
        <content type="html" xml:base="https://alavi.me/blog/samplerate-bitrate-bitdepth/">&lt;p&gt;These are my notes as a software engineer on understanding Sample rate, bit rate and bit depth.&lt;&#x2F;p&gt;
&lt;p&gt;The explanations might seem incoherent at first, but I think if you read the whole post it becomes more clear.
Also read the &lt;a href=&quot;https:&#x2F;&#x2F;alavi.me&#x2F;blog&#x2F;samplerate-bitrate-bitdepth&#x2F;#relevant-and-good-posts&quot;&gt;relevant and good posts&lt;&#x2F;a&gt; for some other explanations from other perspectives.&lt;&#x2F;p&gt;
&lt;p&gt;The notes are written in an outline style.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;our-world-is-continuous-analog&quot;&gt;Our World Is Continuous (Analog)&lt;a class=&quot;zola-anchor&quot; href=&quot;#our-world-is-continuous-analog&quot; aria-label=&quot;Anchor link for: our-world-is-continuous-analog&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Sounds in our world are analog. The sounds that you hear or the sounds that you make are all analog signals&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Analog signals happen in &lt;strong&gt;continuous&lt;&#x2F;strong&gt; time. Meaning, if we want to draw a diagram of the signal representing it&#x27;s intensity on one axis and time on another (A signal is a series of changes in time), the diagram would look like this:
&lt;img src=&quot;https:&#x2F;&#x2F;alavi.me&#x2F;blog&#x2F;samplerate-bitrate-bitdepth&#x2F;.&#x2F;assets&#x2F;Analog-Signal-433185949.png&quot; alt=&quot;What is Analog Signal? - ELE Times&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;In order for these signals to be understood, used and processed in our digital devices (phones, PC, TV, etc.) they should be converted into digital signals, used within the device and then either be sent to another digital medium, or be converted to an analog signal again and then sent to an analog medium
(Digital signals are explained later).&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;Example from sound&lt;&#x2F;strong&gt;:&lt;&#x2F;p&gt;
&lt;p&gt;Your voice(analog) -&amp;gt; travels through air to reach microphone(analog) -&amp;gt; microphone vibrates (analog) -&amp;gt; gets converted to digital -&amp;gt; sent as digital signal to a speaker via a digital medium (digital signals on a wire)-&amp;gt; the speaker vibrates the air in a way that recreates your voice (analog) -&amp;gt; travels through air (analog) -&amp;gt; The listener&#x27;s ear picks up the vibrations(analog) -&amp;gt; Signals in nervous system (?)&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;blockquote class=&quot;markdown-alert-note&quot;&gt;
	&lt;p&gt;Time, As we define it, is continuous(or as continuous as it gets) so anything happening in our world is continuous, since it happens in time.&lt;&#x2F;p&gt;
&lt;p&gt;Also note that all of the things that I said might not be true, since we really don&#x27;t have a concrete definition of what time is, and the line between continuity and being discrete is blurry(like most other things in our world).&lt;&#x2F;p&gt;

&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;what-are-digital-signals&quot;&gt;What Are Digital Signals?&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-are-digital-signals&quot; aria-label=&quot;Anchor link for: what-are-digital-signals&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;A digital signal is a type of &lt;strong&gt;discrete signal&lt;&#x2F;strong&gt;(as opposed to &lt;strong&gt;continuous&lt;&#x2F;strong&gt; ).&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Discrete signal&lt;&#x2F;strong&gt;: we will ignore the continuity of time, and assume that time happens in discrete amounts. So there will be nothing there between time 1 and time 2.&lt;&#x2F;li&gt;
&lt;li&gt;Now &lt;strong&gt;digital means:&lt;&#x2F;strong&gt; our &lt;strong&gt;time&lt;&#x2F;strong&gt; is discrete, and our &lt;strong&gt;intensities&lt;&#x2F;strong&gt; are &lt;strong&gt;also&lt;&#x2F;strong&gt; discrete&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;In &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Digital_signal_processing&quot;&gt;digital signal processing&lt;&#x2F;a&gt;,
a digital signal is a representation of a physical(analog) signal that is
sampled and quantized. A digital signal is an abstraction that is
discrete in time and amplitude. [1]&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;alavi.me&#x2F;blog&#x2F;samplerate-bitrate-bitdepth&#x2F;.&#x2F;assets&#x2F;Digital.signal.discrete.png&quot; alt=&quot;&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;p&gt;See how in the above diagram, no values can exist between the defined values.&lt;&#x2F;p&gt;
&lt;h2 id=&quot;how-to-convert-analog-signal-to-digital-signal&quot;&gt;How To Convert Analog Signal To Digital Signal&lt;a class=&quot;zola-anchor&quot; href=&quot;#how-to-convert-analog-signal-to-digital-signal&quot; aria-label=&quot;Anchor link for: how-to-convert-analog-signal-to-digital-signal&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;Now, With that explanation of digital signals, we can understand the basics of how we convert analog signal to digital:
&lt;ul&gt;
&lt;li&gt;In &lt;strong&gt;discrete time intervals&lt;&#x2F;strong&gt; (for example every second), we will &lt;strong&gt;sample&lt;&#x2F;strong&gt; our signal. Meaning, we will measure it at that moment.
This is called our &lt;strong&gt;sample rate&lt;&#x2F;strong&gt; (here our sample rate is 1 sample per second)&lt;&#x2F;li&gt;
&lt;li&gt;Now that we took the sample, since our original signal is continuous, our measured intensity value is a Real number($\mathbb{R}$) and can be something like 0.333333.... or $\pi$ (3.14...),
we cannot use that number in our digital system! So we have to round it to a &lt;strong&gt;defined value&lt;&#x2F;strong&gt;.&lt;&#x2F;li&gt;
&lt;li&gt;Imagine our digital signal graph as a checkered graph.
The vertical lines are your time intervals (sample rate as we defined earlier) and the vertical lines are your defined values, to which you will round your intensities.
The more dense the vertical lines are, the higher your sample rate.
And the more dense your horizontal lines, the higher accuracy for rounding your intensities you have (&lt;strong&gt;Bit depth&lt;&#x2F;strong&gt;)&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Analog signal:&lt;&#x2F;strong&gt;
&lt;img src=&quot;https:&#x2F;&#x2F;alavi.me&#x2F;blog&#x2F;samplerate-bitrate-bitdepth&#x2F;.&#x2F;assets&#x2F;analog.png&quot; alt=&quot;graph of an analog signal&quot; &#x2F;&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Digital signal with lower bit depth and sample rate&lt;&#x2F;strong&gt; ( we consider the thicker lines as our bit depth and sample rate values in this example ):
&lt;img src=&quot;https:&#x2F;&#x2F;alavi.me&#x2F;blog&#x2F;samplerate-bitrate-bitdepth&#x2F;.&#x2F;assets&#x2F;digital-lowrate.png&quot; alt=&quot;graph of digital signal with lower rate&quot; &#x2F;&gt;&lt;&#x2F;li&gt;
&lt;li&gt;&lt;strong&gt;Digital signal with higher bit depth and sample rate&lt;&#x2F;strong&gt; ( all lines are considered as our bit depth and sample rate values):
&lt;img src=&quot;https:&#x2F;&#x2F;alavi.me&#x2F;blog&#x2F;samplerate-bitrate-bitdepth&#x2F;.&#x2F;assets&#x2F;digital-highrate.png&quot; alt=&quot;graph of analog signal with high rate&quot; &#x2F;&gt;&lt;&#x2F;li&gt;
&lt;li&gt;Notice how as we raise the sample rate and bit depth, we get closer to our actual analog signal
&lt;img src=&quot;https:&#x2F;&#x2F;external-content.duckduckgo.com&#x2F;iu&#x2F;?u=https%3A%2F%2Fwoodandfirestudio.com%2Fwp-content%2Fuploads%2F2023%2F05%2Fen1-1.jpg&amp;amp;f=1&amp;amp;nofb=1&amp;amp;ipt=6bd309b419d31bfab05f6a8fdd79afa224a6c00e139b3da4335d9660d2f3eca6&amp;amp;ipo=images&quot; alt=&quot;Sampling rate &amp;amp; bit depth explained in simple terms&quot; &#x2F;&gt;
&lt;img src=&quot;https:&#x2F;&#x2F;external-content.duckduckgo.com&#x2F;iu&#x2F;?u=https%3A%2F%2Funison.audio%2Fwp-content%2Fuploads%2FSample-Rate-vs-Bit-Depth.png.webp&amp;amp;f=1&amp;amp;nofb=1&amp;amp;ipt=04967924bc439f8e694c41b30e6649a8405f527ae835fcd0f376a03fcbb33591&amp;amp;ipo=images&quot; alt=&quot;https:&#x2F;&#x2F;external-content.duckduckgo.com&#x2F;iu&#x2F;?u=https%3A%2F%2Funison.audio%2Fwp-content%2Fuploads%2FSample-Rate-vs-Bit-Depth.png.webp&amp;amp;f=1&amp;amp;nofb=1&amp;amp;ipt=04967924bc439f8e694c41b30e6649a8405f527ae835fcd0f376a03fcbb33591&amp;amp;ipo=images&quot; &#x2F;&gt;&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;why-is-it-called-bit-depth&quot;&gt;Why Is It Called &quot;bit depth&quot;?&lt;a class=&quot;zola-anchor&quot; href=&quot;#why-is-it-called-bit-depth&quot; aria-label=&quot;Anchor link for: why-is-it-called-bit-depth&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;A &quot;bit&quot; is the smallest value in a digital system. It&#x27;s either 0 or 1&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;One bit can represent 2 values, and 2 bits can represent 4 values. The general rule is with $n$ bits we can represent $2^n$ values.&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Bit depth refers to &quot;how many bits do we have for the number we want to represent our intensity with?&quot; so the more bits we have, more values we can express. So our estimations of our analog signal&#x27;s intensity becomes more accurate&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;A 24-bit audio is more accurate in terms of the intensity of each sample than a 16-bit&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;Example with color:
An image with 8-bit depth is more accurate in displaying different intensities (shades) of colors&lt;&#x2F;p&gt;
&lt;p&gt;&lt;img src=&quot;https:&#x2F;&#x2F;alavi.me&#x2F;blog&#x2F;samplerate-bitrate-bitdepth&#x2F;.&#x2F;assets&#x2F;bit-depth.png&quot; alt=&quot;Demonstration of the effect of increasing bit depth in an image&quot; &#x2F;&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;blockquote class=&quot;markdown-alert-note&quot;&gt;
	&lt;p&gt;We can say that:&lt;br &#x2F;&gt;
if (sample_rate $\rightarrow \infty$ and bit_depth $\rightarrow \infty$) then &lt;strong&gt;Our signal is analog&lt;&#x2F;strong&gt;&lt;&#x2F;p&gt;

&lt;&#x2F;blockquote&gt;
&lt;h2 id=&quot;what-is-bit-rate&quot;&gt;What Is &quot;bit rate&quot;?&lt;a class=&quot;zola-anchor&quot; href=&quot;#what-is-bit-rate&quot; aria-label=&quot;Anchor link for: what-is-bit-rate&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;bit rate&lt;&#x2F;strong&gt; (&lt;strong&gt;bitrate&lt;&#x2F;strong&gt; or as a variable &lt;em&gt;R&lt;&#x2F;em&gt;) is the number of &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Bit&quot;&gt;bits&lt;&#x2F;a&gt; that are conveyed or processed per unit of time.[2]&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;blockquote&gt;
&lt;p&gt;The bit rate is expressed in the unit &lt;strong&gt;bit per second&lt;&#x2F;strong&gt; (symbol: &lt;strong&gt;bit&#x2F;s&lt;&#x2F;strong&gt;), often in conjunction with an &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;SI_prefix&quot;&gt;SI prefix&lt;&#x2F;a&gt; such as &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Kilo-&quot;&gt;kilo&lt;&#x2F;a&gt; (1 kbit&#x2F;s = 1,000 bit&#x2F;s), &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Mega-&quot;&gt;mega&lt;&#x2F;a&gt; (1 Mbit&#x2F;s = 1,000 kbit&#x2F;s), &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Giga-&quot;&gt;giga&lt;&#x2F;a&gt; (1 Gbit&#x2F;s = 1,000 Mbit&#x2F;s) or &lt;a rel=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Tera-&quot;&gt;tera&lt;&#x2F;a&gt; (1 Tbit&#x2F;s = 1,000 Gbit&#x2F;s).[2]&lt;&#x2F;p&gt;
&lt;&#x2F;blockquote&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;relevant-and-good-posts&quot;&gt;Relevant And Good Posts&lt;a class=&quot;zola-anchor&quot; href=&quot;#relevant-and-good-posts&quot; aria-label=&quot;Anchor link for: relevant-and-good-posts&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;http:&#x2F;&#x2F;pudding.cool&#x2F;2018&#x2F;02&#x2F;waveforms&#x2F;&quot;&gt;
  Let&#x27;s learn about waveforms - The pudding
&lt;&#x2F;a&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.waveroom.com&#x2F;blog&#x2F;bit-rate-vs-sample-rate-vs-bit-depth&#x2F;&quot;&gt;
  Bit rate vs. Sample rate vs. Bit depth - waveroom
&lt;&#x2F;a&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;engineeryoursound.com&#x2F;continuous-vs-discrete-signals-what-is-the-difference&#x2F;&quot;&gt;
  Continuous vs discrete signals. What is the difference? - engineeryoursound
&lt;&#x2F;a&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;&lt;a class=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;www.izotope.com&#x2F;en&#x2F;learn&#x2F;digital-audio-basics-sample-rate-and-bit-depth.html&quot;&gt;
  Digital audio basics: sample rate and bit depth - izotope
&lt;&#x2F;a&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
&lt;h2 id=&quot;sources&quot;&gt;Sources&lt;a class=&quot;zola-anchor&quot; href=&quot;#sources&quot; aria-label=&quot;Anchor link for: sources&quot;&gt;&lt;i class=&quot;icon&quot;&gt;&lt;&#x2F;i&gt;&lt;&#x2F;a&gt;
&lt;&#x2F;h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;1: &lt;a class=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Digital_signal&quot;&gt;
Digital signal - wikipedia
&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;li&gt;
&lt;p&gt;2: &lt;a class=&quot;external&quot; href=&quot;https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Bit_rate&quot;&gt;
Bit rate - wikipedia
&lt;&#x2F;a&gt;&lt;&#x2F;p&gt;
&lt;&#x2F;li&gt;
&lt;&#x2F;ul&gt;
</content>
        
    </entry>
</feed>
