<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Anjan&#39;s Blog</title>
    <link>/</link>
    <description>Recent content on Anjan&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>en-us</language>
    <lastBuildDate>Sat, 07 Feb 2026 19:00:00 -0800</lastBuildDate>
    <atom:link href="/feed.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Using Hugo</title>
      <link>/posts/2026-02-07-hugo/</link>
      <pubDate>Sat, 07 Feb 2026 19:00:00 -0800</pubDate>
      <guid>/posts/2026-02-07-hugo/</guid>
      <description>&lt;p&gt;I customized a static site generator written in shell script 5 years ago: &lt;a href=&#34;/posts/2020-07-21-ssg/&#34;&gt;Minimal Blogging Setup with Orgmode and ssg5&lt;/a&gt;.&#xA;Last year, I reinstalled my operating system.&#xA;On Monday this week, I tried to build this website and the website would not build.&#xA;After a whole night of debugging my script, I gave up and decided to migrate to Hugo.&#xA;Here is what I learned while migrating the site.&lt;/p&gt;&#xA;&lt;p&gt;I did not want to lose my old posts and I did not have to!&#xA;It was nice to keep my memories of &lt;a href=&#34;https://momi.ca/posts/2020-04-05-3dprintingcorona&#34;&gt;3D printing ear savers for nurses&lt;/a&gt; during the pandemic.&lt;/p&gt;</description>
    </item>
    <item>
      <title>I will be at FOSDEM 2025!</title>
      <link>/posts/2025-01-28-fosdem/</link>
      <pubDate>Tue, 28 Jan 2025 00:00:00 +0000</pubDate>
      <guid>/posts/2025-01-28-fosdem/</guid>
      <description>&lt;p&gt;I will be doing a postmarketOS tabling with the postmarketOS folks at FOSDEM 2025 in Brussels:&lt;/p&gt;&#xA;&lt;p&gt;&#xA;https://fosdem.org/2025/&lt;/p&gt;&#xA;&lt;p&gt;&#xA;The conference is happening February 1st and 2nd. Also, I will be giving a talk:&lt;/p&gt;&#xA;&lt;p&gt;&#xA;https://fosdem.org/2025/schedule/event/fosdem-2025-6187-introduction-to-pmbootstrap/&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Come to Brussels if you want to hang out and chat about postmarketOS!&#xA;Here are the relevant notes for the talk:&lt;/p&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;Introduction to pmbootstrap Links&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://postmarketos.org/&#34;&gt;https://postmarketos.org/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;User Interfaces&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wiki.postmarketos.org/wiki/Category:Interface&#34;&gt;https://wiki.postmarketos.org/wiki/Category:Interface&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wiki.postmarketos.org/wiki/LG_G_Watch_(lg-dory)&#34;&gt;https://wiki.postmarketos.org/wiki/LG_G_Watch_(lg-dory)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://asteroidos.org/&#34;&gt;https://asteroidos.org/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kodi.tv/&#34;&gt;https://kodi.tv/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;pmbootstrap&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wiki.postmarketos.org/wiki/Installation/Using_pmbootstrap&#34;&gt;https://wiki.postmarketos.org/wiki/Installation/Using_pmbootstrap&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gitlab.postmarketos.org/postmarketOS/pmbootstrap&#34;&gt;https://gitlab.postmarketos.org/postmarketOS/pmbootstrap&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Packaging&lt;/p&gt;</description>
    </item>
    <item>
      <title>FOSSY 2023 Talk: Thoughts after daily driving postmarketOS for 3 years</title>
      <link>/posts/2024-11-16-fossy2023/</link>
      <pubDate>Sat, 16 Nov 2024 00:00:00 +0000</pubDate>
      <guid>/posts/2024-11-16-fossy2023/</guid>
      <description>&lt;p&gt;I did a talk at &lt;a href=&#34;https://2023.fossy.us/&#34;&gt;FOSSY 2023&lt;/a&gt; and forgot to post the published video on my blog last year.&#xA;Here it is! Most of the information is still correct in 2024 and the demos are still relevant.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Enjoy:&lt;/p&gt;&#xA;&lt;iframe src=&#34;https://archive.org/embed/fossy2023_Thoughts_after_daily_driving_p&#34; width=&#34;640&#34; height=&#34;480&#34; frameborder=&#34;0&#34; webkitallowfullscreen=&#34;true&#34; mozallowfullscreen=&#34;true&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;&#xA;Link: &lt;a href=&#34;https://archive.org/details/fossy2023_Thoughts_after_daily_driving_p&#34;&gt;https://archive.org/details/fossy2023_Thoughts_after_daily_driving_p&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>SeaGL 2024 Talk: Introduction to postmarketOS</title>
      <link>/posts/2024-11-16-seagl2024/</link>
      <pubDate>Sat, 16 Nov 2024 00:00:00 +0000</pubDate>
      <guid>/posts/2024-11-16-seagl2024/</guid>
      <description>&lt;p&gt;I did a talk at &lt;a href=&#34;https://seagl.org/&#34;&gt;SeaGL 2024&lt;/a&gt; this November - Introduction to postmarketOS.&#xA;This talk aims to show the flexibility of postmarketOS and it&amp;#39;s amazing tooling.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;The talk overview is here:&#xA;&lt;a href=&#34;https://pretalx.seagl.org/2024/talk/983CCA/&#34;&gt;https://pretalx.seagl.org/2024/talk/983CCA/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;You can watch the talk here:&lt;/p&gt;&#xA;&lt;iframe width=&#34;560&#34; height=&#34;315&#34; src=&#34;https://www.youtube.com/embed/wJfbS8f2Zio?si=_Q6teRncWktNHmmY&amp;amp;start=3084&#34; title=&#34;YouTube video player&#34; frameborder=&#34;0&#34; allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;&#xA;Link: &lt;a href=&#34;https://www.youtube.com/live/wJfbS8f2Zio?si=2EAQASmC-3OcZ4yk&amp;amp;t=3084&#34;&gt;https://www.youtube.com/live/wJfbS8f2Zio?si=2EAQASmC-3OcZ4yk&amp;amp;t=3084&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>I will be at SeaGL 2024!</title>
      <link>/posts/2024-11-06-seagl/</link>
      <pubDate>Wed, 06 Nov 2024 00:00:00 +0000</pubDate>
      <guid>/posts/2024-11-06-seagl/</guid>
      <description>&lt;p&gt;I will be doing a postmarketOS tabling with &lt;a href=&#34;https://blog.craftyguy.net/&#34;&gt;Clayton Craft&lt;/a&gt; at SeaGL 2024 in Seattle:&lt;/p&gt;&#xA;&lt;p&gt;&#xA;https://seagl.org/&lt;/p&gt;&#xA;&lt;p&gt;&#xA;The conference is happening November 8th and 9th. Also, I will be giving a talk:&lt;/p&gt;&#xA;&lt;p&gt;&#xA;https://pretalx.seagl.org/2024/talk/983CCA&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Come to Seattle if you want to hang out and chat about postmarketOS!&#xA;Here are the relevant notes for the talk:&lt;/p&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;Introduction to postmarketOS Links&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;User Interfaces&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wiki.postmarketos.org/wiki/Category:Interface&#34;&gt;https://wiki.postmarketos.org/wiki/Category:Interface&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wiki.postmarketos.org/wiki/LG_G_Watch_(lg-dory)&#34;&gt;https://wiki.postmarketos.org/wiki/LG_G_Watch_(lg-dory)&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://asteroidos.org/&#34;&gt;https://asteroidos.org/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://kodi.tv/&#34;&gt;https://kodi.tv/&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://social.tchncs.de/@rajudev&#34;&gt;https://social.tchncs.de/@rajudev&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;pmbootstrap&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://wiki.postmarketos.org/wiki/Installation/Using_pmbootstrap&#34;&gt;https://wiki.postmarketos.org/wiki/Installation/Using_pmbootstrap&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://gitlab.postmarketos.org/postmarketOS/pmbootstrap&#34;&gt;https://gitlab.postmarketos.org/postmarketOS/pmbootstrap&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;postmarketOS Community&lt;/p&gt;</description>
    </item>
    <item>
      <title>Introducing Honeybee: Calling via XMPP</title>
      <link>/posts/2024-10-09-honeybee/</link>
      <pubDate>Sun, 06 Oct 2024 00:00:00 +0000</pubDate>
      <guid>/posts/2024-10-09-honeybee/</guid>
      <description>&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;Problem Statement&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;&#xA;The main issue most people have when daily driving mobile linux is call and text reliability.&#xA;A lot of work has been done to get us close to 100% reliability but if I want the best reliability, I have to use android.&#xA;On postmarketOS, audio routing has alot of moving parts and for your phone to ring, callaudiod, modemmanager, and the audio subsystem must all work correctly.&#xA;Audio never touches pulseaudio/pipewire and is alsa only &lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-1&#34; href=&#34;#footnote-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; - there are plans to move audio routing to pipewire.&lt;/p&gt;</description>
    </item>
    <item>
      <title>The Pinephone Pro, PostmarketOS, and Why Mainlining Phones is Important</title>
      <link>/posts/2022-09-07-mainline/</link>
      <pubDate>Wed, 07 Sep 2022 00:00:00 +0000</pubDate>
      <guid>/posts/2022-09-07-mainline/</guid>
      <description>&lt;p&gt;In &lt;code class=&#34;verbatim&#34;&gt;#sxmo&lt;/code&gt; on OFTC, users often ask why the pinephone pro is less functional on postmarketOS than other distros.&#xA;PostmarketOS uses a mainline pinephone pro kernel &lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-1&#34; href=&#34;#footnote-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&#xA;There exists a heavily patched fork of the linux kernel called the megi kernel with broader support for the functionality of the pinephone pro &lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-2&#34; href=&#34;#footnote-2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&#xA;In this blog post, I will explain why postmarketOS has mainline-first approach.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Carrying around forks of the kernel is not sustainable as it becomes impossible to provide security patches after a short time. The only way to truly fix this for a device is mainlining it.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why we must insist on Free Network Services</title>
      <link>/posts/2022-05-01-freenetwork/</link>
      <pubDate>Sat, 30 Apr 2022 00:00:00 +0000</pubDate>
      <guid>/posts/2022-05-01-freenetwork/</guid>
      <description>&lt;p&gt;There has been renewed interest in the fediverse &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&#xA;That is websites that you can install on your own hardware, come up with your own rules, and talk to people on other websites with social media like features.&#xA;Imagine being able to comment on Youtube with your Facebook account and vice versa or post to your Instagram and have it appear on everyone on Twitter - that is what the fediverse is!&#xA;Beyond these technical benefits, all this software is Free software - that is it respects your freedoms to community and rights to inspect what it&amp;rsquo;s doing.&#xA;Lets go over some of the other benefits of using Free software network services.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sxmo on the poco f1</title>
      <link>/posts/2022-04-19-sxmopocof1/</link>
      <pubDate>Tue, 19 Apr 2022 00:00:00 +0000</pubDate>
      <guid>/posts/2022-04-19-sxmopocof1/</guid>
      <description>&lt;p&gt;Recently, I tried to upgrade the modem firmware on my pinephone and failed.&#xA;As far as I know, the modem on my pinephone is broken.&#xA;I have a developer edition of the pinephone pro but the mainline kernel doesnt even have reliable charging working &lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-1&#34; href=&#34;#footnote-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;On the look out for a replacement device, I saw &lt;a href=&#34;https://twitter.com/joelselvaraj95/status/1478971761127350275&#34;&gt;the poco f1 and oneplus 6 have gained support for calling in postmarketOS&lt;/a&gt;.&#xA;Since I am tired of dealing with pine64 hardware and the Librem 5 is too expensive, I decided to pick up a poco f1 for 150 Canadian dollars.&#xA;So how is the experience?&#xA;Overall very good and I have been using it as my daily driver for 2 weeks.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sxmo Libreplanet 2022 Presentation</title>
      <link>/posts/2022-03-31-sxmolibreplanet/</link>
      <pubDate>Thu, 31 Mar 2022 00:00:00 +0000</pubDate>
      <guid>/posts/2022-03-31-sxmolibreplanet/</guid>
      <description>&lt;p&gt;I recently gave a talk about &lt;a href=&#34;https://sxmo.org&#34;&gt;Sxmo&lt;/a&gt; at the &lt;a href=&#34;https://www.fsf.org/&#34;&gt;Free Software Foundation&lt;/a&gt;&amp;#39;s &lt;a href=&#34;https://libreplanet.org/2022/&#34;&gt;Libreplanet&lt;/a&gt; conference.&#xA;Sxmo is a collection of simple programs and scripts used together to create a fully functional mobile UI adhering to the Unix philosophy for phones that run &lt;a href=&#34;https://postmarketos.org&#34;&gt;postmarketOS&lt;/a&gt; (a Linux distribution).&#xA;It&amp;#39;s incredible how far Sxmo has come since &lt;a href=&#34;https:momi.ca/posts/2021-05-18-sxmo.html&#34;&gt;our presentation at last year&amp;#39;s Alpineconf&lt;/a&gt;.&#xA;Thanks to everyone who contributed to Sxmo and the FSF for having me!&lt;/p&gt;&#xA;&lt;p&gt;&#xA;The presentation covers recent developments and future goals with a Q&amp;amp;A at the end.&#xA;You can watch the presentation of our project here:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sxmo Project Goals and the sxmo_migrate.sh on Upgrades Flaw</title>
      <link>/posts/2022-02-04-sxmo-migrate/</link>
      <pubDate>Fri, 04 Feb 2022 00:00:00 +0000</pubDate>
      <guid>/posts/2022-02-04-sxmo-migrate/</guid>
      <description>&lt;p&gt;In every release of Sxmo, we have a message in the release notes stating the following:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;This release brings a lot of changes to sxmo configuration files and&#xA;hooks. Leaving your old configs can cause many issues so we recommend&#xA;you run &lt;code class=&#34;verbatim&#34;&gt;sxmo_migrate.sh&lt;/code&gt; as soon as you upgrade.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&#xA;Users often do not read the release notes and join the irc channel to ask why their installs broke.&#xA;Exploring this issue should explain Sxmo project goals to new users while providing context for Sxmo requiring this annoying manual intervention from the user.&#xA;Moreover, in the upcoming postmarketOS stable release, we have a major improvement to this issue.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Onboarding New Contributors: Good First Issue Label</title>
      <link>/posts/2022-01-11-goodfirstissue/</link>
      <pubDate>Tue, 11 Jan 2022 00:00:00 +0000</pubDate>
      <guid>/posts/2022-01-11-goodfirstissue/</guid>
      <description>&lt;p&gt;People sometimes ask me &amp;ldquo;how do I get into contributing to Free software&amp;rdquo;.&#xA;Contributing to Free software can be as difficult as starting a new job - you don&amp;rsquo;t know where to start, the abbreviations everyone uses are foreign to you, and you&amp;rsquo;re worried about embarrassing yourself &lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&#xA;Your motivation might vary but I got into Free software to learn and because it is fun!&#xA;Here is how I started contributing to Free software and maybe this post can provide Free software maintainers info on how to have a more welcoming project for newcomers:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ditch plex/jellyfin/kodi (or worse Netflix)! My favorite mpv scripts</title>
      <link>/posts/2022-01-09-mpvscripts/</link>
      <pubDate>Sun, 09 Jan 2022 00:00:00 +0000</pubDate>
      <guid>/posts/2022-01-09-mpvscripts/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://mpv.io/&#34;&gt;mpv&lt;/a&gt; is my favorite video player.&#xA;It has &lt;a href=&#34;https://github.com/mpv-player/mpv/wiki/User-Scripts&#34;&gt;a lot of user scripts&lt;/a&gt; written in a variety of programming languages.&#xA;Many people install jellyfin, plex, or kodi to emulate a netflix-like experience.&#xA;Here&amp;#39;s how I am able to emulate a netflix-like experience with mpv using user scripts:&lt;/p&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-3&#34;&gt;&#xA;&lt;h3 id=&#34;headline-1&#34;&gt;&#xA;skiptofade.lua&#xA;&lt;/h3&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-3&#34;&gt;&#xA;&lt;p&gt;&#xA;&lt;a href=&#34;https://gist.github.com/bossen/3cfe86a6cdd61452dbb96865128fb327&#34;&gt;skiptofade.lua&lt;/a&gt; skips til a black screen appears.&#xA;This allows you to skip intros to shows very easily by pressing a keybinding.&#xA;The default keybinding to run this macro is &lt;code class=&#34;verbatim&#34;&gt;b&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Stuck on grub menu after Luks Full Disk Encryption (coreboot)</title>
      <link>/posts/2021-11-07-luksgrub/</link>
      <pubDate>Sun, 07 Nov 2021 00:00:00 +0000</pubDate>
      <guid>/posts/2021-11-07-luksgrub/</guid>
      <description>&lt;p&gt;I used &lt;a href=&#34;https://1vyra.in/&#34;&gt;ivyra1n&lt;/a&gt; to install &lt;a href=&#34;https://github.com/merge/skulls&#34;&gt;skulls with seabios&lt;/a&gt; payload on my x230.&#xA;However, after installing coreboot, I could not boot into a lot of distros after installing with their full disk encryption &lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-1&#34; href=&#34;#footnote-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; .&#xA;Here is fix and a potential workaround.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;So I recently decided to try out &lt;a href=&#34;https://www.devuan.org/&#34;&gt;Devuan&lt;/a&gt; because I don&amp;#39;t like systemd on Debian.&#xA;I followed devuan&amp;#39;s &lt;a href=&#34;https://www.devuan.org/os/documentation/install-guides/beowulf/full-disk-encryption&#34;&gt;Full Disk Ecryption guide&lt;/a&gt;.&#xA;The install went fine, I booted and pressed enter on &amp;#34;Devuan GNU/Linux&amp;#34; in the grub menu.&#xA;After which, my computer display froze like this:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sourcehut multiple documentation versions</title>
      <link>/posts/2021-10-29-multiplesourcehutman/</link>
      <pubDate>Fri, 29 Oct 2021 00:00:00 +0000</pubDate>
      <guid>/posts/2021-10-29-multiplesourcehutman/</guid>
      <description>&lt;p&gt;When using man.sr.ht for Sxmo&amp;rsquo;s documentation we wanted to have three versions:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Documentation for the latest tagged stable release of the code in edge&lt;/li&gt;&#xA;&lt;li&gt;Documentation for the latest git HEAD version of the code&lt;/li&gt;&#xA;&lt;li&gt;Documentation for the latest tagged stable release in postmarketOS stable&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Having three versions allows us to document features as we add them to the git HEAD or postmarketOS edge.&#xA;Additionally, we want to serve up an HTML version of both versions so that users of the git HEAD can read how the new features work and users of the stable releases don&amp;rsquo;t get information about features that don&amp;rsquo;t exist.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setup xinitrc (startx) and connect to DBUS (set DBUS_SESSION_BUS_ADDRESS) on Debian 11</title>
      <link>/posts/2021-10-11-startxdebian/</link>
      <pubDate>Mon, 11 Oct 2021 00:00:00 +0000</pubDate>
      <guid>/posts/2021-10-11-startxdebian/</guid>
      <description>&lt;p&gt;I recently installed Debian 11 on a workstation and the &lt;code class=&#34;verbatim&#34;&gt;.xinitrc&lt;/code&gt; I usually use on Gentoo (with openrc) and Alpine (also openrc) did not properly setup dbus (&lt;code class=&#34;verbatim&#34;&gt;$DBUS_SESSION_BUS_ADDRESS&lt;/code&gt; env variable was empty).&#xA;I tried putting &lt;code class=&#34;verbatim&#34;&gt;export $(dbus-launch)&lt;/code&gt; in my &lt;code class=&#34;verbatim&#34;&gt;.xinitrc&lt;/code&gt; as stackexchange recommended but this did not fix the dbus environmental variables being unset.&#xA;&lt;code class=&#34;verbatim&#34;&gt;$DBUS_SESSION_BUS_ADDRESS&lt;/code&gt; not being set is problematic as pinentry-gnome3 will not launch.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;The fix comes from examining the example &lt;code class=&#34;verbatim&#34;&gt;xinitrc&lt;/code&gt; with &lt;code class=&#34;verbatim&#34;&gt;cat /etc/X11/xinit/xinitrc&lt;/code&gt; on Debian:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sxmo Alpineconf 2021 Presentation</title>
      <link>/posts/2021-05-18-sxmo/</link>
      <pubDate>Tue, 18 May 2021 00:00:00 +0000</pubDate>
      <guid>/posts/2021-05-18-sxmo/</guid>
      <description>&lt;p&gt;I recently gave a talk about &lt;a href=&#34;https://sr.ht/~mil/Sxmo/&#34;&gt;Sxmo&lt;/a&gt; at Alpineconf.&#xA;Sxmo is a collection of simple and suckless X programs and scripts used together to create a fully functional mobile UI adhering to the Unix philosophy for the Pinephone.&#xA;I have been co-maintaining and contributing the project for a year now and it was fun to share our progress with the community.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;You can watch a presentation of our project here:&lt;/p&gt;&#xA;&lt;iframe width=&#34;560&#34; height=&#34;315&#34; sandbox=&#34;allow-same-origin allow-scripts allow-popups&#34; src=&#34;https://diode.zone/videos/embed/3f0948cf-47df-437e-b1ea-76fec58479c2&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;</description>
    </item>
    <item>
      <title>How and Why the Benefits of Mass Surveillence are Overestimated While the Costs are Undermined</title>
      <link>/posts/2021-09-02-costbenifitsurveillence/</link>
      <pubDate>Wed, 02 Sep 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2021-09-02-costbenifitsurveillence/</guid>
      <description>&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;How much surveillance till we are safe?&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;&#xA;Proponents of the current mass surveillance state are quick to point out that there is a trade off between security and privacy.&#xA;The argument is - we live in such a dangerous world, we need to trade all if not most of our privacy for some sense of security.&#xA;However, in this &amp;#34;trade off&amp;#34;, there is no criterion for when the surveillance state has failed.&#xA;Recall in January 2021, thousands of Trump supporters raided the capitol hill building.&#xA;No one in the mainstream media has suggested that the world&amp;#39;s most well funded and well equiped mass surveillance state had &lt;strong&gt;failed&lt;/strong&gt; at preventing this insurrection.&#xA;Quite the opposite, every single national threat is treated as an advertisement for further privacy violations even though previous privacy violations have not delivered on their promises of security.&#xA;There must be discussion of a criterion for when the surveillance state has overstepped and criterion for ending the surveillance program in order to properly address this trade off.&#xA;When politicians bring up security without this criterion, it is a method of sandbagging and fearmongering to prevent further discussion.&lt;/p&gt;</description>
    </item>
    <item>
      <title>sendxmpp as a replacement for mail(1)</title>
      <link>/posts/2020-08-28-sendxmpp/</link>
      <pubDate>Fri, 28 Aug 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-08-28-sendxmpp/</guid>
      <description>&lt;p&gt;Tools like cron use mail(1) to notify the server admin of failing services.&#xA;It is trivial to &lt;a href=&#34;http://www.postfix.org/STANDARD_CONFIGURATION_README.html#null_client&#34;&gt;configure postfix to only send mail&lt;/a&gt;.&#xA;However, moving to my new server, the mail port (port 25) is blocked by my internet service provider and I cannot send email from my network.&#xA;I could use something like &lt;a href=&#34;https://marlam.de/msmtp/&#34;&gt;msmtp&lt;/a&gt; to have my email service provider (migadu, gmail, etc.) send my emails for me but I would be using up my daily outgoing message quota.&#xA;To avoid running into this limit, I looked to employ a different protocol - xmpp.&lt;/p&gt;</description>
    </item>
    <item>
      <title>GoAccess - You do not need proprietary javascript to get analytics</title>
      <link>/posts/2020-08-23-analytics/</link>
      <pubDate>Sun, 23 Aug 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-08-23-analytics/</guid>
      <description>&lt;p&gt;I run &lt;a href=&#34;https://noscript.net/&#34;&gt;noscript&lt;/a&gt; in my web browser to block javascript by default.&#xA;I often come across blogs that are fully functional with javascript disabled but ask to run some javascript.&#xA;The javascript the blog asks to run is usually used to provide the webmaster with analytics about the users.&#xA;The automatic loading of proprietary javascript is especially problematic if the javascript is served by a third party domain.&#xA;Since you cannot control the security or personal ethics of the third party domain, you are putting your users at risk of downloading malware.&#xA;The loading and execution of javascript also increases the load times of your website.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Latex New Line</title>
      <link>/posts/2020-08-21-latexnewline/</link>
      <pubDate>Fri, 21 Aug 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-08-21-latexnewline/</guid>
      <description>&lt;p&gt;In latex, a sentence will only be added to a new paragraph if it is double spaced from the line before.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;For example, the following latex code:&lt;/p&gt;&#xA;&lt;div class=&#34;src src-latex&#34;&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;% These two sentences will be in the same paragraph in the compiled result&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&#xA;Will result in:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Technology is Political and the Political Ramifications of Free Culture</title>
      <link>/posts/2020-07-27-politicaltech/</link>
      <pubDate>Mon, 27 Jul 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-07-27-politicaltech/</guid>
      <description>&lt;p&gt;The digital computer is a decentralized tool for the manipulation and copying of information.&#xA;The traditional technology that facilitated the transfer of information was the printing press.&#xA;As the history commonly taught in western highschools goes - the printing press was one of the causes of downfall of the catholic church in many countries.&#xA;In fact, many will mention that the protestant reformation would not have been possible without the printing press.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Minimal Blogging Setup with Orgmode and ssg5</title>
      <link>/posts/2020-07-21-ssg/</link>
      <pubDate>Tue, 21 Jul 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-07-21-ssg/</guid>
      <description>&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;My Old Setup&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;&#xA;I prefer orgmode over markdown because already I use orgmode for appointments, reminders, notes, etc.&#xA;However, most static website generators only support Markdown.&#xA;Luckily, orgmode has an html export function: &lt;code class=&#34;verbatim&#34;&gt;M-x org-publish&lt;/code&gt;.&#xA;org-publish is much more powerful and reliable than any markdown converter I have used.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Since 2016, I have been using jekyll which is bloated and requires a lot of ruby dependencies.&#xA;To make sure my website always built, I setup sourcehut builds to build my jekyll website.&#xA;Each website build takes &lt;strong&gt;&lt;strong&gt;3 minutes&lt;/strong&gt;&lt;/strong&gt; on sourcehut.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Projects</title>
      <link>/projects/</link>
      <pubDate>Sun, 19 Jul 2020 00:00:00 +0000</pubDate>
      <guid>/projects/</guid>
      <description>&lt;p&gt;&#xA;Here is a list of projects I have worked on or am currently working on.&#xA;Currently, I am mostly busy with &lt;a href=&#34;sec:alpine&#34;&gt;Alpine Linux/postmarketOS&lt;/a&gt; and &lt;a href=&#34;sec:sxmo&#34;&gt;sxmo&lt;/a&gt; - a user interface for linux phones.&lt;/p&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;SFU Team Satellite&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;&#xA;I was a part of the &lt;a href=&#34;https://www.sfusat.org/&#34;&gt;SFU Team Satellite&lt;/a&gt; from Summer of 2019 to Summer 2020. &#xA;In 2020, I served as the &lt;strong&gt;power team lead&lt;/strong&gt;.&#xA;As a part the power team, I have helped develop the following things:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Compiling crust for pinephone on Postmarketos</title>
      <link>/posts/2020-07-06-crust/</link>
      <pubDate>Mon, 06 Jul 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-07-06-crust/</guid>
      <description>&lt;p&gt;&#xA;&lt;strong&gt;Crust is now available from postmarketos&amp;#39; official repos! This post is now obsolete but is kept as an archive for how to test new kernels. Use at your own risk&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&lt;a href=&#34;https://github.com/crust-firmware/crust&#34;&gt;Crust&lt;/a&gt; firmware enables acceptable battery life on the pinephone.&#xA;For me, it is the last feature I need for the pinephone to be daily driver ready.&#xA;Here is how to install the experimental crust branch on the pinephone so that you can give the postmarketos and sxmo team feedback.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why VoidLinux is Better than Arch - A Former Arch User&#39;s Perspective</title>
      <link>/posts/2020-06-24-archvsvoid/</link>
      <pubDate>Wed, 24 Jun 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-06-24-archvsvoid/</guid>
      <description>&lt;p&gt;&#xA;I had been an avid ArchLinux user for five years.&#xA;I ran Arch on all my computers, I enjoyed using it, and I learned a lot from it. &#xA;One day, I happened to try VoidLinux on one of my extra thinkpads and found my new favorite distro &lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-1&#34; href=&#34;#footnote-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&#xA;The Arch to VoidLinux pipeline is somewhat a &lt;a href=&#34;https://voidLinux.org/news/2019/04/homepage-redesign.html&#34;&gt;joke&lt;/a&gt; and maybe I&amp;#39;m leaning into that joke with this blog post.&#xA;Anyway, here are some reasons for using my favourite meme distro.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Recommended Watch/Read: Free Software Needs Free Tools</title>
      <link>/posts/2021-06-03-fsw-freetools/</link>
      <pubDate>Wed, 03 Jun 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2021-06-03-fsw-freetools/</guid>
      <description>&lt;p&gt;Signal boosting the excellent &lt;a href=&#34;https://mako.cc/writing/hill-free_tools.html&#34;&gt;blog post&lt;/a&gt; and talk &amp;#34;Free Software Needs Free Tools&amp;#34; by &lt;a href=&#34;https://mako.cc/&#34;&gt;Benjamin Mako Hill&lt;/a&gt; in which he gives the story of how git was created.&lt;/p&gt;&#xA;&lt;iframe width=&#34;560&#34; height=&#34;315&#34; sandbox=&#34;allow-same-origin allow-scripts allow-popups&#34; src=&#34;https://diode.zone/videos/embed/2ac71859-4ded-44e9-81fc-b4a9c1af4536&#34; frameborder=&#34;0&#34; allowfullscreen&gt;&lt;/iframe&gt;&#xA;&lt;p&gt;&#xA;I agree with most if not all his recommendations following the story.&#xA;Personally, I have been paying for a &lt;a href=&#34;https://sourcehut.org/&#34;&gt;sourcehut&lt;/a&gt; membership for a while now and this story is the reason I continuously renew my paid account (aside from the fact sourcehut is amazing to develop on).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Two Factor Authentication App on Pinephone</title>
      <link>/posts/2020-04-09-totp-pinephone/</link>
      <pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-04-09-totp-pinephone/</guid>
      <description>&lt;p&gt;&#xA;I picked up the &lt;a href=&#34;https://www.pine64.org/pinephone/&#34;&gt;pinephone&lt;/a&gt; but it wasn&amp;#39;t daily driver ready.&#xA;A couple days ago, my android phone completely broke so I needed to make the pinephone daily driver ready. &#xA;First things first - I need a two factor authentication app for my phone.&lt;/p&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;Issues with gnome-authenticator&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;&#xA;On postmarketos, &lt;a href=&#34;https://gitlab.gnome.org/World/Authenticator&#34;&gt;gnome-authenticator&lt;/a&gt;  is my preferred two factor authentication app because it is in the main repositories and it works.&#xA;However, debian is currently a much better experience daily driving.&#xA;I&amp;#39;ve fixed a couple of issues in postmarketos and I&amp;#39;d love to use it but right now I need an os that works&lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-1&#34; href=&#34;#footnote-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>3D Printing MASK STRAPS Ear Savers</title>
      <link>/posts/2020-04-05-3dprintingcorona/</link>
      <pubDate>Sun, 05 Apr 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-04-05-3dprintingcorona/</guid>
      <description>&lt;p&gt;The &lt;a href=&#34;https://sites.google.com/view/gvrd-face-shield-printers/home&#34;&gt;BC COVID-19 3D Printing Group&lt;/a&gt; has a list of designs they would like people to help print to ensure medical personnel are protected during the COVID-19 epidemic.&lt;/p&gt;&#xA;&lt;p&gt;This post has two purposes:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Make anyone reading this blog aware of the initiative and assist with 3D printing if they can. You may have a group that needs help in your local area.&lt;/li&gt;&#xA;&lt;li&gt;Share my tips for &amp;ldquo;mass producing&amp;rdquo; the MASK STRAPS &amp;ldquo;Ear Savers&amp;rdquo;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;I am printing &amp;ldquo;Surgical mask ear saver&amp;rdquo; by sniffle from thingiverse: &lt;a href=&#34;https://www.thingiverse.com/thing:4251460&#34;&gt;https://www.thingiverse.com/thing:4251460&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>OpenBSD&#39;s doas on Voidlinux</title>
      <link>/posts/2020-03-20-doas/</link>
      <pubDate>Fri, 20 Mar 2020 00:00:00 +0000</pubDate>
      <guid>/posts/2020-03-20-doas/</guid>
      <description>&lt;p&gt;&#xA;OpenBSD&amp;#39;s &lt;code class=&#34;verbatim&#34;&gt;doas&lt;/code&gt; is a minimal replacement for &lt;code class=&#34;verbatim&#34;&gt;sudo&lt;/code&gt;. If you run a single user&#xA;linux box, you can replace &lt;code class=&#34;verbatim&#34;&gt;sudo&lt;/code&gt; with &lt;code class=&#34;verbatim&#34;&gt;doas&lt;/code&gt; in order to have a simpler &lt;code class=&#34;verbatim&#34;&gt;sudo&lt;/code&gt;&#xA;configuration and usage experience.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;First, install &lt;code class=&#34;verbatim&#34;&gt;doas&lt;/code&gt; using &lt;code class=&#34;verbatim&#34;&gt;xbps-install&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;src src-bash&#34;&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo xbps-install opendoas&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&#xA;Doas rules have the following format:&lt;/p&gt;&#xA;&lt;div class=&#34;src src-text&#34;&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;permit|deny [options] identity [as target] [cmd command [args ...]]&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;&#xA;I like adding the &lt;code class=&#34;verbatim&#34;&gt;persist&lt;/code&gt; option to my rule so that if I enter my password&#xA;once, &lt;code class=&#34;verbatim&#34;&gt;doas&lt;/code&gt; remembers and doesn&amp;#39;t constantly ask me to authenticate.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Tips for PCI Passthrough</title>
      <link>/posts/2019-11-17-pcipassthrough/</link>
      <pubDate>Sun, 17 Nov 2019 00:00:00 +0000</pubDate>
      <guid>/posts/2019-11-17-pcipassthrough/</guid>
      <description>&lt;p&gt;&#xA;I recently fired up my windows virtual machine to play The Outer Worlds.&#xA;However, I ran into a number of issues that I would like to&#xA;document in case I run into them again or someone else does.&lt;/p&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;AMD GPU Guest Driver Install Black Screen at 40%&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;&#xA;This was the most frustrating issue I ran into. When I tried to install the&#xA;latest AMD driver for my RX 580, the screen of my windows guest would go black and I would never see&#xA;the windows desktop again.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Sourcehut Android Gradle Continuous Integration</title>
      <link>/posts/2019-11-14-srhtandroid/</link>
      <pubDate>Thu, 14 Nov 2019 00:00:00 +0000</pubDate>
      <guid>/posts/2019-11-14-srhtandroid/</guid>
      <description>&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;Introduction to Sourcehut&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;Sourcehut is my git hosting platform of choice. Sourcehut offers a continious integration&#xA;platform called builds.sr.ht. Here is how to setup build.sr.ht to compile&#xA;android projects with gradle.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-2&#34;&gt;&#xA;Secrets&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;Before we begin, we need to create the &lt;code class=&#34;verbatim&#34;&gt;android-sdk-license&lt;/code&gt; build secret.&#xA;This file will tell the android build service (gradle in this guide) that you have&#xA;agreed to all the required licenses for the dependancies upon which your project&#xA;depends.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Software Freedom and Scholarship: Reproducible Research</title>
      <link>/posts/2019-10-30-scholar/</link>
      <pubDate>Wed, 30 Oct 2019 00:00:00 +0000</pubDate>
      <guid>/posts/2019-10-30-scholar/</guid>
      <description>&lt;p&gt;&#xA;Reproducibility is a critical feature of science.&#xA;The chaotic features of nature contribute to artifacts in our&#xA;measurements, but these errors can be mitigated by taking more measurements &lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-1&#34; href=&#34;#footnote-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. The subsequent trials can reveal the random variation, and hint at the true quantity being sought.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Reproducibility is no guarantee of correctness. It will never indicate if the correct thing is being measured, or if it&amp;#39;s even important. It does, however allow for more reliable results in science.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Why you will regret putting your creative works on Instagram, Linkedin, Facebook, etc</title>
      <link>/posts/2019-08-15-socialmediaregret/</link>
      <pubDate>Thu, 15 Aug 2019 00:00:00 +0000</pubDate>
      <guid>/posts/2019-08-15-socialmediaregret/</guid>
      <description>&lt;img src=&#34;https://imgs.xkcd.com/comics/content_protection.png&#34;&#xA;alt=&#34;content protection xkcd&#34;&#xA;title=&#34;content protection xkcd&#34;&#xA;class=&#34;img&#34;&#xA;&lt;/img&gt;&#xA;&lt;p&gt;&#xA;&lt;a href=&#34;https://xkcd.com&#34;&gt;Source: xkcd.com&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;&lt;a href=&#34;https://creativecommons.org/licenses/by-nc/2.5/&#34;&gt;License: Attribution-NonCommercial 2.5 Generic (CC BY-NC 2.5)&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&#xA;I often have friends recommend me their art pages or creative works that solely&#xA;exist on the corporate social media websites:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;instagram&lt;/li&gt;&#xA;&lt;li&gt;medium&lt;/li&gt;&#xA;&lt;li&gt;facebook&lt;/li&gt;&#xA;&lt;li&gt;tumblr&lt;/li&gt;&#xA;&lt;li&gt;wix&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;If you care about discoverability and long term viability of your online&#xA;presence, creating your own website is better in every way.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;The common criticism against creating your own website is that it&amp;#39;s a lot of work&#xA;for something that these corporate platforms provide for free. Creating your own&#xA;website is like&#xA;buying a house, using corporate social media is like renting.&#xA;Like house ownership gives you autonomy in your life, owning&#xA;your own webspace gives you creative freedom.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MSE312 One Degree of Freedom Pick and Place Robot</title>
      <link>/posts/2019-08-01-pickplace/</link>
      <pubDate>Thu, 01 Aug 2019 00:00:00 +0000</pubDate>
      <guid>/posts/2019-08-01-pickplace/</guid>
      <description>&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;Abstract&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;The  MSE312  term  project  required  teams  to  design,  build  and  control  a  pick  and  place  arm  to&#xA;rotate 180◦ pick up a metal puck and rotate 90◦ to drop the target.  Mechanical design, electrical&#xA;and protection circuitry, control system and integration aspects were designed and evaluated for the&#xA;ultimate goal of the system to perform the required task in the fastest time possible while being&#xA;robust and reliable.&lt;/p&gt;</description>
    </item>
    <item>
      <title>MSE428 Project Demo Mario Kart</title>
      <link>/posts/2019-07-20-mariokart/</link>
      <pubDate>Sat, 20 Jul 2019 00:00:00 +0000</pubDate>
      <guid>/posts/2019-07-20-mariokart/</guid>
      <description>&lt;p&gt;&#xA;This summer, I took a course called MSE428: Design of Mechanism.&#xA;It was a challenging course but in the end I got to build an automaton.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;An automaton (&lt;em&gt;ɔːˈtɒmətən&lt;/em&gt;; plural: automata or automatons) is a self-operating&#xA;machine, or a machine or control mechanism designed to automatically follow a&#xA;predetermined sequence of operations, or respond to predetermined&#xA;instructions. - wikipedia&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;&#xA;For our automaton, we chose to tell the humilating story of losing first place&#xA;in mario kart to someone that just got the bullet bill item.&#xA;The shafts and supporting structure was 3d-printed.&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to fix youtube sub feed</title>
      <link>/posts/2018-08-24-youtubesubfeed/</link>
      <pubDate>Fri, 24 Aug 2018 00:00:00 +0000</pubDate>
      <guid>/posts/2018-08-24-youtubesubfeed/</guid>
      <description>&lt;p&gt;&#xA;Youtube has been tearing apart the sub feed for a couple of years now. Things&#xA;like: videos not appear in chronological order, terrible general layout, and&#xA;enhancing difficulty it takes to get to the youtube subfeed&lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-1&#34; href=&#34;#footnote-1&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;. In this post,&#xA;I will be explaining how to make a better youtube sub feed.&lt;/p&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-3&#34;&gt;&#xA;&lt;h3 id=&#34;headline-1&#34;&gt;&#xA;Introducting RSS&#xA;&lt;/h3&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-3&#34;&gt;&#xA;&lt;p&gt;&#xA;RSS (Rich Site Summary; originally RDF Site Summary; often called Really Simple&#xA;Syndication) is a type of web feed which allows users to access updates to&#xA;online content in a standardized, computer-readable format&lt;sup class=&#34;footnote-reference&#34;&gt;&lt;a id=&#34;footnote-reference-2&#34; href=&#34;#footnote-2&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Fix qutebrowser high cpu usage</title>
      <link>/posts/2018-04-06-qutebrowser/</link>
      <pubDate>Fri, 06 Apr 2018 00:00:00 +0000</pubDate>
      <guid>/posts/2018-04-06-qutebrowser/</guid>
      <description>&lt;p&gt;&#xA;I love qutebrowser for its vim keys but I found that qutebrowser&amp;#39;s cpu usage was too high.&#xA;Indeed, the cpu usage reached 80% on my sandy bridge i7 laptop when I had one archwiki tab open.&#xA;To fix the high cpu usage, I disabled software rendering. Here are the steps I followed:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Open qutebrowser&lt;/li&gt;&#xA;&lt;li&gt;Type in &lt;code class=&#34;verbatim&#34;&gt;:set&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Look for &lt;code class=&#34;verbatim&#34;&gt;qt.force_software_rendering&lt;/code&gt; and set the option to &lt;code class=&#34;verbatim&#34;&gt;false&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Restart qutebrowser&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Keep in mind that if you use Nouveau drivers you must have software rendering enabled and this fix will probably not work for you.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Labview ICT Notes</title>
      <link>/posts/2017-11-19-labview/</link>
      <pubDate>Sun, 19 Nov 2017 00:00:00 +0000</pubDate>
      <guid>/posts/2017-11-19-labview/</guid>
      <description>&lt;h2 id=&#34;required-readings&#34;&gt;Required Readings&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://www.ni.com/white-paper/14565/en/&#34;&gt;Multicore Programming with NI Labview&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://zone.ni.com/reference/en-XX/help/371361H-01/glang/wait_ms/&#34;&gt;Wait (ms) Function&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://zone.ni.com/reference/en-XX/help/371361N-01/glang/high_res_rel_sec/&#34;&gt;High Resolution Relative Seconds VI&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://zone.ni.com/reference/en-XX/help/371361M-01/ptbypt/boolean_crossing_ptbypt/&#34;&gt;Boolean Crossing PtByPt VI&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;http://zone.ni.com/reference/en-XX/help/371599J-01/lvfpgahelp/using_sampling_probe/&#34;&gt;Probes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;important-notes&#34;&gt;Important Notes&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&amp;ldquo;Wiring a value of 0 to the milliseconds to wait input forces the current thread to yield control of the CPU.&amp;rdquo; - See &amp;ldquo;wait (ms)&amp;rdquo; in required readings&lt;/li&gt;&#xA;&lt;li&gt;Using wait (ms) block causes timing issues.&lt;/li&gt;&#xA;&lt;li&gt;Use a global timer&lt;/li&gt;&#xA;&lt;li&gt;Avoid using sequences&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;&#xA;&lt;iframe title=&#34;Labview ICT Widget Assembler&#34; src=&#34;https://diode.zone/videos/embed/15a93401-f711-49c1-b3b0-68cfcd97ccd9&#34; allowfullscreen=&#34;&#34; sandbox=&#34;allow-same-origin allow-scripts allow-popups&#34; width=&#34;560&#34; height=&#34;315&#34; frameborder=&#34;0&#34;&gt;&lt;/iframe&gt;</description>
    </item>
    <item>
      <title>Patch NPT For Ryzen CPU Arch Linux</title>
      <link>/posts/2017-10-28-arch-npt-patch/</link>
      <pubDate>Sat, 28 Oct 2017 00:00:00 +0000</pubDate>
      <guid>/posts/2017-10-28-arch-npt-patch/</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;strong&gt;Note: This patch has been merged with upstream. Simply update your archlinux machine and npt should just work.&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;p&gt;The new npt patch allows you to enable npt on ryzen cpus and get native performance in a virtual machine. Please be advised that this patch is not mainline and may cause other problems. As always, make backups.&lt;/p&gt;&#xA;&lt;p&gt;For this procedure we will be using the Arch Build System so that pacman will manage all of the files and so we can rollback a kernel by looking into &lt;code&gt;/var/cache/pacman/pkg/&lt;/code&gt; and using &lt;code&gt;pacman -U&lt;/code&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Matrix</title>
      <link>/posts/2017-05-01-matrix/</link>
      <pubDate>Mon, 01 May 2017 00:00:00 +0000</pubDate>
      <guid>/posts/2017-05-01-matrix/</guid>
      <description>&lt;p&gt;I recently installed a matrix (synapse) on the server.&#xA;It has encryption, high quality image uploads, bots, and all the data is stored on my own server. In order to use the chat service:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Message me to make you an account&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Go to &lt;a href=&#34;https://riot.im/app/#/login&#34;&gt;riot&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Press custom server&lt;/p&gt;&#xA;&lt;p&gt;Home server URL: &lt;code&gt;https://momi.ca:8448&lt;/code&gt;&lt;/p&gt;&#xA;&lt;p&gt;Leave identity server URL as &lt;code&gt;https://vector.im&lt;/code&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Enter the username and password I gave to you&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;When you join a room with encryption, you will be asked to accept keys. For now, tell everyone that you&amp;rsquo;re signing in from a new device and tell them to accept the keys.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setting up contact and calendar syncing with baikal</title>
      <link>/posts/2016-12-22-calender/</link>
      <pubDate>Thu, 22 Dec 2016 00:00:00 +0000</pubDate>
      <guid>/posts/2016-12-22-calender/</guid>
      <description>&lt;p&gt;I recently added baikal to my suite of services offered here on momi.ca.&#xA;If you know me personally, email me in order to get an invite. In this post, I will be describing how to setup syncing and backup with the service.&#xA;I set this up because I like opentasks&amp;amp;rsquo; todo list much more than google&amp;amp;rsquo;s.&lt;/p&gt;&#xA;&lt;h2 id=&#34;android&#34;&gt;Android&lt;/h2&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Download and install the &lt;a href=&#34;https://f-droid.org/en/packages/se.lublin.mumla/&#34;&gt;F-droid appstore&lt;/a&gt;. This appstore allows us to get open source apps for free when we would have to otherwise pay for them. Make sure you allow unknown sources when you are prompted to do so.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Setup Multiple Monitors in Sway (Wayland)</title>
      <link>/posts/2016-11-02-swaymultimonitor/</link>
      <pubDate>Wed, 02 Nov 2016 00:00:00 +0000</pubDate>
      <guid>/posts/2016-11-02-swaymultimonitor/</guid>
      <description>&lt;p&gt;Sway boasts about its close compatibility with your previous i3 config.&#xA;However, if you used xrandr or arandr to setup the location of your monitors, your monitors will most likely not be in the correct location when you open up sway.&#xA;There is a simple fix to this:&lt;/p&gt;&#xA;&lt;p&gt;Get the names of your outputs by running:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;swaymsg -t get_outputs&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;I have two monitors: one 1440p monitor plugged into the dvi port (called &lt;code&gt;DVI-I-0&lt;/code&gt; in swaymsg) and one 1080p monitor plugged into my HDMI port (called &lt;code&gt;HDMI-A-1&lt;/code&gt; in swaymsg). Therefore, I would write the following in my config:&lt;/p&gt;</description>
    </item>
    <item>
      <title>How to Stream MPD and Setup Mpdroid</title>
      <link>/posts/2016-04-28-mpd/</link>
      <pubDate>Thu, 28 Apr 2016 00:00:00 +0000</pubDate>
      <guid>/posts/2016-04-28-mpd/</guid>
      <description>&lt;p&gt;&#xA;MPD is great for handling a large music collection. It even has a feature where it can stream your music output over http. However, I found that there wasn&amp;#39;t a good guide on setting http streaming up. Furthermore, I found a work-around to a bug in mpdroid that no google search revealed. Therefore, I thought that writing a guide on setting up http streaming would help alot of people out. Here&amp;#39;s what I did to setup mpd and mpdroid:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Hello World</title>
      <link>/posts/2016-04-26-hello-world/</link>
      <pubDate>Tue, 26 Apr 2016 00:00:00 +0000</pubDate>
      <guid>/posts/2016-04-26-hello-world/</guid>
      <description>&lt;p&gt;Hello there! Welcome to my site. I thought of installing more services after reinstalling debian on the server I use for backups. However, it was getting cumbersome to explain to all my friends how to access the services I started. Therefore, I thought starting a blog would be a nice way to have a centralized place for documentation on how to use the services that I run.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mumble Client Usage</title>
      <link>/posts/2016-04-26-mumble/</link>
      <pubDate>Tue, 26 Apr 2016 00:00:00 +0000</pubDate>
      <guid>/posts/2016-04-26-mumble/</guid>
      <description>&lt;p&gt;&#xA;If you&amp;#39;re seeing this, that means we&amp;#39;ve invited you to mumble. In this post, we will explain what mumble is, why you would want to use it, and how to set it up if you&amp;#39;re having trouble.&lt;/p&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-3&#34;&gt;&#xA;&lt;h3 id=&#34;headline-1&#34;&gt;&#xA;Reasons to use mumble:&#xA;&lt;/h3&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-3&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Lowest latency&lt;/li&gt;&#xA;&lt;li&gt;Best voice quality&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;The host is a dedicated computer, not someone in the call. &lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;If someone leaves call, the call doesnt end.&lt;/li&gt;&#xA;&lt;li&gt;No one in call has to experience higher latency in game cause theyre host&lt;/li&gt;&#xA;&lt;li&gt;No dropped calls&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;Little lag for people talking from across the country&lt;/li&gt;&#xA;&lt;li&gt;It&amp;#39;s like a group chat that never ends. You meet new people and it&amp;#39;s fun.&lt;/li&gt;&#xA;&lt;li&gt;We have a bot that blasts K-Pop into the server&lt;/li&gt;&#xA;&lt;li&gt;There is a text to voice bot that will say ANYTHING you type into chat. (you can turn this off if it&amp;#39;s annoying)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-3&#34;&gt;&#xA;&lt;h3 id=&#34;headline-2&#34;&gt;&#xA;How to use mumble on desktop&#xA;&lt;/h3&gt;&#xA;&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-3&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Download mumble (stable release) for your OS from &lt;a href=&#34;https://wiki.mumble.info/wiki/Main_Page&#34;&gt;here&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Click next, next, next through install wizard.&lt;/li&gt;&#xA;&lt;li&gt;Open mumble:&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;These next settings are important. Please read the recommended settings for the server above each image of the setting&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>About</title>
      <link>/about/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/about/</guid>
      <description>&lt;img src=&#39;/images/banner.jpg&#39; alt=&#39;cool pic of urban center&#39;/&gt;&#xA;&lt;p&gt;&#xA;Hello! This website is a collection of my ideas, documentation, and projects.&lt;/p&gt;&#xA;&lt;p&gt;&#xA;Me on the web:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Subscribe to this site via &lt;a href=&#34;/feed.xml&#34;&gt;RSS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;sourcehut: &lt;a href=&#34;https://git.sr.ht/~anjan&#34;&gt;~anjan&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;xmpp/jabber: anjan -at- momi.ca&lt;/li&gt;&#xA;&lt;li&gt;matrix: &lt;a href=&#34;https://matrix.to/#/@anjan:postmarketos.org&#34;&gt;@anjan:postmarketos.org&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;email: anjan -at- momi.ca&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;public key: &lt;a href=&#34;/publickey.txt&#34;&gt;BF5CD7823BA2B218&lt;/a&gt; &lt;a href=&#34;https://emailselfdefense.fsf.org/en/&#34;&gt;?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;github: &lt;a href=&#34;https://github.com/anjandev&#34;&gt;anjandev&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;liberapay: &lt;a href=&#34;https://liberapay.com/anjan&#34;&gt;anjan&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;IRC OFTC/libera.chat nick: anjan&lt;/li&gt;&#xA;&lt;li&gt;Fediverse/Mastodon: &lt;a href=&#34;https://pleroma.debian.social/users/anjan&#34;&gt;anjan@pleroma.debian.social&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;    &lt;a href=&#34;https://sfconservancy.org/sustainer/&#34;&gt;&#xA;      &lt;img src=&#34;https://sfconservancy.org/img/supporter-badge.png&#34; width=&#34;194&#34; height=&#34;90&#34; alt=&#34;Become a Conservancy Sustainer!&#34; border=&#34;0&#34;/&gt;&#xA;    &lt;/a&gt;</description>
    </item>
    <item>
      <title>Email</title>
      <link>/services/email/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/services/email/</guid>
      <description>&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-3&#34;&gt;&#xA;&lt;h3 id=&#34;headline-1&#34;&gt;&#xA;Third-party Apps&#xA;&lt;/h3&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-3&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use IMAP&lt;/li&gt;&#xA;&lt;li&gt;The email server details for mobile/desktop clients are given here: &lt;a href=&#34;https://www.migadu.com/guides/#generic-settings&#34;&gt;https://www.migadu.com/guides/#generic-settings&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Username : &lt;code class=&#34;verbatim&#34;&gt;&amp;lt;your-name&amp;gt;@momi.ca&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;</description>
    </item>
    <item>
      <title>XMPP Server</title>
      <link>/services/xmpp/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>/services/xmpp/</guid>
      <description>&lt;a href=&#39;https://compliance.conversations.im/server/momi.ca&#39;&gt;&lt;img&#xA; src=&#39;https://compliance.conversations.im/badge/momi.ca&#39;/&gt;&lt;/a&gt;&#xA;&lt;div id=&#34;outline-container-headline-1&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-1&#34;&gt;&#xA;How to invite someone else&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-1&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;p&gt;&#xA;If you want to invite someone else to momi.ca, just message the admins (xmpp: anjan -at- momi.ca or colinl@momi.ca) and they will get an invite link for you.&#xA;Note: you can chat with users from other servers on the XMPP network (@anydomain) with your @momi.ca account.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;div id=&#34;outline-container-headline-2&#34; class=&#34;outline-2&#34;&gt;&#xA;&lt;h2 id=&#34;headline-2&#34;&gt;&#xA;Android&#xA;&lt;/h2&gt;&#xA;&lt;div id=&#34;outline-text-headline-2&#34; class=&#34;outline-text-2&#34;&gt;&#xA;&lt;div id=&#34;outline-container-headline-3&#34; class=&#34;outline-3&#34;&gt;&#xA;&lt;h3 id=&#34;headline-3&#34;&gt;&#xA;Setup&#xA;&lt;/h3&gt;&#xA;&lt;div id=&#34;outline-text-headline-3&#34; class=&#34;outline-text-3&#34;&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Install &lt;a href=&#34;https://f-droid.org/&#34;&gt;fdroid&lt;/a&gt; to get conversations for free&lt;/li&gt;&#xA;&lt;li&gt;Install &lt;a href=&#34;https://f-droid.org/en/packages/eu.siacs.conversations/&#34;&gt;conversations&lt;/a&gt; from fdroid&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;Tap the invite link and follow the onscreen instructions in conversations&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
