revamp the website
authorAmin Bandali <bandali@gnu.org>
Sat, 13 Mar 2021 02:53:29 +0000 (21:53 -0500)
committerAmin Bandali <bandali@gnu.org>
Sat, 13 Mar 2021 02:53:29 +0000 (21:53 -0500)
it is now served from shemshak.org/~bandali

29 files changed:
404.m4 [new file with mode: 0644]
GNUmakefile
arch-macbook-air.m4 [deleted file]
computing.m4
contact.m4
cv.m4
footer.html
fsf-internship-beyond.m4
fsf-internship-intro.m4
header.html
index.m4
license.m4
meta_defs.m4
meta_feed_atom.m4
meta_feed_rss.m4
projects.m4 [deleted file]
publications.m4
static/.htaccess
static/.htaccess-www [deleted file]
static/404.html [deleted file]
static/bandali-bib-partial.html
static/bandali-bib-sed.txt
static/feed-12x12.png [new file with mode: 0644]
static/gpl-3.0.html
static/icon-12px.png [deleted file]
static/icon-16px.png [deleted file]
static/publications-partial.html
static/publications-sed.txt
static/style.css

diff --git a/404.m4 b/404.m4
new file mode 100644 (file)
index 0000000..b44603e
--- /dev/null
+++ b/404.m4
@@ -0,0 +1,9 @@
+dnl -*- html -*-
+define(__title, `404 Not Found')dnl
+define(__slug, `404')dnl
+include(header.html)dnl
+
+<h1>__slug</h1>
+<p>Sorry, that page does not exist.</p>
+
+include(footer.html)dnl
index bbf2bb5..b8523fd 100644 (file)
@@ -1,3 +1,7 @@
+SITE_DOMAIN := 'https://shemshak.org'
+SITE_PREFIX := '/~bandali'
+SITE_URL := '$(SITE_DOMAIN)$(SITE_PREFIX)'
+
 SRC := $(filter-out $(wildcard meta_*), $(wildcard *.m4))
 OUTPUTS := $(patsubst %.m4,out/%.html, $(SRC))
 STATIC := $(patsubst static/%,out/%, $(filter-out static/GNUmakefile, $(wildcard static/* static/.*)))
@@ -6,10 +10,10 @@ all: $(OUTPUTS) out/notes.atom out/notes.rss out/style.css out/GNUmakefile $(STA
 
 out/%.html: %.m4 header.html footer.html
        @mkdir -p $(@D)
-       m4 $< > $@
+       m4 -D__d=$(SITE_DOMAIN) -D__p=$(SITE_PREFIX) $< > $@
 out/notes.%: meta_feed_%.m4 $(SRC) header.html footer.html
-       m4 $< > $@
-       sed -i 's|href="/\([^/]\)|href="https://bndl.org/\1|' $@
+       m4 -D__d=$(SITE_DOMAIN) -D__p=$(SITE_PREFIX) $< > $@
+       sed -i 's|href="/\([^/]\)|href="$(SITE_DOMAIN)/\1|' $@
 out/GNUmakefile: GNUmakefile ; ln -s $(PWD)/$< $@
 $(STATIC): ; ln -s $(PWD)/static/$(@F) $@
 
@@ -25,8 +29,7 @@ clean:
        rm -rf out/
 
 deploy:
-       rsync -avzLP out/ abandali@bndl.org:www/bndl.org/
-#      ssh abandali@bndl.org mv www/bndl.org/.htaccess-www www/.htaccess
+       rsync -avzLP out/ bandali@shemshak.org:~/public_html/
 
 watch:
        while true; do \
diff --git a/arch-macbook-air.m4 b/arch-macbook-air.m4
deleted file mode 100644 (file)
index d1991c8..0000000
+++ /dev/null
@@ -1,277 +0,0 @@
-dnl -*- html -*-
-define(__title, `Arch GNU/Linux on MacBook Air 2013')dnl
-define(__pub, 2016-11-01T12:00:00Z)dnl
-define(__upd, 2020-03-27T12:00:00Z)dnl
-define(__id, 1)dnl
-include(header.html)dnl
-
-<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="https://wiki.archlinux.org/index.php/installation%5Fguide">Installation
-Guide</a> or the former
-<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>
-
-<p>So, make sure you understand what you type into your terminal.  If
-you don't, checking out the Arch wiki should probably be your first
-step.</p>
-
-<p><em>Note:</em> you will need internet access throughout the
-installation and the MacBook Air's WiFi doesn't work out of the box on
-Arch.  I recommend using an Ethernet-USB adapter or your phone's USB
-Tethering feature (if it does support it).</p>
-
-<h2>Shrinking the macOS partition</h2>
-<p>The first step I take is resizing the HFS+ macOS partition to make
-room for the new GNU/Linux installation.  There are plenty of
-tutorials on how to do this using macOS's Disk Utility, so do that and
-then come back!</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="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>
-
-<p><strong class="warn">Warning:</strong> make sure you backup the
-data on your flash drive, as <code>dd</code> will irrevocably destroy
-all data on it.</p>
-
-<p>Use <code>lsblk</code> to find the name (block device) of your USB drive, then
-run <code>dd</code> (as root) as shown below:</p>
-
-<pre>
-dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync
-</pre>
-
-<p>Replace <code>/path/to/archlinux.iso</code> with the path to the
-Arch image you have downloaded, and <code>/dev/sdx</code> with your
-drive.</p>
-
-<h2>Booting up from the USB</h2>
-<p>After creating the install USB, reboot your laptop and hold the alt
-key and boot from the USB.</p>
-
-<p>When booting is complete and you're presented with the prompt, it's
-a good time to make sure you're connected to the internet (see the
-<em>note</em> at the top of this post).</p>
-
-<p>Use <code>ping</code> to verify that you have established a
-connection:</p>
-
-<pre>
-ping archlinux.org
-</pre>
-
-<h2>Updating the system clock</h2>
-<p>Once you're connected to the internet, make sure the system clock
-is accurate:</p>
-
-<pre>
-timedatectl set-ntp true  # start and enable systemd-timesyncd
-</pre>
-
-<p>You can check the service status using <code>timedatectl
-status</code>.</p>
-
-<h2>Partitioning</h2>
-<p>I won't dive into partitioning and instead, I will refer you to the
-<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 &amp; LUKS</h2>
-<p>I use an
-<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>First, let's set up the underlying encrypted partition:</p>
-
-<pre>
-cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 \
-           --iter-time 5000 --use-urandom -y luksFormat /dev/sdaX
-</pre>
-
-<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="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>
-
-<pre>
-cryptsetup open --type luks /dev/sdaX lvm
-</pre>
-
-<p>Now it's time to use lvm and prepare the logical volume(s):</p>
-
-<pre>
-pvcreate /dev/mapper/lvm vgcreate vg /dev/mapper/lvm
-lvcreate --extents +100%FREE -n root vg
-</pre>
-
-<p>This will create a physical volume on the mapping we just opened,
-create a volume group named <code>vg</code> on the physical volume,
-and create a logical volume named <code>root</code> that spans the
-entire volume group.  More complex setups are possible thanks to the
-great flexibility of lvm.</p>
-
-<p>We now format the logical volume with <code>ext4</code>:</p>
-
-<pre>
-mkfs.ext4 /dev/mapper/vg-root
-</pre>
-
-<h2>Installing the base system</h2>
-<p>Let's mount the logical volume, make a directory for the mount
-point of the boot partition, and mount the boot partition
-(<code>/dev/sda1</code>):</p>
-
-<pre>
-mount /dev/mapper/vg-root /mnt
-mkdir /mnt/boot
-mount /dev/sda1 /mnt/boot
-</pre>
-
-<p>Finally, let's install the base system (and optionally
-<code>base-devel</code>):</p>
-
-<pre>
-pacstrap /mnt base base-devel
-</pre>
-
-<h2>Configuring the system</h2>
-<p>Let's generate the fstab:</p>
-
-<pre>
-genfstab -U /mnt >> /mnt/etc/fstab
-</pre>
-
-<p>Use your favorite terminal-based editor, edit the fstab file and
-add the <code>discard</code> option for the root partition to enable
-TRIM on the SSD.</p>
-
-<p>Now we change root into our newly installed system and will
-configure it.  Adjust these according to your own setup.</p>
-
-<pre>
-arch-chroot /mnt /bin/bash
-passwd # set the root password
-echo myhostname > /etc/hostname # set the hostname
-ln -s /usr/share/zoneinfo/Canada/Eastern /etc/localtime # time zone
-hwclock --systohc --utc # write system clock to hardware clock (UTC)
-useradd -m -G wheel -s /bin/bash myuser # create myuser
-passwd myuser # set the password for myuser
-echo "myuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/myuser
-# uncomment en_US.UTF-8 UTF-8 and other needed locales in /etc/locale.gen
-locale-gen
-echo LANG=en_US.UTF-8 > /etc/locale.conf
-export LANG=en_US.UTF-8
-</pre>
-
-<p>Then adjust the initramfs hooks in
-<code>/etc/mkinitcpio.conf</code> and enable the
-<code>encrypt</code> and <code>lvm2</code> hooks, and make sure
-<code>keyboard</code> is available before <code>encrypt</code> so you
-can actually type in the LUKS password when booting.  Your
-<code>HOOKS</code> line should look similar to this:</p>
-
-<pre>
-HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt lvm2 filesystems fsck)
-</pre>
-
-<p>After adjusting the hooks, build the initramfs:</p>
-
-<pre>
-mkinitcpio -p linux
-</pre>
-
-<p>Create the <code>/boot/loader/loader.conf</code> with the following
-content (adjust the timeout to your liking):</p>
-
-<pre>
-default arch timeout 3
-</pre>
-
-<p>Then create the entry for Arch:</p>
-
-<pre>
-mkdir -p /boot/loader/entries
-touch /boot/loader/entries/arch.conf
-</pre>
-
-<p>Now edit <code>/boot/loader/entries/arch.conf</code> to specify the
-Arch entry:</p>
-
-<pre>
-title Arch GNU/Linux
-linux /vmlinuz-linux
-initrd /intel-ucode.img
-initrd /initramfs-linux.img
-options cryptdevice=/dev/sdaX:vg:allow-discards root=/dev/mapper/vg-root rw
-</pre>
-
-<p>Again, <code>/dev/sdaX</code> is the partition you created in the
-partitioning step earlier as the underlying encrypted partition.</p>
-
-<p>Finally, install the bootloader, exit the chroot, umount and
-reboot!</p>
-
-<pre>
-bootctl install
-exit
-umount -R /mnt
-reboot
-</pre>
-
-<h2>Post-installation recommendations</h2>
-<p>Congratulations!  You now have a minimal Arch installation.</p>
-
-<p>At this point, I usually install my favorite AUR helper,
-<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>
-
-<pre>
-pacaur -S linux-headers dkms # linux-headers is required for dkms
-pacaur -S broadcom-wl-dkms
-pacaur -S mba6x_bl-dkms
-</pre>
-
-<p>Then, I'd like to install</p>
-<ul>
-<li>input, graphics, and sound drivers,</li>
-<li>a desktop environment (I prefer Xfce or LXQt),</li>
-<li>a display manager for login screen (lightdm or sddm), and</li>
-<li>a network manager (NetworkManager or ConnMan).</li>
-</ul>
-
-<p>Check out the
-<a href="https://wiki.archlinux.org/index.php/General%5Frecommendations">General
-recommendations</a> for more details.</p>
-
-<h2>References</h2>
-<p>Here are some resources I've come across each with lots of useful
-bits and pieces, about installing Arch on a MacBook:</p>
-
-<ul>
-<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="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(__copy, `2016, 2019, 2020')dnl
-include(footer.html)dnl
index 9b65cdd..8428af6 100644 (file)
@@ -1,12 +1,12 @@
 dnl -*- html -*-
 define(__title, `How I do my Computing')dnl
 define(__pub, 2019-09-14T12:00:00Z)dnl
-define(__upd, 2020-07-17T12:00:00Z)dnl
-define(__id, 2)dnl
+define(__upd, 2021-02-28T12:00:00Z)dnl
+define(__id, 1)dnl
 include(header.html)dnl
 
-<p class="box">Inspired by the computing page of
-<a href="https://stallman.org/stallman-computing.html">rms</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="https://libreboot.org">librebooted</a> ThinkPad X200
@@ -17,41 +17,35 @@ servers through our school's
 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="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
+<h2>GNU/Linux distribution</h2>
+<p>I used a wide variety of distros over the years; but I have since
+found <a href="https://trisquel.info">Trisquel</a> to be my favourite
+and it's put my "distro-hopping" days behind me.  Sometimes I pair it
+up with <a href="https://guix.gnu.org">GNU Guix</a>.  For the kernel,
+I usually 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="https://jxself.org/linux-libre/">APT
-repository</a>.</p>
+Linux-libre</a> from 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="https://www.gnu.org/software/emacs/">GNU Emacs</a>.</p>
 <p>TODO: elaborate</p>
 
-<h2 id="colophon">Maintaining this site</h2>
+<h2 id="colophon">Maintaining this site __anc(`colophon')</h2>
 <p>I took a great amount of inspiration
-from <a href="https://technomancy.us/colophon">Phil Hagelberg</a>'s
+from <a href="https://technomancy.us/colophon">technomancy</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
+Emacs, with GNU M4 acting as a full-featured template engine.
+A <a href="__p/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>
+bibliography of my <a href="__p/publications.html">publications</a> is
+generated from <a href="__p/bandali.bib"><code>bandali.bib</code></a>
 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
+and further processed and put together using GNU sed 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>
+the sources used to build this site are available
+<a href="https://git.shemshak.org/~bandali/site">here</a>.</p>
 
 define(__copy, `2019, 2020')dnl
 include(footer.html)dnl
index ff68e4b..6f7986a 100644 (file)
@@ -1,67 +1,20 @@
 dnl -*- html -*-
-define(__title, `Contact Information')dnl
+define(__title, `contact information')dnl
 define(__slug, `contact')dnl
 include(header.html)dnl
 
 <article>
-<h1>Contact information</h1>
-<p>Email is by far my preferred method of communication.  I may be
-contacted at any of the following addresses (choose the one most
-closely related):</p>
-
-<ul>
-<li>bandali@gnu.org</li>
-<li>bandali@uwaterloo.ca</li>
-dnl<li>bandali@csclub.uwaterloo.ca</li>
-</ul>
-
-<p>If you want to send me GPG-encrypted mail, you can use my
-<a href="bandali-pubkey.txt">public key</a> with the
-fingerprint&nbsp;<code>BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103</code>.</p>
-
-<table>
-<tbody>
-<tr>
-<td>IRC</td>
-<td>bandali on <a href="//freenode.net">freenode</a> and
-<a href="//www.oftc.net">oftc</a></td>
-</tr>
-
-<tr>
-<td>XMPP</td>
-<td><a href="xmpp:bandali@member.fsf.org">bandali@member.fsf.org</a></td>
-</tr>
-
-<tr>
-<td>Matrix</td>
-<td><a href="//matrix.to/#/@bandali:matrix.org">@bandali:matrix.org</a></td>
-</tr>
-
-<tr>
-<td>Fediverse</td>
-<td><a href="//pleroma.site/bandali">@bandali@pleroma.site</a></td>
-</tr>
-</tbody>
-</table>
-
-<h2>Elsewhere</h2>
-<p>You may also find me at a few other places online.  Stricken
-through accounts are those I don't use anymore, unless absolutely
-necessary.</p>
-
-<ul>
-<li><a href="//savannah.gnu.org/users/bandali">bandali</a> on GNU Savannah</li>
-<li><a href="//libreplanet.org/wiki/User:Bandali">bandali</a> on LibrePlanet</li>
-<li><a href="//emacsconf.org/bandali">bandali</a> on EmacsConf</li>
-<li><a href="//git.sr.ht/~bandali">bandali</a> on Sourcehut</li>
-<li><a href="//gitlab.com/bandali">bandali</a> on GitLab</li>
-<li><a href="//lobste.rs/u/bandali">bandali</a> on Lobsters</li>
-<li><a href="//hackage.haskell.org/user/bandali">bandali</a> on Hackage</li>
-<li><a href="//news.ycombinator.com/user?id=bandali">bandali</a> on HN</li>
-<li><a href="//www.reddit.com/u/bandali">bandali</a> on reddit</li>
-<li><del><a href="//github.com/notbandali">notbandali</a> on GitHub</del></li>
-<li><del><a href="//twitter.com/notbandali">notbandali</a> on Twitter</del></li>
-</ul>
-</article>
+<h1>__title</h1>
+<p>Email is by far my preferred method of communication, and you can
+write to me at bandali at gnu dot org.  For GPG-encrypted mail, you
+can use my <a href="bandali-pubkey.txt">public key</a> with the
+fingerprint
+<code>BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103</code>.</p>
+
+<p>Besides email, I can also usually be reached via IRC, particularly
+the <a href="https://freenode.net">freenode</a> and
+<a href="https://www.oftc.net">oftc</a> networks, where I idle
+as <code>bandali</code>.  For other means of communication, please
+send me an email and we can figure something out if needed.</p>
 
 include(footer.html)dnl
diff --git a/cv.m4 b/cv.m4
index 9d4d254..5a0e11b 100644 (file)
--- a/cv.m4
+++ b/cv.m4
@@ -9,11 +9,11 @@ include(header.html)dnl
 <tbody>
 <tr>
 <td>Site</td>
-<td><a href="//bndl.org">bndl.org</a></td>
+<td><a href="//shemshak.org/~bandali">shemshak.org/~bandali</a></td>
 </tr>
 <tr>
 <td>Email</td>
-<td>bandali@uwaterloo.ca</td>
+<td>bandali@gnu</td>
 </tr>
 <tr>
 <td>Phone</td>
index a7e7e7d..286a5c2 100644 (file)
@@ -2,14 +2,14 @@ ifdef(`__feed_atom', `</content></entry>',
 `ifdef(`__feed_rss', `</description></item>',
 `ifdef(`__pub',
 `<p class="muted inbox">Got a question or comment?  You can find my
-email address on my <a href="/contact">contact</a> page.  __smly</p>
+email address on my <a href="__p/contact.html">contact</a> page.  __smly</p>
 </article>
 ')dnl
 </main>
 ifdef(`__copy',
 `<footer>
 <p>Copyright &copy; __copy Amin Bandali.
-See the ifelse(__slug,`license',`above for license conditions',`<a href="/license">license conditions</a>').
+See the ifelse(__slug,`license',`above for license conditions',`<a href="__p/license.html">license conditions</a>').
 Please copy and share.</p>
 </footer>')
 </body>
index f878697..48eb683 100644 (file)
@@ -1,7 +1,7 @@
 dnl -*- html -*-
 define(__title, `My internship with the FSF tech team and beyond')dnl
 define(__pub, 2020-12-18T15:31:00-04:00)dnl
-define(__id, 4)dnl
+define(__id, 3)dnl
 include(header.html)dnl
 
 <p class="box">Originally published on the Free Software Foundation's
index 11d9339..79af930 100644 (file)
@@ -1,7 +1,7 @@
 dnl -*- html -*-
 define(__title, `Internship with the FSF tech team')dnl
 define(__pub, 2020-05-29T14:38:00-04:00)dnl
-define(__id, 3)dnl
+define(__id, 2)dnl
 include(header.html)dnl
 
 <p class="box">Originally published on the Free Software Foundation's
index 38326bc..fbc63f8 100644 (file)
@@ -1,19 +1,19 @@
 include(meta_defs.m4)dnl
 ifdef(`__slug',,`define(__slug, _get(`notes', __id))')dnl
 ifdef(`__feed_atom',
-`<entry xml:base="https://bndl.org">
+`<entry xml:base="__d">
 <author><name>bandali</name></author>
-<id>tag:bndl.org,2020:notes.atom:__slug</id>
+<id>tag:shemshak.org,2020:__p/notes.atom:__slug</id>
 <published>__pub</published>
 ifdef(`__upd',`<updated>__upd</updated>',`<updated>__pub</updated>')dnl
-<link href="https://bndl.org/__slug" rel="alternate" type="text/html"/>
+<link href="__d`'__p/__slug.html" rel="alternate" type="text/html"/>
 <title>__title</title>
 <content type="html">',
 `ifdef(`__feed_rss',
 `<item>
 <title>__title</title>
-<link>https://bndl.org/__slug</link>
-<guid isPermaLink="false">tag:bndl.org,2020:notes.rss:__slug</guid>
+<link>__d`'__p/__slug.html</link>
+<guid isPermaLink="false">tag:shemshak.org,2020:__p/notes.rss:__slug</guid>
 <pubDate>syscmd(date "-uRd __pub" | tr -d \\n)</pubDate>
 ifdef(`__upd',`<atom:updated>__upd</atom:updated>')dnl
 <description>',
@@ -24,29 +24,28 @@ ifdef(`__upd',`<atom:updated>__upd</atom:updated>')dnl
 <meta name="author" content="bandali"/>
 <meta name="viewport" content="width=device-width, initial-scale=1"/>
 <title>__title`'ifdef(`__nts',,` &mdash; bandali')</title>
-<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="/"/>
+<link rel="alternate" href="__p/notes.atom" type="application/atom+xml"/>
+<link rel="alternate" href="__p/notes.rss" type="application/rss+xml"/>
+<link rel="icon" href="__p/gnu.ico"/>
+<link rel="stylesheet" href="__p/style.css"/>
 ifdef(`__pub',
 define(__previd, `_get(`notes', decr(__id))')dnl
 define(__nextid, `_get(`notes', incr(__id))')dnl
-`ifelse(__previd,,,`<link rel="prev" href="/__previd">')'dnl
-`ifelse(__nextid,,,`<link rel="next" href="/__nextid">')')dnl
+`ifelse(__previd,,,`<link rel="prev" href="__p/__previd.html">')'dnl
+`ifelse(__nextid,,,`<link rel="next" href="__p/__nextid.html">')')dnl
 </head>
 <body>
 <header>
-ifelse(__slug,`home',`<h1>__title</h1>',
-`<strong><a href="/">Bandali</a>&apos;s Personal Site</strong>')
+ifelse(__slug,`home',`<h1>__site__title</h1>',
+`<strong><a href="__p/">__site__title</a></strong>')
 </header>
 <nav>
 <ul>
-<li><a href="/#notes">Notes</a></li>
-<li><a href="/projects">Projects</a></li>
-<li><a href="/publications">Publications</a></li>
-<li><a href="/cv" title="curriculum vitae">CV</a></li>
-<li><a href="/contact">Contact</a></li>
+<li><a href="__p/#notes">notes</a></li>
+<li><a href="__p/publications.html">publications</a></li>
+<li><a href="__p/cv.html" title="curriculum vitae">cv</a></li>
+<li><a href="__p/contact.html">contact</a></li>
+dnl<li><a href="__p/fa/" title="Persian">فارسی</a></li>
 </ul>
 </nav>
 <main>
index 1f8246e..c84dd75 100644 (file)
--- a/index.m4
+++ b/index.m4
@@ -1,88 +1,57 @@
 dnl -*- html -*-
-define(__title, `Bandali''`s Personal Site')dnl
+define(__title, __site__title)dnl
 define(__slug, `home')dnl
 define(__nts)dnl
 include(header.html)dnl
 
-<section id="intro" class="justify">
-<p>Hi, I'm bandali.  I am
-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="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="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>
+<section id="intro">
+<p>I am a <a href="https://www.gnu.org/philosophy/free-sw.html">free
+software</a> activist and <a href="mmath.html">computing
+scientist</a>.  I'm a GNU maintainer
+of <a href="https://jami.net">Jami</a>
+and <a href="https://www.gnu.org/software/gnuzilla/">GNUzilla and
+IceCat</a>, and I wear a few other hats around GNU, like helping run
+the Savannah forge for GNU and non-GNU projects as a Savannah hacker.
+My current <code>$dayjob</code> is working on Jami as a Free Software
+Consultant, which includes hacking on various parts of Jami and its
+packaging for various GNU/Linux distributions.</p>
 
 <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="https://emacsconf.org">EmacsConf</a>
-conference, and the co-host of the
-<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="https://csclub.uwaterloo.ca">Computer Science Club</a> of the
-University of Waterloo.</p>
+<a href="https://stallman.org/articles/on-hacking.html">hacking on</a>
+GNU Emacs and Emacs Lisp.  I'm the current maintainer of
+<a href="https://www.gnu.org/software/emacs/erc.html">ERC</a> the
+powerful and modular IRC client built into GNU Emacs, an organizer of
+the <a href="https://emacsconf.org">EmacsConf</a> conference, and
+co-host of the <a href="https://emacsel.com">Emacs.el</a> podcast with
+<a href="https://www.pygopar.com">Gopar</a>.</p>
 </section>
 
-<section id="notes" class="justify">
-<h2>Notes</h2>
-<p>Here are notes about a variety of topics and issues I care about.
-They're also available via
-<a href="notes.atom">
-<img class="feed-icon" src="icon-12px.png"
-     alt="subscribe to Atom feed">Atom</a>
-and
-<a href="notes.rss">
-<img class="feed-icon" src="icon-12px.png"
-     alt="subscribe to RSS feed">RSS</a> feeds.</p>
+<section id="notes">
+<h2>notes __anc(`notes')</h2>
+<p>Here are notes about various topics or issues I care about.
+You can also read them via
+<a class="feed-icon" href="notes.atom">Atom</a> or
+<a class="feed-icon" href="notes.rss">RSS</a>.</p>
 
 <table class="post-list">
 <tbody>
 <tr>
-<td><a href="fsf-internship-beyond">My internship with the FSF tech team and beyond</a>
-(concluding)</td>
+<td><a href="fsf-internship-beyond.html">My internship with the FSF
+tech team and beyond</a> (concluding)</td>
 <td><small>December 18, 2020</small></td>
 </tr>
 <tr>
-<td><a href="fsf-internship-intro">Internship with the FSF tech team</a>
-(intro)</td>
+<td><a href="fsf-internship-intro.html">Internship with the FSF tech
+team</a> (intro)</td>
 <td><small>May 29, 2020</small></td>
 </tr>
 <tr>
-<td><a href="computing">How I do my Computing</a></td>
+<td><a href="computing.html">How I do my Computing</a></td>
 <td><small>September 14, 2019</small></td>
 </tr>
-<tr>
-<td><a href="arch-macbook-air">Arch GNU/Linux on MacBook Air 2013</a></td>
-<td><small>November 1, 2016</small></td>
-</tr>
 </tbody>
 </table>
 </section>
 
-define(__copy, `2016&ndash;2020')dnl
+define(__copy, `2016&ndash;2021')dnl
 include(footer.html)dnl
index 8809dd6..6510179 100644 (file)
@@ -1,10 +1,10 @@
 dnl -*- html -*-
-define(__title, `Licensing Information')dnl
+define(__title, `licensing information')dnl
 define(__slug, `license')dnl
 include(header.html)dnl
 
 <article>
-<h1>License information for bndl.org</h1>
+<h1>__title</h1>
 <p>I strongly believe in
 <a href="//questioncopyright.org/what_is_free_culture">free culture</a>
 and that all creative works everywhere should be
@@ -16,6 +16,12 @@ Foundation, either version 3 of the License, or (at your option) any
 later version.  A copy of the license is included at
 <a href="gpl-3.0.html">gpl-3.0.html</a>.</p>
 
+<p>This website is statically generated using a series of GNU tools
+(<a href="computing.html#colophon">read more</a>), with the sources at
+<a href="//git.shemshak.org/~bandali/site">git.shemshak.org/~bandali/site</a>.
+The striped look was direct inspiration from iank's website,
+<a href="//iankelling.org">iankelling.org</a>.</p>
+
 <p>Some resources on free software and licenses:</p>
 <ul>
 <li><a href="//www.gnu.org/philosophy/free-sw.html">What is free software?</a></li>
index ce6f68d..8245f49 100644 (file)
@@ -1,10 +1,11 @@
-define(`__latest', 4)dnl
+define(`__latest', 3)dnl
 define(`_put', `define(`$1[$2]', `$3')')dnl
 define(`_get', `defn(`$1[$2]')')dnl
-_put(`notes', 1, `arch-macbook-air')dnl
-_put(`notes', 2, `computing')dnl
-_put(`notes', 3, `fsf-internship-intro')dnl
-_put(`notes', 4, `fsf-internship-beyond')dnl
+_put(`notes', 1, `computing')dnl
+_put(`notes', 2, `fsf-internship-intro')dnl
+_put(`notes', 3, `fsf-internship-beyond')dnl
 dnl
-define(__latex, `<span class="t-logo">L<sup>a</sup>T<sub>e</sub>X</span>')dnl
-define(__smly, `<span class="smly">:-)</span>')dnl
+define(`__site__title', `bandali&apos;s personal site')dnl
+define(`__latex', `<span class="t-logo">L<sup>a</sup>T<sub>e</sub>X</span>')dnl
+define(`__smly', `<span class="smly">:-)</span>')dnl
+define(`__anc', `<a class="permalink" href="#$1" title="permalink">§</a>')dnl
index 9824118..04515a7 100644 (file)
@@ -3,14 +3,14 @@ include(meta_defs.m4)dnl
 <feed xml:lang="en-US" xmlns="http://www.w3.org/2005/Atom">
 <title>Amin Bandali's Personal Site</title>
 <subtitle>Notes and blog posts by Amin Bandali</subtitle>
-<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"/>
+<id>tag:shemshak.org,2020:__p/notes.atom</id>
+<link href="__d`'__p/notes.atom" rel="self" type="application/atom+xml"/>
+<link href="__d`'__p/notes.rss" rel="alternate" type="application/rss+xml" />
+<link href="__d`'__p/" rel="alternate" type="text/html"/>
 <updated>syscmd(date -Iseconds -u | tr -d \\n)</updated>
 define(__feed_atom)dnl
 define(`fordown',`ifelse($#,0,``$0'',`ifelse(eval($2>=$3),1,
   `pushdef(`$1',$2)$4`'popdef(`$1')$0(`$1',decr($2),$3,`$4')')')')
 fordown(`__i',__latest,eval(__latest-10),`
-  syscmd(sed "s/\&/\&amp;/g;s/>/\&gt;/g;s/</\&lt;/g" _get(`notes', __i).m4 | m4 -D__feed_atom)')
+  syscmd(sed "s/\&/\&amp;/g;s/>/\&gt;/g;s/</\&lt;/g" _get(`notes', __i).m4 | m4 -D__feed_atom -D__d=__d -D__p=__p)')
 </feed>
index a9feeb3..362a0e5 100644 (file)
@@ -4,17 +4,17 @@ include(meta_defs.m4)dnl
 <channel>
 <title>Amin Bandali's Personal Site</title>
 <description>Notes and blog posts by Amin Bandali</description>
-<link>https://bndl.org</link>
+<link>__d`'__p/</link>
 <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" />
+<atom:link href="__d`'__p/notes.rss" rel="self" type="application/rss+xml" />
+<atom:link href="__d`'__p/notes.atom" rel="alternate" type="application/atom+xml" />
+<atom:link href="__d`'__p/" 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')')')')
 fordown(`__i',__latest,eval(__latest-10),`
-  syscmd(sed "s/\&/\&amp;/g;s/>/\&gt;/g;s/</\&lt;/g" _get(`notes', __i).m4 | m4 -D__feed_rss)')
+  syscmd(sed "s/\&/\&amp;/g;s/>/\&gt;/g;s/</\&lt;/g" _get(`notes', __i).m4 | m4 -D__feed_rss -D__d=__d -D__p=__p)')
 </channel>
 </rss>
diff --git a/projects.m4 b/projects.m4
deleted file mode 100644 (file)
index b34ae41..0000000
+++ /dev/null
@@ -1,28 +0,0 @@
-dnl -*- html -*-
-define(__title, `Projects')dnl
-define(__slug, `projects')dnl
-include(header.html)dnl
-
-<article id="projects">
-<h1>Projects</h1>
-
-<dl>
-<dt><a href="//git.emacsconf.org/bandali/refinery-theme">refinery-theme</a></dt>
-<dd>A refined, minimalist, layered colour theme for GNU Emacs</dd>
-
-<dt><a href="//git.emacsconf.org/bandali/george-mode">george-mode</a></dt>
-<dd>Emacs major mode for editing George files</dd>
-
-<dt><a href="//git.emacsconf.org/bandali/alloy-catalyst">alloy-catalyst</a></dt>
-<dd>Framework for performance analysis of Alloy models</dd>
-
-<dt><a href="//github.com/unitb/unitb-web">unitb-web</a></dt>
-<dd>Web interface for Unit-B</dd>
-
-<dt><a href="//github.com/unitb/tex2png-hs">tex2png-hs</a></dt>
-<dd>Library and CLI for converting TeX and LaTeX to PNG images</dd>
-</dl>
-</article>
-
-define(__copy, `2020')dnl
-include(footer.html)dnl
index 4302e03..f8f4fab 100644 (file)
@@ -1,10 +1,10 @@
 dnl -*- html -*-
-define(__title, `Publications')dnl
+define(__title, `publications')dnl
 define(__slug, `publications')dnl
 include(header.html)dnl
 
 <article id="publications">
-<h1>Publications</h1>
+<h1>__title</h1>
 
 include(static/publications-partial.html)
 
index c03a35b..0558c36 100644 (file)
@@ -1,3 +1,11 @@
+ErrorDocument 404 /~bandali/404.html
+
+AddCharset utf-8 .bib .org
+AddType text/plain .bib .org
+
+AddType application/atom+xml .atom
+AddType application/rss+xml .rss
+
 <IfModule mod_rewrite.c>
 # since we set Options -MultiViews in ../.htaccess, we now have to
 # explicitly tell apache that files with no extension are actually
@@ -5,5 +13,5 @@
 RewriteCond %{REQUEST_FILENAME}.html -f
 RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
 
-RewriteRule ^fsf-internship/intro$ /fsf-internship-intro [R]
+RewriteRule ^fsf-internship/intro$ /~bandali/fsf-internship-intro.html [R]
 </IfModule>
diff --git a/static/.htaccess-www b/static/.htaccess-www
deleted file mode 100644 (file)
index 35d52d1..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-<IfModule mod_rewrite.c>
-# don't add .html in the rewrite below
-Options -MultiViews
-
-RewriteEngine On
-RewriteBase /
-# if on csclub.uwaterloo.ca, redirect to bndl.org
-RewriteCond %{HTTP_HOST} ^csclub\.uwaterloo\.ca$
-RewriteRule ^(.*)$ https://bndl.org/$1 [R]
-</IfModule>
-
-AddType application/atom+xml .atom
-AddType application/rss+xml .rss
-
-AddType text/plain .bib .org
-AddCharset utf-8 .bib .org
diff --git a/static/404.html b/static/404.html
deleted file mode 100644 (file)
index 883067e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-<!doctype html>
-<html lang="en">
-<head>
-<meta charset="utf-8"/>
-<meta name="viewport" content="width=device-width, initial-scale=1"/>
-<title>404 Not Found</title>
-<link rel="icon" href="/gnu.ico"/>
-<link rel="stylesheet" href="/style.css"/>
-</head>
-<body>
-<nav><a href="/">bndl.org</a></nav>
-<main>
-<h1>404</h1>
-<p>Sorry, that page does not exist.</p>
-</main>
-</body>
-</html>
index 7723b56..6b0914c 100644 (file)
@@ -1,5 +1,5 @@
 <h1><a href="bandali.bib">bandali.bib</a></h1><a name="bandali2020"></a><pre>
-@mastersthesis{<a href="publications#bandali2020">bandali2020</a>,
+@mastersthesis{<a href="publications.html#bandali2020">bandali2020</a>,
   type = {{MMath} thesis},
   author = {Amin Bandali},
   title = {{A Comprehensive Study of Declarative Modelling Languages}},
@@ -15,7 +15,7 @@
 </pre>
 
 <a name="DBLP:conf/re/AbbassiBDS18"></a><pre>
-@inproceedings{<a href="publications#DBLP:conf/re/AbbassiBDS18">DBLP:conf/re/AbbassiBDS18</a>,
+@inproceedings{<a href="publications.html#DBLP:conf/re/AbbassiBDS18">DBLP:conf/re/AbbassiBDS18</a>,
   author = {Ali Abbassi and
                Amin Bandali and
                Nancy A. Day and
@@ -38,7 +38,7 @@
 </pre>
 
 <a name="DBLP:conf/re/2018modre"></a><pre>
-@proceedings{<a href="publications#DBLP:conf/re/2018modre">DBLP:conf/re/2018modre</a>,
+@proceedings{<a href="publications.html#DBLP:conf/re/2018modre">DBLP:conf/re/2018modre</a>,
   editor = {Ana Moreira and
                Gunter Mussbacher and
                Jo{\~{a}}o Ara{\'{u}}jo and
@@ -57,7 +57,7 @@
 </pre>
 
 <a name="bandali-magic-lassonde-2017"></a><pre>
-@misc{<a href="publications#bandali-magic-lassonde-2017">bandali-magic-lassonde-2017</a>,
+@misc{<a href="publications.html#bandali-magic-lassonde-2017">bandali-magic-lassonde-2017</a>,
   author = {Amin Bandali and
                   Simon Hudon and
                   Jonathan S. Ostroff},
@@ -72,7 +72,7 @@
 </pre>
 
 <a name="bandali-magic-cucsc-2017"></a><pre>
-@misc{<a href="publications#bandali-magic-cucsc-2017">bandali-magic-cucsc-2017</a>,
+@misc{<a href="publications.html#bandali-magic-cucsc-2017">bandali-magic-cucsc-2017</a>,
   author = {Amin Bandali and
                   Simon Hudon and
                   Jonathan S. Ostroff},
index 35b2f79..64ca551 100644 (file)
@@ -1,5 +1,2 @@
-# drop .html
-s/publications.html#/publications#/
-
 # linkify bandali.bib at the top
 s|bandali.bib|<a href="bandali.bib">&</a>|
diff --git a/static/feed-12x12.png b/static/feed-12x12.png
new file mode 100644 (file)
index 0000000..3fe8b0a
Binary files /dev/null and b/static/feed-12x12.png differ
index 3817471..1295136 100644 (file)
@@ -4,11 +4,10 @@
     <meta charset="utf-8"/>
     <meta name=viewport content="width=device-width, initial-scale=1"/>
     <title>GNU General Public License v3.0</title>
-    <link rel="stylesheet" href="/style.css"/>
+    <link rel="stylesheet" href="style.css"/>
   </head>
   <body>
     <main style="font-size: 0.92em;
-                 max-width: 55em;
                  line-height: 1.5;">
       <h3 style="text-align: center;">GNU GENERAL PUBLIC LICENSE</h3>
       <p style="text-align: center;">Version 3, 29 June 2007</p>
diff --git a/static/icon-12px.png b/static/icon-12px.png
deleted file mode 100644 (file)
index 3fe8b0a..0000000
Binary files a/static/icon-12px.png and /dev/null differ
diff --git a/static/icon-16px.png b/static/icon-16px.png
deleted file mode 100644 (file)
index 1151f76..0000000
Binary files a/static/icon-16px.png and /dev/null differ
index 8d5cf21..bcf502a 100644 (file)
@@ -5,13 +5,13 @@
 [<a name="bandali2020">4</a>]
 </td>
 <td class="bibtexitem">
-<a href="https://bndl.org">Amin Bandali</a>.
+<a href="https://shemshak.org/~bandali/">Amin Bandali</a>.
  A Comprehensive Study of Declarative Modelling Languages.
  MMath thesis, University of Waterloo, David R. Cheriton School of
   Computer Science, July 2020.
  <a href="http://hdl.handle.net/10012/16059">http://hdl.handle.net/10012/16059</a> and
   <a href="https://bndl.org/mmath">https://bndl.org/mmath</a>.
-[&nbsp;<a href="bandali-bib#bandali2020">bib</a>&nbsp;| 
+[&nbsp;<a href="bandali-bib.html#bandali2020">bib</a>&nbsp;| 
 <a href="http://hdl.handle.net/10012/16059">http</a>&nbsp;| 
 <a href="https://p.bndl.org/bandali-mmath-thesis.pdf">.pdf</a>&nbsp;]
 
 [<a name="DBLP:conf/re/AbbassiBDS18">3</a>]
 </td>
 <td class="bibtexitem">
-Ali Abbassi, <a href="https://bndl.org">Amin Bandali</a>, <a href="https://cs.uwaterloo.ca/~nday/">Nancy&nbsp;A. Day</a>, and Jos&eacute; Serna.
+Ali Abbassi, <a href="https://shemshak.org/~bandali/">Amin Bandali</a>, <a href="https://cs.uwaterloo.ca/~nday/">Nancy&nbsp;A. Day</a>, and Jos&eacute; Serna.
  A comparison of the declarative modelling languages B, Dash, and
   TLA<sup>+</sup>.
  In Ana Moreira, Gunter Mussbacher, Jo&atilde;o Ara&uacute;jo, and Pablo
   S&aacute;nchez, editors, <em>8th IEEE International Model-Driven
   Requirements Engineering Workshop, MoDRE@RE 2018, Banff, AB, Canada, August
   20, 2018</em>, pages 11&#x2013;20. IEEE Computer Society, 2018.
-[&nbsp;<a href="bandali-bib#DBLP:conf/re/AbbassiBDS18">bib</a>&nbsp;| 
+[&nbsp;<a href="bandali-bib.html#DBLP:conf/re/AbbassiBDS18">bib</a>&nbsp;| 
 <a href="https://doi.org/10.1109/MoDRE.2018.00008">http</a>&nbsp;| 
 <a href="https://p.bndl.org/modre2018-declarative.pdf">.pdf</a>&nbsp;]
 
@@ -44,11 +44,11 @@ Ali Abbassi, <a href="https://bndl.org">Amin Bandali</a>, <a href="https://cs.uw
 [<a name="bandali-magic-lassonde-2017">2</a>]
 </td>
 <td class="bibtexitem">
-<a href="https://bndl.org">Amin Bandali</a>, <a href="https://github.com/cipher1024">Simon Hudon</a>, and <a href="https://www.eecs.yorku.ca/~jonathan/">Jonathan&nbsp;S. Ostroff</a>.
+<a href="https://shemshak.org/~bandali/">Amin Bandali</a>, <a href="https://github.com/cipher1024">Simon Hudon</a>, and <a href="https://www.eecs.yorku.ca/~jonathan/">Jonathan&nbsp;S. Ostroff</a>.
  The magic of specifications and type systems.
  Presented at the 2017 Lassonde Undergraduate Summer Student Research
   Conference, York University, Toronto, Canada, August 2017.
-[&nbsp;<a href="bandali-bib#bandali-magic-lassonde-2017">bib</a>&nbsp;| 
+[&nbsp;<a href="bandali-bib.html#bandali-magic-lassonde-2017">bib</a>&nbsp;| 
 <a href="https://p.bndl.org/eecs4080-poster.pdf">poster</a>&nbsp;]
 
 </td>
@@ -60,13 +60,13 @@ Ali Abbassi, <a href="https://bndl.org">Amin Bandali</a>, <a href="https://cs.uw
 [<a name="bandali-magic-cucsc-2017">1</a>]
 </td>
 <td class="bibtexitem">
-<a href="https://bndl.org">Amin Bandali</a>, <a href="https://github.com/cipher1024">Simon Hudon</a>, and <a href="https://www.eecs.yorku.ca/~jonathan/">Jonathan&nbsp;S. Ostroff</a>.
+<a href="https://shemshak.org/~bandali/">Amin Bandali</a>, <a href="https://github.com/cipher1024">Simon Hudon</a>, and <a href="https://www.eecs.yorku.ca/~jonathan/">Jonathan&nbsp;S. Ostroff</a>.
  The magic of specifications and type systems.
  Presented at the Canadian Undergraduate Computer Science Conference
   2017, University of Toronto, Canada, June 2017.
-[&nbsp;<a href="bandali-bib#bandali-magic-cucsc-2017">bib</a>&nbsp;| 
+[&nbsp;<a href="bandali-bib.html#bandali-magic-cucsc-2017">bib</a>&nbsp;| 
 <a href="https://p.bndl.org/cucsc-2017-slides.pdf">slides</a>&nbsp;]
 
 </td>
 </tr>
-</table>
\ No newline at end of file
+</table>
index 2d423bd..5e1b655 100644 (file)
@@ -3,14 +3,14 @@
 /./,$!d
 
 # take the rename into consideration
-s/publications_bib.html#/bandali-bib#/
+s/publications_bib/bandali-bib/
 
 # delete <font size="-1"> and </font>
 # s|<font size="-1">||
 # s|</font>||
 
 # linkify author names
-s|Amin Bandali|<a href="https://bndl.org">&</a>|
+s|Amin Bandali|<a href="https://shemshak.org/~bandali/">&</a>|
 s|Nancy&nbsp;A. Day|<a href="https://cs.uwaterloo.ca/~nday/">&</a>|
 s|Simon Hudon|<a href="https://github.com/cipher1024">&</a>|
 s|Jonathan&nbsp;S. Ostroff|<a href="https://www.eecs.yorku.ca/~jonathan/">&</a>|
index af65a18..d54ddfe 100644 (file)
@@ -1,25 +1,26 @@
 body {
-  /* background: #fffffa; */
-  font-family: sans-serif;
-  line-height: 1.6;
-  padding: 2em;
+  background: #d9d8d1;
+  font: 18px/1.6 sans-serif;
+  margin: 0;
 }
 
-header, nav, main, footer {
-  margin: auto;
-  max-width: 38rem;
+body > header, body > nav,  main, body > footer {
+  padding: 0 2em;
 }
 
 body > header {
-  margin-bottom: 0.25em;
+  padding-top: 1em;
 }
 body > header h1 {
   margin: 0;
-  font-size: 100%;
+  font-size: 1em;
 }
 header a {
   color: inherit;
 }
+nav {
+  margin-bottom: 1em;
+}
 nav ul {
   margin: 0;
   padding: 0;
@@ -34,22 +35,24 @@ nav li + li {
 nav a {
   color: #333;
 }
-nav, main {
-  margin-bottom: 1.5em;
+main {
+  background: #ebeae4;
+  padding-top: 1em;
+  padding-bottom: 1em;
 }
-header >:not(h1) {
+article header >:not(h1) {
   font-size: 0.875em;
 }
 header > h1 + p {
   margin-top: -1em;
 }
 footer {
-  border-top: 1px solid #bbb;
   font-size: 0.84em;
-  padding-top: 1em;
+  margin-left: 0.4em;
 }
-footer p {
-  margin: 0;
+
+main > * {
+  max-width: 43rem;
 }
 
 h1 {
@@ -73,9 +76,16 @@ a:hover, a:focus {
 a:active {
   outline-offset: 2px;
 }
-
-h4 {
-  margin: 0.75em auto;
+a.permalink {
+  color: #ddd;
+  font: 1.2em/1 "TeX Gyre Termes", serif;
+  text-decoration: none;
+  transition: color 150ms linear;
+  user-select: none;
+}
+a.permalink:hover, :hover > a.permalink, :target a.permalink {
+  color: #999;
+  transition: color 150ms linear;
 }
 
 article h3 {
@@ -160,9 +170,6 @@ pre {
   min-width: 100%;
   padding: 1em;
 }
-pre:first-of-type {
-  margin-top: 0;
-}
 pre > code {
   padding: 0;
   background: initial;
@@ -171,10 +178,13 @@ code {
   text-transform: none;
   padding: .2em .3em;
 }
+pre, code {
+  font-size: smaller;
+}
 
 /* box effect */
 .box, details, pre, code {
-  background-color: #f8f8f8;
+  background-color: #f4f4f4;
   border: 1px solid #e6e6e6;
   border-radius: 4px;
   box-sizing: border-box;
@@ -184,7 +194,7 @@ details pre {
 }
 p.box {
   font-size: 0.95em;
-  padding: 0.3em 0.6em;
+  padding: 0.6em 0.9em;
 }
 
 table td {
@@ -200,14 +210,11 @@ table td:first-child {
 table td:last-child {
   padding-right: 0
 }
-#notes {
-  margin-top: 0.9em;
-}
 .post-list {
   width: 100%;
 }
 .post-list tr:hover {
-  background: #fafafa;
+  background: #efefe8;
 }
 .post-list td {
   padding: 0.25em 0;
@@ -231,12 +238,10 @@ li, dd {
 }
 
 .feed-icon {
-  margin-right: 3px
-}
-.feed-icon-h2 {
-  margin-left: 5px;
-  position: relative;
-  top: 2px
+  background-image: url(feed-12x12.png);
+  background-position: center right;
+  background-repeat: no-repeat;
+  padding-right: 15px;
 }
 .smly {
   display: inline-block;