From: Amin Bandali Date: Sat, 13 Mar 2021 02:53:29 +0000 (-0500) Subject: revamp the website X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/bndl.org/commitdiff_plain/29f0d7b9e10f827c29213a40279b8a767c99d80b?ds=sidebyside;hp=a98c50cd044a2d649c345ee6c88dba9cc8016b65 revamp the website it is now served from shemshak.org/~bandali --- diff --git a/404.m4 b/404.m4 new file mode 100644 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 + +

__slug

+

Sorry, that page does not exist.

+ +include(footer.html)dnl diff --git a/GNUmakefile b/GNUmakefile index bbf2bb5..b8523fd 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -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 index d1991c8..0000000 --- a/arch-macbook-air.m4 +++ /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 - -

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 -Installation -Guide or the former -Beginner's -Guide. Rather, it mostly serves as a small summary with a few -useful notes about the gotchas.

- -

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.

- -

Note: 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).

- -

Shrinking the macOS partition

-

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!

- -

Creating a bootable Arch Installer USB

-

There are different ways of creating a bootable Arch USB, all -documented on the -USB -flash installation media page on the Arch wiki, but the simplest -one is using dd if you already have access to another -UNIX system.

- -

Warning: make sure you backup the -data on your flash drive, as dd will irrevocably destroy -all data on it.

- -

Use lsblk to find the name (block device) of your USB drive, then -run dd (as root) as shown below:

- -
-dd bs=4M if=/path/to/archlinux.iso of=/dev/sdx status=progress && sync
-
- -

Replace /path/to/archlinux.iso with the path to the -Arch image you have downloaded, and /dev/sdx with your -drive.

- -

Booting up from the USB

-

After creating the install USB, reboot your laptop and hold the alt -key and boot from the USB.

- -

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 -note at the top of this post).

- -

Use ping to verify that you have established a -connection:

- -
-ping archlinux.org
-
- -

Updating the system clock

-

Once you're connected to the internet, make sure the system clock -is accurate:

- -
-timedatectl set-ntp true  # start and enable systemd-timesyncd
-
- -

You can check the service status using timedatectl -status.

- -

Partitioning

-

I won't dive into partitioning and instead, I will refer you to the -Partitioning -page of Arch wiki. Of the available partitioning tools, I personally -prefer cfdisk.

- -

Setting up LVM & LUKS

-

I use an -LVM -on LUKS setup, where I set up LVM on top of the encrypted -partition.

- -

First, let's set up the underlying encrypted partition:

- -
-cryptsetup -v --cipher aes-xts-plain64 --key-size 512 --hash sha512 \
-           --iter-time 5000 --use-urandom -y luksFormat /dev/sdaX
-
- -

where /dev/sdaX is the partition you created in the -last step (e.g. /dev/sda4). For more information about -the cryptsetup options, see the -LUKS -encryption options.

- -

Then we open the container:

- -
-cryptsetup open --type luks /dev/sdaX lvm
-
- -

Now it's time to use lvm and prepare the logical volume(s):

- -
-pvcreate /dev/mapper/lvm vgcreate vg /dev/mapper/lvm
-lvcreate --extents +100%FREE -n root vg
-
- -

This will create a physical volume on the mapping we just opened, -create a volume group named vg on the physical volume, -and create a logical volume named root that spans the -entire volume group. More complex setups are possible thanks to the -great flexibility of lvm.

- -

We now format the logical volume with ext4:

- -
-mkfs.ext4 /dev/mapper/vg-root
-
- -

Installing the base system

-

Let's mount the logical volume, make a directory for the mount -point of the boot partition, and mount the boot partition -(/dev/sda1):

- -
-mount /dev/mapper/vg-root /mnt
-mkdir /mnt/boot
-mount /dev/sda1 /mnt/boot
-
- -

Finally, let's install the base system (and optionally -base-devel):

- -
-pacstrap /mnt base base-devel
-
- -

Configuring the system

-

Let's generate the fstab:

- -
-genfstab -U /mnt >> /mnt/etc/fstab
-
- -

Use your favorite terminal-based editor, edit the fstab file and -add the discard option for the root partition to enable -TRIM on the SSD.

- -

Now we change root into our newly installed system and will -configure it. Adjust these according to your own setup.

- -
-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
-
- -

Then adjust the initramfs hooks in -/etc/mkinitcpio.conf and enable the -encrypt and lvm2 hooks, and make sure -keyboard is available before encrypt so you -can actually type in the LUKS password when booting. Your -HOOKS line should look similar to this:

- -
-HOOKS=(base udev autodetect keyboard keymap consolefont modconf block encrypt lvm2 filesystems fsck)
-
- -

After adjusting the hooks, build the initramfs:

- -
-mkinitcpio -p linux
-
- -

Create the /boot/loader/loader.conf with the following -content (adjust the timeout to your liking):

- -
-default arch timeout 3
-
- -

Then create the entry for Arch:

- -
-mkdir -p /boot/loader/entries
-touch /boot/loader/entries/arch.conf
-
- -

Now edit /boot/loader/entries/arch.conf to specify the -Arch entry:

- -
-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
-
- -

Again, /dev/sdaX is the partition you created in the -partitioning step earlier as the underlying encrypted partition.

- -

Finally, install the bootloader, exit the chroot, umount and -reboot!

- -
-bootctl install
-exit
-umount -R /mnt
-reboot
-
- -

Post-installation recommendations

-

Congratulations! You now have a minimal Arch installation.

- -

At this point, I usually install my favorite AUR helper, -pacaur, then -I install the -mba6x_bl-dkms -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%.

- -
-pacaur -S linux-headers dkms # linux-headers is required for dkms
-pacaur -S broadcom-wl-dkms
-pacaur -S mba6x_bl-dkms
-
- -

Then, I'd like to install

- - -

Check out the -General -recommendations for more details.

- -

References

-

Here are some resources I've come across each with lots of useful -bits and pieces, about installing Arch on a MacBook:

- - - -define(__copy, `2016, 2019, 2020')dnl -include(footer.html)dnl diff --git a/computing.m4 b/computing.m4 index 9b65cdd..8428af6 100644 --- a/computing.m4 +++ b/computing.m4 @@ -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 -

Inspired by the computing page of -rms.

+

inspired by the computing page of +rms

Computers

My librebooted 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.

-

GNU/Linux distributions

-

I have used a wide variety of GNU/Linux distros over the years; but -as of late, I find myself using -Trisquel, -Guix System, and -Debian (with -no contrib or non-free) almost exclusively. -For the kernel, I mostly use +

GNU/Linux distribution

+

I used a wide variety of distros over the years; but I have since +found Trisquel to be my favourite +and it's put my "distro-hopping" days behind me. Sometimes I pair it +up with GNU Guix. For the kernel, +I usually use GNU -Linux-libre. Guix System comes with GNU Linux-libre out of the -box, and on Debian-based distros I tend to install it from -jxself's APT -repository.

+Linux-libre from jxself's +APT repository.

Actual computing

I spend most of my time in GNU Emacs.

TODO: elaborate

-

Maintaining this site

+

Maintaining this site __anc(`colophon')

I took a great amount of inspiration -from Phil Hagelberg's +from technomancy's setup. The pages of this site are written in plain HTML using GNU -Emacs, with GNU M4 acting as a -full-featured template engine. -A GNUmakefile provides +Emacs, with GNU M4 acting as a full-featured template engine. +A GNUmakefile provides convenient make rules to build and publish the site. The -bibliography of my publications is -generated from bandali.bib +bibliography of my publications is +generated from bandali.bib using bibtex2html, -and further processed and put together using -GNU sed and +and further processed and put together using GNU sed and another GNUmakefile. The git repository containing all -the sources used to build this site is available -here.

+the sources used to build this site are available +here.

define(__copy, `2019, 2020')dnl include(footer.html)dnl diff --git a/contact.m4 b/contact.m4 index ff68e4b..6f7986a 100644 --- a/contact.m4 +++ b/contact.m4 @@ -1,67 +1,20 @@ dnl -*- html -*- -define(__title, `Contact Information')dnl +define(__title, `contact information')dnl define(__slug, `contact')dnl include(header.html)dnl
-

Contact information

-

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):

- - - -

If you want to send me GPG-encrypted mail, you can use my -public key with the -fingerprint BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103.

- - - - - - - - - - - - - - - - - - - - - - - -
IRCbandali on freenode and -oftc
XMPPbandali@member.fsf.org
Matrix@bandali:matrix.org
Fediverse@bandali@pleroma.site
- -

Elsewhere

-

You may also find me at a few other places online. Stricken -through accounts are those I don't use anymore, unless absolutely -necessary.

- - -
+

__title

+

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 public key with the +fingerprint +BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103.

+ +

Besides email, I can also usually be reached via IRC, particularly +the freenode and +oftc networks, where I idle +as bandali. For other means of communication, please +send me an email and we can figure something out if needed.

include(footer.html)dnl diff --git a/cv.m4 b/cv.m4 index 9d4d254..5a0e11b 100644 --- a/cv.m4 +++ b/cv.m4 @@ -9,11 +9,11 @@ include(header.html)dnl Site -bndl.org +shemshak.org/~bandali Email -bandali@uwaterloo.ca +bandali@gnu Phone diff --git a/footer.html b/footer.html index a7e7e7d..286a5c2 100644 --- a/footer.html +++ b/footer.html @@ -2,14 +2,14 @@ ifdef(`__feed_atom', `', `ifdef(`__feed_rss', `', `ifdef(`__pub', `

Got a question or comment? You can find my -email address on my contact page. __smly

+email address on my contact page. __smly

')dnl ifdef(`__copy', `') diff --git a/fsf-internship-beyond.m4 b/fsf-internship-beyond.m4 index f878697..48eb683 100644 --- a/fsf-internship-beyond.m4 +++ b/fsf-internship-beyond.m4 @@ -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

Originally published on the Free Software Foundation's diff --git a/fsf-internship-intro.m4 b/fsf-internship-intro.m4 index 11d9339..79af930 100644 --- a/fsf-internship-intro.m4 +++ b/fsf-internship-intro.m4 @@ -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

Originally published on the Free Software Foundation's diff --git a/header.html b/header.html index 38326bc..fbc63f8 100644 --- a/header.html +++ b/header.html @@ -1,19 +1,19 @@ include(meta_defs.m4)dnl ifdef(`__slug',,`define(__slug, _get(`notes', __id))')dnl ifdef(`__feed_atom', -` +` bandali -tag:bndl.org,2020:notes.atom:__slug +tag:shemshak.org,2020:__p/notes.atom:__slug __pub ifdef(`__upd',`__upd',`__pub')dnl - + __title ', `ifdef(`__feed_rss', ` __title -https://bndl.org/__slug -tag:bndl.org,2020:notes.rss:__slug +__d`'__p/__slug.html +tag:shemshak.org,2020:__p/notes.rss:__slug syscmd(date "-uRd __pub" | tr -d \\n) ifdef(`__upd',`__upd')dnl ', @@ -24,29 +24,28 @@ ifdef(`__upd',`__upd')dnl __title`'ifdef(`__nts',,` — bandali') - - - - - + + + + ifdef(`__pub', define(__previd, `_get(`notes', decr(__id))')dnl define(__nextid, `_get(`notes', incr(__id))')dnl -`ifelse(__previd,,,`')'dnl -`ifelse(__nextid,,,`')')dnl +`ifelse(__previd,,,`')'dnl +`ifelse(__nextid,,,`')')dnl

-ifelse(__slug,`home',`

__title

', -`Bandali's Personal Site') +ifelse(__slug,`home',`

__site__title

', +`__site__title')
diff --git a/index.m4 b/index.m4 index 1f8246e..c84dd75 100644 --- 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 -
-

Hi, I'm bandali. I am -a free -software activist and a computing scientist. I graduated from the -University of Waterloo with a Master of -Mathematics degree in Computer Science, where I did research in -formal logic, model checking, and verification supervised -by Prof. Nancy Day, with -the main goal of improving software and systems -reliability through application of -formal -methods. My research areas of interest include programming -languages, proof assistants, and their type systems.

- -

I am currently employed -by Savoir-faire Linux as -a Free Software Consultant, where I get to hack on various parts -of Jami, 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.

+
+

I am a free +software activist and computing +scientist. I'm a GNU maintainer +of Jami +and GNUzilla and +IceCat, 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 $dayjob 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.

On the side, I enjoy -hacking on -Emacs -Lisp. I'm a GNU -maintainer, -webmaster, -and Savannah -hacker; and an associate -member of the Free Software Foundation (FSF). I'm currently the -chief organizer of the EmacsConf -conference, and the co-host of the -Emacs.el podcast with -Daniel Gopar. I am also a member of -the Systems Committee of the -Computer Science Club of the -University of Waterloo.

+hacking on +GNU Emacs and Emacs Lisp. I'm the current maintainer of +ERC the +powerful and modular IRC client built into GNU Emacs, an organizer of +the EmacsConf conference, and +co-host of the Emacs.el podcast with +Gopar.

-
-

Notes

-

Here are notes about a variety of topics and issues I care about. -They're also available via - -subscribe to Atom feedAtom -and - -subscribe to RSS feedRSS feeds.

+
+

notes __anc(`notes')

+

Here are notes about various topics or issues I care about. +You can also read them via +Atom or +RSS.

- + - + - + - - - -
My internship with the FSF tech team and beyond -(concluding)My internship with the FSF +tech team and beyond (concluding) December 18, 2020
Internship with the FSF tech team -(intro)Internship with the FSF tech +team (intro) May 29, 2020
How I do my ComputingHow I do my Computing September 14, 2019
Arch GNU/Linux on MacBook Air 2013November 1, 2016
-define(__copy, `2016–2020')dnl +define(__copy, `2016–2021')dnl include(footer.html)dnl diff --git a/license.m4 b/license.m4 index 8809dd6..6510179 100644 --- a/license.m4 +++ b/license.m4 @@ -1,10 +1,10 @@ dnl -*- html -*- -define(__title, `Licensing Information')dnl +define(__title, `licensing information')dnl define(__slug, `license')dnl include(header.html)dnl
-

License information for bndl.org

+

__title

I strongly believe in free culture 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 gpl-3.0.html.

+

This website is statically generated using a series of GNU tools +(read more), with the sources at +git.shemshak.org/~bandali/site. +The striped look was direct inspiration from iank's website, +iankelling.org.

+

Some resources on free software and licenses:

  • What is free software?
  • diff --git a/meta_defs.m4 b/meta_defs.m4 index ce6f68d..8245f49 100644 --- a/meta_defs.m4 +++ b/meta_defs.m4 @@ -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, `')dnl -define(__smly, `:-)')dnl +define(`__site__title', `bandali's personal site')dnl +define(`__latex', `')dnl +define(`__smly', `:-)')dnl +define(`__anc', `')dnl diff --git a/meta_feed_atom.m4 b/meta_feed_atom.m4 index 9824118..04515a7 100644 --- a/meta_feed_atom.m4 +++ b/meta_feed_atom.m4 @@ -3,14 +3,14 @@ include(meta_defs.m4)dnl Amin Bandali's Personal Site Notes and blog posts by Amin Bandali -tag:bndl.org,2020:notes.atom - - - +tag:shemshak.org,2020:__p/notes.atom + + + syscmd(date -Iseconds -u | tr -d \\n) 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/\&/\&/g;s/>/\>/g;s//\>/g;s/ diff --git a/meta_feed_rss.m4 b/meta_feed_rss.m4 index a9feeb3..362a0e5 100644 --- a/meta_feed_rss.m4 +++ b/meta_feed_rss.m4 @@ -4,17 +4,17 @@ include(meta_defs.m4)dnl Amin Bandali's Personal Site Notes and blog posts by Amin Bandali -https://bndl.org +__d`'__p/ syscmd(date -uR | tr -d \\n) syscmd(date -uR | tr -d \\n) 1800 - - - + + + 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/\&/\&/g;s/>/\>/g;s//\>/g;s/ diff --git a/projects.m4 b/projects.m4 deleted file mode 100644 index b34ae41..0000000 --- a/projects.m4 +++ /dev/null @@ -1,28 +0,0 @@ -dnl -*- html -*- -define(__title, `Projects')dnl -define(__slug, `projects')dnl -include(header.html)dnl - -
    -

    Projects

    - -
    -
    refinery-theme
    -
    A refined, minimalist, layered colour theme for GNU Emacs
    - -
    george-mode
    -
    Emacs major mode for editing George files
    - -
    alloy-catalyst
    -
    Framework for performance analysis of Alloy models
    - -
    unitb-web
    -
    Web interface for Unit-B
    - -
    tex2png-hs
    -
    Library and CLI for converting TeX and LaTeX to PNG images
    -
    -
    - -define(__copy, `2020')dnl -include(footer.html)dnl diff --git a/publications.m4 b/publications.m4 index 4302e03..f8f4fab 100644 --- a/publications.m4 +++ b/publications.m4 @@ -1,10 +1,10 @@ dnl -*- html -*- -define(__title, `Publications')dnl +define(__title, `publications')dnl define(__slug, `publications')dnl include(header.html)dnl
    -

    Publications

    +

    __title

    include(static/publications-partial.html) diff --git a/static/.htaccess b/static/.htaccess index c03a35b..0558c36 100644 --- a/static/.htaccess +++ b/static/.htaccess @@ -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 + # 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] diff --git a/static/.htaccess-www b/static/.htaccess-www deleted file mode 100644 index 35d52d1..0000000 --- a/static/.htaccess-www +++ /dev/null @@ -1,16 +0,0 @@ - -# 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] - - -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 index 883067e..0000000 --- a/static/404.html +++ /dev/null @@ -1,17 +0,0 @@ - - - - - -404 Not Found - - - - - -
    -

    404

    -

    Sorry, that page does not exist.

    -
    - - diff --git a/static/bandali-bib-partial.html b/static/bandali-bib-partial.html index 7723b56..6b0914c 100644 --- a/static/bandali-bib-partial.html +++ b/static/bandali-bib-partial.html @@ -1,5 +1,5 @@

    bandali.bib

    -@mastersthesis{bandali2020,
    +@mastersthesis{bandali2020,
       type = {{MMath} thesis},
       author = {Amin Bandali},
       title = {{A Comprehensive Study of Declarative Modelling Languages}},
    @@ -15,7 +15,7 @@
     
    -@inproceedings{DBLP:conf/re/AbbassiBDS18,
    +@inproceedings{DBLP:conf/re/AbbassiBDS18,
       author = {Ali Abbassi and
                    Amin Bandali and
                    Nancy A. Day and
    @@ -38,7 +38,7 @@
     
    -@proceedings{DBLP:conf/re/2018modre,
    +@proceedings{DBLP:conf/re/2018modre,
       editor = {Ana Moreira and
                    Gunter Mussbacher and
                    Jo{\~{a}}o Ara{\'{u}}jo and
    @@ -57,7 +57,7 @@
     
    -@misc{bandali-magic-lassonde-2017,
    +@misc{bandali-magic-lassonde-2017,
       author = {Amin Bandali and
                       Simon Hudon and
                       Jonathan S. Ostroff},
    @@ -72,7 +72,7 @@
     
    -@misc{bandali-magic-cucsc-2017,
    +@misc{bandali-magic-cucsc-2017,
       author = {Amin Bandali and
                       Simon Hudon and
                       Jonathan S. Ostroff},
    diff --git a/static/bandali-bib-sed.txt b/static/bandali-bib-sed.txt
    index 35b2f79..64ca551 100644
    --- a/static/bandali-bib-sed.txt
    +++ b/static/bandali-bib-sed.txt
    @@ -1,5 +1,2 @@
    -# drop .html
    -s/publications.html#/publications#/
    -
     # linkify bandali.bib at the top
     s|bandali.bib|&|
    diff --git a/static/feed-12x12.png b/static/feed-12x12.png
    new file mode 100644
    index 0000000..3fe8b0a
    Binary files /dev/null and b/static/feed-12x12.png differ
    diff --git a/static/gpl-3.0.html b/static/gpl-3.0.html
    index 3817471..1295136 100644
    --- a/static/gpl-3.0.html
    +++ b/static/gpl-3.0.html
    @@ -4,11 +4,10 @@
         
         
         GNU General Public License v3.0
    -    
    +    
       
       
         

    GNU GENERAL PUBLIC LICENSE

    Version 3, 29 June 2007

    diff --git a/static/icon-12px.png b/static/icon-12px.png deleted file mode 100644 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 index 1151f76..0000000 Binary files a/static/icon-16px.png and /dev/null differ diff --git a/static/publications-partial.html b/static/publications-partial.html index 8d5cf21..bcf502a 100644 --- a/static/publications-partial.html +++ b/static/publications-partial.html @@ -5,13 +5,13 @@ [4] -Amin Bandali. +Amin Bandali. A Comprehensive Study of Declarative Modelling Languages. MMath thesis, University of Waterloo, David R. Cheriton School of Computer Science, July 2020. http://hdl.handle.net/10012/16059 and https://bndl.org/mmath. -[ bib | +[ bib | http | .pdf ] @@ -24,14 +24,14 @@ [3] -Ali Abbassi, Amin Bandali, Nancy A. Day, and José Serna. +Ali Abbassi, Amin Bandali, Nancy A. Day, and José Serna. A comparison of the declarative modelling languages B, Dash, and TLA+. In Ana Moreira, Gunter Mussbacher, João Araújo, and Pablo Sánchez, editors, 8th IEEE International Model-Driven Requirements Engineering Workshop, MoDRE@RE 2018, Banff, AB, Canada, August 20, 2018, pages 11–20. IEEE Computer Society, 2018. -[ bib | +[ bib | http | .pdf ] @@ -44,11 +44,11 @@ Ali Abbassi, Amin Bandali, 2] -Amin Bandali, Simon Hudon, and Jonathan S. Ostroff. +Amin Bandali, Simon Hudon, and Jonathan S. Ostroff. The magic of specifications and type systems. Presented at the 2017 Lassonde Undergraduate Summer Student Research Conference, York University, Toronto, Canada, August 2017. -[ bib | +[ bib | poster ] @@ -60,13 +60,13 @@ Ali Abbassi, Amin Bandali, 1] -Amin Bandali, Simon Hudon, and Jonathan S. Ostroff. +Amin Bandali, Simon Hudon, and Jonathan S. Ostroff. The magic of specifications and type systems. Presented at the Canadian Undergraduate Computer Science Conference 2017, University of Toronto, Canada, June 2017. -[ bib | +[ bib | slides ] - \ No newline at end of file + diff --git a/static/publications-sed.txt b/static/publications-sed.txt index 2d423bd..5e1b655 100644 --- a/static/publications-sed.txt +++ b/static/publications-sed.txt @@ -3,14 +3,14 @@ /./,$!d # take the rename into consideration -s/publications_bib.html#/bandali-bib#/ +s/publications_bib/bandali-bib/ # delete and # s||| # s||| # linkify author names -s|Amin Bandali|&| +s|Amin Bandali|&| s|Nancy A. Day|&| s|Simon Hudon|&| s|Jonathan S. Ostroff|&| diff --git a/static/style.css b/static/style.css index af65a18..d54ddfe 100644 --- a/static/style.css +++ b/static/style.css @@ -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;