Articles from blogs I follow around the net| momi.ca
SeaGL 2024 Talk: Introduction to postmarketOS Published 2024-11-16 on Anjan's Homepage I did a talk at SeaGL 2024 this November - Introduction to postmarketOS. This talk aims to show the flexibility of postmarketOS and it’s amazing tooling. The talk overview is here: https://pretalx.seagl.org/2024/talk/983CCA/ You can watch the talk here: Link: https://www.youtube.com/live/wJfbS8f2Zio?si=2EAQASmC-3OcZ4yk&t=3084 Have a comment on one of my posts? Start a discussion in my public inbox by send...| Anjan Momi Homepage
FOSSY 2023 Talk: Thoughts after daily driving postmarketOS for 3 years Published 2024-11-16 on Anjan's Homepage I did a talk at FOSSY 2023 and forgot to post the published video on my blog last year. Here it is! Most of the information is still correct in 2024 and the demos are still relevant. Enjoy: Link: https://archive.org/details/fossy2023_Thoughts_after_daily_driving_p Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~anjan/public-inbox@list...| Anjan Momi Homepage
I will be at SeaGL 2024! Published 2024-11-06 on Anjan's Homepage I will be doing a postmarketOS tabling with Clayton Craft at SeaGL 2024 in Seattle: https://seagl.org/ The conference is happening November 8th and 9th. Also, I will be giving a talk: https://pretalx.seagl.org/2024/talk/983CCA Come to Seattle if you want to hang out and chat about postmarketOS! Here are the relevant notes for the talk: Introduction to postmarketOS Links User Interfaces https://wiki.postmarketos.org/wiki/Categor...| Anjan Momi Homepage
Introducing Honeybee: Calling via XMPP| momi.ca
The Pinephone Pro, PostmarketOS, and Why Mainlining Phones is Important Published 2022-09-07 on Anjan's Homepage In #sxmo on OFTC, users often ask why the pinephone pro is less functional on postmarketOS than other distros. PostmarketOS uses a mainline pinephone pro kernel 1. There exists a heavily patched fork of the linux kernel called the megi kernel with broader support for the functionality of the pinephone pro 2. In this blog post, I will explain why postmarketOS has mainline-first appr...| Anjan Momi Homepage
Why we must insist on Free Network Services Published 2022-04-30 on Anjan's Homepage There has been renewed interest in the fediverse 1. 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. 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! Beyond these tech...| Anjan Momi Homepage
Sxmo on the poco f1 Published 2022-04-19 on Anjan's Homepage Recently, I tried to upgrade the modem firmware on my pinephone and failed. As far as I know, the modem on my pinephone is broken. I have a developer edition of the pinephone pro but the mainline kernel doesnt even have reliable charging working 1. On the look out for a replacement device, I saw the poco f1 and oneplus 6 have gained support for calling in postmarketOS. Since I am tired of dealing with pine64 hardware and the Librem ...| Anjan Momi Homepage
Sxmo Libreplanet 2022 Presentation Published 2022-03-31 on Anjan's Homepage I recently gave a talk about Sxmo at the Free Software Foundation’s Libreplanet conference. 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 postmarketOS (a Linux distribution). It’s incredible how far Sxmo has come since our presentation at last year’s Alpineconf. Thanks to everyone who contributed to Sxm...| Anjan Momi Homepage
Onboarding New Contributors: Good First Issue Label Published 2022-01-11 on Anjan's Homepage People sometimes ask me “how do I get into contributing to Free software”. Contributing to Free software can be as difficult as starting a new job - you don’t know where to start, the abbreviations everyone uses are foreign to you, and you’re worried about embarrassing yourself 1. Your motivation might vary but I got into Free software to learn and because it is fun! Here is how I started cont...| Anjan Momi Homepage
Ditch plex/jellyfin/kodi (or worse Netflix)! My favorite mpv scripts Published 2022-01-09 on Anjan's Homepage mpv is my favorite video player. It has a lot of user scripts written in a variety of programming languages. Many people install jellyfin, plex, or kodi to emulate a netflix-like experience. Here’s how I am able to emulate a netflix-like experience with mpv using user scripts: skiptofade.lua skiptofade.lua skips til a black screen appears. This allows you to skip intros to shows ver...| Anjan Momi Homepage
Stuck on grub menu after Luks Full Disk Encryption (coreboot) Published 2021-11-07 on Anjan's Homepage I used ivyra1n to install skulls with seabios payload on my x230. However, after installing coreboot, I could not boot into a lot of distros after installing with their full disk encryption 1 . Here is fix and a potential workaround. So I recently decided to try out Devuan because I don’t like systemd on Debian. I followed devuan’s Full Disk Ecryption guide. The install went fine, I boot...| Anjan Momi Homepage
Sourcehut multiple documentation versions Published 2021-10-29 on Anjan's Homepage When using man.sr.ht for Sxmo’s documentation we wanted to have three versions: Documentation for the latest tagged stable release of the code in edge Documentation for the latest git HEAD version of the code Documentation for the latest tagged stable release in postmarketOS stable Having three versions allows us to document features as we add them to the git HEAD or postmarketOS edge. Additionally, we want t...| Anjan Momi Homepage
Setup xinitrc (startx) and connect to DBUS (set DBUS_SESSION_BUS_ADDRESS) on Debian 11 Published 2021-10-11 on Anjan's Homepage I recently installed Debian 11 on a workstation and the .xinitrc I usually use on Gentoo (with openrc) and Alpine (also openrc) did not properly setup dbus ($DBUS_SESSION_BUS_ADDRESS env variable was empty). I tried putting export $(dbus-launch) in my .xinitrc as stackexchange recommended but this did not fix the dbus environmental variables being unset. $DBUS_SESSIO...| Anjan Momi Homepage
How and Why the Benefits of Mass Surveillence are Overestimated While the Costs are Undermined Published 2020-09-02 on Anjan's Homepage How much surveillance till we are safe? Proponents of the current mass surveillance state are quick to point out that there is a trade off between security and privacy. 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. However, in this “trade off”, there is no criterion for whe...| Anjan Momi Homepage
Recommended Watch/Read: Free Software Needs Free Tools Published 2020-06-03 on Anjan's Homepage Signal boosting the excellent blog post and talk “Free Software Needs Free Tools” by Benjamin Mako Hill in which he gives the story of how git was created. I agree with most if not all his recommendations following the story. Personally, I have been paying for a sourcehut membership for a while now and this story is the reason I continuously renew my paid account (aside from the fact sourcehut ...| Anjan Momi Homepage
Sxmo Alpineconf 2021 Presentation Published 2021-05-18 on Anjan's Homepage I recently gave a talk about Sxmo at Alpineconf. 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. I have been co-maintaining and contributing the project for a year now and it was fun to share our progress with the community. You can watch a presentation of our project here: Have a comment on one of...| Anjan Momi Homepage
sendxmpp as a replacement for mail(1) Published 2020-08-28 on Anjan's Homepage Tools like cron use mail(1) to notify the server admin of failing services. It is trivial to configure postfix to only send mail. 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. I could use something like msmtp to have my email service provider (migadu, gmail, etc.) send my emails for me but I would be using up my daily ou...| Anjan Momi Homepage
GoAccess - You do not need proprietary javascript to get analytics Published 2020-08-23 on Anjan's Homepage I run noscript in my web browser to block javascript by default. I often come across blogs that are fully functional with javascript disabled but ask to run some javascript. The javascript the blog asks to run is usually used to provide the webmaster with analytics about the users. The automatic loading of proprietary javascript is especially problematic if the javascript is served by a...| Anjan Momi Homepage
Latex New Line Published 2020-08-21 on Anjan's Homepage In latex, a sentence will only be added to a new paragraph if it is double spaced from the line before. For example, the following latex code: Will result in: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. When you put every sentence on a new line in the l...| Anjan Momi Homepage
Technology is Political and the Political Ramifications of Free Culture Published 2020-07-27 on Anjan's Homepage The digital computer is a decentralized tool for the manipulation and copying of information. The traditional technology that facilitated the transfer of information was the printing press. 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. In fact, many will mention that the pr...| Anjan Momi Homepage
Minimal Blogging Setup with Orgmode and ssg5 Published 2020-07-21 on Anjan's Homepage My Old Setup I prefer orgmode over markdown because already I use orgmode for appointments, reminders, notes, etc. However, most static website generators only support Markdown. Luckily, orgmode has an html export function: M-x org-publish. org-publish is much more powerful and reliable than any markdown converter I have used. Since 2016, I have been using jekyll which is bloated and requires a lot of ruby d...| Anjan Momi Homepage
Compiling crust for pinephone on Postmarketos Published 2020-07-06 on Anjan's Homepage Crust is now available from postmarketos’ official repos! This post is now obsolete but is kept as an archive for how to test new kernels. Use at your own risk Crust firmware enables acceptable battery life on the pinephone. For me, it is the last feature I need for the pinephone to be daily driver ready. Here is how to install the experimental crust branch on the pinephone so that you can give the postma...| Anjan Momi Homepage
Why VoidLinux is Better than Arch - A Former Arch User's Perspective Published 2020-06-24 on Anjan's Homepage I had been an avid ArchLinux user for five years. I ran Arch on all my computers, I enjoyed using it, and I learned a lot from it. One day, I happened to try VoidLinux on one of my extra thinkpads and found my new favorite distro 1. The Arch to VoidLinux pipeline is somewhat a joke and maybe I’m leaning into that joke with this blog post. Anyway, here are some reasons for using my f...| Anjan Momi Homepage
Two Factor Authentication App on Pinephone Published 2020-04-09 on Anjan's Homepage I picked up the pinephone but it wasn’t daily driver ready. A couple days ago, my android phone completely broke so I needed to make the pinephone daily driver ready. First things first - I need a two factor authentication app for my phone. Issues with gnome-authenticator On postmarketos, gnome-authenticator is my preferred two factor authentication app because it is in the main repositories and it works. Ho...| Anjan Momi Homepage
3D Printing MASK STRAPS "Ear Savers" Published 2020-04-05 on Anjan's Homepage The BC COVID-19 3D Printing Group has a list of designs they would like people to help print to ensure medical personnel are protected during the COVID-19 epidemic. This post has two purposes: 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. Share my tips for “mass producing” the MASK STRAPS “Ear Savers” I ...| Anjan Momi Homepage
OpenBSD's doas on Voidlinux Published 2020-03-20 on Anjan's Homepage OpenBSD’s doas is a minimal replacement for sudo. If you run a single user linux box, you can replace sudo with doas in order to have a simpler sudo configuration and usage experience. First, install doas using xbps-install. sudo xbps-install opendoas Doas rules have the following format: permit|deny [options] identity [as target] [cmd command [args ...]] I like adding the persist option to my rule so that if I enter my pa...| Anjan Momi Homepage
Tips for PCI Passthrough Published 2019-11-17 on Anjan's Homepage I recently fired up my windows virtual machine to play The Outer Worlds. However, I ran into a number of issues that I would like to document in case I run into them again or someone else does. AMD GPU Guest Driver Install Black Screen at 40% This was the most frustrating issue I ran into. When I tried to install the latest AMD driver for my RX 580, the screen of my windows guest would go black and I would never see the windows...| Anjan Momi Homepage
Sourcehut Android Gradle Continuous Integration Published 2019-11-14 on Anjan's Homepage Introduction to Sourcehut Sourcehut is my git hosting platform of choice. Sourcehut offers a continious integration platform called builds.sr.ht. Here is how to setup build.sr.ht to compile android projects with gradle. Secrets Before we begin, we need to create the android-sdk-license build secret. This file will tell the android build service (gradle in this guide) that you have agreed to all the requir...| Anjan Momi Homepage
Software Freedom and Scholarship: Reproducible Research Published 2019-10-30 on Anjan's Homepage Reproducibility is a critical feature of science. The chaotic features of nature contribute to artifacts in our measurements, but these errors can be mitigated by taking more measurements 1. The subsequent trials can reveal the random variation, and hint at the true quantity being sought. Reproducibility is no guarantee of correctness. It will never indicate if the correct thing is being measured,...| Anjan Momi Homepage
Why you will regret putting your creative works on Instagram, Linkedin, Facebook, etc Published 2019-08-15 on Anjan's Homepage Source: xkcd.com License: Attribution-NonCommercial 2.5 Generic (CC BY-NC 2.5) I often have friends recommend me their art pages or creative works that solely exist on the corporate social media websites: instagram medium facebook tumblr wix If you care about discoverability and long term viability of your online presence, creating your own website is better in every ...| Anjan Momi Homepage
MSE312 One Degree of Freedom Pick and Place Robot Published 2019-08-01 on Anjan's Homepage Abstract The MSE312 term project required teams to design, build and control a pick and place arm to rotate 180◦ pick up a metal puck and rotate 90◦ to drop the target. Mechanical design, electrical and protection circuitry, control system and integration aspects were designed and evaluated for the ultimate goal of the system to perform the required task in the fastest time possible while being robu...| Anjan Momi Homepage
MSE428 Project Demo Mario Kart Published 2019-07-20 on Anjan's Homepage This summer, I took a course called MSE428: Design of Mechanism. It was a challenging course but in the end I got to build an automaton. An automaton (ɔːˈtɒmətən; plural: automata or automatons) is a self-operating machine, or a machine or control mechanism designed to automatically follow a predetermined sequence of operations, or respond to predetermined instructions. - wikipedia For our automaton, we chose to tel...| Anjan Momi Homepage
How to fix youtube sub feed Published 2018-08-24 on Anjan's Homepage Youtube has been tearing apart the sub feed for a couple of years now. Things like: videos not appear in chronological order, terrible general layout, and enhancing difficulty it takes to get to the youtube subfeed1. In this post, I will be explaining how to make a better youtube sub feed. Introducting RSS RSS (Rich Site Summary; originally RDF Site Summary; often called Really Simple Syndication) is a type of web feed which...| Anjan Momi Homepage
Fix qutebrowser high cpu usage Published 2018-04-06 on Anjan's Homepage I love qutebrowser for its vim keys but I found that qutebrowser’s cpu usage was too high. Indeed, the cpu usage reached 80% on my sandy bridge i7 laptop when I had one archwiki tab open. To fix the high cpu usage, I disabled software rendering. Here are the steps I followed: Open qutebrowser Type in :set Look for qt.force_software_rendering and set the option to false Restart qutebrowser Keep in mind that if you use No...| Anjan Momi Homepage
Labview ICT Notes Published 2017-11-19 on Anjan's Homepage Required Readings Multicore Programming with NI Labview Wait (ms) Function High Resolution Relative Seconds VI Boolean Crossing PtByPt VI Probes Important Notes “Wiring a value of 0 to the milliseconds to wait input forces the current thread to yield control of the CPU.” - See “wait (ms)” in required readings Using wait (ms) block causes timing issues. Use a global timer Avoid using sequences Have a comment on one of my posts?...| Anjan Momi Homepage
Patch NPT For Ryzen CPU Arch Linux Published 2017-10-28 on Anjan's Homepage Note: This patch has been merged with upstream. Simply update your archlinux machine and npt should just work. 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. For this procedure we will be using the Arch Build System so that pacman will manage all of the fil...| Anjan Momi Homepage
Matrix Published 2017-05-01 on Anjan's Homepage I recently installed a matrix (synapse) on the server. 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: Message me to make you an account Go to riot Press custom server Home server URL: https://momi.ca:8448 Leave identity server URL as https://vector.im Enter the username and password I gave to you When you join a room with encryption, you will be asked to accept ...| Anjan Momi Homepage
Setting up contact and calendar syncing with baikal Published 2016-12-22 on Anjan's Homepage I recently added baikal to my suite of services offered here on momi.ca. 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. I set this up because I like opentasks’ todo list much more than google’s. Android Download and install the F-droid appstore. This appstore allows us to get open source ap...| Anjan Momi Homepage
Setup Multiple Monitors in Sway (Wayland) Published 2016-11-02 on Anjan's Homepage Sway boasts about its close compatibility with your previous i3 config. 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. There is a simple fix to this: Get the names of your outputs by running: swaymsg -t get_outputs I have two monitors: one 1440p monitor plugged into the dvi port (called `DVI-I-0` ...| Anjan Momi Homepage
How to Stream MPD and Setup Mpdroid Published 2016-04-28 on Anjan's Homepage 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’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’s what I did to setup...| Anjan Momi Homepage
Mumble Client Usage Published 2016-04-26 on Anjan's Homepage If you’re seeing this, that means we’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’re having trouble. Reasons to use mumble: Lowest latency Best voice quality The host is a dedicated computer, not someone in the call. If someone leaves call, the call doesnt end. No one in call has to experience higher latency in game cause theyre host No droppe...| Anjan Momi Homepage
Articles from blogs I follow around the net| momi.ca
Sxmo Project Goals and the sxmo_migrate.sh on Upgrades Flaw| momi.ca