From: Amin Bandali Date: Tue, 23 Apr 2019 01:21:04 +0000 (-0400) Subject: redesign and major overhaul X-Git-Url: https://git.shemshak.org/~bandali/bndl.org/commitdiff_plain/cb742bb69034bdc97f1b762fc4bf7fde4f027fea?ds=inline redesign and major overhaul main changes from the preivous ox-hugo based setup: - simple, hand-written HTML - available on a new domain, bndl.org - will likely use SSI’s for including common bits --- diff --git a/.build.yml b/.build.yml deleted file mode 100644 index 6124e10..0000000 --- a/.build.yml +++ /dev/null @@ -1,27 +0,0 @@ -image: archlinux -packages: - - rsync - - wget -sources: - - https://git.sr.ht/~bandali/aminb.org -environment: - deploy: deploy@aminb.org - hugo_version: "0.50" -secrets: - - 6da5fd68-0594-4fc6-abe0-efe01ffe4b56 -tasks: - - setup: | - wget "https://github.com/gohugoio/hugo/releases/download/v${hugo_version}/hugo_extended_${hugo_version}_Linux-64bit.tar.gz" - wget "https://github.com/gohugoio/hugo/releases/download/v${hugo_version}/hugo_extended_${hugo_version}_checksums.txt" - calculated_sha=$(sha256sum "hugo_extended_${hugo_version}_Linux-64bit.tar.gz") - expected_sha=$(grep "hugo_extended_${hugo_version}_Linux-64bit.tar.gz" "hugo_extended_${hugo_version}_checksums.txt") - printf "calculated: %s\n expected: %s" "$calculated_sha" "$expected_sha" - [ "$calculated_sha" = "$expected_sha" ] - tar xzf "hugo_extended_${hugo_version}_Linux-64bit.tar.gz" - - build: | - cd aminb.org - ../hugo --minify - - deploy: | - cd aminb.org - sshopts="-o StrictHostKeyChecking=no" - rsync --rsh="ssh $sshopts" -rP public/ ${deploy}:/var/www/aminb.org/ diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 4ac49b6..0000000 --- a/.gitmodules +++ /dev/null @@ -1,12 +0,0 @@ -[submodule "themes/divine"] - path = themes/divine - url = https://git.sr.ht/~bandali/hugo-theme-divine -[submodule "themes/hugo-debugprint"] - path = themes/hugo-debugprint - url = https://gitlab.com/kaushalmodi/hugo-debugprint -[submodule "themes/hugo-search-fuse-js"] - path = themes/hugo-search-fuse-js - url = https://gitlab.com/kaushalmodi/hugo-search-fuse-js -[submodule "themes/hugo-micro-json"] - path = themes/hugo-micro-json - url = https://gitlab.com/kaushalmodi/hugo-micro-json diff --git a/assets/apple-touch-icon.png b/assets/apple-touch-icon.png deleted file mode 100644 index 616c8fc..0000000 Binary files a/assets/apple-touch-icon.png and /dev/null differ diff --git a/assets/favicon-16x16.png b/assets/favicon-16x16.png deleted file mode 100644 index d6c3ddf..0000000 Binary files a/assets/favicon-16x16.png and /dev/null differ diff --git a/assets/favicon-32x32.png b/assets/favicon-32x32.png deleted file mode 100644 index bba48c6..0000000 Binary files a/assets/favicon-32x32.png and /dev/null differ diff --git a/assets/gnu-inside.png b/assets/gnu-inside.png deleted file mode 100644 index fdcceca..0000000 Binary files a/assets/gnu-inside.png and /dev/null differ diff --git a/assets/i2pangel-83x64.png b/assets/i2pangel-83x64.png deleted file mode 100644 index 6c832e0..0000000 Binary files a/assets/i2pangel-83x64.png and /dev/null differ diff --git a/assets/safari-pinned-tab.svg b/assets/safari-pinned-tab.svg deleted file mode 100644 index d00b19a..0000000 --- a/assets/safari-pinned-tab.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/assets/site.webmanifest b/assets/site.webmanifest deleted file mode 100644 index 140ec91..0000000 --- a/assets/site.webmanifest +++ /dev/null @@ -1,19 +0,0 @@ -{ - "name": "aminb.org", - "short_name": "aminb.org", - "icons": [ - { - "src": "/android-chrome-192x192.png", - "sizes": "192x192", - "type": "image/png" - }, - { - "src": "/android-chrome-512x512.png", - "sizes": "512x512", - "type": "image/png" - } - ], - "theme_color": "#ffffff", - "background_color": "#ffffff", - "display": "standalone" -} diff --git a/bandali-pubkey.txt b/bandali-pubkey.txt new file mode 100644 index 0000000..d36257f --- /dev/null +++ b/bandali-pubkey.txt @@ -0,0 +1,121 @@ +-----BEGIN PGP PUBLIC KEY BLOCK----- + +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 +=KUkT +-----END PGP PUBLIC KEY BLOCK----- diff --git a/config.toml b/config.toml deleted file mode 100644 index 832cf56..0000000 --- a/config.toml +++ /dev/null @@ -1,43 +0,0 @@ -baseurl = "https://aminb.org" -title = "Amin Bandali" -author = "Amin Bandali" -theme = ["hugo-micro-json", "divine"] - -enableEmoji = true -enableGitInfo = true - -disableFastRender = true # Hugo 0.30 - -pygmentsCodeFences = true # This applies to Chroma too. -pygmentsUseClasses = true # This applies to Chroma too. - -[Author] - name = "Amin Bandali" - -[Social] - github = "aminb" - -[permalinks] - post = "/:filename/" - -[Params] - disable_debug = true - description = """\ - Amin Bandali is a graduate student in the WatForm \ - group at UWaterloo. He is also the co-host of the \ - Emacs.el podcast and loves functional programming.\ - """ - favicons = true - - [Params.gnu_inside] - enabled = true - url = "https://www.gnu.org" - - [Params.source] - url = "https://git.bndl.org/amin/aminb.org" - md_dir = "content" - org_dir = "content-org" - -[outputs] - # /micro.json - home = ["HTML", "RSS", "Micro"] # default = ["HTML", "RSS"] diff --git a/contact.html b/contact.html new file mode 100644 index 0000000..c963a3b --- /dev/null +++ b/contact.html @@ -0,0 +1,97 @@ + + + + + + + Contact - Amin Bandali + + + +
+

Amin Bandali’s personal site

+ + Home → Contact + +
+ +
+
+

Contact

+

+ Email is my preferred method of communication. Feel free to + write to me at my academic or personal address listed on my + home page. Besides email, you could + try reaching me via +

+ + + + + + + + + + + + + + + + + + + + +
irc + bandali on + freenode and + moznet +
xmpp + bandali@member.fsf.org +
matrix + @bandali:matrix.org +
fediverse + aminb@pleroma.site +
+ +

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

+ +
+
+ + + diff --git a/content/_index.md b/content/_index.md deleted file mode 100644 index 399e97a..0000000 --- a/content/_index.md +++ /dev/null @@ -1,13 +0,0 @@ -+++ -title = "Home" -draft = false -+++ - -I'm Amin Bandali (often `bandali` or `aminb` on [the interwebs](/contact)). I’m -currently a [graduate student](/uw) in the [WatForm](https://watform.uwaterloo.ca) group at University of -Waterloo, supervised by [Nancy Day](https://cs.uwaterloo.ca/~nday/). My current research focuses on -formal logic, model checking, and verification. On the side, I also -dabble in [Lean](https://leanprover.github.io) and [Rust](https://www.rust-lang.org), and I enjoy [hacking](https://stallman.org/articles/on-hacking.html) on [Elisp](https://www.gnu.org/software/emacs/manual/elisp.html). - -[//]: # "Exported with love from a post written in Org mode" -[//]: # "- https://ox-hugo.scripter.co" diff --git a/content/colophon.md b/content/colophon.md deleted file mode 100644 index ad249b5..0000000 --- a/content/colophon.md +++ /dev/null @@ -1,43 +0,0 @@ -+++ -title = "Colophon" -draft = false -+++ - -This is my personal website, previous versions of which I've ran on -different domains since 2012. I've previously used Octopress, Jekyll, -a [custom](https://github.com/aminb/blog-old) static site generator written in Haskell (kudos to [Ruud van -Asseldonk](https://ruudvanasseldonk.com)), [ssg](https://www.romanzolotarev.com/ssg.html) (shout out to [Roman Zolotarev](https://www.romanzolotarev.com)), and [org-publish](https://orgmode.org/manual/Publishing.html) (see -also [A blog in pure Org/Lisp](https://ambrevar.xyz/blog-architecture/index.html)); but I've since ported it to [ox-hugo](https://ox-hugo.scripter.co/), a -"carefully crafted Org exporter back-end for Hugo" (kudos to [Kaushal -Modi](https://scripter.co)). I've never been happier with my setup. - -The sources are available at . On each -`git push`, the repository is mirrored from my personal server to my -sr.ht account, the site is then automatically generated using the -[builds.sr.ht](https://builds.sr.ht) service (see the [`.build.yml`](https://git.aminb.org/aminb.org/tree/.build.yml) build manifest), and is -deployed back to my server, where it's served using [Nginx](https://www.nginx.com) on [Debian -GNU/Linux](https://www.debian.org). - - -## Night mode {#night-mode} - -To toggle night mode, click on , which is always available -on the top navigation menu. It saves its state in a browser cookie, -other than that no JavaScript is required to use this website. - - -## Copyright and Licenses {#copyright} - -The source code for this site is licensed under version 3 (or, at your -option, any later version) of the [GNU General Public License](https://gnu.org/licenses/gpl.html) (see the -[`COPYING`](https://git.aminb.org/aminb.org/tree/COPYING) file). The contents of the website are licensed under a -Creative Commons Attribution-ShareAlike 4.0 International Creative Commons Licence license. - - -## i2p angel {#i2pangel} - -The favicons were derived from [nether](https://psychosoma.tech)'s beautiful [i2p angel](https://psychosoma.tech/me/work/i2pangel.png), a copy of -which is displayed on [git.aminb.org](https://git.aminb.org). - -[//]: # "Exported with love from a post written in Org mode" -[//]: # "- https://ox-hugo.scripter.co" diff --git a/content/contact.md b/content/contact.md deleted file mode 100644 index 33478b1..0000000 --- a/content/contact.md +++ /dev/null @@ -1,57 +0,0 @@ -+++ -title = "Contact" -date = 2018-09-03T20:44:00-04:00 -draft = false -customTitle = "Say hello!" -[menu.topnav] - identifier = "contact" - weight = 40 -+++ - -You can contact me via email or through my accounts on various online -platforms. - - -## Primary {#primary} - -Email is my preferred method of communication. - -- [amin@bndl.org](mailto:amin@bndl.org), personal or general inquiries -- [bandali@gnu.org](mailto:bandali@gnu.org), GNU- or free software-related ([gpg key](/gpg)) -- [abandali@uwaterloo.ca](mailto:abandali@uwaterloo.ca), academic or UW-related - - -## Secondary {#secondary} - -- irc: bandali on [freenode](https://freenode.net) and [moznet](https://wiki.mozilla.org/IRC) -- xmpp: bandali@member.fsf.org -- matrix: [@bandali:matrix.org](https://matrix.to/#/@bandali:matrix.org) -- fediverse: [aminb@pleroma.site](https://pleroma.site/users/aminb) - - -## Other online places {#other-online-places} - -- [bandali](https://git.sr.ht/~bandali) on [sr.ht](https://sr.ht) -- [bandali](https://savannah.gnu.org/users/bandali) on Savannah -- [bandali](https://lobste.rs/u/bandali) on Lobsters -- [bandali](https://hackage.haskell.org/user/bandali) on Hackage -- [bandali](https://gitlab.com/bandali) on GitLab -- [bandali](https://keybase.io/bandali) on Keybase -- [bandali](https://news.ycombinator.com/user?id=bandali) on HN -- [bandali](https://www.reddit.com/u/bandali) on Reddit - - -## Dormant accounts {#dormant-accounts} - -These are accounts I don't use anymore, unless absolutely necessary. - -- [a](https://functional.cafe/@a) on functional.cafe -- [aminb](https://mastodon.social/@aminb) on mastodon.social -- [aminb](https://savannah.gnu.org/users/aminb) on Savannah -- [aminb](https://hackage.haskell.org/user/aminb) on Hackage -- [aminb](https://github.com/aminb) on GitHub -- [aminb](https://www.reddit.com/u/aminb) on Reddit -- [aminban](https://twitter.com/aminban) on Twitter - -[//]: # "Exported with love from a post written in Org mode" -[//]: # "- https://ox-hugo.scripter.co" diff --git a/content/cv.md b/content/cv.md deleted file mode 100644 index 8d1e815..0000000 --- a/content/cv.md +++ /dev/null @@ -1,19 +0,0 @@ -+++ -title = "CV" -draft = false -[menu.topnav] - identifier = "cv" - weight = 10 -+++ - -My academic CV is available as [cv.pdf](/cv.pdf), -and an outdated professional resume is available as [resume.pdf](/resume.pdf) as -well. - -I'm interested in functional programming and functional languages, -type systems, and formal methods in general. I love writing Haskell -and I'm looking into Rust and Lean as well. Feel free to [drop me a -line](/contact) if you like to geek out about any of the above. - -[//]: # "Exported with love from a post written in Org mode" -[//]: # "- https://ox-hugo.scripter.co" diff --git a/content/gpg.md b/content/gpg.md deleted file mode 100644 index 616047d..0000000 --- a/content/gpg.md +++ /dev/null @@ -1,65 +0,0 @@ -+++ -title = "GPG" -draft = false -+++ - -My [current key](https://aminb.org/0xA21A020248816103.txt) is:[^fn:1] - -```txt -pub rsa4096 2018-10-17 [C] [expires: 2020-10-16] - BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103 -uid [ultimate] Amin Bandali -sub rsa4096 2018-10-17 [S] [expires: 2020-10-16] - 39B3 3C8D 9448 0D2D DCC2 A498 8B44 A0CD C7B9 56F2 -sub rsa4096 2018-10-17 [E] [expires: 2020-10-16] - 43ED 5F7C F5EC CBDF 2552 FE98 1D52 D14E BCF3 BE08 -sub rsa4096 2018-10-17 [A] [expires: 2020-10-16] - 70FB 9AAD 5240 2841 2B14 8685 4040 DFEC 6EC1 3F3A -``` - -My [previous key](https://aminb.org/0xD1FBA36627D65876.txt), from which I transitioned away, is: - -```txt -pub rsa4096 2018-08-05 [C] [expires: 2018-11-16] - CDDE 75F9 0353 8E71 813C DA27 D1FB A366 27D6 5876 -uid [ultimate] Amin Bandali -uid [ultimate] Amin Bandali -uid [ultimate] Amin Bandali -uid [ultimate] Amin Bandali -sub rsa4096 2018-08-05 [S] [expires: 2018-11-16] - E14F 56EE 1338 901E A8A8 D2DD 91A9 6FF7 FEF6 BEB4 -sub rsa4096 2018-08-05 [E] [expires: 2018-11-16] - F9B3 BA24 31A0 9B38 31A3 42EF 1F29 83A9 9A69 D453 -sub rsa4096 2018-08-05 [A] [expires: 2018-11-16] - 4FB5 D03D A65E 8DA3 39BE 5EDD 6DC3 8F21 4E4B AAA0 -``` - -You can obtain my key transition statement signed with both of the -above keys from . - - -## Older keys {#older-keys} - -```txt -pub rsa4096 2016-01-31 [SC] [expires: 2019-02-13] - 500C 1D55 D1EC 1FED E8C0 C8DE 4E05 246A B0BF 7FFB -uid [ultimate] Amin Bandali -uid [ultimate] Amin Bandali -uid [ultimate] Amin Bandali -uid [ultimate] Amin Bandali -sub rsa4096 2016-01-31 [S] [expires: 2019-02-13] - 5AC5 0B1B D540 A902 D4B6 2B5C DAE5 4A52 337F 0283 -sub rsa4096 2016-01-31 [E] [expires: 2019-02-13] - F05B FB25 77C7 5AF6 7783 A66F 3351 056A ACD6 6B1F -sub rsa4096 2016-01-31 [A] [expires: 2019-02-13] - C165 6BE2 FDCA D028 0D5A 4314 3A4A C417 58E9 C177 -``` - -The key transition statement I'd generated when transitioning away -from this key is available on -. - -[^fn:1]: Key summaries generated by including the `--list-key`, `--with-fingerprint`, and `--with-subkey-fingerprint` switches along with the key id when calling `gpg`. - -[//]: # "Exported with love from a post written in Org mode" -[//]: # "- https://ox-hugo.scripter.co" diff --git a/content/now.md b/content/now.md deleted file mode 100644 index 9472e88..0000000 --- a/content/now.md +++ /dev/null @@ -1,27 +0,0 @@ -+++ -title = "Now" -date = 2018-09-04T10:53:00-04:00 -lastmod = 2019-01-02T14:56:34-05:00 -draft = false -customTitle = "What I'm doing now" -[menu.topnav] - identifier = "now" - weight = 20 -+++ - -This is my [now page](https://nownownow.com/about). - -I'm currently a [graduate student](/uw) in the Waterloo Formal Methods group -at University of Waterloo. I just finished my degree’s coursework -requirements in Fall 2018, and will be focusing on my thesis starting -this term, Winter 2019. - -In my spare time, I write [free software](https://www.gnu.org/philosophy/free-sw.en.html) (see my [projects](/projects) page), and -tend to various tasks as a GNU webmaster. I've also been picking up -the guitar, after giving up on my longtime dream of being a pianist -(at least for now). - -This update was on {{< lastmod >}}. - -[//]: # "Exported with love from a post written in Org mode" -[//]: # "- https://ox-hugo.scripter.co" diff --git a/content/post/arch-macbook-air.md b/content/post/arch-macbook-air.md deleted file mode 100644 index 5357e74..0000000 --- a/content/post/arch-macbook-air.md +++ /dev/null @@ -1,283 +0,0 @@ -+++ -title = "Arch GNU/Linux on MacBook Air 2013" -date = 2016-11-01 -aliases = ["/2016/11/arch-macbook-air"] -lastmod = 2018-09-03T20:15:43-04:00 -tags = ["arch", "macbook"] -draft = false -toc = true -[menu.main] - weight = 2001 - identifier = "arch-gnu-linux-on-macbook-air-2013" -+++ - -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](https://wiki.archlinux.org/index.php/installation%5Fguide) or the former [Beginner's Guide](https://csdietz.github.io/arch-beginner-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 your phone's USB Tethering (if it does support it), or -using an Ethernet-USB adapter. - - -## Shrinking the macOS partition {#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 {#creating-a-bootable-arch-installer-usb} - -There are different ways of creating a bootable Arch USB, all -documented on the [USB flash installation media](https://wiki.archlinux.org/index.php/USB%5Fflash%5Finstallation%5Fmedia) 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: - -```bash -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 {#booting-up-from-the-usb} - -After creating the install USB, reboot your laptop and hold the alt -key and boot into 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've established a connection: - -```bash -ping archlinux.org -``` - - -## Updating the system clock {#updating-the-system-clock} - -Once you're connected to the internet, make sure the system clock is -accurate: - -```bash -timedatectl set-ntp true # start and enable systemd-timesyncd -``` - -You can check the service status using `timedatectl status`. - - -## Partitioning {#partitioning} - -I won't dive into partitioning and instead, I'll refer you to the -[Partitioning](https://wiki.archlinux.org/index.php/Partitioning) page of Arch wiki. Of the available partitioning tools, I -personally prefer `cfdisk`. - - -## Setting up LVM & LUKS {#setting-up-lvm-and-luks} - -I use a [LVM on LUKS](https://wiki.archlinux.org/index.php/Dm-crypt/Encrypting%5Fan%5Fentire%5Fsystem#LVM%5Fon%5FLUKS) setup, where I set up LVM on top of the encrypted -partition. - -First, let's set up the underlying encrypted partition: - -```bash -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](https://wiki.archlinux.org/index.php/Dm-crypt/Device%5Fencryption#Encryption%5Foptions%5Ffor%5FLUKS%5Fmode). - -Then we open the container: - -```bash -cryptsetup open --type luks /dev/sdaX lvm -``` - -Now it's time to use lvm and prepare the logical volume(s): - -```bash -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`: - -```bash -mkfs.ext4 /dev/mapper/vg-root -``` - - -## Installing the base system {#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`): - -```bash -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`): - -```bash -pacstrap /mnt base base-devel -``` - - -## Configuring the system {#configuring-the-system} - -Let's generate the fstab: - -```bash -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. - -```bash -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: - -```nil -HOOKS="base udev autodetect modconf block keyboard encrypt lvm2 filesystems fsck" -``` - -After adjusting the hooks, build the initramfs: - -```bash -mkinitcpio -p linux -``` - -Now, install the `intel-ucode` package. We'll configure the bootloader -to enable intel microcode updates. - -```bash -pacman -S intel-ucode -``` - -Create the `/boot/loader/loader.conf` with the following content -(adjust the timeout to your liking): - -```nil -default arch -timeout 3 -``` - -Then create the entry for Arch: - -```bash -mkdir -p /boot/loader/entries -touch /boot/loader/entries/arch.conf -``` - -Now edit `/boot/loader/entries/arch.conf` to specify the Arch entry: - -```nil -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](#partitioning) -step as the underlying encrypted partition. - -Finally, install the bootloader, exit the chroot, umount and reboot! - -```bash -bootctl install -exit -umount -R /mnt -reboot -``` - - -## Post-installation recommendations {#post-installation-recommendations} - -Congratulations! You now have a minimal Arch installation. - -At this point, I usually install my favorite AUR helper, [pacaur](https://aur.archlinux.org/packages/pacaur/), then -I install the [broadcom-wl-dkms](https://aur.archlinux.org/packages/broadcom-wl-dkms/) wireless driver and [mba6x\_bl-dkms](https://aur.archlinux.org/packages/mba6x%5Fbl-dkms/) -backlight driver to fix the post suspend/resume issue where three's no -brightness after waking up from suspend, and the only available -brightness would be 100%. - -```bash -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 - -- input, graphics, and sound drivers, -- a desktop environment (I prefer Xfce or LXQt), -- a display manager for login screen (lightdm or sddm), and -- a network manager (NetworkManager or ConnMan). - -Check out the [General recommendations](https://wiki.archlinux.org/index.php/General%5Frecommendations) for more details. - - -## References {#references} - -Here are some resources I've come across each with lots of useful bits -and pieces, about installing Arch on a MacBook: - -- [pandeiro/arch-on-air](https://github.com/pandeiro/arch-on-air) -- [Arch Linux on MacBook Pro Retina 2014 with DM-Crypt, LVM and suspend to disk](https://loicpefferkorn.net/2015/01/arch-linux-on-macbook-pro-retina-2014-with-dm-crypt-lvm-and-suspend-to-disk/) -- [Installing Archlinux on Macbook Air 2013](http://frankshin.com/installing-archlinux-on-macbook-air-2013/) -- [Arch Linux Installation with OS X on Macbook Air (Dual Boot)](http://panks.me/posts/2013/06/arch-linux-installation-with-os-x-on-macbook-air-dual-boot/) -- [Installing (encrypted) Arch Linux on an Apple MacBook Pro](https://visual-assault.org/2016/03/05/install-encrypted-arch-linux-on-apple-macbook-pro/) -- [Installing Arch Linux on a MacBook Air 2013](http://alexeyzabelin.com/arch-on-mac) -- [Arch Linux running on my MacBook](https://medium.com/phils-thought-bubble-of-recent-stuff/arch-linux-running-on-my-macbook-2ea525ebefe3) -- [Dual boot Arch Linux on MacBook Pro Installation](http://codylittlewood.com/arch-linux-on-macbook-pro-installation/) - -[//]: # "Exported with love from a post written in Org mode" -[//]: # "- https://github.com/kaushalmodi/ox-hugo" diff --git a/content/projects.md b/content/projects.md deleted file mode 100644 index 20ff433..0000000 --- a/content/projects.md +++ /dev/null @@ -1,15 +0,0 @@ -+++ -title = "Projects" -date = 2019-01-06T22:37:00-05:00 -draft = false -[menu.topnav] - identifier = "projects" - weight = 30 -+++ - -TODO: set up projects page with my projects. - -In the mean time, have a look at [git.aminb.org](https://git.aminb.org) instead. - -[//]: # "Exported with love from a post written in Org mode" -[//]: # "- https://ox-hugo.scripter.co" diff --git a/data/publications.toml b/data/publications.toml deleted file mode 100644 index 72f1c58..0000000 --- a/data/publications.toml +++ /dev/null @@ -1,16 +0,0 @@ -[[pub]] -title = """\ - A Comparison of the Declarative Modelling Languages B, Dash, \ - and TLA+ \ - """ -description = """\ - Ali Abbassi, Amin Bandali, Nancy A. Day, and Jose \ - Serna. In *2018 IEEE 8th International Model-Driven \ - Requirements Engineering Workshop (MoDRE)*. \ - """ -links = """\ - [pdf](https://aminb.org/papers/2018-AbBaDaSe-modre.pdf), \ - [bib](https://aminb.org/papers/2018-AbBaDaSe-modre.bib), \ - [doi](https://doi.org/10.1109/MoDRE.2018.00008), \ - [models](https://cs.uwaterloo.ca/~nday/models/2018-modre) \ - """ diff --git a/gpg.html b/gpg.html new file mode 100644 index 0000000..b7ded5a --- /dev/null +++ b/gpg.html @@ -0,0 +1,63 @@ + + + + + + + GPG Keys - Amin Bandali + + + +
+

Amin Bandali’s personal site

+ + Home → GPG Keys + +
+ +
+
+

GPG Keys

+

+ If you want to send me GPG-encrypted mail, you can use my + current key: +

+
+pub   rsa4096 2018-10-17 [C] [expires: 2020-10-16]
+      BE62 7373 8E61 6D6D 1B3A  08E8 A21A 0202 4881 6103
+uid           [ultimate] Amin Bandali <bandali@gnu.org>
+sub   rsa4096 2018-10-17 [S] [expires: 2020-10-16]
+      39B3 3C8D 9448 0D2D DCC2  A498 8B44 A0CD C7B9 56F2
+sub   rsa4096 2018-10-17 [E] [expires: 2020-10-16]
+      43ED 5F7C F5EC CBDF 2552  FE98 1D52 D14E BCF3 BE08
+sub   rsa4096 2018-10-17 [A] [expires: 2020-10-16]
+      70FB 9AAD 5240 2841 2B14  8685 4040 DFEC 6EC1 3F3A
+        
+ +

+ You may find other keys with my name on keyservers or around + the internet, but they are either old keys of mine that I no + longer have access to, or not mine at all. +

+
+
+ + + diff --git a/images/gnu-inside.png b/images/gnu-inside.png new file mode 100644 index 0000000..fdcceca Binary files /dev/null and b/images/gnu-inside.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..c58ebd7 --- /dev/null +++ b/index.html @@ -0,0 +1,143 @@ + + + + + + + Amin Bandali + + + +
+

Amin Bandali’s personal site

+ + Graduate student at University of Waterloo supervised by + Nancy Day + +
+ +
+
+

Contact

+ + + + + + + + + + + + + + + + + + + + + + +
academicpersonal
emailabandali@uwaterloo.cabandali@gnu.org + (gpg)
git reposgit.uwaterloo.ca/abandaligit.sr.ht/~bandali
other meanssee contact page
+
+ +
+

Research interests

+

+ The main goal of my research is improving + software reliability + through application of formal methods. +

+ +

+ My current research at WatForm + focuses on formal logic, model checking, and verification. + Specifically, I am working on various optimizations aiming to + improve the analysis performance of the Alloy Analyzer on + models. +

+ +

+ I am also interested in programming languages, type systems, and + interactive theorem proving. +

+ +

+ On the side, I dabble in Lean + and Rust, and enjoy + hacking on + Emacs Lisp. + I’m also a free software + and copyleft + advocate, and a volunteer webmaster for the GNU project. +

+ +

+ You may wish to view my academic curriculum vitae. +

+
+ +
+

Publications

+
+
A Comparison of the Declarative Modelling Languages + B, Dash, and TLA+ + (pdf, + bib, + doi, + models) +
+
+ Ali Abbassi, Amin Bandali, Nancy A. Day, + and Jose Serna +
+
+ 2018 IEEE 8th International Model-Driven Requirements + Engineering Workshop (MoDRE) +
+
+ +
+ +
+

Presentations

+
+
Will be added soon.
+ +
+
+ +
+

Writings

+
+
Will be added soon.
+ +
+
+
+ + + diff --git a/layouts/index.html b/layouts/index.html deleted file mode 100644 index f1d5f3b..0000000 --- a/layouts/index.html +++ /dev/null @@ -1,49 +0,0 @@ -{{ define "main" }} - -

Hello there,

-

- Amin Bandali -

-
-{{ with .Content }} -{{ . }} -{{ end }} - -

Publications

-
    - {{ range .Site.Data.publications.pub }} -
  • -

    - {{ .title | markdownify }} - ({{ .links | markdownify }}) -

    -

    {{ .description | markdownify }}

    -
  • - {{ end }} -
- -

Talks & presentations

-
    - {{ if gt (len (where .Pages "Section" "talk")) 0 }} - {{ range first 5 (where .Pages "Section" "talk") }} -
  • {{ .Title }}
  • - {{ end }} - {{ else }} -
  • TODO
  • - {{ end }} -
- -

Recent writings & essays

-
    - {{ if gt (len (where .Pages "Section" "post")) 0 }} - {{ range first 5 (where .Pages "Section" "post") }} -
  • {{ .Title }}
  • - {{ end }} - {{ else }} -
  • TODO
  • - {{ end }} -
- -{{ end }} diff --git a/layouts/partials/footer-block.html b/layouts/partials/footer-block.html deleted file mode 100644 index 02bccfc..0000000 --- a/layouts/partials/footer-block.html +++ /dev/null @@ -1,12 +0,0 @@ -{{ define "footer" }} -{{ with .Site.Params.gnu_inside }} -{{ if .enabled }} - -{{ end }} -{{ end }} -{{ end }} diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html deleted file mode 100644 index cb32e4d..0000000 --- a/layouts/partials/nav.html +++ /dev/null @@ -1,11 +0,0 @@ - diff --git a/static/.gitkeep b/static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/static/0xA21A020248816103.txt b/static/0xA21A020248816103.txt deleted file mode 100644 index d36257f..0000000 --- a/static/0xA21A020248816103.txt +++ /dev/null @@ -1,121 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -=KUkT ------END PGP PUBLIC KEY BLOCK----- diff --git a/static/0xD1FBA36627D65876.txt b/static/0xD1FBA36627D65876.txt deleted file mode 100644 index d9208d4..0000000 --- a/static/0xD1FBA36627D65876.txt +++ /dev/null @@ -1,271 +0,0 @@ ------BEGIN PGP PUBLIC KEY BLOCK----- - -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 -GFnSKge7PxpjfwICU4oJSg== -=uNwY ------END PGP PUBLIC KEY BLOCK----- diff --git a/static/android-chrome-192x192.png b/static/android-chrome-192x192.png deleted file mode 100644 index a3a2df3..0000000 Binary files a/static/android-chrome-192x192.png and /dev/null differ diff --git a/static/android-chrome-512x512.png b/static/android-chrome-512x512.png deleted file mode 100644 index 236d9f3..0000000 Binary files a/static/android-chrome-512x512.png and /dev/null differ diff --git a/static/browserconfig.xml b/static/browserconfig.xml deleted file mode 100644 index 5aecc91..0000000 --- a/static/browserconfig.xml +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - #00aba9 - - - diff --git a/static/favicon.ico b/static/favicon.ico deleted file mode 100644 index 2324bea..0000000 Binary files a/static/favicon.ico and /dev/null differ diff --git a/static/key-transition-2018-08-17.txt b/static/key-transition-2018-08-17.txt deleted file mode 100644 index fb93a7f..0000000 --- a/static/key-transition-2018-08-17.txt +++ /dev/null @@ -1,131 +0,0 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - - _______________________________________________ - - GPG KEY TRANSITION STATEMENT FOR AMIN BANDALI - _______________________________________________ - - -I have created a new GPG key and will be transitioning away from my old -key. The old key has not been compromised and will continue to be valid -for some time, but I prefer all future correspondence to be encrypted to -the new key, and will be making signatures with the new key going -forward. - -This message is signed by both keys to certify the transition. My new -key is signed by the old one. If you have signed my old key, I would -appreciate signatures on my new key as well, provided that your signing -policy permits that without re-authenticating me. - -The old key, which I am transitioning away from, is: - -,---- -| pub rsa4096 2016-01-31 [SC] [expires: 2019-02-13] -| 500C 1D55 D1EC 1FED E8C0 C8DE 4E05 246A B0BF 7FFB -| uid [ultimate] Amin Bandali -| uid [ultimate] Amin Bandali -| uid [ultimate] Amin Bandali -| uid [ultimate] Amin Bandali -| sub rsa4096 2016-01-31 [S] [expires: 2019-02-13] -| 5AC5 0B1B D540 A902 D4B6 2B5C DAE5 4A52 337F 0283 -| sub rsa4096 2016-01-31 [E] [expires: 2019-02-13] -| F05B FB25 77C7 5AF6 7783 A66F 3351 056A ACD6 6B1F -| sub rsa4096 2016-01-31 [A] [expires: 2019-02-13] -| C165 6BE2 FDCA D028 0D5A 4314 3A4A C417 58E9 C177 -`---- - -The new key, to which I am transitioning, is: - -,---- -| pub rsa4096 2018-08-05 [C] [expires: 2020-08-04] -| CDDE 75F9 0353 8E71 813C DA27 D1FB A366 27D6 5876 -| uid [ultimate] Amin Bandali -| uid [ultimate] Amin Bandali -| uid [ultimate] Amin Bandali -| uid [ultimate] Amin Bandali -| sub rsa4096 2018-08-05 [S] [expires: 2020-08-04] -| E14F 56EE 1338 901E A8A8 D2DD 91A9 6FF7 FEF6 BEB4 -| sub rsa4096 2018-08-05 [E] [expires: 2020-08-04] -| F9B3 BA24 31A0 9B38 31A3 42EF 1F29 83A9 9A69 D453 -| sub rsa4096 2018-08-05 [A] [expires: 2020-08-04] -| 4FB5 D03D A65E 8DA3 39BE 5EDD 6DC3 8F21 4E4B AAA0 -`---- - -You can get more information about the key from , -and directly download it from -or from any public key server using GnuPG: - -,---- -| gpg --keyserver keys.gnupg.net --recv-key 0xD1FBA36627D65876 -`---- - -If you already know my old key, you can now verify that the new key is -signed by the old one: - -,---- -| gpg --check-sigs 0xD1FBA36627D65876 -`---- - -If you are satisfied that you've got the right key, I would appreciate -it if you would sign my key: - -,---- -| gpg --sign-key 0xD1FBA36627D65876 -`---- - -You can either upload your signatures to a public keyserver directly: - -,---- -| gpg --keyserver keys.gnupg.net --send-key 0xD1FBA36627D65876 -`---- - -Or, preferably, write to me at (possibly encrypted) the -output from: - -,---- -| gpg --armor --export 0xD1FBA36627D65876 -`---- - -If you'd like any further verification or have any questions about the -transition please contact me directly. - -To verify the integrity of this statement: - -,---- -| wget -qO - https://aminb.org/key-transition-2018-08-17.txt | gpg --verify -`---- - -One last note: though the new key is currently set to expire on -2020-08-04, I expect to periodically extend it further into the future -so long as I'm using it or so long as I haven't revoked it. - - -amin ------BEGIN PGP SIGNATURE----- - -iQIzBAEBCAAdFiEEWsULG9VAqQLUtitc2uVKUjN/AoMFAlt2T/wACgkQ2uVKUjN/ -AoMN8A/9GcHMrM/b6tpsZ1BhKhGE1WxpHmXWAvWltXchavGgqQx0dHhI5CuzFNgw -xLVdiA0mhjou8EPOStoel6ZRXAH/OVGpWk84hkmstP76Vk+dCCABTHtnojRr32eN -fxDGEs51+8rDF6y5rjrdB7hTAZH8KmLhbjHXOg+93wiLgUo449e+wqmaum+tJf9X -+NDPFsS1jedkp+lGq4wlcRhMGNNqY75qnh3rFVifiajdNSpkfjSKUODePtHLaZVf -WX+v8n3cR76BgJqjChSmHyxbdxsphcKZSPIqzMgRhV74FusUz30Z3M10K7dM9Cpd -tQdSL8b9KSABh54+PkRXa93NUr9ZIJymFurWXZOzxFwoBRROstbbBvYmv5fV5HA4 -3RLjeU/uQzzDDyB6J2y1fKeylDCdVsfN3dNNq+k+pWCdzejirzL5t9duStx6ENau -55tWhyO3goQ5snKAdYCbIh2d0xdsBH+Ft9FeXH/lOIeVYINmG/f75fEU1py3oVds -Q9rH+A4RLT+V2nqnaubOQswfURH2Imk1y2AxCRBqH1nWMXmzBjvn9ow3XiV5+G5l -/D8jGUyAcf685xlGGVwp44QeU4RVYSI7s35X+7fcj5Yh6WLez9qZvW0STzO+xszG -uXmm21ykU7+Jb4LEo57h/s8vTtwFqFIoqoOkFNawdGYVsC1OVeqJAjMEAQEIAB0W -IQThT1buEziQHqio0t2RqW/3/va+tAUCW3ZP/AAKCRCRqW/3/va+tBijD/9xSMtw -S1l9AlQQ5yHDihomXXH5i1SjN4XeEs+eQMRNUGhLb4GRJvE5WuUloXjj7YjxHL58 -YNEYYsufvcFpeZ+V1X1ynnKxe3XfgtQY0w/stOgOArf3UCqTFOa4lcwZ3Wi929Rh -oufHzfX0ELvLRobWhhVaeNPBrDcQaPWbUzS8rVvvmGTs/ayZcsIr0q39gGzWVCMj -n+LsgWuRpWvRZgdvHuyLw1nxak+tW/YRzpYrxl9td0rL7Uz1sSMgbrT7NegRrnMC -W2QfX9lIgmqr4M+7B479KGFVEtBiyDacehyt7TRpiBcgzYt9kfUX6Z+ZZ1O/ksXM -ol2kNR1Wo4FsHVd8Hg/7N5oxh1Dqxb5wFF/PUFelpsDgoGXmw5d8LF/jhwkDv/0M -oFADZRRCxAOhhB7oL+FkFGMDo3fcBgTw4CYbSARzQgvsG9WufBH933iv7eSSqPAP -7BA2QDgo40ZM0FrCd+QbOw2K9N5qqJUR20Jz3uc9MZQQN/ewOVhc6NAWvZnICpGL -vGhIrOZ8z54ZI15nCl+PkZQ/SRjYDIo8G/IrDTemjJh+MOCJOfmEC2fQZi7ZIBJs -jijyYLGIA+5oEjtMbMthCtaQ4TqX8LZYMXCCwTZQJ8CPZBPOZHg4Rg+4g13EIw0p -WNC/pJh8IFAS8OkJw2OlLuVmXcqiRH9B3DGvVw== -=O0kc ------END PGP SIGNATURE----- diff --git a/static/key-transition-2018-10-17.txt b/static/key-transition-2018-10-17.txt deleted file mode 100644 index a3fa3da..0000000 --- a/static/key-transition-2018-10-17.txt +++ /dev/null @@ -1,128 +0,0 @@ ------BEGIN PGP SIGNED MESSAGE----- -Hash: SHA256 - - _______________________________________________ - - GPG KEY TRANSITION STATEMENT FOR AMIN BANDALI - _______________________________________________ - - -I have created a new GPG key and will be transitioning away from my old -key. The old key has not been compromised and will continue to be valid -for some time, but I prefer all future correspondence to be encrypted to -the new key, and will be making signatures with the new key going -forward. - -This message is signed by both keys to certify the transition. My new -key is signed by the old one. If you have signed my old key, I would -appreciate signatures on my new key as well, provided that your signing -policy permits that without re-authenticating me. - -The old key, which I am transitioning away from, is: - -,---- -| pub rsa4096 2018-08-05 [C] [expires: 2018-11-16] -| CDDE 75F9 0353 8E71 813C DA27 D1FB A366 27D6 5876 -| uid [ultimate] Amin Bandali -| uid [ultimate] Amin Bandali -| uid [ultimate] Amin Bandali -| uid [ultimate] Amin Bandali -| sub rsa4096 2018-08-05 [S] [expires: 2018-11-16] -| E14F 56EE 1338 901E A8A8 D2DD 91A9 6FF7 FEF6 BEB4 -| sub rsa4096 2018-08-05 [E] [expires: 2018-11-16] -| F9B3 BA24 31A0 9B38 31A3 42EF 1F29 83A9 9A69 D453 -| sub rsa4096 2018-08-05 [A] [expires: 2018-11-16] -| 4FB5 D03D A65E 8DA3 39BE 5EDD 6DC3 8F21 4E4B AAA0 -`---- - -The new key, to which I am transitioning, is: - -,---- -| pub rsa4096 2018-10-17 [C] [expires: 2020-10-16] -| BE62 7373 8E61 6D6D 1B3A 08E8 A21A 0202 4881 6103 -| uid [ultimate] Amin Bandali -| sub rsa4096 2018-10-17 [S] [expires: 2020-10-16] -| 39B3 3C8D 9448 0D2D DCC2 A498 8B44 A0CD C7B9 56F2 -| sub rsa4096 2018-10-17 [E] [expires: 2020-10-16] -| 43ED 5F7C F5EC CBDF 2552 FE98 1D52 D14E BCF3 BE08 -| sub rsa4096 2018-10-17 [A] [expires: 2020-10-16] -| 70FB 9AAD 5240 2841 2B14 8685 4040 DFEC 6EC1 3F3A -`---- - -You can get more information about the key from , -and directly download it from -or from any public key server using GnuPG: - -,---- -| gpg --keyserver keys.gnupg.net --recv-key 0xA21A020248816103 -`---- - -If you already know my old key, you can now verify that the new key is -signed by the old one: - -,---- -| gpg --check-sigs 0xA21A020248816103 -`---- - -If you are satisfied that you've got the right key, I would appreciate -it if you would sign my key: - -,---- -| gpg --sign-key 0xA21A020248816103 -`---- - -You can either upload your signatures to a public keyserver directly: - -,---- -| gpg --keyserver keys.gnupg.net --send-key 0xA21A020248816103 -`---- - -Or, preferably, write to me at (possibly encrypted) -the output from: - -,---- -| gpg --armor --export 0xA21A020248816103 -`---- - -If you'd like any further verification or have any questions about the -transition please contact me directly. - -To verify the integrity of this statement: - -,---- -| wget -qO - https://aminb.org/key-transition-2018-10-17.txt | gpg --verify -`---- - -One last note: though the new key is currently set to expire on -2020-08-04, I expect to periodically extend it further into the future -so long as I'm using it or so long as I haven't revoked it. - - -amin ------BEGIN PGP SIGNATURE----- - -iQIzBAEBCAAdFiEE4U9W7hM4kB6oqNLdkalv9/72vrQFAlvG0BcACgkQkalv9/72 -vrQE1A/5ASG6GDpL185gG286dw9EAXdz/0XgJtJ+pKX6DIc21FCqTqGBbjNIji60 -RbB0FeGhwjvLZz6anEYJjTGIZMz38Ld770JRF84EcPINXU5bBB1GnAgEFJASbI6n -O5XG6JU8T4WVxMjKuI7zOkq9VUhi0n65+St9jro4xHS2BEEWHlgp5rNQF0FuWEHI -uJUPGW58YIlWOP5Wci99gkhDLLXJesEMkPGjPq0GpD4VC9LaK9juZq+1GvX7HO9k -l1UCnSKZ7hanJkhrRWXaofmJ9RE/cBPQBc9RH5PWOSoOE9nFz2GBlMAerZUVmeiE -2jmvq1uS8e5tpanUGb3tbeQyBTynyGJGnQpUATkt3NTIZ4spvYJT9eEVmI/gzdON -MoXjPJsV5B34NGSZr7C0aKJXgeF/AKDibbtlOxR3TZIVT3yqTIXwlvlXiydxbOmf -hu/XUp45lHBcC7E55ZCAZ8j/U6UprXb1MHJwHP+shlpUF2V4+pDe/nf8lu+iRyQ6 -FhLN8yq/wsZTkUN9MtcHIy8m/HCX6UGSBhtCBrmq2Uigwn+NSToZMD1i6DvArxWg -Mmo5oesB5QY50WenPc88LQKlo6uJDXh5j3ScT2bZhG6JaSUuelUnpl7K/rhXqdnL -UYDwejqu3QnM0D8FGiw1zZScXFq4aTkL7oifcLTh/pIrhm1xoZmJAjMEAQEIAB0W -IQQ5szyNlEgNLdzCpJiLRKDNx7lW8gUCW8bQIQAKCRCLRKDNx7lW8hqaD/0RnDtF -KGsRDZhvd2FtcgCjyVrISfxUXJydcMxdPE4WMks47iG1d8UZxQXnRxFuGFP1cGol -tlh/HywGlpBsRTAmmNkRq5dmsNlinl5u8brwh5d0AjI7RpRug9U6zd8oe9OWvL3+ -+cH4LtC6qSlIdk4sViRP/a4t5OjShxxdAsVy89WNpXsFL4cRPEnAF/lhO2C/j7wa -qNiqoJr9ZMZealkcm9mTsfqbODIJI4nElxt/54Hgzn2cznGm16Ax6ASlFqXGZSvO -oPxFDlPryQgoZsN07MNbsNw4OF8+OGwOzLpZ0eWNgflO5MNCaduTT9vbKUw9L25n -x86nNlaScuZDm4NXRohBdooSGfIhO4wy2IUSxmAgwxP720IFEmTXoUXyKlKd/H1E -anSzFcSRuIhGFxXtwtx71uTOs5qQxBj6Jggd+5NCF1xrkC+cwaQY1aB+Uz4ccojy -i0lQ3fBQmsAujmWvyMUqYsQFa61TB6JGHzT7b0+AJr8M6tO2uaRXpuSUCUZIViyJ -i7H8CV3R4FtADPENFfKBuJ91S+Bx4Z0TzMS+3yVK/ll1IAn7TUrt6+KKDSWTvnp3 -EoISX2EtAuDY5KEzq5IscEqwfuZ1mVjUjv2+RP9hha4E6sSOebOR5HirgOxCuFkj -2/cXQGQx64EOzdFpSZQTqnJsefvpE+kVNELjiw== -=RQfQ ------END PGP SIGNATURE----- diff --git a/static/mstile-150x150.png b/static/mstile-150x150.png deleted file mode 100644 index 0ca60aa..0000000 Binary files a/static/mstile-150x150.png and /dev/null differ diff --git a/style.css b/style.css new file mode 100644 index 0000000..91c6253 --- /dev/null +++ b/style.css @@ -0,0 +1,46 @@ +body { + padding: 1rem 5%; + line-height: 1.45; +} +header {text-align: center} +header, section {margin-bottom: 1.7rem} +#sub { + color: #444; + font-size: 0.9rem; + position: relative; + top: -0.75rem; +} +main { + max-width: 50rem; + padding-bottom: 1rem; +} +td {padding: 0 0.25rem} +dl {margin-left: 2.5rem} +#contact {margin-bottom: 0} +code {font-size: 14px} +a:link { + color: #004caa; + text-decoration: none; + border-bottom: 1px solid #ddd; +} +a:hover { + background-color: #004caa; + color: #ffffff; +} +.btable th { + color: #777; + text-align: center; + font-size: 0.9em; + font-weight: normal; +} +.btable td:first-child {text-align: right} +#theses {padding-left: 1rem} +h1, h2, h3, h4, h5 {line-height: 1.15} +#gnu-inside { + position: absolute; + top: 0px; + right: 0px; +} +#gnu-inside a {border: none !important} +#gnu-inside:hover a {background-color: transparent} +#gnu-inside:hover img {background-color: aliceblue} diff --git a/themes/divine b/themes/divine deleted file mode 160000 index 8f6bf80..0000000 --- a/themes/divine +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 8f6bf800a4b17eada8b606855ff3366f4751bc82 diff --git a/themes/hugo-debugprint b/themes/hugo-debugprint deleted file mode 160000 index 334aed7..0000000 --- a/themes/hugo-debugprint +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 334aed7c01552d2f761a0cab2f048c2475b96363 diff --git a/themes/hugo-micro-json b/themes/hugo-micro-json deleted file mode 160000 index df12b01..0000000 --- a/themes/hugo-micro-json +++ /dev/null @@ -1 +0,0 @@ -Subproject commit df12b015321c752aeb52eb7c45fd49e5ae487f50 diff --git a/themes/hugo-search-fuse-js b/themes/hugo-search-fuse-js deleted file mode 160000 index 3622108..0000000 --- a/themes/hugo-search-fuse-js +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 362210856807d835cb9e41f3bc27625c36fed618