out/%.html: %.m4 header.html footer.html
@mkdir -p $(@D)
m4 $< > $@
-out/notes.atom: meta_feed_atom.m4 ; m4 $< > $@
-out/notes.rss: meta_feed_rss.m4 ; m4 $< > $@
+out/notes.%: meta_feed_%.m4 $(SRC) header.html footer.html
+ m4 $< > $@
+ sed -i 's|href="/\([^/]\)|href="https://bndl.org/\1|' $@
out/GNUmakefile: GNUmakefile ; ln -s $(PWD)/$< $@
$(STATIC): ; ln -s $(PWD)/static/$(@F) $@
deploy:
rsync -avzLP out/ abandali@bndl.org:www/bndl.org/
- ssh abandali@bndl.org mv www/bndl.org/.htaccess-www www/.htaccess
+# ssh abandali@bndl.org mv www/bndl.org/.htaccess-www www/.htaccess
watch:
while true; do \
<p>This post summarizes how I install and dual-boot Arch GNU/Linux
with Full-Disk Encryption alongside macOS. It is not meant to be a
replacement for the
-<a href="//wiki.archlinux.org/index.php/installation%5Fguide">Installation
+<a href="https://wiki.archlinux.org/index.php/installation%5Fguide">Installation
Guide</a> or the former
-<a href="//csdietz.github.io/arch-beginner-guide/">Beginner's
+<a href="https://csdietz.github.io/arch-beginner-guide/">Beginner's
Guide</a>. Rather, it mostly serves as a small summary with a few
useful notes about the gotchas.</p>
<h2>Creating a bootable Arch Installer USB</h2>
<p>There are different ways of creating a bootable Arch USB, all
documented on the
-<a href="//wiki.archlinux.org/index.php/USB%5Fflash%5Finstallation%5Fmedia">USB
+<a href="https://wiki.archlinux.org/index.php/USB%5Fflash%5Finstallation%5Fmedia">USB
flash installation media</a> page on the Arch wiki, but the simplest
one is using <code>dd</code> if you already have access to another
UNIX system.</p>
<h2>Partitioning</h2>
<p>I won't dive into partitioning and instead, I will refer you to the
-<a href="//wiki.archlinux.org/index.php/Partitioning">Partitioning</a>
+<a href="https://wiki.archlinux.org/index.php/Partitioning">Partitioning</a>
page of Arch wiki. Of the available partitioning tools, I personally
prefer <code>cfdisk</code>.</p>
<h2>Setting up LVM & LUKS</h2>
<p>I use an
-<a href="//wiki.archlinux.org/index.php/Dm-crypt/Encrypting%5Fan%5Fentire%5Fsystem#LVM%5Fon%5FLUKS">LVM
+<a href="https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting%5Fan%5Fentire%5Fsystem#LVM%5Fon%5FLUKS">LVM
on LUKS</a> setup, where I set up LVM on top of the encrypted
partition.</p>
<p>where <code>/dev/sdaX</code> is the partition you created in the
last step (e.g. <code>/dev/sda4</code>). For more information about
the <code>cryptsetup</code> options, see the
-<a href="//wiki.archlinux.org/index.php/Dm-crypt/Device%5Fencryption#Encryption%5Foptions%5Ffor%5FLUKS%5Fmode">LUKS
+<a href="https://wiki.archlinux.org/index.php/Dm-crypt/Device%5Fencryption#Encryption%5Foptions%5Ffor%5FLUKS%5Fmode">LUKS
encryption options</a>.</p>
<p>Then we open the container:</p>
<p>Congratulations! You now have a minimal Arch installation.</p>
<p>At this point, I usually install my favorite AUR helper,
-<a href="//aur.archlinux.org/packages/pacaur/">pacaur</a>, then I
-install the
-<a href="//aur.archlinux.org/packages/mba6x%5Fbl-dkms/">mba6x_bl-dkms</a>
+<a href="https://aur.archlinux.org/packages/pacaur/">pacaur</a>, then
+I install the
+<a href="https://aur.archlinux.org/packages/mba6x%5Fbl-dkms/">mba6x_bl-dkms</a>
backlight driver to fix the post suspend/resume issue where there's no
brightness after waking up from suspend, and the only available
brightness would be 100%.</p>
</ul>
<p>Check out the
-<a href="//wiki.archlinux.org/index.php/General%5Frecommendations">General
+<a href="https://wiki.archlinux.org/index.php/General%5Frecommendations">General
recommendations</a> for more details.</p>
<h2>References</h2>
bits and pieces, about installing Arch on a MacBook:</p>
<ul>
-<li><a href="//github.com/pandeiro/arch-on-air">pandeiro/arch-on-air</a></li>
-<li><a href="//loicpefferkorn.net/2015/01/arch-linux-on-macbook-pro-retina-2014-with-dm-crypt-lvm-and-suspend-to-disk/">Arch Linux on MacBook Pro Retina 2014 with DM-Crypt, LVM and suspend to disk</a></li>
-<li><a href="//www.frankshin.com/2014/installing-archlinux-on-macbook-air-2013/">Installing Archlinux on Macbook Air 2013</a></li>
+<li><a href="https://github.com/pandeiro/arch-on-air">pandeiro/arch-on-air</a></li>
+<li><a href="https://loicpefferkorn.net/2015/01/arch-linux-on-macbook-pro-retina-2014-with-dm-crypt-lvm-and-suspend-to-disk/">Arch Linux on MacBook Pro Retina 2014 with DM-Crypt, LVM and suspend to disk</a></li>
+<li><a href="https://www.frankshin.com/2014/installing-archlinux-on-macbook-air-2013/">Installing Archlinux on Macbook Air 2013</a></li>
<li><a href="http://panks.me/posts/2013/06/arch-linux-installation-with-os-x-on-macbook-air-dual-boot/">Arch Linux Installation with OS X on Macbook Air (Dual Boot)</a></li>
-<li><a href="//alexeyzabelin.com/arch-on-mac">Installing Arch Linux on a MacBook Air 2013</a></li>
-<li><a href="//medium.com/phils-thought-bubble-of-recent-stuff/arch-linux-running-on-my-macbook-2ea525ebefe3">Arch Linux running on my MacBook</a></li>
+<li><a href="https://alexeyzabelin.com/arch-on-mac">Installing Arch Linux on a MacBook Air 2013</a></li>
+<li><a href="https://medium.com/phils-thought-bubble-of-recent-stuff/arch-linux-running-on-my-macbook-2ea525ebefe3">Arch Linux running on my MacBook</a></li>
<li><a href="http://codylittlewood.com/arch-linux-on-macbook-pro-installation/">Dual boot Arch Linux on MacBook Pro Installation</a></li>
</ul>
define(__id, 2)dnl
include(header.html)dnl
-<p class="box">Inspired by the computing pages of
-<a href="//stallman.org/stallman-computing.html">rms</a> and
-<a href="//blog.vimuser.org/leah-computing.html">Leah Rowe</a>.</p>
+<p class="box">Inspired by the computing page of
+<a href="https://stallman.org/stallman-computing.html">rms</a>.</p>
<h2>Computers</h2>
-<p>My <a href="//libreboot.org">librebooted</a> ThinkPad X200 computer
-is the machine I use the most and where I do most of my computing. I
-also have the privilege of having access to a fleet of servers through
-our school's
-<a href="//csclub.uwaterloo.ca">Computer Science Club</a> that I use
-for some more computationally intensive tasks every now and again, and
-also for hosting this very website.</p>
+<p>My <a href="https://libreboot.org">librebooted</a> ThinkPad X200
+computer is the machine I use the most and where I do most of my
+computing. I also have the privilege of having access to a fleet of
+servers through our school's
+<a href="https://csclub.uwaterloo.ca">Computer Science Club</a> that I
+use for some more computationally intensive tasks every now and again,
+and also for hosting this very website.</p>
<h2>GNU/Linux distributions</h2>
<p>I have used a wide variety of GNU/Linux distros over the years; but
as of late, I find myself using
-<a href="//trisquel.info">Trisquel</a>,
-<a href="//guix.gnu.org">Guix System</a>, and
-<a href="//www.debian.org">Debian</a> (with no <code>contrib</code> or
-<code>non-free</code>) almost exclusively. For the kernel, I mostly
-use <a href="//www.fsfla.org/ikiwiki/selibre/linux-libre/">GNU
+<a href="https://trisquel.info">Trisquel</a>,
+<a href="https://guix.gnu.org">Guix System</a>, and
+<a href="https://www.debian.org">Debian</a> (with
+no <code>contrib</code> or <code>non-free</code>) almost exclusively.
+For the kernel, I mostly use
+<a href="https://www.fsfla.org/ikiwiki/selibre/linux-libre/">GNU
Linux-libre</a>. Guix System comes with GNU Linux-libre out of the
box, and on Debian-based distros I tend to install it from
-jxself's <a href="//jxself.org/linux-libre/">APT repository</a>.</p>
+jxself's <a href="https://jxself.org/linux-libre/">APT
+repository</a>.</p>
<h2>Actual computing</h2>
<p>I spend most of my time in
-<a href="//www.gnu.org/software/emacs/">GNU Emacs</a>.</p>
+<a href="https://www.gnu.org/software/emacs/">GNU Emacs</a>.</p>
<p>TODO: elaborate</p>
<h2 id="colophon">Maintaining this site</h2>
<p>I took a great amount of inspiration
-from <a href="//technomancy.us/colophon">Phil Hagelberg</a>'s setup.
-The pages of this site are written in plain HTML using GNU Emacs,
-with <a href="//gnu.org/s/m4">GNU M4</a> acting as a full-featured
-template engine.
+from <a href="https://technomancy.us/colophon">Phil Hagelberg</a>'s
+setup. The pages of this site are written in plain HTML using GNU
+Emacs, with <a href="https://gnu.org/s/m4">GNU M4</a> acting as a
+full-featured template engine.
A <a href="/GNUmakefile"><code>GNUmakefile</code></a> provides
convenient <code>make</code> rules to build and publish the site. The
bibliography of my <a href="/publications">publications</a> is
generated from <a href="/bandali.bib"><code>bandali.bib</code></a>
-using <a href="//www.lri.fr/~filliatr/bibtex2html/">bibtex2html</a>,
-and further processed and put together
-using <a href="//gnu.org/s/sed">GNU sed</a> and another
-<code>GNUmakefile</code>. The git repository containing all the
-sources used to build this site is
-available <a href="//git.emacsconf.org/bandali/bndl.org">here</a>.</p>
+using <a href="https://www.lri.fr/~filliatr/bibtex2html/">bibtex2html</a>,
+and further processed and put together using
+<a href="https://gnu.org/s/sed">GNU sed</a> and
+another <code>GNUmakefile</code>. The git repository containing all
+the sources used to build this site is available
+<a href="https://git.emacsconf.org/bandali/bndl.org">here</a>.</p>
define(__copy, `2019, 2020')dnl
include(footer.html)dnl
ifdef(`__feed_atom',
`<entry xml:base="https://bndl.org">
<author><name>bandali</name></author>
-<id>tag:bndl.org,atom,notes:__slug</id>
+<id>tag:bndl.org,2020:notes.atom:__slug</id>
<published>__pub</published>
-<updated>__upd</updated>
+ifdef(`__upd',`<updated>__upd</updated>',`<updated>__pub</updated>')
<link href="https://bndl.org/__slug" rel="alternate" type="text/html"/>
<title>__title</title>
<content type="html">',
`<item>
<title>__title</title>
<link>https://bndl.org/__slug</link>
-<guid isPermaLink="false">tag:bndl.org,rss,notes:__slug</guid>
+<guid isPermaLink="false">tag:bndl.org,2020:notes.rss:__slug</guid>
<pubDate>syscmd(date "-uRd __pub" | tr -d \\n)</pubDate>
+ifdef(`__upd',`<atom:updated>__upd</atom:updated>')dnl
<description>',
`<!doctype html>
<html lang="en">
<meta name="author" content="bandali"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>__title`'ifdef(`__nts',,` — bandali')</title>
-<link rel="alternate" href="/atom.xml" type="application/atom+xml"/>
+<link rel="alternate" href="/notes.atom" type="application/atom+xml"/>
+<link rel="alternate" href="/notes.rss" type="application/rss+xml"/>
<link rel="icon" href="/gnu.ico"/>
<link rel="stylesheet" href="/style.css"/>
<link rel="index" href="/"/>
<section id="intro" class="justify">
<p>Hi, I'm bandali. I am
-a <a href="//www.gnu.org/philosophy/free-sw.html">free software</a>
-activist and a computing scientist. I graduated from the University
-of Waterloo with a <a href="/mmath">Master of Mathematics</a> degree
-in Computer Science, where I did research in formal logic, model
-checking, and verification supervised
-by <a href="//cs.uwaterloo.ca/~nday/">Prof. Nancy Day</a>, with the
-main goal of improving <strong>software and systems
+a <a href="https://www.gnu.org/philosophy/free-sw.html">free
+software</a> activist and a computing scientist. I graduated from the
+University of Waterloo with a <a href="/mmath">Master of
+Mathematics</a> degree in Computer Science, where I did research in
+formal logic, model checking, and verification supervised
+by <a href="https://cs.uwaterloo.ca/~nday/">Prof. Nancy Day</a>, with
+the main goal of improving <strong>software and systems
reliability</strong> through application of
-<a href="//en.wikipedia.org/wiki/Formal_methods">formal methods</a>.
-My research areas of interest include programming languages, proof
-assistants, and their type systems.</p>
+<a href="https://en.wikipedia.org/wiki/Formal_methods">formal
+methods</a>. My research areas of interest include programming
+languages, proof assistants, and their type systems.</p>
<p>I am currently employed
-by <a href="//savoirfairelinux.com/en">Savoir-faire Linux</a> as a
-Free Software Consultant, where I get to hack on various parts
-of <a href="//jami.net">Jami</a>, work with the maintainers of Jami
-packages in various GNU/Linux distributions like Debian and Trisquel
-to help keep up-to-date the version of Jami available in the official
-repositories of those distributions, and generally serve as a
+by <a href="https://savoirfairelinux.com/en">Savoir-faire Linux</a> as
+a Free Software Consultant, where I get to hack on various parts
+of <a href="https://jami.net">Jami</a>, work with the maintainers of
+Jami packages in various GNU/Linux distributions like Debian and
+Trisquel to help keep up-to-date the version of Jami available in the
+official repositories of those distributions, and generally serve as a
community liaison between the Jami core development team and the wider
free software community around Jami. To be sure, the views or
opinions expressed on this site are solely my own, and do not
necessarily represent those of my employer or anyone else.</p>
-<p>On the side, I
-enjoy <a href="//stallman.org/articles/on-hacking.html">hacking</a>
-on <a href="//www.gnu.org/software/emacs/manual/elisp.html">Emacs
-Lisp</a>. I'm a
-GNU <a href="//www.gnu.org/people/people.html#bandali">maintainer</a>,
-<a href="//www.gnu.org/people/webmeisters.html#bandali">webmaster</a>,
-and <a href="//savannah.gnu.org/maintenance/SavannahHacker/">Savannah
-hacker</a>; and an <a href="//www.fsf.org/associate/">associate
+<p>On the side, I enjoy
+<a href="https://stallman.org/articles/on-hacking.html">hacking</a> on
+<a href="https://www.gnu.org/software/emacs/manual/elisp.html">Emacs
+Lisp</a>. I'm a GNU
+<a href="https://www.gnu.org/people/people.html#bandali">maintainer</a>,
+<a href="https://www.gnu.org/people/webmeisters.html#bandali">webmaster</a>,
+and <a href="https://savannah.gnu.org/maintenance/SavannahHacker/">Savannah
+hacker</a>; and an <a href="https://www.fsf.org/associate/">associate
member</a> of the Free Software Foundation (FSF). I'm currently the
-chief organizer of the <a href="//emacsconf.org">EmacsConf</a>
+chief organizer of the <a href="https://emacsconf.org">EmacsConf</a>
conference, and the co-host of the
-<a href="//emacsel.com">Emacs.el</a> podcast with
-<a href="//www.pygopar.com">Daniel Gopar</a>. I am also a member of
+<a href="https://emacsel.com">Emacs.el</a> podcast with
+<a href="https://www.pygopar.com">Daniel Gopar</a>. I am also a member of
the Systems Committee of the
-<a href="//csclub.uwaterloo.ca">Computer Science Club</a> of the
+<a href="https://csclub.uwaterloo.ca">Computer Science Club</a> of the
University of Waterloo.</p>
</section>
<?xml version="1.0" encoding="UTF-8"?>
<feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
<title>Amin Bandali's Personal Site</title>
-<id>tag:bndl.org,atom,notes/</id>
+<id>tag:bndl.org,2020:notes.atom</id>
<link href="https://bndl.org/notes.atom" rel="self" type="application/atom+xml"/>
+<link href="https://bndl.org/notes.rss" rel="alternate" type="application/rss+xml" />
<link href="https://bndl.org" rel="alternate" type="text/html"/>
<updated>syscmd(date -Iseconds -u | tr -d \\n)</updated>
define(__feed_atom)dnl
include(meta_defs.m4)dnl
<?xml version="1.0" encoding="UTF-8" ?>
-<rss version="2.0">
+<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>Amin Bandali's Personal Site</title>
<description>Notes and blog posts by Amin Bandali</description>
<lastBuildDate>syscmd(date -uR | tr -d \\n)</lastBuildDate>
<pubDate>syscmd(date -uR | tr -d \\n)</pubDate>
<ttl>1800</ttl>
+<atom:link href="https://bndl.org/notes.rss" rel="self" type="application/rss+xml" />
+<atom:link href="https://bndl.org/notes.atom" rel="alternate" type="application/atom+xml" />
+<atom:link href="https://bndl.org" rel="alternate" type="text/html" />
define(__feed_rss)dnl
define(`fordown',`ifelse($#,0,``$0'',`ifelse(eval($2>=$3),1,
`pushdef(`$1',$2)$4`'popdef(`$1')$0(`$1',decr($2),$3,`$4')')')')